การแปลงฟีเจอร์
คุณกำลังพูดคุยเกี่ยวกับชุดข้อมูลสินเชื่อกับผู้จัดการธนาคาร เธอชี้ให้เห็นว่าใบสมัครสินเชื่อที่มีความเสี่ยงต่ำมักขอวงเงินในระดับกลาง ค่าที่ต่ำหรือสูงเกินไปล้วนบ่งชี้ถึงความเสี่ยงสูง ซึ่งหมายความว่าอาจมีความสัมพันธ์แบบไม่เชิงเส้นระหว่างตัวแปรนี้กับคลาส คุณจึงต้องการทดสอบสมมติฐานนี้โดยสร้างการแปลงแบบไม่เชิงเส้นให้กับฟีเจอร์ จากนั้นประเมินว่าฟีเจอร์ใดในสองฟีเจอร์นี้ทำนายคลาสได้ดีกว่า โดยใช้ SelectKBest() และเมตริก chi2() ซึ่งโหลดไว้ล่วงหน้าแล้ว
ข้อมูลอยู่ในรูปแบบ pandas DataFrame ชื่อ credit โดยมีคลาสอยู่ในคอลัมน์ class และได้โหลด pandas เป็น pd กับ numpy เป็น np ไว้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การออกแบบ Machine Learning Workflows ด้วย Python
คำแนะนำการฝึกหัด
- กำหนดฟังก์ชันที่แปลงเวกเตอร์ตัวเลขโดยคำนวณค่าผลต่างสัมบูรณ์ระหว่างแต่ละค่ากับค่าเฉลี่ยของเวกเตอร์นั้น
- นำการแปลงนี้ไปใช้กับคอลัมน์
credit_amountในชุดข้อมูล และเก็บผลลัพธ์ไว้ในคอลัมน์ใหม่ชื่อdiff - สร้าง feature selector ด้วย
SelectKBest()เพื่อเลือกหนึ่งคอลัมน์จากสองคอลัมน์ ได้แก่credit_amountและdiffโดยใช้เมตริกchi2() - ตรวจสอบผลลัพธ์ที่ได้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Function computing absolute difference from column mean
def abs_diff(x):
return ____(x-____)
# Apply it to the credit amount and store to new column
credit['diff'] = ____
# Create a feature selector with chi2 that picks one feature
sk = ____(chi2, ____)
# Use the selector to pick between credit_amount and diff
sk.fit(____, credit['class'])
# Inspect the results
sk.____()