신용 위험을 위한 열 선택

Python을 활용한 신용 위험 모델링

Michael Crabtree

Data Scientist, Ford Motor Company

특정 열 선택하기

  • 지금까지는 예측에 모든 열을 사용해 왔습니다
# Selects a few specific columns
X_multi = cr_loan_prep[['loan_int_rate','person_emp_length']]
# Selects all data except loan_status
X = cr_loan_prep.drop('loan_status', axis = 1)
  • 각 열이 얼마나 중요한지 알아보는 방법
    • 로지스틱 회귀: 열 계수
    • 그레이디언트 부스티드 트리: ?
Python을 활용한 신용 위험 모델링

열 중요도

  • .get_booster()와 .get_score() 메서드를 사용합니다
    • Weight: 해당 열이 모든 트리에 등장하는 횟수
# Train the model
clf_gbt.fit(X_train,np.ravel(y_train))
# Print the feature importances
clf_gbt.get_booster().get_score(importance_type = 'weight')
{'person_home_ownership_RENT': 1, 'person_home_ownership_OWN': 2}
Python을 활용한 신용 위험 모델링

열 중요도 해석

# Column importances from importance_type = 'weight'
{'person_home_ownership_RENT': 1, 'person_home_ownership_OWN': 2}

XGBoost를 사용한 결정 트리

Python을 활용한 신용 위험 모델링

열 중요도 시각화

  • plot_importance() 함수를 사용합니다
xgb.plot_importance(clf_gbt, importance_type = 'weight')
{'person_income': 315, 'loan_int_rate': 195, 'loan_percent_income': 146}

특성 중요도 플롯

Python을 활용한 신용 위험 모델링

학습용 열 선택하기

  • 열 중요도는 학습에 사용할 열을 결정하는 데 활용되기도 합니다
  • 서로 다른 열 조합은 모델 성능에 영향을 미칩니다
열 중요도 모델 정확도 모델 기본 재현율
loan_int_rate, person_emp_length (100, 100) 0.81 0.67
loan_int_rate, person_emp_length, loan_percent_income (98, 70, 5) 0.84 0.52
Python을 활용한 신용 위험 모델링

모델의 F1 점수

  • 다양한 열 조합에 대해 정확도와 재현율을 각각 고려하는 것은 시간이 많이 걸립니다
  • F1 점수는 정확도와 재현율을 동시에 확인할 수 있는 단일 지표입니다

F1 점수 공식

  • classification_report()의 일부로 표시됩니다

F1 점수가 강조된 분류 보고서

Python을 활용한 신용 위험 모델링

연습해 봅시다!

Python을 활용한 신용 위험 모델링

Preparing Video For Download...