zoukankan      html  css  js  c++  java
  • 机器学习中,样本不平衡问题如何解决?

    数据不平衡问题在业务中经常出现,特别总结下自己的业务经验以及其他大佬的经验。

    1、数据方向

    最好的解决方案是负样本补齐,但这是一句废话,样本补齐后,原有的数据分布可能发生了变化,另外正样本时间窗口延长,新的数据特征可能被稀释。

    一般的操作:上采样,下采样,数据合成,数据加权

    上采样和下采样都有利有弊,一般数据尽量多才能保证模型学习更好,优先上采样。

    数据合成:smoth,adasyn,不多介绍,业界主流Borderline-SMOTE

    数据加权:改变模型中数据权重。

    2、模型学习方向

    数据是有限的,学习是无限的,所以k_fold交叉验证应运而生,提高对现有数据的学习深度,要注意过拟合。

    部分模型在数据不平衡的样本上一样可以产出较高的准确率,例如xgboost,SVM(可以调整正负样本权重)。

    3、转变思路

    分类问题学习可以转变为异常检测,当负样本很少的情况下,可以将负样本预测转变为异常值检测问题。

     

    python操作,对应Python库中函数为SMOTE:

    1 from imblearn.over_sampling import SMOTE
    2 
    3 X_smote, y_smote = SMOTE().fit_sample(x, y)

     

    个人经验:双拳难敌四手,组合的方法优于单一方法,因此,数据层面和模型学习层面都应该考虑,另外不平衡问题很容易演变成过拟合,因此模型评估指标上也要多方面考虑,召回率,精准率以及AUC综合评估。

     

    经验帖:

    如何解决不平衡问题

    非平衡问题处理

     

    天才是百分之一的灵感,加百分之九十九的汗水,但那百分之一的灵感往往比百分之九十九的汗水来的重要
  • 相关阅读:
    bWAPP练习--injection篇SQL Injection (GET/Search)
    利用gmpy2破解rsa
    Linux 下安装gmpy2
    Linux下安装scapy-python3
    python升级带来的yum异常:File "/usr/bin/yum", line 30
    CentOS7 安装Python3.6.4
    bWAPP练习--injection篇之HTML Injection
    kali2.0安装VMware Tools
    Lombok插件看法浅谈
    记一次Java动态代理实践【首发自高可用架构公众号】
  • 原文地址:https://www.cnblogs.com/Christbao/p/11928586.html
Copyright © 2011-2022 走看看