在机器学习和数据挖掘领域,数据不平衡问题是我们拿到数据之后优先需要考虑的问题,如果直接对不平衡的数据进行建模,得到的模型往往也是不具备良好的泛化性的。
1 什么是数据不平衡?
数据不平衡就是指:初始数据的各类别分布不均匀,比如正类负类的比例是99:1。那么对于模型而言,只要它只判定为正,也有99%的正确率。由此就出现了数据不平衡带来的问题。
所以在算法选择之前,优先处理数据不平衡的问题。
2 数据不平衡的解决方法
2.1 采样
采样通常有两种办法,上采样和下采样
上采样:增大小样本类别的数据量。通过重复、自举、合成等方法增大样本数,使数据分布均衡。
下采样:随机抽取大样本的数据,和小样本数据保持一致。
2.2采用k折交叉验证法
通过k折交叉验证法,k次结果之后取平均
2.3 采用SVM,决策树算法
由于SVM采用的是支持向量来确定超平面,和样本数的数量无关,仅仅和支持向量有关,所以样本不平衡对SVM算法不影响其精确度。
决策树算法可以采用信息增益比作为特征选择的方法,克服了数据不平衡导致的一方信息增益过大的问题。
2.4 使用集成学习
采用集成学习的框架,对多个分类器进行融合,可以有效的降低了样本不平衡带来的影响。