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

Custom function transformers ใน pipeline

มีข้อมูลว่าเซ็นเซอร์อาจทำงานได้ไม่ดีนักสำหรับผู้ที่มีภาวะโรคอ้วน ก่อนหน้านี้เราจัดการปัญหานี้ด้วยการกำหนดน้ำหนัก แต่ตอนนี้คุณคิดว่าข้อมูลนี้อาจเป็นประโยชน์สำหรับการทำ feature engineering ด้วย จึงตัดสินใจแทนที่ค่าน้ำหนักที่บันทึกไว้ของแต่ละบุคคลด้วยตัวบ่งชี้ว่าพวกเขามีภาวะโรคอ้วนหรือไม่ โดยจะดำเนินการนี้ผ่าน pipeline มี numpy พร้อมใช้งานในชื่อ np, RandomForestClassifier(), FunctionTransformer() และ GridSearchCV()

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

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

ดูคอร์ส

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

  • กำหนด feature extractor แบบกำหนดเอง ซึ่งเป็นฟังก์ชันที่จะส่งออกสำเนาที่ปรับแต่งแล้วของ input
  • แทนที่ค่าแต่ละค่าในคอลัมน์แรกด้วยตัวบ่งชี้ว่าค่านั้นสูงกว่าค่า threshold ที่กำหนดโดยการคูณค่าเฉลี่ยของคอลัมน์ด้วยตัวคูณที่กำหนดหรือไม่
  • แปลง feature extractor ข้างต้นให้เป็น transformer และนำไปรวมใน pipeline ร่วมกับ random forest classifier
  • ใช้ grid search CV เพื่อทดสอบค่า 1, 2 และ 3 สำหรับค่าคงที่การคูณ multiplier ใน feature extractor ของคุณ

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

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

# Define a feature extractor to flag very large values
def more_than_average(X, multiplier=1.0):
  Z = ____
  Z[:,1] = ____ > multiplier*np.mean(Z[:,1])
  return Z

# Convert your function so that it can be used in a pipeline
pipe = Pipeline([
  ('ft', ____(____)),
  ('clf', RandomForestClassifier(random_state=2))])

# Optimize the parameter multiplier using GridSearchCV
params = ____
grid_search = GridSearchCV(pipe, param_grid=params)
แก้ไขและรันโค้ด