严重不平衡数据集要考虑的指标

Metrics to consider for heavily imbalanced dataset

我正尝试在 Python 中的严重不平衡数据上训练 GradientBoosting 模型。 Class 分布类似于 class 0 和 class 1 的 0.96 : 0.04

在考虑 recallprecision 分数进行一些参数调整后,我想出了一个很好的模型。不同的指标分数如下所示,用于验证集。此外,它接近交叉验证分数。

recall : 0.928777 precision : 0.974747 auc : 0.9636 kappa : 0.948455 f1 weighted : 0.994728

如果我想进一步调整模型,我应该考虑增加哪些指标。?在我的问题中,miss-classifying 1 as 0 比 miss-predicting 0 as 1 更成问题。

在处理 Class 不平衡问题时可以使用多种技术。很少如下所述:

(链接包括 pythons imblearn package and costcla package

  1. 重新采样:

  2. 合奏技巧:

  3. Cost-sensitive Learning:既然你提到过:

  4. ,你一定要探索一下这个

In my problem miss-classifying 1 as 0 is more problematic than miss-predicting 0 as 1.

在使用 costcla 包的成本敏感学习中,您应该尝试 following 方法,将基础 classifier 保持为 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 基于您要为正负 class 设置的错误class化成本。信用评分数据参考完整教程here.