У меня сильно несбалансированный набор данных, и мне интересно, где учитывать веса, и поэтому я пытаюсь понять разницу между аргументом Scale_pos_weight в XGBClassifier и параметром sample_weight метод fit. Был бы признателен за интуитивное объяснение разницы между ними, можно ли их использовать одновременно или как выбран любой из подходов.
В документации указано, что Scale_pos_weight:
контролируйте баланс положительных и отрицательных весов..и типичное значение
, которое следует учитывать: sum(отрицательные случаи) / sum( положительные случаи)
Пример:
from xgboost import XGBClassifier
import xgboost as xgb
LR=0.1
NumTrees=1000
xgbmodel=XGBClassifier(booster='gbtree',seed=0,nthread=-1,
gamma=0,scale_pos_weight=14,learning_rate=LR,n_estimators=NumTrees,
max_depth=5,objective='binary:logistic',subsample=1)
xgbmodel.fit(X_train, y_train)
ИЛИ
from xgboost import XGBClassifier
import xgboost as xgb
LR=0.1
NumTrees=1000
xgbmodel=XGBClassifier(booster='gbtree',seed=0,nthread=-1,
gamma=0,learning_rate=LR,n_estimators=NumTrees,
max_depth=5,objective='binary:logistic',subsample=1)
xgbmodel.fit(X_train, y_train,sample_weight=weights_train)
Подробнее здесь: https://stackoverflow.com/questions/480 ... pos-weight