티스토리 뷰

이론적으로 ML을 설명하는 책은 많았지만 독자가 따라하며 실제 수행해볼 수 있게 만든 책은 이 시기에 많지 않았기에 출간 자체를 반겼던 책입니다. 하지만 문장이 난해하여 읽기가 힘듭니다. 원문조차 별로라는 얘기도 있으나 확인은 못해봤습니다. 이 리뷰를 쓰는 17년 말에는 ML 관련한 다양한 실습 책들이 시중에 많기에 이제와서 이 책을 선택할 이유는 딱히 없을 것으로 보입니다.

최고의 한 수를 위한 데이터 마이닝!개발자를 위한 지침서. 기계 학습 소개, 다양한 예제로 기계 학습 실습하기, 매일 발생되는 데이터 분석하기, 어프라이어리와 에이다부스트 같은 전형적인 알고리즘 수행하기 등을 다룬다. 통계자료 처리, 데이터 분석, 데이터 시각화 등을 독자들의 업무에 바로 적용할 수 있도록 알고리즘 주요 부분을 재사용 가능한 코드로 사용하였다. 독특하고 다양한 파이썬 예제를 통해 기계학습이나 통계처리에 대한 사전 지식이 없는 독자도 분류, 예측, 추천 그리고 고차원 속성을 요약하고 간소화하는 개념과 방법을 이해하도록 안내한다.

제1부 분류

1장 기계 학습 기초
1.1 기계 학습이란 무엇인가?
1.1.1 센서 및 데이터 홍수
1.1.2 기계 학습은 점점 더 중요해질 것이다
1.2 주요 전문용어
1.3 기계 학습의 주요 기술
1.4 올바른 알고리즘 선정 방법
1.5 기계 학습 응용 프로그램 개발 단계
1.6 왜 파이썬인가?
1.6.1 실행 가능한 의사코드
1.6.2 인기 좋은 파이썬
1.6.3 장점
1.6.4 단점
1.7 NumPy 라이브러리로 시작하기
1.8 요약

2장 k-최근접 이웃 알고리즘
2.1 거리 측정을 이용하여 분류하기
2.1.1 준비: 파이썬으로 데이터 불러오기
2.1.2 kNN 분류 알고리즘 실행하기
2.1.3 분류기 검사하기
2.2 예제: kNN을 이용하여 데이트 사이트의 만남 주선 개선하기
2.2.1 준비: 텍스트 파일의 데이터 구문 분석하기
2.2.2 분석: 매스플롯라이브러리로 scatter 플롯 생성하기
2.2.3 준비: 수치형 값 정규화하기
2.2.4 검사: 전체 프로그램으로 분류기 검사하기
2.2.5 사용: 모두에게 유용한 시스템 만들기
2.3 예제: 필기체 인식 시스템
2.3.1 준비: 이미지를 검사 벡터로 변환하기
2.3.2 검사: 필기체 번호에 kNN 적용하기
2.4 요약

3장 의사결정 트리: 한 번에 하나의 속성으로 데이터 집합 분할하기
3.1 트리 구조
3.1.1 정보 이득
3.1.2 데이터 집합 분할하기
3.1.3 재귀적으로 트리 만들기
3.2 매스플롯라이브러리 주석으로 파이썬에서 트리 플롯하기
3.2.1 매스플롯라이브러리 주석
3.2.2 주석 트리 구축하기
3.3 분류기 검사와 저장
3.3.1 검사: 분류를 위한 트리 사용
3.3.2 사용: 의사결정 트리 계속 유지하기
3.4 예제: 콘택트렌즈 유형 예측하기
3.5 요약

4장 나이브 베이스: 확률 이론으로 분류하기
4.1 베이지안 의사결정 이론으로 분류하기
4.2 조건부 확률
4.3 조건부 확률로 분류하기
4.4 나이브 베이스로 문서 분류하기
4.5 파이썬으로 텍스트 분류하기
4.5.1 준비: 텍스트로 단어 벡터 만들기
4.5.2 훈련: 단어 벡터로 확률 계산하기
4.5.3 검사: 실제 조건을 반영하기 위해 분류기 수정하기
4.5.4 준비: 중복 단어 문서 모델
4.6 예제: 스팸 이메일 분류하기
4.6.1 준비: 텍스트 토큰 만들기
4.6.2 검사: 나이브 베이스로 교차 검증하기
4.7 예제: 나이브 베이스를 사용하여 개인 광고에 포함된 지역 특색 도출하기
4.7.1 수집: RSS 피드 불러오기
4.7.2 분석: 지역적으로 사용되는 단어 표현하기
4.8 요약

5장 로지스틱 회귀
5.1 로지스틱 회귀와 시그모이드 함수로 분류하기: 다루기 쉬운 계단 함수
5.2 가장 좋은 회귀 계수를 찾기 위해 최적화 사용하기
5.2.1 기울기 상승
5.2.2 훈련: 기울기 상승을 사용하여 가장 좋은 매개변수 찾기
5.2.3 분석: 의사결정 경계선 플롯하기
5.2.4 훈련: 확률적인 기울기 상승
5.3 예제: 말의 배앓이 치사율 평가하기
5.3.1 준비: 데이터에서 누락된 값 다루기
5.3.2 검사: 로지스틱 회귀로 분류하기
5.4 요약

6장 지지 벡터 머신
6.1 최대 마진으로 데이터 분리하기
6.2 최대 마진 찾기
6.2.1 분류기 관점에서의 최적화 문제 구성하기
6.2.2 일반적인 기본 구조로 지지 벡터 머신에 접근하기
6.3 SMO 알고리즘으로 효율적인 최적화하기
6.3.1 플랫의 SMO 알고리즘
6.3.2 간략한 형태의 SMO로 적은 양의 데이터 집합 해결하기
6.4 전체 플랫 SMO를 이용해 최적화 속도 올리기
6.5 더 복잡한 데이터를 위해 커널 사용하기
6.5.1 고차원의 데이터를 커널을 이용해 매핑하기
6.5.2 반지름 성향 함수
6.5.3 검사를 위한 커널 사용
6.6 예제: 필기체 인식 예제 다시 적용하기
6.7 요약

7장 에이다부스트 메타 알고리즘으로 분류 개선하기
7.1 데이터 집합의 다양한 표본을 사용하는 분류기
7.1.1 배깅: 임의로 추출한 재표본 데이터로부터 분류기 구축하기
7.1.2 부스팅
7.2 훈련: 오류에 초점을 맞춘 분류기 개선
7.3 의사결정 스텀프로 약한 학습기 생성하기
7.4 전체 에이다부스트 알고리즘 구현하기
7.5 검사: 에이다부스트로 분류하기
7.6 예제: 에이다부스트에 복잡한 데이터 집합 적용하기
7.7 분류 불균형
7.7.1 또 다른 성능 측정 방법: 정확도, 재현율 그리고 ROC
7.7.2 비용 함수를 가진 분류기의 의사결정 다루기
7.7.3 분류 불균형이 있는 데이터를 처리하기 위한 데이터 샘플링
7.8 요약

제2부 회귀로 수치형 값 예측하기

8장 회귀: 수치형 값 예측하기
8.1 회귀로 최적선 찾기
8.2 지역적 가중치가 부여된 선형 회귀
8.3 예제: 전복 나이 예측하기
8.4 데이터를 이해하기 위한 축소 계수
8.4.1 능형 회귀
8.4.2 라소
8.4.3 전방향 단계별 회귀
8.5 성향 / 변화량 관계
8.6 예제: 레고 가격 예측하기
8.6.1 수집: 구글 쇼핑 API 사용
8.6.2 훈련: 모델 구축
8.7 요약

9장 트리 기반 회귀
9.1 지역적으로 복잡한 데이터 모델링하기
9.2 연속적이고 이산적인 속성으로 트리 구축하기
9.3 회귀를 위해 CART 사용하기
9.3.1 트리 구축하기
9.3.2 코드 실행하기
9.4 트리 가지치기
9.4.1 사전 가지치기
9.4.2 사후 가지치기
9.5 모델 트리
9.6 예제: 일반 회귀와 트리 방법 비교
9.7 파이썬에서 GUI를 생성하기 위해 Tkinter 사용하기
9.7.1 Tkinter에서 GUI 구축하기
9.7.2 매스플롯라이브러리와 Tkinter 접속하기
9.8 요약

제3부 비지도 학습

10장 k?평균 군집화: 항목 표시가 없는 아이템 그룹 짓기
10.1 k?평균 군집화 알고리즘
10.2 후처리로 군집 성능 개선하기
10.3 양분하는 k?평균
10.4 예제: 지도상의 지역점 군집화
10.4.1 야후! 위치찾기 API
10.4.2 지리적인 좌표 군집화
10.5 요약

11장 어프라이어리 알고리즘으로 연관 분석하기
11.1 연관 분석
11.2 어프라이어리 이론
11.3 어프라이어리 알고리즘으로 빈발 아이템 집합 찾기
11.3.1 후보 아이템 집합 생성
11.3.2 전체 어프라이어리 알고리즘 사용
11.4 빈발 아이템 집합으로 연관 규칙 마이닝하기
11.5 예제: 국회 투표 패턴 알아보기
11.5.1 수집: 국회 투표 기록에 대한 트랜잭션 데이터 집합 구축
11.5.2 검사: 국회 투표 기록의 연관 규칙
11.6 예제: 독버섯과 유사한 속성 찾기
11.7 요약

12장 FP-성장 알고리즘으로 빈발 아이템 집합 찾기
12.1 FP-트리: 데이터 집합을 부호화하는 효과적인 방법
12.2 FP-트리 구축하기
12.2.1 FP-트리 데이터 구조 생성하기
12.2.2 FP-트리 구축하기
12.3 FP-트리로 빈발 아이템 집합 마이닝하기
12.3.1 기본 패턴 조건 추출하기
12.3.2 FP-트리 조건 생성하기
12.4 예제: 트위터 피드에서 함께 발생하는 단어 찾기
12.5 예제: 뉴스 사이트에서 클릭 스트림 마이닝하기
12.6 요약

제4부 부가적인 도구들

13장 데이터 간소화를 위한 주요 구성요소 분석 사용하기
13.1 차원 축소 기술
13.2 주요 구성요소 분석
13.2.1 좌표 축 이동
13.2.2 NumPy에서 PCA 수행하기
13.3 예제: PCA로 반도체 제조 데이터 차원 축소하기
13.4 요약

14장 특이 값 분해로 데이터 간소화하기
14.1 SVD 응용 프로그램
14.1.1 잠재적 의미 색인
14.1.2 추천 시스템
14.2 행렬 인수분해
14.3 파이썬 SVD
14.4 협력적 여과 기반 추천 엔진
14.4.1 유사도 측정
14.4.2 아이템 기반 유사도와 사용자 기반 유사도
14.4.3 추천 엔진 평가하기
14.5 예제: 레스토랑 메뉴 추천 엔진 구축하기
14.5.1 맛보지 못한 음식 추천하기
14.5.2 SVD로 추천 개선하기
14.5.3 추천 엔진이 가지고 있는 과제
14.6 예제: SVD로 이미지 압축하기
14.7 요약

15장 빅 데이터와 맵 리듀스
15.1 맵 리듀스: 분산 컴퓨팅의 기본 구조
15.2 하둡 스트리밍
15.2.1 평균과 분산 매퍼 분산처리
15.2.2 평균과 분산 리듀서 분산처리
15.3 아마존 웹 서비스로 하둡 작업 실행하기
15.3.1 AWS에서 제공하는 서비스
15.3.2 아마존 웹 서비스 시작하기
15.3.3 EMR에서 하둡 작업 실행하기
15.4 맵 리듀스에서의 기계 학습
15.5 파이썬에서 mrjob을 사용한 맵 리듀스 자동화
15.5.1 EMR로 매끄러운 통합을 위해 mrjob 사용하기
15.5.2 mrjob에서 맵 리듀스 스크립트의 구조
15.6 예제: SVM 분산처리를 위한 페가소스 알고리즘
15.6.1 페가소스 알고리즘
15.6.2 훈련: mrjob으로 지지 벡터 머신 맵 리듀스
15.7 맵 리듀스, 정말로 필요한가?
15.8 요약

부록 A 파이썬 시작하기
A.1 파이썬 설치
A.1.1 윈도우
A.1.2 맥 OS X
A.1.3 리눅스
A.2 파이썬에 대한 간단한 소개
A.2.1 데이터 유형
A.2.2 구조 제어
A.2.3 함축 리스트
A.3 NumPy에 대한 간단한 소개
A.4 뷰티플 수프
A.5 Mrjob
A.6 스마트 투표
A.7 파이썬 트위터

부록 B 선형대수학
B.1 행렬
B.2 역행렬
B.3 표준
B.4 미분행렬

부록 C 확률 다시 보기
C.1 확률
C.2 결합 확률
C.3 확률의 기본 규칙

부록 D 리소스