Decision trees
แบบฝึกหัดนี้จะให้สร้าง decision tree อย่างง่ายโดยใช้ DecisionTreeClassifier ของ scikit-learn บนชุดข้อมูล breast cancer ที่มาพร้อมกับ scikit-learn
ชุดข้อมูลนี้ประกอบด้วยการวัดค่าตัวเลขของมิติต่าง ๆ ของเนื้องอกแต่ละชิ้น (เช่น เส้นรอบวงและเนื้อสัมผัส) จากการตัดชิ้นเนื้อเต้านม และมีค่า outcome เพียงหนึ่งค่า (เนื้องอกเป็นมะเร็ง หรือไม่เป็นมะเร็ง)
ได้โหลดชุดข้อมูลตัวอย่าง (ค่าการวัด) ไว้ใน X และค่าเป้าหมายของแต่ละเนื้องอกไว้ใน y แล้ว ขั้นตอนต่อไปคือแบ่งชุดข้อมูลทั้งหมดออกเป็นชุดฝึกและชุดทดสอบ จากนั้นฝึก DecisionTreeClassifier โดยจะกำหนดพารามิเตอร์ชื่อ max_depth ซึ่งยังมีพารามิเตอร์อื่น ๆ อีกมากที่ปรับแต่งได้ในโมเดลนี้ ดูรายละเอียดทั้งหมดได้ ที่นี่
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Extreme Gradient Boosting with XGBoost
คำแนะนำการฝึกหัด
- นำเข้า:
train_test_splitจากsklearn.model_selectionDecisionTreeClassifierจากsklearn.tree
- สร้างชุดข้อมูลฝึกและชุดข้อมูลทดสอบ โดยใช้ข้อมูล 20% สำหรับการทดสอบ กำหนด
random_stateเป็น123 - สร้าง instance ของ
DecisionTreeClassifierชื่อdt_clf_4โดยกำหนดmax_depthเป็น4พารามิเตอร์นี้ระบุจำนวนจุดแบ่งสูงสุดที่สามารถมีได้ก่อนถึง leaf node - Fit classifier กับชุดข้อมูลฝึก แล้วทำนาย label ของชุดข้อมูลทดสอบ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the necessary modules
____
____
# Create the training and test sets
X_train, X_test, y_train, y_test = ____(____, ____, test_size=____, random_state=____)
# Instantiate the classifier: dt_clf_4
dt_clf_4 = ____
# Fit the classifier to the training set
____
# Predict the labels of the test set: y_pred_4
y_pred_4 = ____
# Compute the accuracy of the predictions: accuracy
accuracy = float(np.sum(y_pred_4==y_test))/y_test.shape[0]
print("accuracy:", accuracy)