บทนำสู่การปรับ Hyperparameter

การตรวจสอบความถูกต้องของโมเดลใน Python

Kasey Jones

Data Scientist

Parameter ของโมเดล

Parameter คือ:

  • เรียนรู้หรือประมาณค่าจากข้อมูล
  • ผลลัพธ์ที่ได้จากการ Fit โมเดล
  • ใช้สำหรับการพยากรณ์ในอนาคต
  • ไม่ได้กำหนดค่าด้วยตนเอง
การตรวจสอบความถูกต้องของโมเดลใน Python

Parameter ของ Linear Regression

Parameter เกิดขึ้นจากการ Fit โมเดล:

from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(X, y)
print(lr.coef_, lr.intercept_)
[[0.798, 0.452]] [1.786]
การตรวจสอบความถูกต้องของโมเดลใน Python

Parameter ของ Linear Regression

Parameter ยังไม่มีอยู่ก่อน Fit โมเดล:

lr = LinearRegression()
print(lr.coef_, lr.intercept_)
AttributeError: 'LinearRegression' object has no attribute 'coef_'
การตรวจสอบความถูกต้องของโมเดลใน Python

Hyperparameter ของโมเดล

Hyperparameter:

  • กำหนดค่าด้วยตนเอง ก่อน เริ่มการฝึกโมเดล
  • ระบุวิธีที่การฝึกควรดำเนินไป
การตรวจสอบความถูกต้องของโมเดลใน Python

Hyperparameter ของ Random Forest

Hyperparameter คำอธิบาย ค่าที่เป็นไปได้ (ค่าเริ่มต้น)
n_estimators จำนวน Decision Tree ในป่าไม้ 2+ (10)
max_depth ความลึกสูงสุดของ Decision Tree 2+ (None)
max_features จำนวน Feature ที่พิจารณาเมื่อแบ่งข้อมูล ดูเอกสารประกอบ
min_samples_split จำนวนตัวอย่างขั้นต่ำที่จำเป็นสำหรับการแบ่งข้อมูล 2+ (2)
การตรวจสอบความถูกต้องของโมเดลใน Python

การปรับ Hyperparameter คืออะไร?

การปรับ Hyperparameter:

  • เลือก Hyperparameter
  • รันโมเดลประเภทเดียวกันด้วยชุดค่าที่ต่างกัน
  • กำหนดช่วงของค่าที่เป็นไปได้สำหรับการเลือก
  • ระบุ Metric ความแม่นยำเพียงค่าเดียว
การตรวจสอบความถูกต้องของโมเดลใน Python

การกำหนดช่วงของค่า

depth = [4, 6, 8, 10, 12]
samples = [2, 4, 6, 8]
features = [2, 4, 6, 8, 10]

# Specify hyperparameters rfc = RandomForestRegressor( n_estimators=100, max_depth=depth[0], min_samples_split=samples[3], max_features=features[1])
rfr.get_params()
{'bootstrap': True,
 'criterion': 'mse'
 ...
}
การตรวจสอบความถูกต้องของโมเดลใน Python

Hyperparameter มากเกินไป!

rfr.get_params()
{'bootstrap': True,
 'criterion': 'mse',
 'max_depth': 4,
 'max_features': 4,
 'max_leaf_nodes': None,
 'min_impurity_decrease': 0.0,
 'min_impurity_split': None,
 'min_samples_leaf': 1,
 'min_samples_split': 8,
 ...
 }
การตรวจสอบความถูกต้องของโมเดลใน Python

แนวทางทั่วไป

  • เริ่มต้นจากพื้นฐาน
  • อ่านเอกสารประกอบการใช้งาน
  • ทดสอบช่วงค่าที่ใช้งานได้จริง
การตรวจสอบความถูกต้องของโมเดลใน Python

มาฝึกกันเถอะ!

การตรวจสอบความถูกต้องของโมเดลใน Python

Preparing Video For Download...