非均衡分类问题

非均衡分类问题指的是正反例数目差距大的分类任务,常见于如信用卡欺诈检测等领域。解决此类问题的关键在于使用合适的性能度量指标,如错误率、正确率、召回率和ROC曲线,以及代价敏感学习方法。ROC曲线下的面积(AUC)是评估分类器性能的重要指标,而解决样本不均衡问题的方法包括过采样、欠采样和数据类别均衡采样。代价敏感学习则通过调整错分惩罚来改善模型性能。
摘要由CSDN通过智能技术生成

机器学习模型性能评估
在这里插入图片描述
什么是非均衡分类问题?
非均衡问题是指在分类器训练时,正例数目和反例数目不相等(相差很大),或者错分正反例导致的代价不同时存在的问题。而大多数情况下,不同类别的分类代价并不相等,而诸如信用卡欺诈等场景中,正反例的样本的数目相差巨大,这就需要一些新的分类器性能度量方法和技术,来处理上述均衡问题。

分类性能度量指标:错误率、正确率、召回率及ROC曲线
错误率是衡量分类器任务的成功程度的,但是其掩盖了样例如何被分错的事实,即在二分类问题中,到底是正确的被分类为错误的还是错误的被分类为正确的,因为正反样例的分类代价不同,其分错分产生的代价也将不同。由此提出了混淆矩阵的概念。

二分类问题的混淆矩阵:
在这里插入图片描述
由混淆矩阵定义出两个重要的新指标:
正确率: 预测为真理例的样本中真正为正例的比例
T P T P + F P \frac {TP} { TP+FP} TP+FPTP
召回率: 真实结果为正例中的样本中预测为正例的比例
T P T P + F N \frac {TP} { TP+FN} TP+FNTP
通常情况下,正确率高时, 召回率低;召回率高时,正确率低。所以需要根据真实情况选择保证高正确率还是高召回率。

度量分类中的非均衡性的工具 :ROC曲线
通过调节分类器的阈值来处理非均衡分类代价,即形成ROC曲线
在这里插入图片描述
图中的横轴是伪正例的比例(假阳率=FP/(FP+TN)),而纵轴是真正例的比例(真阳率=TP/(TP+FN))。ROC曲线给出的是当阈值变化时假阳率和真阳率的变化情况。左下角的点所对应的是将所有样例判为反例的情况,而右上角的点对应的则是将所有样例判为正例的情况。虚线给出的是随机猜测的结果曲线。
理想情况下,最佳的分类器应该尽可能地处于左上角,这就意味着分类器在假阳率很低
的同时获得了很高的真阳率。
对不同的ROC曲线进行比较的一个指标是曲线下的面积(Area Unser the Curve,AUC)。AUC给出的是分类器的平均性能值,当然它并不能完全代替对整条曲线的观察。一个完美分类器的AUC为1.0,而随机猜测的AUC则为0.5。
为了画出ROC曲线,分类器必须提供每个样例被判为阳性或者阴性的可信程度值。尽管大多数分类器都能做到这一点,但是通常情况下,这些值会在最后输出离散分类标签之前被清除。朴素贝叶斯能够提供一个可能性,而在Logistic回归中输入到Sigmoid函数中的是一个数值。在AdaBoost和SVM中,都会计算出一个数值然后输入到sign()函数中。所有的这些值都可以用于衡量给定分类器的预测强度。为了创建ROC曲线,首先要将分类样例按照其预测强度排序。先从排名最低的样例开始,所有排名更低的样例都被判为反例,而所有排名更高的样例都被判为正例。该情况的对应点为<1.0,1.0>。然后,将其移到排名次低的样例中去,如果该样例属于正例,那么对真阳率进行修改;如果该样例属于反例,那么对假阴率进行修改。

实现代码如下:

"""
func: 绘制ROC曲线

params:
    predStrength: 分类器的预测强度,在分类器和训练函数将这些数值应用到sign()函数
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值