채무 불이행 확률을 위한 로지스틱 회귀

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

Michael Crabtree

Data Scientist, Ford Motor Company

채무 불이행 확률

  • 대출자가 채무를 이행하지 않을 가능성을 채무 불이행 확률이라고 합니다
  • 0.86처럼 0과 1 사이의 확률 값입니다
  • loan_status가 1이면 채무 불이행, 0이면 정상 상환입니다
Python을 활용한 신용 위험 모델링

채무 불이행 확률

  • 대출자가 채무를 이행하지 않을 가능성을 채무 불이행 확률이라고 합니다
  • 0.86처럼 0과 1 사이의 확률 값입니다
  • loan_status가 1이면 채무 불이행, 0이면 정상 상환입니다
채무 불이행 확률 해석 예측된 대출 상태
0.4 채무 불이행 가능성 낮음 0
0.90 채무 불이행 가능성 매우 높음 1
0.1 채무 불이행 가능성 매우 낮음 0
Python을 활용한 신용 위험 모델링

확률 예측하기

  • 채무 불이행 확률은 machine learning의 결과물입니다
    • 열(특성) 데이터로부터 학습합니다
  • 분류 모델(채무 불이행, 정상 상환)
  • 가장 일반적인 두 가지 모델:
    • 로지스틱 회귀
    • 결정 트리

로지스틱 회귀와 결정 트리 예시

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

로지스틱 회귀

  • 선형 회귀와 비슷하지만 0과 1 사이의 값만 생성합니다

선형 회귀와 로지스틱 회귀 공식

선형 회귀와 로지스틱 회귀 그래프 예시

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

로지스틱 회귀 훈련하기

  • 로지스틱 회귀는 scikit-learn 패키지에서 사용할 수 있습니다
from sklearn.linear_model import LogisticRegression
  • 매개변수를 지정하거나 지정하지 않고 함수로 호출합니다
clf_logistic = LogisticRegression(solver='lbfgs')
  • .fit() 메서드로 학습시킵니다
clf_logistic.fit(training_columns, np.ravel(training_labels))
  • 훈련용 열(Training Columns): loan_status를 제외한 데이터의 모든 열
  • 레이블: loan_status(0,1)
Python을 활용한 신용 위험 모델링

훈련과 테스트

  • 전체 데이터 세트는 일반적으로 두 부분으로 나뉩니다
Python을 활용한 신용 위험 모델링

훈련과 테스트

  • 전체 데이터 세트는 일반적으로 두 부분으로 나뉩니다
데이터 하위 집합 용도 비율
훈련 데이터를 학습해 예측값을 생성 60%
테스트 새로운 데이터로 학습 결과를 테스트 40%
Python을 활용한 신용 위험 모델링

훈련 세트와 테스트 세트 만들기

  • 데이터를 훈련용 열과 레이블로 분리합니다
X = cr_loan.drop('loan_status', axis = 1)
y = cr_loan[['loan_status']]
  • scikit-learn에 내장된 train_test_split() 함수를 사용합니다
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4, random_state=123)
  • test_size: 테스트 세트로 사용할 데이터 비율
  • random_state: 재현성을 위한 난수 시드 값
Python을 활용한 신용 위험 모델링

연습해 봅시다!

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

Preparing Video For Download...