xgboost: przywiązuj większą wagę do ostatnich próbek


22

Czy istnieje sposób na nadanie większego znaczenia punktom, które są nowsze podczas analizy danych za pomocą xgboost?

Odpowiedzi:


9

Możesz spróbować zbudować wiele modeli xgboost, przy czym niektóre z nich ograniczają się do nowszych danych, a następnie zważyć wyniki razem. Innym pomysłem byłoby stworzenie zindywidualizowanej miary oceny, która będzie silniej karać ostatnie punkty, co dałoby im większe znaczenie.


4
OP może po prostu nadać większą wagę próbkom nowszym obserwacjom. Większość pakietów na to pozwala, podobnie jak xgboost.
Ricardo Cruz,

30

Po prostu dodaj wagi na podstawie etykiet czasu do xgb.DMatrix. Poniższy przykład jest napisany w R, ale ta sama zasada dotyczy xgboost w Pythonie lub Julii.

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)

Dzięki za odpowiedź - naprawdę warto zobaczyć zakodowany przykład. Jak wielkość współczynników funkcji ważenia wpływa na model? Przeglądałem dokumenty xgboost, ale nie mogę znaleźć informacji na temat znaczenia tych wartości liczbowych.
kilodżule,

nie znałem tej sztuczki. w funkcji xgboost znajduje się mały smakołyk pod funkcją setinfo(), choć nie jest on zbyt opisowy
TBSRounder

12

W Pythonie masz fajne opakowanie do nauki scikit, dzięki czemu możesz pisać tak:

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

Więcej informacji można uzyskać z tego: http://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.XGBClassifier.fit


Wish for R caret też to ma wbudowane ..
pauljeba

1
powinien znajdować się xgb.XGBClassifier()w drugim wierszu kodu, ale stackexchange nie pozwala na edycję mniej niż sześciu znaków ...
Andre Holzner
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.