Pipeline แรกของคุณ — ลองอีกครั้ง!
กลับมาที่ startup ด้านการตรวจจับภาวะหัวใจเต้นผิดจังหวะ ใกล้ถึงเวลารีวิวประจำเดือนแล้ว และในครั้งนี้จะมีโปรแกรมเมอร์ Python ผู้เชี่ยวชาญมาตรวจสอบโค้ดของคุณด้วย จึงตัดสินใจจัดระเบียบโค้ดให้เป็นไปตาม best practices โดยแทนที่สคริปต์สำหรับการเลือกฟีเจอร์และการจำแนกประเภทด้วย random forest ด้วย pipeline ชุดข้อมูลฝึกที่มีอยู่คือ X_train และ y_train พร้อมด้วยโมดูลต่าง ๆ ได้แก่ RandomForestClassifier, SelectKBest() และ f_classif() สำหรับการเลือกฟีเจอร์ รวมถึง GridSearchCV และ Pipeline
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การออกแบบ Machine Learning Workflows ด้วย Python
คำแนะนำการฝึกหัด
- สร้าง pipeline โดยใช้ feature selector ตามที่ระบุในโค้ดตัวอย่าง และเพิ่ม random forest classifier เข้าไป ตั้งชื่อขั้นตอนแรกว่า
feature_selection - เพิ่ม key-value สองคู่ใน
paramsได้แก่ คู่แรกสำหรับจำนวนฟีเจอร์kใน selector โดยกำหนดค่าเป็น 10 และ 20 และคู่ที่สองสำหรับn_estimatorsใน forest โดยกำหนดค่าที่เป็นไปได้เป็น 2 และ 5 - สร้างออบเจ็กต์
GridSearchCVโดยใช้ pipeline และ parameter grid ที่กำหนดไว้ - Fit ออบเจ็กต์กับข้อมูล แล้วแสดงผลการรวมพารามิเตอร์ที่ให้ประสิทธิภาพดีที่สุด
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create pipeline with feature selector and classifier
pipe = ___([
(___, SelectKBest(f_classif)),
('clf', ___(random_state=2))])
# Create a parameter grid
params = {
'feature_selection__k':___,
___:[2, 5]}
# Initialize the grid search object
grid_search = ___(___, ___=params)
# Fit it to the data and print the best value combination
print(grid_search.fit(___, ___).___)