มีวิธีใดที่จะเพิ่มความสำคัญให้กับจุดที่ล่าสุดกว่าเมื่อทำการวิเคราะห์ข้อมูลด้วย xgboost?
มีวิธีใดที่จะเพิ่มความสำคัญให้กับจุดที่ล่าสุดกว่าเมื่อทำการวิเคราะห์ข้อมูลด้วย xgboost?
คำตอบ:
คุณสามารถลองสร้างโมเดล xgboost หลายรุ่นโดยบางรุ่นถูก จำกัด ไว้ที่ข้อมูลล่าสุดแล้วให้ผลการค้นหาเหล่านั้นรวมกัน ความคิดอีกประการหนึ่งคือการสร้างตัวชี้วัดการประเมินที่กำหนดเองซึ่งลงโทษจุดที่ผ่านมาอย่างหนักซึ่งจะทำให้พวกเขามีความสำคัญมากขึ้น
เพียงเพิ่มน้ำหนักตามป้ายกำกับเวลาของคุณใน xgb.DMatrix ของคุณ ตัวอย่างต่อไปนี้เขียนด้วย R แต่ใช้หลักการเดียวกันกับ xgboost บน Python หรือ Julia
data <- data.frame(feature = rep(5, 5),
year = seq(2011, 2015),
target = c(1, 0, 1, 0, 0))
weightsData <- 1 + (data$year - max(data$year)) * 5 * 0.01
#Now create the xgboost matrix with your data and weights
xgbMatrix <- xgb.DMatrix(as.matrix(data$feature),
label = data$target,
weight = weightsData)
setinfo()
แม้ว่าจะไม่ได้อธิบายมากนัก
บน Python คุณมีกระดาษห่อหุ้ม scikit เรียนรู้ที่ดีเพื่อให้คุณสามารถเขียนเช่นนี้:
import xgboost as xgb
exgb_classifier = xgb.XGBClassifier()
exgb_classifier.fit(X, y, sample_weight=sample_weights_data)
ข้อมูลเพิ่มเติมที่คุณสามารถรับได้จาก: http://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.XGBClassifier.fit
xgb.XGBClassifier()
อยู่ในบรรทัดที่สองของรหัส แต่ stackexchange ไม่อนุญาตให้มีการแก้ไขอักขระน้อยกว่าหกตัว ...