关于不均衡数据的处理方法,主要有以下几个方面:
1. 采样的方法
1.1 过采样,采集类标少的样本,达到平衡样本的目的。
方法一,简单的复制类标少的样本
方法二,生成人工样本(SMOTE方法),MATLAB代码 SMOTE (Synthetic Minority Over-Sampling Technique) - File Exchange - MATLAB Central
1.2 下采样,将大样本随机分成N类,结合类标少的样本进行训练N个模型,最后结果是N个模型的加权平均来刻画。
2. 基于名义变量的方法,也就是代价敏感函数方法。
cost-sensitive learning, penalized-SVM
3. RUSBoostcan be implemented in Matlab using the 'fitensemble' technique.
Using classifiers which can handle the imbalance problem such as the RUSBoost technique
Matlab代码可见
RUSBoost
以上方法的所有细节可参看下面的博文
(1)Class Imbalance Problem
(2)不平衡数据下的机器学习方法简介
(3)8大策略让你对抗机器学习数据集里的不均衡数据
(4)Quora上面的解答:https://www.quora.com/In-classification-how-do-you-handle-an-unbalanced-training-set
翻译见:http://blog.csdn.net/heyongluoyao8/article/details/49408131
(5)在分类中如何处理训练集中不平衡问题
(6)知乎上的讨论 https://www.zhihu.com/question/36514847
https://www.zhihu.com/question/30492527