서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
머하웃 완벽 가이드 (하둡에 딱 맞는 빅데이터를 활용한 기계학습)
저자 : 션 오웬|로빈 애닐|테드 더닝|엘렌 프리드만
출판사 : 한빛미디어
출판년 : 2012
정가 : 38000, ISBN : 9788979149609
책소개
빅데이터 맞춤 기계학습 라이브러리인 머하웃의 개념부터 활용까지 소개하는 완벽 가이드!
머하웃은 대용량 데이터를 처리하는 확장성을 가진 아파치 기계학습용 오픈소스 라이브러리다. 이 책은 머하웃을 사용해서 실질 문제를 해결하는 실전 가이드로 머하웃의 추천엔진, 군집, 분류 기능을 탐험한다.
머하웃의 창시자와 핵심 커미터가 쓴 이 책은 머하웃의 핵심 개념인 추천엔진, 군집, 분류를 알기 쉽게 설명하고 프레임워크에 데이터 분석 기법을 활용하는 방법도 비중 있게 다룬다. 위키피디아 데이터 셋 등을 활용한 실전 테스트도 제시한다. 이 책은 빅데이터에서 효율적이고 빠르게 가치를 뽑아내려는 개발자에게 좋은 안내서가 될 것이다
목차
CHAPTER 1 아파치 머하웃과의 만남
1.1 머하웃 이야기
_1.2 머하웃 기계학습 테마
_1.2.1 추천엔진
_1.2.2 군집
_1.2.3 분류
1.3 머하웃과 하둡으로 대용량 데이터와 씨름하기
1.4 머하웃 설정하기
_1.4.1 자바와 통합개발환경
_1.4.2 메이븐 설치하기
_1.4.3 머하웃 설치하기
_1.4.4 하둡 설치하기
1.5 요약
PART 1 추천
CHAPTER 2 추천기 소개
2.1 추천 소개
_2.2 처음으로 추천엔진 실행해보기
_2.2.1 입력 데이터 만들기
_2.2.2 추천기 만들기
_2.2.3 결과물 분석하기
2.3 추천기 평가하기
_2.3.1 학습 데이터와 점수
_2.3.2 RecommederEvaluator 실행하기
_2.3.3 결과 평가해보기
2.4 정확률과 재현율 평가하기
_2.4.1 RecommenderIRStatsEvaluator 실행하기
_2.4.2 문제점
2.5 그룹렌즈 데이터 셋 평가하기
_2.5.1 추천기 입력용 데이터 추출하기
_2.5.2 다른 추천기를 이용한 실험 수행
2.6 요약
CHAPTER 3 추천기에서 데이터 표현하기
3.1 선호 데이터 표현하기
_3.1.1 Preference 객체
_3.1.2 PreferenceArray 구현
_3.1.3 컬렉션 속도 높이기
_3.1.4 FastByIDMap과 FastIDSet
3.2 인메모리 DataModel
_3.2.1 GenericDataModel
_3.2.2 파일 기반 데이터
_3.2.3 새로고침 가능한 컴포넌트
_3.2.4 파일 업데이트하기
_3.2.5 데이터베이스 기반 데이터
_3.2.6 JDBC와 MySQL
_3.2.7 JNDI를 통해 설정하기
_3.2.8 프로그램으로 설정하기
3.3 선호값 없이 처리하기
_3.3.1 선호값을 무시할 시점
_3.3.2 선호값 없이 인메모리로 표현하기
_3.3.3 호환되는 구현 방식 선택하기
3.4 요약
CHAPTER 4 추천 만들기
4.1 사용자 기반 추천 이해하기
_4.1.1 추천이 잘못될 때
_4.1.2 추천이 올바르게 될 때
4.2 사용자 기반 추천기 살펴보기
_4.2.1 알고리즘
_4.2.2 GenericUserBasedRecommender를 사용한 알고리즘 구현
_4.2.3 그룹렌즈 탐색하기
_4.2.4 사용자 이웃 탐색하기
_4.2.5 고정 크기 이웃
_4.2.6 임계치 기반 이웃
4.3 유사도 측정법 살펴보기
_4.3.1 피어슨 상관관계 기반의 유사도
_4.3.2 피어슨 상관관계의 문제점
_4.3.3 가중치 적용하기
_4.3.4 유클리드 거리 기반의 유사도 정의하기
_4.3.5 코사인 측정 유사도 적용하기
_4.3.6 스피어만 상관관계의 관련 순위로 유사도 정의하기
_4.3.7 타니모토 계수로 유사도의 선호값 무시하기
_4.3.8 로그 우도 테스트로 스마트한 유사도 계산하기
_4.3.9 선호 추정하기
4.4 아이템 기반 추천
_4.4.1 알고리즘
_4.4.2 아이템 기반 추천기 살펴보기
4.5 슬로프-원 추천기
_4.5.1 알고리즘
_4.5.2 슬로프-원 실제 체험
_4.5.3 용량 차이와 메모리 고려
_4.5.4 선행 계산 분산하기
4.6 새롭고 실험적인 추천기
_4.6.1 특이값 분해 기반 추천기
_4.6.2 선형보간법을 활용한 아이템 기반 추천
_4.6.3 군집 기반 추천
4.7 다른 추천기와 비교해보기
_4.7.1 머하웃에서 콘텐츠 기반 기법 적용하기
_4.7.2 콘텐츠 기반 추천 깊게 살펴보기
4.8 모델 기반 추천기 비교해보기
4.9 요약
CHAPTER 5 추천기를 실제로 적용해보기
5.1 데이트 사이트의 예제 데이터 분석하기
5.2 효과적인 추천기 찾아보기
_5.2.1 사용자 기반 추천기
_5.2.2 아이템 기반 추천기
_5.2.3 슬로프-원 추천기
_5.2.4 정확률과 재현율 평가하기
_5.2.5 성능 평가하기
5.3 도메인 특화 정보 추가 분석하기
_5.3.1 커스텀 아이템 유사도 측정 사용
_5.3.2 콘텐츠 기반 추천
_5.3.3 IDRescorer로 추천 개선하기
_5.3.4 IDRescorer에 성별 정보 포함하기
_5.3.5 커스텀 추천기의 패키징
5.4 익명 사용자에게 추천하기
_5.4.1 PlusAnonymousUserDataModel의 임시 사용자
_5.4.2 익명 사용자 모으기
5.5 웹 기반 추천기 만들기
_5.5.1 WAR 파일 패키징하기
_5.5.2 배포 테스트하기
5.6 추천기의 업데이트와 모니터링
5.7 요약
CHAPTER 6 분산 추천 계산
6.1 위키피디아 데이터 셋 분석하기
_6.1.1 규모 문제와 씨름하기
_6.1.2 분산 컴퓨팅의 장점과 단점 평가
6.2 분산 아이템 기반 알고리즘 설계하기
_6.2.1 동시 발생 행렬 생성하기
_6.2.2 사용자 벡터 계산하기
_6.2.3 추천 만들기
_6.2.4 결과 해석하기
_6.2.5 분산 처리 구현을 향해서
6.3 맵리듀스 기반의 분산 알고리즘 구현하기
_6.3.1 맵리듀스 살펴보기
_6.3.2 맵리듀스로 전환하기: 사용자 벡터 생성하기
_6.3.3 맵리듀스로 전환하기: 동시 발생 계산하기
_6.3.4 맵리듀스로 전환하기: 행렬 곱셈의 재검토
_6.3.5 맵리듀스로 전환하기: 부분곱으로 행렬 곱셈하기
_6.3.6 맵리듀스로 전환하기: 추천하기
6.4 하둡에서 맵리듀스 실행하기
_6.4.1 하둡 설정하기
_6.4.2 하둡으로 추천 실행하기
_6.4.3 맵퍼와 리듀서 설정하기
6.5 의사-분산 추천기
_6.6 추천 활용하기
_6.6.1 클라우드에서 실행하기
_6.6.2 독특한 추천 사용을 상상하기
6.7 요약
PART 2 군집
CHAPTER 7 군집 만나보기
7.1 군집 소개
7.2 아이템 유사성 측정
7.3 Hello World: 단순 군집 예제 실행하기
_7.3.1 입력 만들기
_7.3.2 머하웃 군집 사용
_7.3.3 결과 분석
7.4 거리 측정법
_7.4.1 유클리드 거리 측정법
_7.4.2 제곱 유클리드 거리 측정법
_7.4.3 맨하탄 거리 측정법
_7.4.4 코사인 거리 측정법
_7.4.5 타니모토 거리 측정법
_7.4.6 가중치 거리 측정법
7.5 다시 한번 Hello World 예제에서 다양한 거리 측정법 시험해보기
7.6 요약
CHAPTER 8 데이터 표현
8.1 벡터의 시각화
_8.1.1 데이터를 벡터로 변환하기
_8.1.2 머하웃에서 사용하는 벡터 준비하기
8.2 텍스트 문서를 벡터로 표현하기
_8.2.1 TF-IDF로 가중치 향상하기
_8.2.2 n-그램 연어로 단어의 의존 관계 파악하기
8.3 문서에서 벡터 생성하기
8.4 정규화로 벡터의 품질 향상하기
8.5 요약
CHAPTER 9 머하웃 군집 알고리즘
9.1 K-평균 군집
_9.1.1 K-평균에 대해 알아야 할 모든 것
_9.1.2 K-평균 군집 실행하기
_9.1.3 캐노피 군집으로 완벽한 k값 구하기
_9.1.4 사례 연구: K-평균으로 뉴스 기사 군집하기
9.2 K-평균을 넘어서: 군집 기법의 개요
_9.2.1 다른 종류의 군집 문제
_9.2.2 다른 군집 기법들
9.3 퍼지 K-평균 군집
_9.3.1 퍼지 K-평균 군집 실행하기
_9.3.2 얼마나 퍼지해야 너무 퍼지한 것인가?
_9.3.3 사례 연구: 퍼지 K-평균을 사용한 뉴스 기사의 군집
9.4 모델 기반 군집
_9.4.1 K-평균의 약점
_9.4.2 디리클레 군집
_9.4.3 모델 기반의 군집 예제 실행하기
9.5 잠재 디리클레 할당을 사용한 토픽 모델링
_9.5.1 잠재 디리클레 분석의 이해
_9.5.2 TF-IDF vs. LDA
_9.5.3 LDA의 파라미터 튜닝하기
_9.5.4 사례 학습: 뉴스 기사에서 토픽 찾기
_9.5.5 토픽 모델링 애플리케이션
9.6 요약
CHAPTER 10 군집 품질 평가와 향상 기법
10.1 군집 결과 검사하기
10.2 군집 결과 분석하기
_10.2.1 거리 측정법과 특성 선택
_10.2.2 군집 간 거리와 군집 내 거리
_10.2.3 혼합된 군집과 중첩된 군집
10.3 군집 품질 향상하기
_10.3.1 문서 벡터의 생성 향상하기
_10.3.2 커스텀 거리 측정법 만들기
10.4 요약
CHAPTER 11 군집 실전 배치
11.1 하둡에서 군집을 실행하기 위한 빠른 시작
_11.1.1 로컬 하둡 클러스터에서 군집 실행하기
_11.1.2 하둡 설정 커스터마이징하기
11.2 군집 성능 튜닝하기
_11.2.1 CPU 의존성이 높은 작업에서 성능 함정 피하기
_11.2.2 I/O 의존적인 작업에서 성능 함정 피하기
11.3 배치와 온라인 방식의 군집
_11.3.1 사례 연구: 온라인 뉴스 군집
_11.3.2 사례 연구: 위키피디아 문서 군집하기
11.4 요약
CHAPTER 12 실환경에 군집 적용
12.1 트위터에서 유사한 사용자 찾기
_12.1.1 데이터 전처리와 특성 가중치
_12.1.2 특성 선택의 공통 함정 피하기
12.2 Last.fm에서 아티스트 태그 제시하기
_12.2.1 동시 발생을 사용한 태그 추천
_12.2.2 Last.fm 아티스트 사전 만들기
_12.2.3 Last.fm 태그를 아티스트 속성 벡터로 변환하기
_12.2.4 Last.fm 데이터를 사용해서 K-평균 실행하기
12.3 스택 오버플로우 데이터 셋 분석하기
_12.3.1 스택 오버플로우 데이터 셋 파싱하기
_12.3.2 스택 오버플로우의 군집 문제 찾아보기
12.4 요약
PART 3 분류
CHAPTER 13 분류 만나보기
13.1 왜 머하웃 분류기를 사용해야 할까?
13.2 분류시스템 기초
_13.2.1 분류, 추천, 군집의 차이
_13.2.2 분류 응용 사례
13.3 분류기는 어떻게 동작하나?
_13.3.1 모델
_13.3.2 훈련 vs. 테스트 vs. 실전
_13.3.3 예측 변수 vs. 목표 변수
_13.3.4 레코드, 필드, 값
_13.3.5 4가지 종류의 예측 변수값
_13.3.6 감독 학습 vs. 비감독 학습
13.4 전형적인 분류 프로젝트의 워크플로우
_13.4.1 워크플로우 1 단계: 분류 모델 훈련
_13.4.2 워크플로우 2 단계: 분류 모델 평가
_13.4.3 워크플로우 3 단계: 모델 실전 적용
13.5 단계적인 단순 분류 예제
_13.5.1 데이터와 도전
_13.5.2 색이 채워진 도형을 찾기 위한 모델의 훈련: 미리 생각하기
_13.5.3 모델 훈련용 학습 알고리즘 선택하기
_13.5.4 색채움 분류기의 성능 향상
13.6 요약
CHAPTER 14 분류기 훈련하기
14.1 머하웃 분류기 구축을 위해 특성 추출하기
14.2 미가공 데이터를 분류 가능 데이터로 전처리하기
_14.2.1 미가공 데이터 변형하기
_14.2.2 컴퓨터를 이용한 마케팅 예제
14.3 분류 가능 데이터를 벡터로 변환하기
_14.3.1 벡터로 데이터 표현하기
_14.3.2 머하웃 API를 사용한 특성 해시
14.4 20개 뉴스그룹 데이터 셋을 SGD로 분류하기
_14.4.1 시작하기: 데이터 셋을 간단히 살펴보기
_14.4.2 20개 뉴스그룹 데이터를 파싱하고 특성 토큰화하기
_14.4.3 20개 뉴스그룹 데이터 처리용 훈련 코드
14.5 분류기 훈련을 위한 알고리즘 선택하기
_14.5.1 비병렬이지만 강력한 알고리즘: SGD와 SVM 사용하기
_14.5.2 나이브 분류기의 능력: 나이브 베이즈와 보완 나이브 베이즈 사용하기
_14.5.3 정교한 구조의 힘: 랜덤 포레스트 알고리즘 사용하기
14.6 20개 뉴스그룹 데이터를 나이브 베이즈로 분류하기
_14.6.1 시작하기: 나이브 베이즈로 데이터 추출하기
_14.6.2 나이브 베이즈 분류기 훈련하기
_14.6.3 나이브 베이즈 모델 테스트하기
14.7 요약
CHAPTER 15 분류기 평가와 튜닝
15.1 머하웃에서 분류기 평가하기
_15.1.1 빠른 피드백 얻기
_15.1.2 ‘좋음’이 무엇을 의미하는지 결정하기
_15.1.3 에러 비용의 차이 인식하기
15.2 분류기 평가 API
_15.2.1 AUC 계산
_15.2.2 혼동 행렬과 엔트로피 측정
_15.2.3 평균 로그 우도 계산하기
_15.2.4 모델 분해하기
_15.2.5 20개 뉴스그룹의 SGD 분류기 성능
15.3 언제 분류기의 성능이 나빠지나?
_15.3.1 목표 누설
_15.3.2 잘못된 특성 추출
15.4 더 나은 성능을 위한 튜닝
_15.4.1 문제 튜닝
_15.4.2 분류기 튜닝
15.5 요약
CHAPTER 16 분류기 실전 배치하기
16.1 초대형 시스템 적용 프로세스
_16.1.1 문제 확인
_16.1.2 필요에 따라 특성 추출 최적화하기
_16.1.3 필요에 따라 벡터 인코딩 최적화하기
_16.1.4 확장성을 가진 분류 서비스 배치하기
16.2 규모와 속도 요구 수준 결정하기
_16.2.1 얼마나 커야 크다고 할 수 있나?
_16.2.2 크기 vs. 속도 균형 맞추기
16.3 대형 시스템용 훈련 파이프라인 구축하기
_16.3.1 대규모 데이터 취득과 유지
_16.3.2 반정규화와 다운샘플링
_16.3.3 훈련 중 발생할 수 있는 위험
_16.3.4 고속으로 데이터를 읽고 인코딩하기
16.4 머하웃 분류기와 통합하기
_16.4.1 미리 계획하기: 통합의 중요한 이슈
_16.4.2 모델의 직렬화
16.5 예제: 쓰리프트 기반의 분류 서버
_16.5.1 분류 서버 실행하기
_16.5.2 분류 서비스에 접속하기
_16.6 요약
CHAPTER 17 사례 학습: Shop It To Me
17.1 왜 Shop It To Me는 머하웃을 선택했나?
_17.1.1 Shop It To Me는 무슨 사이트인가?
_17.1.2 왜 Shop It To Me에 분류시스템이 필요한가?
_17.1.3 나머지 영역에서 머하웃의 균형 잡기
17.2 이메일 마케팅 시스템의 일반적인 구조
17.3 모델 훈련하기
_17.3.1 분류 프로젝트의 목표 정하기
_17.3.2 시간으로 구분하기
_17.3.3 목표 누설 피하기
_17.3.4 학습 알고리즘 수정
_17.3.5 특성 벡터 인코딩
17.4 분류 속도 향상하기
_17.4.1 특성 벡터의 선형 결합
_17.4.2 모델 점수의 선형 확장
17.5 요약
Appendix 부록
APPENDIX A JVM 튜닝
APPENDIX B 머하웃에서 사용하는 수학
_B.1 벡터
_B.2 행렬
_B.3 머하웃의 수학과 하둡
APPENDIX C 참고 문헌
APPENDIX D 머하웃 버전 업데이트
_D.1 0.6 릴리즈 노트
_D.2 0.7 릴리즈 노트