处理不均衡数据(Dealing with imbalanced data)简洁版


(1)想办法获取更多的数据。


前段时期的数据,较多呈现红色部分的数据较少呈现蓝色部分的数据;后半时期,产生数据的趋势发生变化,较多呈现蓝色部分数据较少呈现红色部分数据。所以,想办法获取更多的数据。

(2)换个评判方式

通常我们会用精度(Accuracy)和错误率(error)来评价模型的好坏。这两个指标在数据不均衡时,均不能客观的衡量模型。

解决办法:

通过Confusion Matrix,计算查准率(Precision)和查全率(recall),然后再计算F1 Score。这种衡量模型的标准可以成功的区分数据不均衡问题,并且能给出模型客观的评价。

对模型评价标准不熟悉的,可以看我之前的文章:

【错误率、精度、查准率、查全率和F1度量】详细介绍

https://blog.csdn.net/program_developer/article/details/79937291

ROC曲线和AUC面积理解

https://blog.csdn.net/program_developer/article/details/79946787

(3)重组数据


这种方式简单粗暴!!!!

1. 过采样(oversampling):复制较少的样本,使它和较多类样本差不多数量。

这样做的缺点:过采样法增加了很多较少类的样本,其训练集大于初始训练集,导致训练模型的时间开销较多。并且,过采样法不能简单地对初始较少类样本进行重复采样,否则会招致严重的过拟合。

解决办法:

过采样法的代表性算法是:SMOTE【Chawla et al.,2002】,该算法通过对训练集里的少类进行插值来产生额外的少类样本。

2. 欠采样(undersampling):删除较多数量类的样本,使它和较少类样本数量一致。

这样做的缺点:欠采样法如果随机的丢弃多类的样本,可能丢失一些重要的信息。

解决办法:

欠采样法的代表性算法是:EasyEnsembale【Liu et al.,2009】,该算法是利用集成学习机制,将较多类样本划分为若干个集合供不同学习器使用,这样对每个学习器来看都进行了欠采样,但在全局来看却不会丢失重要的信息。

(4)使用其他的机器学习方法

举个例子:

比如说,神经网络面对不均衡数据就变得束手无策,但是决策树它不会受到样本不均衡的影响。

(5)修改算法


对于Sigmoid激活函数,如果样本均衡的时候,它的阈值一般设置为0.5比较合适;如果样本不均衡的时候,我们可以设置更大的阈值,让算法比较有把握的时候,在输出类别较少的样本类。

观看视频笔记:https://www.bilibili.com/video/av16009140?spm_id_from=333.338.__bofqi.21

猜你喜欢

转载自blog.csdn.net/program_developer/article/details/80158057
今日推荐