我正在尝试针对GradientBoosting
中严重失衡的数据训练Python
模型。类别分布类似于0.96 : 0.04
,分别对应类别0和类别1。
在对参数recall
和precision
进行了一些参数调整之后,我想到了一个好的模型。不同的指标得分如下所示,用于验证集。而且,它接近交叉验证分数。
recall : 0.928777
precision : 0.974747
auc : 0.9636
kappa : 0.948455
f1 weighted : 0.994728
如果我想进一步调整模型,应该考虑增加哪些指标。在我的问题中,将1误分类为0比将0误预测为1更麻烦。
答案 0 :(得分:1)
处理类不平衡问题时,可以使用多种技术。如下所述:
(链接包括python imblearn
package和costcla
package)
重采样:
合奏技巧:
Cost-sensitive Learning:由于您已经提到过,因此您绝对应该进行探索:
在我的问题中,将1误分类为0比将0误预测为1更麻烦。
在使用costcla
软件包的成本敏感型学习中,您应尝试使用following方法,将基本分类器保持为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基于您要为肯定和否定类别设置的误分类成本。请参阅有关信用评分数据here的完整教程。