赞
踩
很多算法都有一个基本假设,那就是数据分布是均匀的。当我们把这些算法直接应用于实际数据时,大多数情况下都无法取得理想的结果。因为实际数据往往分布得很不均匀,都会存在“长尾现象”,也就是所谓的“二八原理”。
不平衡程度相同的问题,解决的难易程度也可能不同,因为问题难易程度还取决于我们所拥有数据有多大。可以把问题根据难度从小到大排个序:大数据+分布均衡 < 大数据+分布不均衡 < 小数据+数据均衡 < 小数据+数据不均衡。
说明:对于需要解决的问题,拿到数据后,首先统计可用训练数据有多大,然后再观察数据分布情况。经验表明,训练数据中每个类别有5000个以上样本,其实也要相对于特征而言,来判断样本数目是不是足够,数据量是足够的,正负样本差一个数量级以内是可以接受的,不太需要考虑数据不平衡问题(完全是经验,没有理论依据,仅供参考)。
许多模型的输出类别是基于阈值的,例如逻辑回归中小于0.5的为反例,大于则为正例。在数据不平衡时,默认的阈值会导致模型输出倾向与类别数据多的类别。
调整分类阈值,使得更倾向与类别少的数据。
选择合适的评估标准,比如ROC或者F1,而不是准确度(accuracy)。
采样法(sampling)来处理不平横的问题。
分为欠采样(undersampling)和过采样(oversampling)两种,过采样小样本(SMOTE),欠采样大样本。
注:
采样方法一般比直接调阈值效果好。
使用采样方法一般可以提升模型的泛化能力,但有一定的过拟合的风险,应和正则搭配使用。
过采样大部分时候比欠采样效果好,但很难一概而论哪种方法好,还是要根据数据的特性具体讨论。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。