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

การสร้าง Learning Curves

หากต้องการทดสอบค่าหลายค่าสำหรับ hyperparameter ตัวเดียว การดูผลในรูปแบบ DataFrame อาจไม่สะดวกนัก ในบทก่อนหน้าได้เรียนรู้เทคนิคที่ช่วยวิเคราะห์สิ่งนี้ได้ดียิ่งขึ้น กราฟที่เรียกว่า 'learning curve' สามารถแสดงให้เห็นผลของการเพิ่มหรือลดค่า hyperparameter ที่มีต่อผลลัพธ์สุดท้ายได้อย่างชัดเจน

แทนที่จะทดสอบเพียงไม่กี่ค่าสำหรับ learning rate คราวนี้จะทดสอบหลายค่าเพื่อให้เห็นผลกระทบของ hyperparameter นี้ในช่วงค่าที่กว้างขึ้น ฟังก์ชันที่มีประโยชน์จาก NumPy คือ np.linspace(start, end, num) ซึ่งช่วยสร้างชุดตัวเลขจำนวน num ค่าที่กระจายเท่ากันภายในช่วง (start, end) ที่กำหนด

ชุดข้อมูล X_train, X_test, y_train และ y_test พร้อมใช้งานแล้ว

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

การปรับ Hyperparameter ใน Python

ดูคอร์ส

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

  • สร้างรายการ learning rate จำนวน 30 ค่าที่กระจายเท่ากันระหว่าง 0.01 ถึง 2
  • สร้างลูปในลักษณะเดียวกับแบบฝึกหัดที่แล้ว แต่บันทึกเฉพาะค่าความแม่นยำลงในรายการ
  • พล็อตกราฟระหว่าง learning rate กับค่าความแม่นยำ

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

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

# Set the learning rates & accuracies list
learn_rates = np.linspace(____, ____, num=____)
accuracies = []

# Create the for loop
for learn_rate in learn_rates:
  	# Create the model, predictions & save the accuracies as before
    model = GradientBoostingClassifier(learning_rate=____)
    predictions = model.fit(____, ____).predict(____)
    accuracies.append(accuracy_score(y_test, ____))

# Plot results    
plt.plot(____, ____)
plt.gca().set(xlabel='learning_rate', ylabel='Accuracy', title='Accuracy for different learning_rates')
plt.____
แก้ไขและรันโค้ด