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

การตั้งค่าพารามิเตอร์สำหรับ GridSearch

ไฮเปอร์พารามิเตอร์ (hyperparameter) คือพารามิเตอร์ที่กำหนดภายในฟังก์ชัน เช่น max_depth และ min_samples_leaf คือไฮเปอร์พารามิเตอร์ของฟังก์ชัน DecisionTreeClassifier() การปรับแต่งไฮเปอร์พารามิเตอร์คือกระบวนการทดสอบค่าต่าง ๆ เพื่อหาค่าที่เหมาะสมที่สุด ซึ่งจะให้ผลการพยากรณ์ที่ดีที่สุดตามเป้าหมายที่ตั้งไว้ ใน sklearn สามารถใช้ GridSearch เพื่อทดสอบชุดค่าผสมของไฮเปอร์พารามิเตอร์ที่แตกต่างกัน และยังสามารถใช้ GridSearchCV() เพื่อทดสอบชุดค่าผสมเหล่านั้นพร้อมกับรัน cross-validation ได้ในฟังก์ชันเดียว!

ในแบบฝึกหัดนี้ จะเตรียมค่าต่าง ๆ ที่ต้องการทดสอบสำหรับ max_depth และ min_samples_leaf จากนั้นนำค่าเหล่านั้นใส่ใน dictionary เนื่องจาก GridSearchCV() ต้องการข้อมูลในรูปแบบนี้:

  • key ของ dictionary จะเป็นชื่อไฮเปอร์พารามิเตอร์
  • value ของ dictionary จะเป็นค่าต่าง ๆ (ค่าของไฮเปอร์พารามิเตอร์) ที่ต้องการทดสอบ

แทนที่จะพิมพ์ค่าทั้งหมดด้วยตนเอง จะใช้ฟังก์ชัน range() ซึ่งช่วยสร้างค่าแบบเพิ่มทีละขั้น ตัวอย่างเช่น range(1, 10, 2) จะสร้างลิสต์ที่มีค่าตั้งแต่ 1 (รวม) ถึง 10 (ไม่รวม) โดยเพิ่มทีละ 2 ผลลัพธ์ที่ได้คือ [1, 3, 5, 7, 9]

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

HR Analytics: การพยากรณ์การลาออกของพนักงานด้วย Python

ดูคอร์ส

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

  • โดยอ้างอิงรูปแบบจากตัวอย่างข้างต้น ให้สร้างค่าสำหรับความลึกสูงสุดตั้งแต่ 5 ถึง 20 โดยเพิ่มทีละ 1
  • ทำเช่นเดียวกันสำหรับขนาด sample ขั้นต่ำ โดยใช้ค่าตั้งแต่ 50 ถึง 450 และเพิ่มทีละ 50
  • สร้าง dictionary โดยระบุค่าของ max_depth และ min_samples_leaf ที่ต้องการทดสอบ โดยใช้ตัวแปรที่สร้างไว้

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

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

# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]

# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]

# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)
แก้ไขและรันโค้ด