参考人家的博客,原文地址:https://blog.youkuaiyun.com/qq_16236875/article/details/98115231
两个方面: 1 数据抽样,2 从算法角度出发,考虑不同误分类情况代价的差异性对算法进行优化。
1-1 欠采样:随机采样
1-2 过采样:smote 算法
SMOTE算法: 即合成少数类过采样技术,它是基于随机过采样算法的一种改进方案,由于随机过采样采取简单复制样本的策略来增加少数类样本,这样容易产生模型过拟合的问题,即使得模型学到的信息过于特别而不够泛化,SMOTE 算法的实习是对少数样本进行分析并根据少数样本人工合成新样本。
(1) 对少数类中的每个样本,以欧式距离为标准计算它到少数样本集中所有样本的距离,得到其k 近邻。
(2) 根据样本不平衡比例设置一个采样比例以确定采样倍率,对每个少数样本,从其k近邻中随机选择若干个样本。
(3) 对于每个随机选出的近邻,分别与原样本按照如下公式构建新样本
1-3 代价敏感学习
(1) 代价矩阵
算法: 代价敏感学习算法
costij 表示将第i 类样本预测为第j 类样本的代价,一般来说,costij =0 若将0 类判别为第1 类所造成的损失更大,则cost01> cost10,损失程度相差越大,cost01 与cost10的值差别越大,当cost01 和cost10 相等时为代价不敏感的学习问题。
(2) 代价敏感学习方法:
三种实现方式:
- 从学习模型出发,对某一具体学习方法的改造,是之能适应不平衡数据,例如感知机,SVM,决策树,神经网络,以决策树为例: 可以从三个方面对其进行改造以适应不平衡数据的学习,这三个方面是决策阈值的选择方面,分裂标准的选择方面,剪枝方面,这三个方面都可以将代价矩阵引入。
2) 从贝叶斯风险理论出发,把代价敏感学习看成是分类结果的一种后处理。按照传统方法学习到一个模型,以实现损失最小为目标对结果进行调整,优化公式如下: 优点在于它可以不依赖所用的具体分类器,但是缺点也很明显,它要求分类器输出值为概率。
- 从预处理的角度出发,将代价用于权重调整,使得分类器满足代价敏感的特性。
2.4 不平衡学习的评价方法
(1)F1 度量
(3)ROC 曲线和AUC面积
(4) ROC 和PRC
ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。
对不平衡数据,PRC很敏感。
PRC相对的优势
当正负样本差距不大的情况下,ROC和PR的趋势是差不多的,但是当负样本很多时候,两者就截然不同了,ROC的效果看似很好,但是PR 上反映效果一般。
一般用ROC。
https://blog.youkuaiyun.com/pipisorry/article/details/51788927
https://zhuanlan.zhihu.com/p/36381828