1. Choosing ML Problems

Supervised vs. Unsupervised Learning중 Supervised Learning에 대한 내용

  1. 예측 문제 정의 - 타겟

    1. 테이블 데이터세트의 경우 한 특성을 예측 타겟으로 설정
    2. 회귀 vs. 분류
      1. 회귀 - 이산형, 순서형, 범주형 타켓 특성 (혹은 다중클래스 분류)
      2. 분류 - 이진분류 (혹은 회귀, 다중클래스 분류)
  2. 분포/불균형 클래스 확인

    1. 분포가 심할수록 모델의 성능에 악영향을 끼침
    2. Normal 분포가 됐는지 확인 혹은 번경(ex. log)
    3. class_weight 밸런스 맞추기
  3. 데이터 누수 (Data Leakage)

    1. 타겟변수 외에 예측 시점에 사용할 수 없는 데이터가 포함되어 학습이 이루어 질 경우
    2. 훈련데이터와 검증데이터를 완전히 분리하지 못했을 경우

    정보의 누수가 일어나 과적합을 일으키고 실제 테스트 데이터에서 성능이 급격하게 떨어지는 결과를 확인할 수 있습니다.

    ***Train/Test/Validation셋이 잘 분리 됐는지 확인 필요

  4. 평가지표 선택

    회귀모델

    -MAE

    -MSE

    -RMSE

    -R2score

    분류 모델

    -Accuracy(정확도),

    -Precision(정밀도),

    -Recall(재현율),

    -F1 Score

    -Fall-out

    분류문제에서 타겟 클래스비율이 70% 이상 차이날 경우에는 정확도만 사용하면 판단을 정확히 할 수 없다.

    정밀도, 재현율, ROC curve, AUC 등을 같이 사용

    2. Data Wrangling

    모델의 넣을 데이터 선별, 정리, 검증 등등

    참고: https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf

3. Feature Importances

  1. Mean Decrease Impurity (MDI)
    1. sklearn tree에서 default
    2. 각 특성의 평균불순도 감소 계산
    3. 불순도를 크게 감소하는데 많이 사용된 특성 = 중요한 특성
  2. Drop-Column Importance
    1. 모든 특성을 각각 drop하고 다시 fit해서 확인함 (느림)
    2. n 특성 있으면 n+1 학습 필요
  3. Permutation Importance (Mean Decrease Accuracy)
    1. 관심있는 특성에 노이즈를 주고 성능 평가지표가 얼마나 감소하는지 측정함
    2. 특성이 기존에 하던 역할을 못하게 하고 성능 측정 함으로 특성중요도를 찾음

Xgboost for Gradient Boosting

4. Interpreting ML Model

Model Agnostic

모든 특성들의 대한 전역적인(Global)설명