xgboost: надайте більше значення останнім зразкам


22

Чи можна надати більше значення очкам, які є останніми під час аналізу даних за допомогою xgboost?

Відповіді:


9

Ви можете спробувати створити декілька моделей xgboost, причому деякі з них обмежуються новішими даними, а потім зважуйте ці результати разом. Ще одна ідея полягала б у тому, щоб зробити індивідуальну метрику оцінювання, яка більш серйозно покарає останні пункти, що надасть їм більшої важливості.


4
ОП може просто дати більш високу вагу зразків для останніх спостережень. Більшість пакетів дозволяє це, як і xgboost.
Рікардо Крус

30

Просто додайте ваги залежно від міток часу у вашу 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)

Дякую за вашу відповідь - дуже корисно побачити кодований приклад. Як впливає величина коефіцієнтів вагової функції на модель? Я переглянув документи xgboost, але не можу знайти інформацію про значення цих числових значень.
кілоджоули

не знав цього фокусу, добре. У документі xgboost під функцією є трохи примхливості setinfo(), хоча це не дуже описово
TBSRounder

12

На 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



1
це має бути xgb.XGBClassifier()у другому рядку коду, але stackexchange не дозволяє редагувати менше шести символів ...
Andre Holzner
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.