Titanic dataset #3: Logistic regression หาโอกาสรอดของผู้โดยสารเรือไททานิค

Sasiwut Chaiyadecha
2 min readJul 29, 2020

--

credit scoring model

มาถึงตอนที่ 3 แล้ว เพื่อไม่ให้เป็นการงงว่าก่อนหน้านี้ทำอะไรมาบ้าง แนะนำว่าให้กลับไปอ่าน 2 ตอนก่อนหน้า เพราะว่าวันนี้เราจะ Fit logistic model กันแล้ว

Logistic regression

ก่อนที่เราจะหาโอกาสรอด (1) หรือไม่รอด (0) เรายังมีข้อมูลอีกชุดนึงที่เราต้องนำมาใช้ใน Dataset ของเรา ซึ่งคือค่า WOE ที่อยู่ในอีก Table ครับ

credit scoring model
สังเกตว่าตัวแปรเยอะขึ้นกว่าการหา correlation รอบแรก

เมื่อเราได้ข้อมูลมาพร้อมแล้ว เราทำการ Fit model กันได้เลย ขอแบ่ง Training และ Testing ออกเป็น 70–30 ละกัน และกำหนดค่า random_state = 17 เพื่อให้กดรันใหม่อีกรอบจะได้ Sample เหมือนเดิมนะครับ (random_state จะเป็นเลขอะไรก็ได้)

credit scoring model

ผลจากการรันรอบแรก จะเห็นว่ามี Coefficient มี “สวนทาง” อยู่ 2 ตัว ถ้าเป็นโมเดลทั่วไป เช่น การหาโอกาสรอดหรือตาย อาจจะปล่อยผ่านไปก็ได้ครับ แต่อย่างลืมว่าเรามี Concept scoring model อยู่ ดังนั้นโมเดลนี้ยังใช้ไม่ได้ เราต้องตัดตัวแปร 2 ตัวนี้ออกแล้ว Fit model อีกรอบครับ

credit scoring model

ผลจากการรันรอบที่ 2 ไม่มีตัวแปรที่มี Coefficient สวนทางแล้ว แต่ว่าค่า p-value ยังมากกว่า 0.05 อยู่ ดังนั้นขอตัวออกเช่นกันครับ

credit scoring model

ตอนนี้เราโมเดลที่จะเอามาไปใช้ทำคะแนนต่อแล้ว จากทั้งหมด 7 ตัวแปร เหลือรอดมา 4 ตัวแปรครับ

Model performance

หลังจากที่เราได้โมเดลมาแล้ว เราก็มาดู Performance ของโมเดลกันซะหน่อย ซึ่งหลัก ๆ ที่ใช้วัดก็มี AUC, GINI, KS ครับ ซึ่งหากต้องการศึกษาเพิ่มเติมก็สามารถหาอ่านกันได้นะครับ เป็น Stat ที่ควรรู้เหมือนกัน

ผลที่ออกมาก็คือ

AUC: 0.8602846982949024
GINI: 0.7205693965898048
KS: 0.5801638837353124
MSE: 0.13646578051052413

ยังไม่ถือว่าดีมาก แต่ก็ยังผ่านเกณฑ์ที่จะนำไปทำคะแนนครับ เดี๋ยวเรา Plot ออกมาเป็นรูปกันหน่อยดีกว่า ปกติ Plot ใน Excel แต่วันนี้ลองมาทำโดยใช้ Python ทำกันบ้างดีกว่า

ตัวแปรที่นำมาใช้ ได้มาจากคำสั่ง roc_curve() ที่เป็น Library จาก Scikit-learn นะครับ ซึ่งกราฟที่ออกมาจะได้หน้าตาแบบนี้

credit scoring model
เส้นอาจไม่ได้โค้งสวยงามมาก แต่ก็ไม่ได้ขี้เหร่อะไร

เมื่อเราทำ Training dataset กันแล้ว อย่าลืมเอาโมเดลที่ทำออกมา ไป Apply เข้ากับ Testing dataset กันนะครับ เพื่อที่จะดูว่านอกช่วงเวลาเนี่ย โมเดลเรายังใช้ได้อยู่ไหม

AUC: 0.830320766626499
GINI: 0.660641533252998
KS: 0.5406553049865152
MSE: 0.16165299145027845
credit scoring model

ผลที่ออกมายังถือว่าใช้ได้ครับ เดี๋ยวตอนหน้าเราไปทำคะแนนให้แต่ละคนกันแล้ว ว่าโอกาสรอดของแต่ละคนจะมีเท่าไหร่บ้าง เทียบจากคุณลักษณะ

--

--

Sasiwut Chaiyadecha
Sasiwut Chaiyadecha

No responses yet