У меня сильно несбалансированный набор данных, и мне интересно, где учитывать веса, и поэтому я пытаюсь понять разницу между аргументом 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