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

XGBoost: Fit/Predict

ถึงเวลาสร้างโมเดล XGBoost ตัวแรกแล้ว! อย่างที่ Sergey แสดงให้ดูในวิดีโอ คุณสามารถใช้รูปแบบ .fit() / .predict() ของ scikit-learn ที่คุ้นเคยอยู่แล้วในการสร้างโมเดล XGBoost ได้เลย เนื่องจากไลบรารี xgboost มี API ที่รองรับ scikit-learn!

ในแบบฝึกหัดนี้ จะทำงานกับข้อมูล churn ชุดข้อมูลนี้มีข้อมูลสมมติจากแอปบริการรถรับส่ง ซึ่งบันทึกพฤติกรรมของผู้ใช้ในเดือนแรกที่ใช้งานแอปในเมืองสมมติต่าง ๆ รวมถึงข้อมูลว่าผู้ใช้ยังคงใช้บริการอยู่หรือไม่หลังจากสมัครครบ 5 เดือน โดยโหลดข้อมูลไว้ให้แล้วใน DataFrame ชื่อ churn_data — ลองสำรวจดูใน Shell ได้เลย!

เป้าหมายคือการใช้ข้อมูลจากเดือนแรกเพื่อทำนายว่าผู้ใช้จะยังคงใช้บริการต่อไปหรือไม่เมื่อครบ 5 เดือน ซึ่งเป็นรูปแบบทั่วไปของปัญหาการทำนาย churn โดยจะแบ่งข้อมูลออกเป็นชุดฝึกและชุดทดสอบ ฝึกโมเดล xgboost ขนาดเล็กบนชุดฝึก แล้วประเมินประสิทธิภาพบนชุดทดสอบด้วยการคำนวณค่าความแม่นยำ

นำเข้า pandas และ numpy ไว้เป็น pd และ np แล้ว และนำเข้า train_test_split จาก sklearn.model_selection ไว้เรียบร้อยแล้ว นอกจากนี้ยังได้สร้าง array สำหรับ features และ target ไว้เป็น X และ y แล้ว

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

Extreme Gradient Boosting with XGBoost

ดูคอร์ส

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

  • นำเข้า xgboost เป็น xgb
  • สร้างชุดข้อมูลสำหรับฝึกและทดสอบ โดยใช้ข้อมูล 20% สำหรับการทดสอบ และกำหนด random_state เป็น 123
  • สร้าง XGBoostClassifier เป็น xg_cl โดยใช้ xgb.XGBClassifier() กำหนด n_estimators เป็น 10 และ objective เป็น 'binary:logistic' ยังไม่ต้องกังวลเกี่ยวกับความหมายของพารามิเตอร์เหล่านี้ตอนนี้ จะได้เรียนรู้ในบทต่อ ๆ ไป
  • ฝึก xg_cl ด้วยชุดข้อมูลฝึก (X_train, y_train) โดยใช้เมธอด .fit()
  • ทำนาย label ของชุดทดสอบ (X_test) โดยใช้เมธอด .predict() แล้วกด 'ส่งคำตอบ' เพื่อดูค่าความแม่นยำ

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

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

# Import xgboost
____

# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]

# Create the training and test sets
X_train, X_test, y_train, y_test= ____(____, ____, test_size=____, random_state=123)

# Instantiate the XGBClassifier: xg_cl
xg_cl = ____.____(____='____', ____=____, seed=123)

# Fit the classifier to the training set
____

# Predict the labels of the test set: preds
preds = ____

# Compute the accuracy: accuracy
accuracy = float(np.sum(preds==y_test))/y_test.shape[0]
print("accuracy: %f" % (accuracy))
แก้ไขและรันโค้ด