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

การวัดความแม่นยำ

ในแบบฝึกหัดนี้ จะได้ฝึกใช้ learning API ของ XGBoost ผ่านความสามารถ cross-validation ที่มีอยู่ในตัว ดังที่ Sergey อธิบายในวิดีโอก่อนหน้า XGBoost ได้รับการยกย่องด้านประสิทธิภาพและความเร็ว เนื่องจากใช้โครงสร้างข้อมูลที่ปรับแต่งมาโดยเฉพาะสำหรับชุดข้อมูล ซึ่งเรียกว่า DMatrix

ในแบบฝึกหัดที่แล้ว ชุดข้อมูล input ถูกแปลงเป็น DMatrix โดยอัตโนมัติ แต่เมื่อใช้ออบเจกต์ cv ของ xgboost จะต้องแปลงข้อมูลให้เป็น DMatrix อย่างชัดเจนก่อน ดังนั้นในแบบฝึกหัดนี้จึงต้องทำขั้นตอนนั้นก่อน แล้วจึงรัน cross-validation บน churn_data

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

Extreme Gradient Boosting with XGBoost

ดูคอร์ส

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

  • สร้าง DMatrix ชื่อ churn_dmatrix จาก churn_data โดยใช้ xgb.DMatrix() โดยที่ฟีเจอร์อยู่ใน X และ label อยู่ใน y
  • ทำ cross-validation แบบ 3-fold โดยเรียก xgb.cv() โดย dtrain คือ churn_dmatrix, params คือ dictionary ของพารามิเตอร์, nfold คือจำนวน fold ของ cross-validation (3), num_boost_round คือจำนวนต้นไม้ที่ต้องการสร้าง (5) และ metrics คือเมตริกที่ต้องการคำนวณ (ในที่นี้คือ "error" ซึ่งจะนำไปแปลงเป็นค่าความแม่นยำต่อไป)

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

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

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

# Create the DMatrix from X and y: churn_dmatrix
churn_dmatrix = ____(data=____, label=____)

# Create the parameter dictionary: params
params = {"objective":"reg:logistic", "max_depth":3}

# Perform cross-validation: cv_results
cv_results = ____(dtrain=____, params=____, 
                  nfold=____, num_boost_round=____, 
                  metrics="____", as_pandas=____, seed=123)

# Print cv_results
print(cv_results)

# Print the accuracy
print(((1-cv_results["test-error-mean"]).iloc[-1]))
แก้ไขและรันโค้ด