我有一个高度不平衡的数据集,想知道在哪里考虑权重,因此我试图理解之间的区别scale_pos_weight
论证中XGBClassifier
和sample_weight
的参数fit
方法。如果可以同时使用这两种方法或者如何选择其中一种方法,我们将不胜感激对两者之间差异的直观解释。
文档表明scale_pos_weight
:
控制正负权重的平衡..&典型值
考虑:总和(负例)/总和(正例)
Example:
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)
OR
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)