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

เห็ดพิษหรือเห็ดกิน: เรื่องที่ต้องระวัง

มาปิดท้ายคอร์สด้วยการกลับมาแก้ปัญหาการจำแนกความปลอดภัยของเห็ดกันอีกครั้ง คราวนี้จะลองใช้ stacking classifier เพื่อดูว่าสามารถเพิ่มคะแนนได้หรือไม่ เนื่องจาก stacking ใช้ meta-estimator (classifier ชั้นที่สอง) ที่พยายามแก้ไขการทำนายผิดพลาดจากชั้นแรก อินสแตนซ์ที่เคยจำแนกผิดบางส่วนอาจได้รับการแก้ไขได้ ปัญหานี้มีความสำคัญมาก เพราะการระบุว่าเห็ดกินได้หรือไม่นั้นเกี่ยวข้องกับความปลอดภัยโดยตรง

ชุดข้อมูลได้ถูกโหลดและแบ่งเป็นชุด train และ test เรียบร้อยแล้ว คิดว่า stacking จะช่วยให้ทำนายความปลอดภัยของเห็ดได้แม่นยำขึ้นไหม?

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

Ensemble Methods ใน Python

ดูคอร์ส

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

  • สร้าง estimator ชั้นแรก ได้แก่ k-nearest neighbors 5 ตัวเพื่อนบ้านโดยใช้อัลกอริทึม ball tree, decision tree classifier ที่มีพารามิเตอร์ min_samples_leaf = 5 และ min_samples_split = 15 และ Gaussian Naive Bayes classifier
  • สร้างและ fit stacking classifier โดยใช้พารามิเตอร์ classifiers ซึ่งเป็น list ที่บรรจุ classifier ชั้นแรกทั้งหมด และ meta_classifier ซึ่งใช้ logistic regression แบบค่าเริ่มต้น

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

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

# Create the first-layer models
clf_knn = ____
clf_dt = ____(____, ____, random_state=500)
clf_nb = ____

# Create the second-layer model (meta-model)
clf_lr = LogisticRegression()

# Create and fit the stacked model
clf_stack = ____
clf_stack.fit(X_train, y_train)

# Evaluate the stacked model’s performance
print("Accuracy: {:0.4f}".format(accuracy_score(y_test, clf_stack.predict(X_test))))
แก้ไขและรันโค้ด