การแปลผลลัพธ์
การรู้ว่าฟีเจอร์ใดส่งผลต่อการพยากรณ์มากที่สุดนั้นสำคัญเสมอ บางทีผลลัพธ์อาจดูขัดกับสัญชาตญาณ ซึ่งนั่นก็เป็น insight ที่มีคุณค่า หรืออาจพบว่าฟีเจอร์เพียงไม่กี่ตัวคิดเป็นส่วนใหญ่ของความแม่นยำของโมเดล ทำให้ไม่จำเป็นต้องเสียเวลาเก็บหรือปรับแต่งฟีเจอร์อื่น ๆ
ในตัวอย่างนี้ เราจะดูโมเดลที่ถูกเทรนมาโดยไม่มีข้อมูล LISTPRICE เลย เมื่อไม่มีข้อมูลนั้น อะไรที่ส่งผลต่อราคามากที่สุด?
- หมายเหตุ: อาร์เรย์ค่าความสำคัญของฟีเจอร์
importancesได้ถูกสร้างไว้ให้แล้วจากmodel.featureImportances.toArray()
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Feature Engineering with PySpark
คำแนะนำการฝึกหัด
- สร้าง
pandasdataframe โดยใช้ค่าจากimportancesและตั้งชื่อคอลัมน์ว่าimportanceด้วยการกำหนดพารามิเตอร์columns - ใช้รายการชื่อฟีเจอร์
feature_colsที่นำเข้ามาแล้ว สร้างpandas.Seriesใหม่โดยครอบด้วยฟังก์ชันpd.Series()แล้วกำหนดให้กับคอลัมน์fi_df['feature'] - จัดเรียง dataframe ด้วย
sort_values()โดยตั้งค่าพารามิเตอร์byเป็นคอลัมน์importanceและเรียงจากมากไปน้อยโดยตั้งค่าascendingเป็นFalseจากนั้นตรวจสอบผลลัพธ์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Convert feature importances to a pandas column
fi_df = pd.DataFrame(____, columns=[____])
# Convert list of feature names to pandas column
fi_df['feature'] = pd.____(____)
# Sort the data based on feature importance
fi_df.____(by=[____], ascending=____, inplace=True)
# Inspect Results
fi_df.head(10)