模型评估与改进(四)// 样本不均衡

本文探讨了样本不均衡问题在有监督分类中的影响,提出通过上采样(如SMOTE)和下采样来平衡样本。同时,介绍了调整机器学习算法的class_weight超参数以应对不均衡数据,并建议使用recall、f1等评估指标代替accuracy。此外,还分享了一种基于F1分数的阈值调优方法。
摘要由CSDN通过智能技术生成

一、什么是样本不均衡?
回答:在有监督分类算法中,标签的类别比重差异大。

二、如何从采样角度纠正样本不均衡?
回答:
1、上采样(over-sampling):通过增加分类中少数类样本的数量来实现样本均衡。比较好的方法有SMOTE算法,通过插值的方式加入近邻的数据点。
2、下采样(under-sampling):通过减少分类中多数类样本的数量来实现样本均衡。这个方法可能导致信息缺失,为克服这一缺点,RandomUnderSampler丢掉更多类别边界部分的数据。

from imblearn.over_sampling import SMOTE #类,上采样
from imblearn.under_sampling import RandomUnderSampler #类,下采样

三、分类算法中哪些超参数可以调和样本不均衡?
回答:机器学习算法中以下4个算法有超参数class_weight用来调和样本不均衡问题。
在这里插入图片描述
四、样本不均衡情况下的评估指标?
回答:此时用accuracy不合适,可以改用recall、f1指标,辅以ROC曲线、P-R曲线。
(详见上一篇:模型评估与改进(三)// 评估指标)

五、如何通过阈值调优来提高少数类的预测?
回答:一般正例样本的决策阈值是0.5,可以通过手写函数来实现阈值调优。以下代码参考李御玺教授的论文思想,我自己手写的阈值调优函数,该函数的目标是寻找最高f1的决策阈值。

def Find_BestMetrics(y_true,y_predp):
    '''
    函数功能:生成不同决策阈值下的presicion、recall、f1的df表,以及最优的正例决策阈值
    参数说明:
        y_true:series格式,真实y值
        y_predp:array格式,算法模型给出的样本预测为1的概率
    返回:
        resultdf:不同决策阈值下的presicion、recall、f1的表格
        best_p:最佳f1下的决策阈值p
    '''
    #第一步:构造以真实标签、预测为1概率的DF数据集
    columns=['y_true','proba1']
    data=np.concatenate((y_true.values,y_predp[:,1].reshape(y_true.sha
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值