1. Choosing ML Problems
Supervised vs. Unsupervised Learning중 Supervised Learning에 대한 내용
-
예측 문제 정의 - 타겟
- 테이블 데이터세트의 경우 한 특성을 예측 타겟으로 설정
- 회귀 vs. 분류
- 회귀 - 이산형, 순서형, 범주형 타켓 특성 (혹은 다중클래스 분류)
- 분류 - 이진분류 (혹은 회귀, 다중클래스 분류)
-
분포/불균형 클래스 확인
- 분포가 심할수록 모델의 성능에 악영향을 끼침
- Normal 분포가 됐는지 확인 혹은 번경(ex. log)
- class_weight 밸런스 맞추기
-
데이터 누수 (Data Leakage)
- 타겟변수 외에 예측 시점에 사용할 수 없는 데이터가 포함되어 학습이 이루어 질 경우
- 훈련데이터와 검증데이터를 완전히 분리하지 못했을 경우
정보의 누수가 일어나 과적합을 일으키고 실제 테스트 데이터에서 성능이 급격하게 떨어지는 결과를 확인할 수 있습니다.
***Train/Test/Validation셋이 잘 분리 됐는지 확인 필요
-
평가지표 선택
회귀모델
-MAE
-MSE
-RMSE
-R2score
분류 모델
-Accuracy(정확도),
-Precision(정밀도),
-Recall(재현율),
-F1 Score
-Fall-out
분류문제에서 타겟 클래스비율이 70% 이상 차이날 경우에는 정확도만 사용하면 판단을 정확히 할 수 없다.
정밀도, 재현율, ROC curve, AUC 등을 같이 사용
2. Data Wrangling
모델의 넣을 데이터 선별, 정리, 검증 등등
- Create Dataframe
- Data Tidying
- Data Grouping
- Data Summary
- Make New Variables
- Reshaping Data
- Using Query
- Combining Data
- Plotting
- Handling Missing Data etc.
참고: https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf
3. Feature Importances
- Mean Decrease Impurity (MDI)
- sklearn tree에서 default
- 각 특성의 평균불순도 감소 계산
- 불순도를 크게 감소하는데 많이 사용된 특성 = 중요한 특성
- Drop-Column Importance
- 모든 특성을 각각 drop하고 다시 fit해서 확인함 (느림)
- n 특성 있으면 n+1 학습 필요
- Permutation Importance (Mean Decrease Accuracy)
- 관심있는 특성에 노이즈를 주고 성능 평가지표가 얼마나 감소하는지 측정함
- 특성이 기존에 하던 역할을 못하게 하고 성능 측정 함으로 특성중요도를 찾음
Xgboost for Gradient Boosting
- 과적합을 피하기 위해 배깅과 부스팅을 활용
- 종류:
- AdaBoost
- Gradient Boosting
- CatBoost etc.
4. Interpreting ML Model
Model Agnostic
- 독립적인 해석 가능
- ex. 학습에 사용되는 모델과 설명에 사용되는 모델의 분리
모든 특성들의 대한 전역적인(Global)설명
- Feature Importances
- Drop-Column Importances
- Permutation Importances