严重不平衡数据集要考虑的指标
Metrics to consider for heavily imbalanced dataset
我正尝试在 Python
中的严重不平衡数据上训练 GradientBoosting
模型。 Class 分布类似于 class 0 和 class 1 的 0.96 : 0.04
。
在考虑 recall
和 precision
分数进行一些参数调整后,我想出了一个很好的模型。不同的指标分数如下所示,用于验证集。此外,它接近交叉验证分数。
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)
重新采样:
- Undersample majority class (class 0 in your case) You can try random undersampling 对于初学者。
- Oversample少数class(Class1)。探索 SMOTE/ADASYN 技巧。
合奏技巧:
- Bagging/Boosting 技巧。
Cost-sensitive Learning:既然你提到过:
,你一定要探索一下这个
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.
我正尝试在 Python
中的严重不平衡数据上训练 GradientBoosting
模型。 Class 分布类似于 class 0 和 class 1 的 0.96 : 0.04
。
在考虑 recall
和 precision
分数进行一些参数调整后,我想出了一个很好的模型。不同的指标分数如下所示,用于验证集。此外,它接近交叉验证分数。
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)
重新采样:
- Undersample majority class (class 0 in your case) You can try random undersampling 对于初学者。
- Oversample少数class(Class1)。探索 SMOTE/ADASYN 技巧。
合奏技巧:
- Bagging/Boosting 技巧。
Cost-sensitive Learning:既然你提到过:
,你一定要探索一下这个
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.