การดึง parameter จาก Random Forest
ในแบบฝึกหัดนี้ จะนำแนวทางที่ใช้กับโมเดล logistic regression มาปรับใช้กับโมเดล random forest parameter หนึ่งของโมเดลนี้คือ วิธีที่ต้นไม้แต่ละต้นตัดสินใจแบ่งข้อมูลในแต่ละระดับ
การวิเคราะห์นี้อาจไม่ละเอียดเท่าการดูค่าสัมประสิทธิ์ของ logistic regression เพราะในทางปฏิบัติแทบไม่มีใครสำรวจทุกการแบ่งในทุกต้นไม้ของโมเดล random forest อย่างไรก็ตาม การมองเข้าไปดูว่าโมเดลทำงานอย่างไรถือเป็นแบบฝึกหัดที่มีประโยชน์มาก
ในแบบฝึกหัดนี้ จะดึงต้นไม้ต้นเดียวออกมาจากโมเดล random forest แสดงผลเป็นภาพ และดึงข้อมูลการแบ่งในระดับหนึ่งออกมาด้วยโค้ด
สิ่งที่มีให้ใช้งาน:
- โมเดล random forest object ชื่อ
rf_clf - ภาพแสดงส่วนบนของ decision tree ที่เลือก ชื่อ
tree_viz_image - DataFrame
X_trainและ listoriginal_variables
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับ Hyperparameter ใน Python
คำแนะนำการฝึกหัด
- ดึงต้นไม้ต้นที่ 7 (index ที่ 6) ออกจากโมเดล random forest
- แสดงผลต้นไม้นี้ (
tree_viz_image) เพื่อดูการตัดสินใจแบ่งข้อมูล - ดึง feature และระดับของการแบ่งที่ระดับบนสุดออกมา
- แสดงผล feature และระดับนั้นพร้อมกัน
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Extract the 7th (index 6) tree from the random forest
chosen_tree = rf_clf.estimators_[____]
# Visualize the graph using the provided image
imgplot = plt.imshow(____)
plt.show()
# Extract the parameters and level of the top (index 0) node
split_column = chosen_tree.tree_.feature[____]
split_column_name = X_train.columns[split_column]
split_value = chosen_tree.tree_.threshold[____]
# Print out the feature and level
print("This node split on feature {}, at a value of {}".format(split_column_name, ____))