책소개
사이킷런 핵심 개발자에게 배우는 머신러닝 이론과 구현 현업에서 머신러닝을 연구하고 인공지능 서비스를 개발하기 위해 꼭 학위를 받을 필요는 없습니다. 사이킷런(scikit-learn)과 같은 훌륭한 머신러닝 라이브러리가 복잡하고 난해한 작업을 직관적인 인터페이스로 감싸주는 덕분이죠. 이 책에서는 사이킷런의 핵심 개발자가 복잡한 수학을 동원하지 않고 실용적으로 머신러닝을 구축하는 모든 단계를 설명합니다. 미적분, 선형대수, 확률 이론을 공부하지 않았어도 이 책을 통해 머신러닝을 활용할 수 있게 될 것입니다.※ 본 번역개정판은 scikit-learn 업데이트에 따라 전반적으로 내용을 갱신한 원서 4쇄를 기반으로 합니다. 오탈자를 바로잡고, 시각적 편의를 위해 풀컬러로 인쇄했으며, 한국어판 부록 3개 절을 추가했습니다.
저자소개
독일 본(Bonn) 대학교에서 머신러닝으로 박사 학위를 받았다. 1년간 아마존의 컴퓨터 비전 응용 부서에서 머신러닝 연구자로 일한 뒤 뉴욕 대학교의 데이터 과학 센터에 합류했고, 현재는 컬럼비아 대학교에서 ‘Applied Machine Learning’ 과목을 가르치고 있다. 지난 4년 동안 학계와 산업계에서 널리 사용하는 머신러닝 툴킷인 사이킷런의 핵심 기여자와 관리자로 활동했다. 또 잘 알려진 여러 머신러닝 패키지를 직접 만들거나 개발에 참여했다. 뮐러의 소망은 머신러닝 애플리케이션 개발의 진입 장벽을 낮추고, 수준 높은 머신러닝 알고리즘을 손쉽게 사용할 수 있는 공개 툴을 만드는 것이다.
목차
CHAPTER 1 소개1.1 왜 머신러닝인가?__1.1.1 머신러닝으로 풀 수 있는 문제__1.1.2 문제와 데이터 이해하기1.2 왜 파이썬인가?1.3 scikit-learn__1.3.1 scikit-learn 설치1.4 필수 라이브러리와 도구들__1.4.1 주피터 노트북__1.4.2 NumPy__1.4.3 SciPy__1.4.4 matplotlib__1.4.5 pandas__1.4.6 mglearn1.5 파이썬 2 vs. 파이썬 31.6 이 책에서 사용하는 소프트웨어 버전1.7 첫 번째 애플리케이션: 붓꽃의 품종 분류__1.7.1 데이터 적재__1.7.2 성과 측정: 훈련 데이터와 테스트 데이터__1.7.3 가장 먼저 할 일: 데이터 살펴보기__1.7.4 첫 번째 머신러닝 모델: k-최근접 이웃 알고리즘__1.7.5 예측하기__1.7.6 모델 평가하기1.8 요약 및 정리CHAPTER 2 지도 학습2.1 분류와 회귀2.2 일반화, 과대적합, 과소적합__2.2.1 모델 복잡도와 데이터셋 크기의 관계2.3 지도 학습 알고리즘__2.3.1 예제에 사용할 데이터셋__2.3.2 k-최근접 이웃__2.3.3 선형 모델__2.3.4 나이브 베이즈 분류기 __2.3.5 결정 트리__2.3.6 결정 트리의 앙상블__2.3.7 (한국어판 부록) 배깅, 엑스트라 트리, 에이다부스트__2.3.8 커널 서포트 벡터 머신__2.3.9 신경망(딥러닝)2.4 분류 예측의 불확실성 추정__2.4.1 결정 함수__2.4.2 예측 확률__2.4.3 다중 분류에서의 불확실성2.5 요약 및 정리CHAPTER 3 비지도 학습과 데이터 전처리3.1 비지도 학습의 종류3.2 비지도 학습의 도전 과제3.3 데이터 전처리와 스케일 조정__3.3.1 여러 가지 전처리 방법__3.3.2 데이터 변환 적용하기__3.3.3 (한국어판 부록) QuantileTransformer와 PowerTransformer__3.3.4 훈련 데이터와 테스트 데이터의 스케일을 같은 방법으로 조정하기__3.3.5 지도 학습에서 데이터 전처리 효과 3.4 차원 축소, 특성 추출, 매니폴드 학습__3.4.1 주성분 분석(PCA)__3.4.2 비음수 행렬 분해(NMF)__3.4.3 t-SNE를 이용한 매니폴드 학습3.5 군집__3.5.1 k-평균 군집__3.5.2 병합 군집__3.5.3 DBSCAN__3.5.4 군집 알고리즘의 비교와 평가__3.5.5 군집 알고리즘 요약3.6 요약 및 정리CHAPTER 4 데이터 표현과 특성 공학4.1 범주형 변수__4.1.1 원-핫-인코딩(가변수)__4.1.2 숫자로 표현된 범주형 특성4.2 OneHotEncoder와 ColumnTransformer: scikit-learn으로 범주형 변수 다루기4.3 make_column_transformer로 간편하게 ColumnTransformer 만들기4.4 구간 분할, 이산화 그리고 선형 모델, 트리 모델4.5 상호작용과 다항식4.6 일변량 비선형 변환4.7 특성 자동 선택__4.7.1 일변량 통계__4.7.2 모델 기반 특성 선택__4.7.3 반복적 특성 선택4.8 전문가 지식 활용4.9 요약 및 정리CHAPTER 5 모델 평가와 성능 향상5.1 교차 검증__5.1.1 scikit-learn의 교차 검증__5.1.2 교차 검증의 장점__5.1.3 계층별 k-겹 교차 검증과 그외 전략들__5.1.4 (한국어판 부록) 반복 교차 검증5.2 그리드 서치__5.2.1 간단한 그리드 서치__5.2.2 매개변수 과대적합과 검증 세트__5.2.3 교차 검증을 사용한 그리드 서치5.3 평가 지표와 측정__5.3.1 최종 목표를 기억하라__5.3.2 이진 분류의 평가 지표__5.3.3 다중 분류의 평가 지표__5.3.4 회귀의 평가 지표__5.3.5 모델 선택에서 평가 지표 사용하기5.4 요약 및 정리CHAPTER 6 알고리즘 체인과 파이프라인6.1 데이터 전처리와 매개변수 선택6.2 파이프라인 구축하기6.3 그리드 서치에 파이프라인 적용하기6.4 파이프라인 인터페이스 __6.4.1 make_pipleline을 사용한 파이프라인 생성__6.4.2 단계 속성에 접근하기__6.4.3 그리드 서치 안의 파이프라인 속성에 접근하기6.5 전처리와 모델의 매개변수를 위한 그리드 서치6.6 모델 선택을 위한 그리드 서치__6.6.1 중복 계산 피하기6.7 요약 및 정리CHAPTER 7 텍스트 데이터 다루기7.1 문자열 데이터 타입7.2 예제 애플리케이션: 영화 리뷰 감성 분석7.3 텍스트 데이터를 BOW로 표현하기__7.3.1 샘플 데이터에 BOW 적용하기__7.3.2 영화 리뷰에 대한 BOW7.4 불용어7.5 tf-idf로 데이터 스케일 변경하기7.6 모델 계수 조사7.7 여러 단어로 만든 BOW(n-그램)7.8 고급 토큰화, 어간 추출, 표제어 추출__7.8.1 (한국어판 부록) KoNLPy를 사용한 영화 리뷰 분석7.9 토픽 모델링과 문서 군집화__7.9.1 LDA7.10 요약 및 정리CHAPTER 8 마무리8.1 머신러닝 문제 접근 방법__8.1.1 의사 결정 참여8.2 프로토타입에서 제품까지8.3 제품 시스템 테스트8.4 나만의 추정기 만들기8.5 더 배울 것들__8.5.1 이론__8.5.2 다른 머신러닝 프레임워크와 패키지__8.5.3 랭킹, 추천 시스템과 그 외 다른 알고리즘__8.5.4 확률 모델링, 추론, 확률적 프로그래밍__8.5.5 신경망__8.5.6 대규모 데이터셋으로 확장__8.5.7 실력 기르기8.6 마치며