ความเสี่ยงจากข้อมูลที่หายไปในข้อมูลสินเชื่อ

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

Michael Crabtree

Data Scientist, Ford Motor Company

ข้อมูลที่หายไปคืออะไร?

  • ค่า NULL แทนที่ค่าจริงในแถว
  • สตริงว่างเปล่า ''
  • ไม่ใช่แถวที่ว่างทั้งหมด
  • อาจเกิดขึ้นในคอลัมน์ใดก็ได้

ตัวอย่าง data frame ที่มีข้อมูลระยะเวลาการจ้างงานหายไป

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

ความคล้ายคลึงกับ outlier

  • ส่งผลเสียต่อประสิทธิภาพของโมเดล machine learning
  • อาจทำให้โมเดลเกิด bias ในแบบที่ไม่คาดคิด
  • อาจทำให้โมเดล machine learning บางตัวเกิดข้อผิดพลาด
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

ความคล้ายคลึงกับ outlier

  • ส่งผลเสียต่อประสิทธิภาพของโมเดล machine learning
  • อาจทำให้โมเดลเกิด bias ในแบบที่ไม่คาดคิด
  • อาจทำให้โมเดล machine learning บางตัวเกิดข้อผิดพลาด
ประเภทข้อมูลที่หายไป ผลลัพธ์ที่อาจเกิดขึ้น
NULL ในคอลัมน์ตัวเลข Error
NULL ในคอลัมน์สตริง Error
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

วิธีจัดการข้อมูลที่หายไป

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

วิธีจัดการข้อมูลที่หายไป

  • โดยทั่วไปมี 3 วิธีในการจัดการข้อมูลที่หายไป
    • แทนที่ค่าในตำแหน่งที่ข้อมูลหายไป
    • ลบแถวที่มีข้อมูลหายไป
    • คงแถวที่มีข้อมูลหายไปไว้ตามเดิม
  • การทำความเข้าใจข้อมูลจะช่วยกำหนดแนวทางที่เหมาะสม
ข้อมูลที่หายไป การตีความ การดำเนินการ
NULL ใน loan_status สินเชื่อที่เพิ่งได้รับอนุมัติ ลบออกจากข้อมูลสำหรับการพยากรณ์
NULL ใน person_age ไม่ได้บันทึกหรือไม่เปิดเผยอายุ แทนที่ด้วยค่ามัธยฐาน
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

การค้นหาข้อมูลที่หายไป

  • ค้นหาค่า null ได้ง่ายด้วยฟังก์ชัน isnull()
  • นับจำนวนระเบียนที่เป็น null ได้ด้วยฟังก์ชัน sum()
  • เมธอด .any() ตรวจสอบทุกคอลัมน์
null_columns = cr_loan.columns[cr_loan.isnull().any()]
cr_loan[null_columns].isnull().sum()
# Total number of null values per column
person_home_ownership          25
person_emp_length             895
loan_intent                    25
loan_int_rate                3140
cb_person_default_on_file      15
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

การแทนที่ข้อมูลที่หายไป

  • แทนที่ข้อมูลที่หายไปด้วยเมธอด เช่น .fillna() ร่วมกับฟังก์ชัน aggregate
cr_loan['loan_int_rate'].fillna((cr_loan['loan_int_rate'].mean()), inplace = True)

ตัวอย่างอัตราดอกเบี้ยที่หายไปถูกแทนที่ด้วยค่าเฉลี่ย

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

การลบข้อมูลที่หายไป

  • ใช้ index ในการระบุระเบียน เช่นเดียวกับการจัดการ outlier
  • ลบระเบียนออกทั้งหมดด้วยเมธอด .drop()
indices = cr_loan[cr_loan['person_emp_length'].isnull()].index
cr_loan.drop(indices, inplace=True)
การสร้างโมเดลความเสี่ยงด้านเครดิตด้วย Python

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

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

Preparing Video For Download...