เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ความสำคัญของฟีเจอร์ใน Random Forest

ข้อดีอย่างหนึ่งของวิธีการแบบ tree-based คือความสามารถในการดึง feature importances ออกมาได้ ซึ่งเป็นวิธีวัดเชิงปริมาณว่าแต่ละฟีเจอร์มีส่วนช่วยในการพยากรณ์มากน้อยเพียงใด ข้อมูลนี้ช่วยให้เราโฟกัสไปที่ฟีเจอร์ที่ดีที่สุด รวมถึงช่วยตัดฟีเจอร์ที่ไม่มีประโยชน์ออก เพื่อไม่ให้โมเดลรับข้อมูลที่ไม่จำเป็น

โมเดล tree ใน sklearn มี property ชื่อ .feature_importances_ ที่เข้าถึงได้หลังจาก fit โมเดลแล้ว ซึ่งเก็บค่าคะแนนความสำคัญของแต่ละฟีเจอร์ไว้ จากนั้นต้องใช้ np.argsort() เพื่อเรียงลำดับ index ของฟีเจอร์ตามความสำคัญ แล้วนำไปสร้างกราฟแท่งแสดง feature importances จากมากไปน้อย

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Machine Learning สำหรับการเงินด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใช้ property feature_importances_ ของโมเดล random forest (rfr) เพื่อดึงค่าความสำคัญของฟีเจอร์มาเก็บในตัวแปร importances
  • ใช้ argsort ของ numpy เพื่อหา index ของฟีเจอร์ที่เรียงจากมากไปน้อย แล้วบันทึกไว้ในตัวแปร sorted_index
  • กำหนด xtick labels เป็นชื่อฟีเจอร์ในตัวแปร labels โดยใช้ list sorted_index โดย feature_names ต้องแปลงเป็น numpy array ก่อน จึงจะสามารถ index ด้วย sorted_index ได้

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Get feature importances from our random forest model
importances = rfr.____

# Get the index of importances from greatest importance to least
sorted_index = ____(importances)[::-1]
x = range(len(importances))

# Create tick labels 
labels = np.array(____)[____]
plt.bar(x, importances[sorted_index], tick_label=labels)

# Rotate tick labels to vertical
plt.xticks(rotation=90)
plt.show()
แก้ไขและรันโค้ด