Logistic regression สำหรับความน่าจะเป็นในการผิดนัดชำระหนี้

การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

Michael Crabtree

Data Scientist, Ford Motor Company

ความน่าจะเป็นในการผิดนัดชำระหนี้

  • โอกาสที่ผู้กู้จะผิดนัดชำระหนี้ คือความน่าจะเป็นในการผิดนัดชำระหนี้
  • เป็นค่าความน่าจะเป็นระหว่าง 0 ถึง 1 เช่น 0.86
  • loan_status ที่มีค่า 1 หมายถึงผิดนัด และ 0 หมายถึงไม่ผิดนัด
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

ความน่าจะเป็นในการผิดนัดชำระหนี้

  • โอกาสที่ผู้กู้จะผิดนัดชำระหนี้ คือความน่าจะเป็นในการผิดนัดชำระหนี้
  • เป็นค่าความน่าจะเป็นระหว่าง 0 ถึง 1 เช่น 0.86
  • loan_status ที่มีค่า 1 หมายถึงผิดนัด และ 0 หมายถึงไม่ผิดนัด
ความน่าจะเป็นในการผิดนัด การตีความ สถานะสินเชื่อที่คาดการณ์
0.4 ไม่น่าจะผิดนัด 0
0.90 มีแนวโน้มผิดนัดสูงมาก 1
0.1 แทบไม่มีโอกาสผิดนัด 0
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

การพยากรณ์ความน่าจะเป็น

  • ความน่าจะเป็นในการผิดนัดเป็นผลลัพธ์จาก machine learning
    • เรียนรู้จากข้อมูลในคอลัมน์ต่าง ๆ (features)
  • โมเดลจำแนกประเภท (ผิดนัด / ไม่ผิดนัด)
  • โมเดลที่ใช้บ่อยที่สุด 2 แบบ:
    • Logistic regression
    • Decision tree

ตัวอย่าง logistic regression และ decision tree

การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

Logistic regression

  • คล้ายกับ linear regression แต่ให้ค่าผลลัพธ์อยู่ระหว่าง 0 ถึง 1 เท่านั้น

สูตรของ linear regression และ logistic regression

กราฟตัวอย่างของ linear regression และ logistic regression

การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

การฝึก logistic regression

  • Logistic regression มีให้ใช้งานใน 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
  • Labels: loan_status(0,1)
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

การฝึกและการทดสอบ

  • โดยทั่วไปชุดข้อมูลทั้งหมดจะถูกแบ่งออกเป็นสองส่วน
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

การฝึกและการทดสอบ

  • โดยทั่วไปชุดข้อมูลทั้งหมดจะถูกแบ่งออกเป็นสองส่วน
ชุดข้อมูล การใช้งาน สัดส่วน
Train เรียนรู้จากข้อมูลเพื่อสร้างการพยากรณ์ 60%
Test ทดสอบการเรียนรู้กับข้อมูลใหม่ที่ไม่เคยเห็น 40%
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

การสร้างชุดข้อมูล training และ test

  • แยกข้อมูลออกเป็น training columns และ labels
X = cr_loan.drop('loan_status', axis = 1)
y = cr_loan[['loan_status']]
  • ใช้ฟังก์ชัน train_test_split() ที่มีอยู่ใน scikit-learn
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4, random_state=123)
  • test_size: สัดส่วนของข้อมูลที่ใช้เป็น test set
  • random_state: ค่า seed สำหรับความสามารถในการทำซ้ำผลลัพธ์
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

มาฝึกกันเถอะ!

การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

Preparing Video For Download...