<책 소개>
자세한 이론 설명과 파이썬 실습을 통해 머신러닝을 완벽하게 배울 수 있습니다!
《파이썬 머신러닝 완벽 가이드》는 이론 위주의 머신러닝 책에서 탈피해, 다양한 실전 예제를 직접 구현해 보면서 머신러닝을 체득할 수 있도록 만들었습니다. 캐글과 UCI 머신러닝 리포지토리에서 난이도가 있는 실습 데이터를 기반으로 실전 예제를 구성했고, XGBoost, LightGBM, 스태킹 기법 등 캐글의 많은 데이터 사이언스에서 애용하는 최신 알고리즘과 기법을 상세하게 설명했습니다.
이번 개정2판에서는 최신 사이킷런 버전(1.0.2)을 포함해 책에서 사용되는 모든 라이브러리를 최신 버전으로 업그레이드한 실습 코드를 구현하고, 다양한 유형의 하이퍼파라미터를 가지는 XGBoost나 LightGBM 모델의 최적 하이퍼파라미터 튜닝을 위한 베이지안 최적화 기법 적용 실습을 제공합니다. 또한 머신러닝 관련 데이터 분석에 널리 쓰이는 시각화 라이브러리인 matplotlib과 seaborn의 활용법을 다룬 장을 새롭게 추가했습니다.
<작가정보>
권철민
엔코아 컨설팅, 한국 오라클을 거쳐 현재는 AI 프리랜서 컨설턴트로 활약하고 있다. 지난 20년간 50여 개 이상의 주요 고객사에서 데이터컨설팅 분야에 매진해 왔으며, 최근 몇 년간은 AI 기반의 Advanced Analytics 분야에 집중하고 있다. 직접 구현해 보지 않으면 절대 이해하지 못하는 평범한 두뇌의 소유자이며, 절망적인 프로젝트에 참여해 자기학대적인 노력으로 문제를 해결하는 이상한 성격의 소유자이기도 하다.
<목차>
▣ 1장: 파이썬 기반의 머신러닝과 생태계 이해
01. 머신러닝의 개념
___머신러닝의 분류
___데이터 전쟁
___파이썬과 R 기반의 머신러닝 비교
02. 파이썬 머신러닝 생태계를 구성하는 주요 패키지
___파이썬 머신러닝을 위한 S/W 설치
03. 넘파이
___넘파이 ndarray 개요
___ndarray의 데이터 타입
___ndarray를 편리하게 생성하기 - arange, zeros, ones
___ndarray의 차원과 크기를 변경하는 reshape( )
___넘파이의 ndarray의 데이터 세트 선택하기 - 인덱싱(Indexing)
___행렬의 정렬 - sort( )와 argsort( )
___선형대수 연산 - 행렬 내적과 전치 행렬 구하기
04. 데이터 핸들링 - 판다스
___판다스 시작 - 파일을 DataFrame으로 로딩, 기본 API
___DataFrame과 리스트, 딕셔너리, 넘파이 ndarray 상호 변환
___DataFrame의 칼럼 데이터 세트 생성과 수정
___DataFrame 데이터 삭제
___Index 객체
___데이터 셀렉션 및 필터링
___정렬, Aggregation 함수, GroupBy 적용
___결손 데이터 처리하기
___apply lambda 식으로 데이터 가공
05. 정리
▣ 2장: 사이킷런으로 시작하는 머신러닝
01. 사이킷런 소개와 특징
02. 첫 번째 머신러닝 만들어 보기 - 붓꽃 품종 예측하기
03. 사이킷런의 기반 프레임워크 익히기
___Estimator 이해 및 fit( ), predict( ) 메서드
___사이킷런의 주요 모듈
___내장된 예제 데이터 세트
04. Model Selection 모듈 소개
___학습/테스트 데이터 세트 분리 - train_test_split()
___교차 검증
___GridSearchCV - 교차 검증과 최적 하이퍼 파라미터 튜닝을 한 번에 111
05. 데이터 전처리
___데이터 인코딩
___피처 스케일링과 정규화
___StandardScaler
___MinMaxScaler
___학습 데이터와 테스트 데이터의 스케일링 변환 시 유의점
06. 사이킷런으로 수행하는 타이타닉 생존자 예측
07. 정리
▣ 3장: 평가
01. 정확도(Accuracy)
02. 오차 행렬
03. 정밀도와 재현율
___정밀도/재현율 트레이드오프
___정밀도와 재현율의 맹점
04. F1 스코어
05. ROC 곡선과 AUC
06. 피마 인디언 당뇨병 예측
07. 정리
▣ 4장: 분류
01. 분류(Classification)의 개요
02. 결정 트리
___결정 트리 모델의 특징
___결정 트리 파라미터
___결정 트리 모델의 시각화
___결정 트리 과적합(Overfitting)
___결정 트리 실습 - 사용자 행동 인식 데이터 세트
03. 앙상블 학습
___앙상블 학습 개요
___보팅 유형 - 하드 보팅(Hard Voting)과 소프트 보팅(Soft Voting)
___보팅 분류기(Voting Classifier)
04. 랜덤 포레스트
___랜덤 포레스트의 개요 및 실습
___랜덤 포레스트 하이퍼 파라미터 및 튜닝
___GBM의 개요 및 실습
05. GBM(Gradient Boosting Machine)
___GBM 하이퍼 파라미터 소개
___XGBoost 개요06. XGBoost(eXtra Gradient Boost)
___XGBoost 설치하기
___파이썬 래퍼 XGBoost 하이퍼 파라미터
___파이썬 래퍼 XGBoost 적용 - 위스콘신 유방암 예측
___사이킷런 래퍼 XGBoost의 개요 및 적용
07. LightGBM
___LightGBM 설치
___LightGBM 하이퍼 파라미터
___하이퍼 파라미터 튜닝 방안
___파이썬 래퍼 LightGBM과 사이킷런 래퍼 XGBoost,
___LightGBM 하이퍼 파라미터 비교
___LightGBM 적용 - 위스콘신 유방암 예측
08. 베이지안 최적화 기반의 HyperOpt를 이용한 하이퍼 파라미터 튜닝
___베이지안 최적화 개요
___HyperOpt 사용하기
___HyperOpt를 이용한 XGBoost 하이퍼 파라미터 최적화
09. 분류 실습 - 캐글 산탄데르 고객 만족 예측
___데이터 전처리
___XGBoost 모델 학습과 하이퍼 파라미터 튜닝
___LightGBM 모델 학습과 하이퍼 파라미터 튜닝
10. 분류 실습 - 캐글 신용카드 사기 검출
___언더 샘플링과 오버 샘플링의 이해
___데이터 일차 가공 및 모델 학습/예측/평가
___데이터 분포도 변환 후 모델 학습/예측/평가
___이상치 데이터 제거 후 모델 학습/예측/평가
___SMOTE 오버 샘플링 적용 후 모델 학습/예측/평가
11. 스태킹 앙상블___기본 스태킹 모델___CV 세트 기반의 스태킹
12. 정리
▣ 5장: 회귀
01. 회귀 소개
02. 단순 선형 회귀를 통한 회귀 이해
03. 비용 최소화하기 - 경사 하강법(Gradient Descent) 소개
04. 사이킷런 LinearRegression을 이용한 보스턴 주택 가격 예측
___LinearRegression 클래스 - Ordinary Least Squares
___회귀 평가 지표
___LinearRegression을 이용해 보스턴 주택 가격 회귀 구현05. 다항 회귀와 과(대)적합/과소적합 이해
___다항 회귀 이해
___다항 회귀를 이용한 과소적합 및 과적합 이해
___편향-분산 트레이드오프(Bias-Variance Trade off)
06. 규제 선형 모델 - 릿지, 라쏘, 엘라스틱넷
___규제 선형 모델의 개요
___릿지 회귀
___라쏘 회귀
___엘라스틱넷 회귀
___선형 회귀 모델을 위한 데이터 변환
07. 로지스틱 회귀
08. 회귀 트리
09. 회귀 실습 - 자전거 대여 수요 예측
___데이터 클렌징 및 가공과 데이터 시각화
___로그 변환, 피처 인코딩과 모델 학습/예측/평가
10. 회귀 실습 - 캐글 주택 가격: 고급 회귀 기법
___데이터 사전 처리(Preprocessing)
___선형 회귀 모델 학습/예측/평가
___회귀 트리 모델 학습/예측/평가
___회귀 모델의 예측 결과 혼합을 통한 최종 예측
___스태킹 앙상블 모델을 통한 회귀 예측
11. 정리
▣ 6장: 차원 축소
01. 차원 축소(Dimension Reduction) 개요
02. PCA(Principal Component Analysis)
___PCA 개요
03. LDA(Linear Discriminant Analysis)
___LDA 개요04. SVD(Singular Value Decomposition)
___SVD 개요___사이킷런 TruncatedSVD 클래스를 이용한 변환
05. NMF(Non-Negative Matrix Factorization)
___NMF 개요
06. 정리
▣ 7장: 군집화
01. K-평균 알고리즘 이해
___사이킷런 KMeans 클래스 소개
___K-평균을 이용한 붓꽃 데이터 세트 군집화
___군집화 알고리즘 테스트를 위한 데이터 생성
02. 군집 평가(Cluster Evaluation)
___실루엣 분석의 개요
___붓꽃 데이터 세트를 이용한 군집 평가
___군집별 평균 실루엣 계수의 시각화를 통한 군집 개수 최적화 방법
03. 평균 이동
___평균 이동(Mean Shift)의 개요
04. GMM(Gaussian Mixture Model)
___GMM(Gaussian Mixture Model) 소개
___GMM을 이용한 붓꽃 데이터 세트 군집화
___GMM과 K-평균의 비교
05. DBSCAN
___DBSCAN 개요
___DBSCAN 적용하기 - 붓꽃 데이터 세트
___DBSCAN 적용하기 - make_circles( ) 데이터 세트
06. 군집화 실습 - 고객 세그먼테이션
___고객 세그먼테이션의 정의와 기법
___데이터 세트 로딩과 데이터 클렌징
___RFM 기반 데이터 가공
___RFM 기반 고객 세그먼테이션
07. 정리
▣ 8장 텍스트 분석
___NLP이냐 텍스트 분석이냐?
01. 텍스트 분석 이해
___텍스트 분석 수행 프로세스
___파이썬 기반의 NLP, 텍스트 분석 패키지
02. 텍스트 사전 준비 작업(텍스트 전처리) - 텍스트 정규화
___클렌징
___텍스트 토큰화
___스톱 워드 제거
___Stemming과 Lemmatization
03. Bag of Words - BOW
___BOW 피처 벡터화
___사이킷런의 Count 및 TF-IDF 벡터화 구현: CountVectorizer, TfidfVectorizer
___BOW 벡터화를 위한 희소 행렬
___희소 행렬 - COO 형식
___희소 행렬 - CSR 형식
04. 텍스트 분류 실습 - 20 뉴스그룹 분류
___텍스트 정규화
___피처 벡터화 변환과 머신러닝 모델 학습/예측/평가
___사이킷런 파이프라인(Pipeline) 사용 및 GridSearchCV와의 결합
05. 감성 분석
___감성 분석 소개
___지도학습 기반 감성 분석 실습 - IMDB 영화평
___비지도학습 기반 감성 분석 소개
___SentiWordNet을 이용한 감성 분석
___VADER를 이용한 감성 분석
06. 토픽 모델링(Topic Modeling) - 20 뉴스그룹
07. 문서 군집화 소개와 실습(Opinion Review 데이터 세트)
___문서 군집화 개념
___Opinion Review 데이터 세트를 이용한 문서 군집화 수행하기
___군집별 핵심 단어 추출하기
08. 문서 유사도
___문서 유사도 측정 방법 - 코사인 유사도
___두 벡터 사잇각
___Opinion Review 데이터 세트를 이용한 문서 유사도 측정
09. 한글 텍스트 처리 - 네이버 영화 평점 감성 분석
___한글 NLP 처리의 어려움
___KoNLPy 소개
___데이터 로딩
10. 텍스트 분석 실습 - 캐글 Mercari Price Suggestion Challenge
___데이터 전처리
___피처 인코딩과 피처 벡터화
___릿지 회귀 모델 구축 및 평가
___LightGBM 회귀 모델 구축과 앙상블을 이용한 최종 예측 평가
11. 정리
▣ 9장: 추천 시스템
01. 추천 시스템의 개요와 배경
___추천 시스템의 개요
___온라인 스토어의 필수 요소, 추천 시스템
___추천 시스템의 유형
02. 콘텐츠 기반 필터링 추천 시스템
03. 최근접 이웃 협업 필터링
04. 잠재 요인 협업 필터링
___잠재 요인 협업 필터링의 이해
___행렬 분해의 이해
___확률적 경사 하강법을 이용한 행렬 분해
05. 콘텐츠 기반 필터링 실습 - TMDB 5000 영화 데이터 세트
___장르 속성을 이용한 영화 콘텐츠 기반 필터링
___데이터 로딩 및 가공
___장르 콘텐츠 유사도 측정
___장르 콘텐츠 필터링을 이용한 영화 추천06. 아이템 기반 최근접 이웃 협업 필터링 실습
___데이터 가공 및 변환
___영화 간 유사도 산출
___아이템 기반 최근접 이웃 협업 필터링으로 개인화된 영화 추천
07. 행렬 분해를 이용한 잠재 요인 협업 필터링 실습
___Surprise 패키지 소개
08. 파이썬 추천 시스템 패키지 - Surprise
___Surprise를 이용한 추천 시스템 구축
___Surprise 주요 모듈 소개
___Surprise 추천 알고리즘 클래스
___베이스라인 평점
___교차 검증과 하이퍼 파라미터 튜닝
___Surprise를 이용한 개인화 영화 추천 시스템 구축
09. 정리
▣ 10장: 시각화
01. 시각화를 시작하며 - 맷플롯립과 시본 개요
02. 맷플롯립(Matplotlib)
___맷플롯립의 pyplot 모듈의 이해
___pyplot의 두 가지 중요 요소 - Figure와 Axes 이해
___Figure와 Axis의 활용
___여러 개의 plot을 가지는 subplot들을 생성하기
___pyplot의 plot( ) 함수를 이용해 선 그래프 그리기
___축 명칭 설정, 축의 눈금(틱)값 회전, 범례(legend) 설정하기
___여러 개의 subplots들을 이용해 개별 그래프들을 subplot별로 시각화하기
03. 시본(Seaborn)
___시각화를 위한 차트/그래프 유형
___정보의 종류에 따른 시각화 차트 유형
___히스토그램(Histogram)
___카운트 플롯
___바 플롯(barplot)
___barplot( ) 함수의 hue 인자를 사용하여 시각화 정보를 추가적으로 세분화하기
___박스 플롯
___바이올린 플롯
___subplots를 이용하여 시본의 다양한 그래프를 시각화
___산점도, 스캐터 플롯(Scatter Plot)
___상관 히트맵(Correlation Heatmap)
04. 정리
파이썬 머신러닝 완벽 가이드 / 권철민 (USED)