Frage

Gibt es eine Möglichkeit, Punkten mehr Bedeutung zu verleihen, die bei der Analyse von Daten mit XGBOOST neuer sind?

War es hilfreich?

Lösung

Sie könnten versuchen, mehrere XGBOOST -Modelle zu erstellen, von denen einige auf neuere Daten beschränkt sind und diese Ergebnisse gemeinsam wichten. Eine andere Idee wäre, eine maßgeschneiderte Bewertungsmetrik zu erstellen, die die jüngsten Punkte stärker bestraft, was ihnen mehr Bedeutung verleiht.

Andere Tipps

Fügen Sie einfach Gewichte zu Ihren Zeitbezeichnungen zu Ihrem xgb.dmatrix hinzu. Das folgende Beispiel ist in R geschrieben, aber das gleiche Prinzip gilt für Xgboost für Python oder 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)

Auf Python haben Sie einen schönen Scikit-Learn-Wrapper, sodass Sie genau so schreiben können:

import xgboost as xgb
exgb_classifier = xgb.XGBClassifier()
exgb_classifier.fit(X, y, sample_weight=sample_weights_data)

Weitere Informationen, die Sie davon erhalten können:http://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.xgbClassifier.fit

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top