사이킷런(scikit-learn) 도서 추천, 파이썬 라이브러리를 활용한 머신러닝

2021. 9. 9. 06:43

사이킷런은 파이썬 머신러닝 패키지로 굉장히 많이 사용된다. 머신러닝 알고리즘을 만들기 위한 대부분의 프로세스가 담겨 있다. 이 책은 이 사이킷런 패키지를 이용해 머신러닝 알고리즘과 방법론을 설명하고, 활용하는 방법을 알려준다. 수학적으로 깊이 있게 들어가지는 않지만, 지도학습은 과적합을 화두로 비지도학습은 이미지 데이터를 이용해서 서로 간의 차이나 주의할 점 등을 설명해주기 때문에 이해하기에 좋다. 특히 처음 배울 때 유용하지 않을까 싶다.

 

파이썬 라이브러리를 활용한 머신러닝

 

 

이 책의 목차를 정리해보면 아래와 같다.

1. 소개
2. 지도학습
 1) 분류와 회귀
 2) 일방화, 과대적합, 과소적합
 3) 지도 학습 알고리즘
   : k-최근접 이웃, 선형 모델, 나이브 베이즈 분류기, 결정 트리, 결정 트리의 앙상블, 배깅, 엑스트라 트리, 에이다부스트, 커널 서포트 벡터 머신, 신경망(딥러닝)
 4) 분류 예측의 불확실성 추정
3. 비지도 학습과 데이터 전처리
 1) 비지도 학습의 종류
 2) 비지도 학습의 도전 과제
 3) 데이터 전처리와 스케일 조정
 4) 차원 축소, 특성 추출, 매니폴드 학습
 5) 군집
4. 데이터 표현과 특성 공학
 1) 범주형 변수
 2) OneHotEncoder와 ColumnTransformer: scikit-learn으로 범주형 변수 다루기
 3) make_column_transformer로 간편하게 ColumnTransformer 만들기
 4) 구간 분할, 이산화 그리고 선형 모델, 트리 모델
 5) 상호작용과 다항식
 6) 일변량 비선형 변환
 7) 특성 자동 선택
 8) 전문가 지식 활용
5. 모델 평가와 성능 향상
 1) 교차 검증
 2) 그리드 서치
 3) 평가 지표와 측정
6. 알고리즘 체인과 파이프라인
 1) 데이터 전처리와 매개변수 선택
 2) 파이프라인 구축하기
 3) 그리드 서치에 파이프라인 적용하기
 4) 파이프라인 인터페이스
 5) 전처리와 모델의 매개변수를 위한 그리드 서치
 6) 모델 선택을 위한 그리드 서치
7. 텍스트 데이터 다루기
8. 마무리

 

 

이 책을 보다보면 사이킷런에 이런 기능도 있었나 하는 것들도 많다. 관련해서 메모한 내용들을 정리해 보았다.

- L1규제: 계수를 0에 가깝게 만든다.
- L2규제: 가중치의 절대값을 가능한 작게 만든다.

- 121p. random-forest: n-jobs로 병렬처리 가능, max_features, n_estimators  
- 121p. 랜덤 포레스트는 텍스트 데이터와 같이 차원이 높고 희소한 데이터에는 잘 동작하지 않는다. 이 때는 선형모델이 더 적합하다.
- 121p. random-forest는 njobs지원, xgboost는 미지원
- 125p. xgboost: learning rate, n-estimators
- 125p. 사이킷런에서 BaggingClassifier 지원함 (AdaBoost, GradientBoost도 지원)
- 142p. SVM: 매개변수 결정과 데이터 스케일에 민감
- 145p. SVM은 저차원과 고차원에서 잘 되고, 샘플이 많을 때 오히려 잘 안된다.
- 176p. 비지도 학습의 결과를 지도학습의 전처리로 사용
- 180p. preprocessing: StandardScaler, MinMaxScaler, RobustScaler,
                       Normalizer, QuantileScaler, PowerTransformer
- 191p. fit_transform
- 206p. PCA, whitening: 주성분의 스케일이 같도록 조정한다
- 220p. PCA, NMF, ICA, FA, 희소코딩(딕셔너리 학습)
- 256p. DBSCAN, Outlier검출로도 사용가능
- 274p. 원핫인코딩, 통계학에서는 K개의 범주는 K-1개의 feature로
- 276p. get_dummies
- 277p. 열 선택할 때 ':'사용
- 281p. preprocessing 참고 (OneHotEncode, ColumnTransformer)
- 303p. 선형과 비선형모델의 특성공학 차이
- 306p. plt.matshow
- 310p. 대부분 실전에서는 특성선택이
- 311p. 시계열데이터를 랜덤포레스트로 학습
- 359p. DummyClassifier
- 372p. precision_recall_curver
- 394p. chain을 묶기
- 406p. 전처리와 모델 매개변수 선택을 위한 그리드 서치
- 408p. 모델 선택을 위한 그리드 서치
- 411p. 계산비용이 높은 파이프라인과 방대한 양의 매개변수 탐색을 해야 한다면 dask-ml
- 461p. 복잡한 머신러닝 시스템을 구축하고 있다면 구글 머신러닝 팀의 연구원들이 쓴 'Machine Learning: The High Interest Credit Card of Technicla Debt' 읽어보길
- 463p. 나만의 추정기 만들기
- 464p. 추천도서, The Elements of Statistical Learning, Machine Learning: An Algorithmic Perspective, 패턴 인식과 머신 러닝, Machine Learning

 

 

책의 내용을 토대로 지도학습 모델의 장단점에 대해서 정리해 보았다.

구분 선형모델 SVM Gradient Boosting Random Forest
특성이 적을 때 A A C C
적은 데이터 A A C C
많은 데이터 ? C A A
속도 A ? C A(병렬처리 가능)
장단점   전처리와 매개변수에 신경을 많이 써야 한다    

 

 

오늘은 이렇게 사이킷런(scikit-learn) 도서 추천, '파이썬 라이브러리를 활용한 머신러닝' 도서에 대해서 알아보았다. 파이썬을 이용해서 머신러닝을 해 보고 싶다면, 꼭 한 번 읽어보기를 강추한다.

댓글()