xgboost:最近のサンプルをより重要にします
-
16-10-2019 - |
質問
xgboostを使用してデータを分析するときに最近のポイントをさらに重要にする方法はありますか?
解決
複数のXgboostモデルを構築してみてください。一部のXgboostモデルは、より最近のデータに限定され、その結果を合わせて重み付けします。もう1つのアイデアは、最近のポイントをより重く罰するカスタマイズされた評価メトリックを作成することです。
他のヒント
xgb.dmatrixに時間ラベルに基づいて重みを追加するだけです。次の例はRで記述されていますが、同じ原則がPythonまたはJuliaのXgboostにも当てはまります。
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)
Pythonでは、素敵なScikit-Learnラッパーがあるので、次のように書くことができます。
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
所属していません datascience.stackexchange