Decision trees ในฐานะ base learners
ถึงเวลาสร้างโมเดล XGBoost เพื่อพยากรณ์ราคาบ้านแล้ว โดยใช้ข้อมูลจากเมือง Ames รัฐ Iowa แทนที่จะเป็น Boston รัฐ Massachusetts อย่างที่เห็นในวิดีโอ ชุดข้อมูลราคาบ้านนี้ถูกโหลดไว้ล่วงหน้าใน DataFrame ชื่อ df หากลองสำรวจใน Shell จะพบว่ามีฟีเจอร์หลากหลายเกี่ยวกับตัวบ้านและทำเลที่ตั้งในเมือง
ในแบบฝึกหัดนี้ เป้าหมายคือการใช้ trees เป็น base learners โดย XGBoost ใช้ trees เป็นค่าเริ่มต้นอยู่แล้ว จึงไม่จำเป็นต้องระบุ booster="gbtree" เพิ่มเติม
xgboost ถูก import ไว้เป็น xgb และอาร์เรย์ของฟีเจอร์และ target พร้อมใช้งานใน X และ y ตามลำดับ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Extreme Gradient Boosting with XGBoost
คำแนะนำการฝึกหัด
- แบ่ง
dfออกเป็นชุด training และ testing โดยสำรองข้อมูลไว้ 20% สำหรับ testing และใช้random_stateเป็น123 - สร้าง
XGBRegressorและกำหนดให้เป็นxg_regโดยใช้seedเป็น123ระบุ objective เป็น"reg:squarederror"และใช้ 10 trees หมายเหตุ: ไม่จำเป็นต้องระบุbooster="gbtree"เนื่องจากเป็นค่าเริ่มต้นอยู่แล้ว - Fit
xg_regกับข้อมูล training แล้วพยากรณ์ label ของชุด test บันทึกผลการพยากรณ์ไว้ในตัวแปรชื่อpreds - คำนวณ
rmseโดยใช้np.sqrt()และฟังก์ชันmean_squared_error()จากsklearn.metricsซึ่ง import ไว้ให้แล้ว
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create the training and test sets
X_train, X_test, y_train, y_test = ____(____, ____, ____=____, random_state=123)
# Instantiate the XGBRegressor: xg_reg
xg_reg = ____
# Fit the regressor to the training set
____
# Predict the labels of the test set: preds
preds = ____
# Compute the rmse: rmse
rmse = ____(____(____, ____))
print("RMSE: %f" % (rmse))