我正在尝试在Python
中使用严重不平衡的数据训练一个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更成问题。
回答:
处理类不平衡问题时,可以使用多种技术。以下是一些方法:
(链接包括Python的imblearn
包和costcla
包)
在我的问题中,将1误分类为0比将0误预测为1更成问题。
在使用costcla
包进行成本敏感学习时,你应该尝试以下方法,保持你的基础分类器为GradientBoostingRegressor:
costcla.sampling.cost_sampling(X, y, cost_mat, method='RejectionSampling', oversampling_norm=0.1, max_wc=97.5)
在这里,你可以为训练和测试中的每个数据点加载一个cost_mat[C_FP,C_FN,C_TP,C_TN]。C_FP和C_FN基于你希望为正类和负类设定的误分类成本。请参考信用评分数据的完整教程这里。