我正试图在 Python
中对严重不 balancer 的数据进行 GradientBoosting
模型的训练 . 对于0级和1级,类分布类似于 0.96 : 0.04
.
在考虑了 recall
和 precision
得分进行一些参数调整之后,我想出了一个很好的模型 . 对于验证集,不同的度量分数如下所示 . 此外,它接近交叉验证分数 .
recall : 0.928777
precision : 0.974747
auc : 0.9636
kappa : 0.948455
f1 weighted : 0.994728
如果我想进一步调整模型,我应该考虑增加哪些指标 . 在我的问题中,错误分类1为0比错误预测0更有问题1 .
1 回答
在处理类不 balancer 问题时,有各种技术可以使用 . 几个如下所述:
(链接包括蟒蛇
imblearn
package和costcla
package)重新取样:
Undersample多数级别(在您的情况下为0级)您可以尝试使用random undersampling作为初学者 .
Oversample少数民族阶级(1级) . 探索SMOTE / ADASYN技术 .
合奏技巧:
Bagging/Boosting技术 .
Cost-sensitive Learning:因为你提到过,你一定要探索这个:
在使用
costcla
包的成本敏感学习中,您应该尝试following方法,将基本分类器保持为GradientBoostingRegressor:在这里,您可以为列车中的每个数据点加载cost_mat [C_FP,C_FN,C_TP,C_TN]并进行测试 . C_FP和C_FN基于您要为正数和负数类设置的错误分类成本 . 请参阅有关信用评分数据here的完整教程 .