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

รวมทุกอย่างเข้าด้วยกัน

คุณมีข้อกังวลสองประการเกี่ยวกับ pipeline ในสตาร์ทอัพตรวจจับภาวะหัวใจเต้นผิดจังหวะ:

  • แอปถูกฝึกกับผู้ป่วยทุกช่วงอายุ แต่ผู้ใช้งานส่วนใหญ่คือกลุ่มผู้รักสุขภาพที่มักมีอายุน้อย ซึ่งอาจเป็นกรณีของ domain shift จึงต้องการตัดตัวอย่างที่มีอายุเกิน 50 ปีออก
  • ยังคงกังวลเรื่อง overfitting จึงต้องการทดสอบว่าการลดความซับซ้อนของ random forest classifier และการคัดเลือกฟีเจอร์จะช่วยได้หรือไม่

ให้สร้าง pipeline ที่มีขั้นตอน SelectKBest() สำหรับคัดเลือกฟีเจอร์และ RandomForestClassifier ซึ่งนำเข้ามาแล้ว นอกจากนี้ยังใช้งาน GridSearchCV(), Pipeline, numpy ในนาม np และ pickle ได้ โดยข้อมูลพร้อมใช้งานในชื่อ arrh

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

การออกแบบ Machine Learning Workflows ด้วย Python

ดูคอร์ส

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

  • สร้าง pipeline โดยใช้ SelectKBest() เป็นขั้นตอน ft และ RandomForestClassifier() เป็นขั้นตอน clf
  • สร้าง parameter grid เพื่อปรับแต่ง k ใน SelectKBest() และ max_depth ใน RandomForestClassifier()
  • ใช้ GridSearchCV() เพื่อปรับแต่ง pipeline กับ grid ดังกล่าว โดยใช้เฉพาะข้อมูลของผู้ที่มีอายุต่ำกว่า 50 ปี
  • บันทึก pipeline ที่ปรับแต่งแล้วลงในไฟล์ pickle เพื่อนำไปใช้งานจริง

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

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

# Create a pipeline 
pipe = Pipeline([
  ('ft', ____), ('clf', ____(random_state=2))])

# Create a parameter grid
grid = {'ft__k':[5, 10], '____':[10, 20]}

# Execute grid search CV on a dataset containing under 50s
grid_search = ____(pipe, param_grid=grid)
arrh = arrh.____[____(arrh['age'] < 50)]
____.____(arrh.drop('class', 1), arrh['class'])

# Push the fitted pipeline to production
with ____('pipe.pkl', ____) as file:
    pickle.dump(____, file)
แก้ไขและรันโค้ด