我有一些20000个训练示例的数据集,我想对它们进行二进制分类。问题在于数据集严重失衡,只有大约1000个属于正类。我正在尝试使用xgboost(在R中)进行预测。
我已经尝试过采样和欠采样,无论我做什么,这些预测总会导致将一切归类为多数。
我尝试阅读本文,了解如何在xgboost中调整参数。 https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/
但是,它仅提及哪些参数对不平衡的数据集有所帮助,而没有提及如何调整它们。
如果有人对调整xgboost的学习参数以处理不平衡的数据集以及如何为此类情况生成验证集有任何建议,我将不胜感激。
在 R 中尝试这样的事情
bstSparse <- xgboost(data =xgbTrain , max_depth = 4, eta = 0.2, nthread = 2, nrounds = 200 ,
eval_metric = "auc" , scale_pos_weight = 48, colsample_bytree = 0.7,
gamma = 2.5,
eval_metric = "logloss",
objective = "binary:logistic")
Run Code Online (Sandbox Code Playgroud)
其中scale_pos_weight是不平衡度。我的基线发病率约为 4%。使用超参数优化。也可以在scale_pos_weight上尝试一下
| 归档时间: |
|
| 查看次数: |
9392 次 |
| 最近记录: |