Top

아파치 Mahout 프로그래밍 [빅데이터 분석을 위한]

  • 원서명Apache Mahout Cookbook (ISBN 9781849518024)
  • 지은이피에로 지아코멜리
  • 옮긴이배경숙
  • ISBN : 9788960776111
  • 25,000원
  • 2014년 09월 30일 펴냄
  • 페이퍼백 | 284쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

요약

아파치 머하웃(Apache Mahout)은 대용량 데이터를 처리하는 기계 학습용 라이브러리이다. 이 책은 기계학습이나 머하웃에 대한 사전 지식이 없는 독자라도 쉽게 따라 할 수 있도록 실제 사례와 다양한 예제를 제공한다. 아파치 머하웃을 효율적이고 빠르게 도입하려는 개발자에게 좋은 안내서가 될 것이다.

이 책에서 다루는 내용

■ 머하웃을 위해 넷빈즈(NetBeans)와 메이븐(Maven)으로 처음부터 전체 개발 환경을 구성

■ 더 나은 성능을 위한 시퀀스 파일 형식 처리

■ 스쿱(Sqoop)을 이용한 쿼리와 RDBMS 시스템에 결과 저장

■ 로지스틱 회귀 분석으로 미래 예측

■ 나이브 베이즈(Naïve Bayes) 알고리즘으로 이해해보는 텍스트 마이닝

■ 클러스터의 생성과 이해

■ 여러 가지 클러스터링 알고리즘을 평가하기 위한 머하웃 커스터마이징

■ 실제 데이터 마이닝 문제를 해결하기 위한 맵리듀스(MapReduce) 접근 방법

이 책의 대상 독자

머하웃에 관심이 있고 빠른 입문을 원하는 개발자를 위한 책이다. 마하웃에 대한 사전지식이 필요 없고, 소개된 다양한 예제가 숙련된 개발자나 시스템 관리자에게 많은 도움이 될 것이다.

이 책의 구성

1장, ‘머하웃은 그렇게 어렵지 않다!’: 한 대의 머신에서 바로 사용할 수 있는 개발환경 구성에 대해 설명한다. 1장에서는 하둡이 설치되어 있는지, 포함될 jar 파일들이 준비되어 있는지 등 데이터 마이닝 작업과 관련된 환경에 대한 모든 것을 독자가 아무런 사전지식 없이도 명확히 이해할 수 있게 도울 것이다.

2장, ‘시퀀스 파일 사용하기: 언제 그리고 왜?’: 독자에게 시퀀스 파일을 소개한다. 시퀀스 파일은 하둡과 머하웃을 사용할 때 중요한 개념이다. 대개 머하웃은 일반적으로 사용하는 데이터 세트를 바로 처리할 수 없으므로, 알고리즘을 코딩하기 전에 이러한 특정 파일을 처리하는 방법을 설명한다.

3장, ‘외부 데이터 소스와 머하웃 통합’: 코드뿐만 아니라 커맨드라인 도구를 사용해 RDBMS로부터 데이터를 읽고 쓰는 예제를 자세히 설명한다.

4장, ‘머하웃의 나이브 베이즈 분류기 구현’: 텍스트 문서를 분류하는 데 나이브 베이즈(Naïve Bayes) 분류기를 사용하는 방법을 깊이 있게 설명한다. 문서 내의 단어를 빈도 벡터로 변환하는 방법도 상세히 설명한다. 4장에서는 자바 코드에서 나이브 베이즈 분류기와 보완 나이브 베이즈 분류기의 사용도 함께 다룬다.

5장, ‘머하웃으로 주식 시장 예측하기’: 기본적으로 로지스틱 회귀와 랜덤 포레스트(Random Forest)라는 두 가지 알고리즘을 다룬다. 두 알고리즘은 일반적인 데이터 세트를 분석해 미래 가치를 예측할 수 있는 가능성을 보여준다.

6장, ‘머하웃의 캐노피 클러스터링’: 머하웃 프레임워크 내에서 가장 많이 사용되는 알고리즘인 빅데이터 클러스터 분석 및 분류 작업을 설명하기 시작한다. 6장에서는 실제 사례를 들어 일반적인 중심 주변의 데이터를 집계하기 위한 캐노피 클러스터링의 사용법을 설명한다.

7장, ‘머하웃의 스펙트럼 클러스터링’: 머하웃에서 사용할 수 있는 클러스터링 알고리즘의 분석이 계속된다. 7장에서는 그래프의 형태로 서로 연결되어 정보를 분류하는 매우 효율적인 방법인 스펙트럼 클러스터링의 사용법을 설명한다.

8장, ‘K평균 클러스터링’: 맵리듀스 방법과 순차적 방법의 K평균 클러스터링, 두가지를 설명하고 주제별로 텍스트 문서를 분류한다. 자바 코드뿐만 아니라 커맨드라인에서 이 알고리즘을 실행하는 방법도 설명한다.

9장, ‘머하웃의 소프트 컴퓨팅’: 빈발 패턴 마이닝이라는 옛 문헌 알고리즘을 설명한다. 이 알고리즘은 고객이 이전에 구매한 제품으로부터 함께 판매해야 하는 항목을 예상할 수 있다. 또한 텍스트 분류를 위한 잠재 디리클레 알고리즘(Latent Dirichlet algorithm)도 설명한다.

10장, ‘머하웃의 유전 알고리즘 구현’: 외판원 문제(TSP, Traveling Salesman Problem)를 해결하고 규칙을 추출하기 위해 머하웃의 유전 알고리즘을 설명한다. 이 알고리즘들을 사용하는 다른 버전의 머하웃 사용법도 살펴볼 것이다.

저자/역자 소개

저자 서문

모바일 디바이스의 확산과 맞물린 소셜 네트워크 웹사이트의 증가는 지난 10년간 데이터를 처리하는 방식을 크게 바꾸었다. 이를 뒷받침하기 위해 2012년 큐미(Qmee)가 실험한 ‘60초 동안 인터넷에서 일어나는 일들’이라는 연구 결과를 참조하겠다. 결과는 http://blog.qmee.com/qmee-online-in-60-seconds/에서 확인할 수 있다. 실험 결과, 60초 동안 트위터에는 27만 8,000건의 트윗이 업데이트되고 페이스북에는 초당 4만 1,000건의 게시물이 생성됐으며 유튜브에는 72시간 분량의 동영상이 업로드됐다. 이 웹사이트들은 규모가 굉장히 클 뿐만 아니라 심지어 국제적인 사이트여서 일반적으로 수집한 로그만 하더라도 수백만 개의 레코드가 된다.

이러한 대용량 정보를 관리하기 위한 새로운 프레임워크는 기본적으로 다른 컴퓨터와 계산 작업의 공유를 허용하도록 코딩되어 있다. 하둡(Hadoop)은 계산 작업들이 여러 하드웨어 인프라 사이에 분배될 수 있게 하는 아파치 솔루션이다.

수십억 건의 데이터 레코드를 분석하는 경우, 대부분 데이터 간의 새로운 관계를 발견하기 위해 정보를 추출하는 것을 목적으로 한다. 전통적으로, 데이터 마이닝 알고리즘은 이러한 목적으로 개발됐다. 그러나 매우 큰 데이터 세트를 가지고 적당한 시간 내에 데이터 마이닝 작업을 할 방법이 없다. 머하웃은 하둡에 의해 캡슐화된 맵리듀스 패러다임을 이용해 큰 데이터 세트에 데이터 마이닝 알고리즘을 적용하기 위해 만들어진 데이터 마이닝 프레임워크다. 머하웃은 코더에게 하위 레벨 인터페이스로서 하둡 인프라를 사용해 데이터 마이닝 작업에 바로 사용할 수 있는 프레임워크를 제공한다.

이 책에서는 몇 가지 실제 사례를 가지고 머하웃을 사용해 데이터 마이닝 방법과 데이터 마이닝으로의 다양한 접근 방법을 소개한다. 핵심 아이디어는 머하웃을 사용하면 비이론적인 접근 방식으로 데이터를 분류하고 클러스터링하고 예측할 수 있다는 것이다. 이 책은 코드 중심이므로, 일부 특정 인수를 깊이 있게 이해하고자 몇 가지 자료를 참조하긴 하지만 이론적 배경을 너무 깊숙이 파고들지는 않을 것이다. 이 책을 내면서 직면한 문제는 다음과 같다.

▶ 경험상 머하웃은 학습 곡선이 매우 높다. 맵리듀스 방법론을 사용한 알고리즘은 순차적인 접근 방식과는 완전히 다르기 때문이다.

▶ 데이터 마이닝 알고리즘 자체가 이해하기에 쉽지 않고 거의 대부분의 개발자가 갖추지 않은 기술을 요구한다.

그래서 독자가 데이터 마이닝에 관한 깊은 배경지식이 없더라도 모든 코드의 의미와 목적을 파악할 수 있도록 코드 중심의 접근 방식을 제안했다. 이러한 접근 방식의 결과는 독자가 평가할 것이며, 독자가 이 책을 읽으면서 우리가 책을 쓰는 동안 느꼈던 것 이상의 즐거움을 찾기를 바란다.

저자 소개

피에로 지아코멜리 (Piero Giacomelli)

1986년 자신의 첫 번째 PC인 코모도르64로 처음 컴퓨터를 시작했다. 컴퓨터에 대한 깊은 애정에도 불구하고 수학을 전공했고, 1997년이 되어서야 자바를 시작으로 소프트웨어 산업에 뛰어들었다.

자바, 닷넷, PHP를 사용하는 여러 소프트웨어 프로젝트를 수행했는데, JBoss와 아파치 기술의 열혈 팬일 뿐만 아니라 마이크로소프트의 기술도 많이 사용한다.

항공 우주, ISP, 섬유/플라스틱 제조, e-헬스 등 다양한 산업 분야에서 소프트웨어 개발자나 IT 관리자로 일했다. 또한 FP7 EU 프로그램의 유럽연합(EU) 투자를 받는 CHRONIOUS, I-DONTFALL, FEARLESS, CHROMED 같은 프로젝트에 소속되어 있다.

최근 몇 년 동안 과학 저널에 몇 개의 논문을 발표했고 IARIA(International Academy Research and Industry Association)에서는 최고 논문상도 수상했다. 2012년에는 아파치 HornetQ 프레임워크를 위한 가이드북인 『HornetQ Messaging Developer’s Guide』(팩트 출판사)를 집필했다. 결혼하여 두 명의 자녀를 뒀으며, 여가 시간에는 아이들과 함께 장난감을 가지고 놀면서 유년 시절을 회상한다고 한다.

옮긴이의 말

하둡은 이제 특정 엔지니어의 기술이 아닌, IT에 관련된 대부분 사람들이 들어봤을 정도로 보편화됐다. 내가 처음 하둡을 접한 건, 2009년 ‘Virtual Globe’ 프로젝트를 수행할 때였다. 당시 프로젝트에서는 하나의 영상만 하더라도 수 기가바이트에 이르는 대용량 고해상도 항공 영상을 다뤘기 때문에 이를 저장하기 위한 수단으로서 하둡에 관심을 갖게 됐다. 그리고 자연스럽게 ‘하둡’ 하면 바로 떠오르는 하둡 기반의 분산 처리 프레임워크인 맵리듀스를 접하게 됐다. 머하웃은 맵리듀스를 이용해 빅데이터 분석용 마이닝 알고리즘을 제공하는 프레임워크다.

이 책은 ‘Apache Mahout Cookbook’이라는 원제처럼 독자가 데이터 마이닝에 관한 배경지식이 많지 않더라도 예제를 따라 하며 빠르게 머하웃을 사용하도록 돕는 것을 목표로 한다. 따라서 독자에게 데이터 마이닝에 관한 지식을 요구하진 않지만 기본적으로 리눅스와 자바, vi 편집기를 쓸 수 있는 어느 정도 숙련된 개발자라고 가정한다. 그러나 이런 것들을 모른다고 해서 책을 포기할 필요는 없다. 나 역시, 8년 이상을 윈도우 기반의 C/C++ 개발만 해왔기 때문에 하둡의 진입장벽은 높았다. 하지만 그만큼 학습할 가치가 충분하다고 자신한다. 그리고 아직 하둡과 맵리듀스에 친숙하지 못한 독자에게는 머하웃의 소스 코드를 열어볼 것을 권한다. 머하웃의 소스를 분석하는 것만으로도 하둡과 맵리듀스뿐만 아니라 데이터 마이닝까지 세 마리 토끼를 동시에 잡을 수 있을 것이다.

옮긴이 소개

배경숙

영상 처리와 패턴 인식을 전공하고 영상 인식 분야에서 경력을 쌓았다. 2010년부터 현재까지 SK C&C에서 빅데이터 프로젝트를 수행하며 맵리듀스, 머하웃(Mahout), 하이브(Hive), 스쿱(Sqoop) 등을 사용했다. 특히, 영상에 빅데이터 기술을 결합한 동영상 검색, 분류 등에 관심이 많다.

목차

목차
  • 1장 머하웃은 그렇게 어렵지 않다!
    • 소개
    • 자바와 하둡 설치
    • 메이븐과 넷빈즈 개발 환경 설정
    • 기본 추천 시스템 코딩

  • 2장 시퀀스 파일 사용하기: 언제 그리고 왜?
    • 소개
    • 커맨드라인에서 시퀀스 파일 만들기
    • 코드에서 시퀀스 파일 생성하기
    • 코드에서 시퀀스 파일 읽기

  • 3장 외부 데이터 소스와 머하웃 통합
    • 소개
    • 외부 데이터 소스를 하둡 분산 파일 시스템(HDFS)으로 임포트하기
    • HDFS에서 RDBMS로 데이터 익스포트하기
    • RDBMS를 다루는 스쿱 잡 생성하기
    • 스쿱 API를 사용해 데이터 임포트하기

  • 4장 머하웃의 나이브 베이즈 분류기 구현
    • 소개
    • 머하웃 문서 분류기를 이용한 간단한 이용 사례
    • 코드에서 나이브 베이즈 분류기 사용
    • 커맨드라인에서 보완 나이브 베이즈 사용
    • 보완 나이브 베이즈 분류기 코딩

  • 5장 머하웃으로 주식 시장 예측하기
    • 소개
    • 로지스틱 회귀를 위한 데이터 준비
    • 로지스틱 회귀를 이용한 GOOG 움직임 예측
    • 자바 코드에서 적응적 로지스틱 회귀 사용
    • 대용량 데이터 세트에 로지스틱 회귀 사용
    • 랜덤 포레스트를 사용해 시장의 움직임 예측

  • 6장 머하웃의 캐노피 클러스터링
    • 소개
    • 커맨드라인 기반 캐노피 클러스터링
    • 파라미터를 사용한 커맨드라인 기반 캐노피 클러스터링
    • 자바 코드에서 캐노피 클러스터링 사용
    • 사용자 정의 클러스터링 거리 함수 사용

  • 7장 머하웃의 스펙트럼 클러스터링
    • 소개
    • 커맨드라인에서 EigenCut 사용
    • 자바 코드에서 기본 EigenCut 사용
    • 데이터에서 유사도 행렬 생성
    • 영상 분할에 스펙트럼 클러스터링 응용

  • 8장 K평균 클러스터링
    • 소개
    • 자바 코드에서 K평균 클러스터링 사용
    • K평균 클러스터링을 이용한 교통사고 클러스터링
    • 맵리듀스를 이용한 K평균 클러스터링
    • 커맨드라인에서 K평균 클러스터링 사용

  • 9장 머하웃의 소프트 컴퓨팅
    • 소개
    • 머하웃의 빈발 패턴 마이닝
    • 빈발 패턴 마이닝을 위한 지표 생성
    • 자바 코드에서 빈발 패턴 마이닝 사용
    • 주제 생성을 위한 LDA 사용

  • 10장 머하웃의 유전 알고리즘 구현
    • 소개
    • GA 사용을 위한 머하웃 설정
    • 그래프에서 유전 알고리즘 사용
    • 자바 코드에서 유전 알고리즘 사용

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안