xgboost:最近のサンプルをより重要に


回答:


9

複数のxgboostモデルを作成し、それらの一部をより新しいデータに制限して、それらの結果を一緒に重み付けしてみてください。別のアイデアは、最近のポイントをより厳しくペナルティするカスタマイズされた評価基準を作成することです。


4
OPは、より新しい観測値に単純に高いサンプルの重みを与えることができます。ほとんどのパッケージは、xgboost
リカルドクルス

30

時間ラベルに基づいた重みを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)

答えてくれてありがとう-コード化された例を見ると本当に助かります。重み関数係数の大きさはモデルにどのように影響しますか?xgboostのドキュメントを調べましたが、これらの数値の重要性に関する情報は見つかりません。
キロジュール

このトリックを知りませんでした 機能の下xgboost docに少しちらほらがありますsetinfo()その非常に説明的ではないが、
TBSRounder

12

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


Rのキャレットの願いは...これはあまりにもに建てられていた
pauljeba

1
それはする必要がありますxgb.XGBClassifier()... 2行目のコードではなく、stackexchangeは6文字未満の編集を許可していません
アンドレホルズナー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.