样本不均衡处理方法、交叉检验、正则化惩罚

问题:

为什么一定要处理样本不均衡?

什么是交叉检验

什么是正则化惩罚

怎么运用交叉检验

怎么运用正则化惩罚

以信用卡异常来举例,0是正常,1是异常

简单观察数据(这里的数据已经经过预处理),发现样本不均衡情况,(常理)0的数量比1的数量多得多。

处理样本不均衡有两种方法,一是下采样(使之一样少),二是过采样(使之一样多)

为什么一定要处理样本不均衡?

扫描二维码关注公众号,回复: 5433176 查看本文章

如果样本不均衡的时候,训练模型的时候,容易误杀,换而言之,就是容易找不出异常的,不清楚异常的数据是怎样的

因为模型遇到的大多数都是正常的数据,那么参数也很容易是为了能够识别正常的数据而进行的调整。

但我们的目标很明显——是为了识别出那些异常的数据。那么就不可以直接用样本不均衡的模型来预测,效果肯定是不好的。

下采样:使01两个类别的数据一样少。

那么就是对0(数量多的那一个类别)进行随机抽样,抽取的数量和1相同。之后合并两个数据(抽样的0和完整的1,两个数据)

很明显,合并后的数据数量肯定是少的多,我们进行最后的测试,自然不能在下采样数据集的测试集上做,下采样数据集不能反映原数据集的分布规律。

同样因为数据少的问题,下采样与过采样相比,误杀率会高(把0当做了1的部分数量较多),精度会低,recall相对会高那么一点。

过采样:使01两个数据一样多。

对1(数量少的那一个类别)进行SMOTE生成策略,先对1的每一个样本找其近邻,确定扩展的倍数,例如5倍,那么就找每个样本自己的5个近邻,对每一个近邻进行新数据的生成(用到随机函数),那么每一条样本都能生成5条新的类似的数据,最后整个样本就扩大了5倍。

过采样因为数据多,训练的效果其实会比下采样好一点,精度更高一点,也就是误杀更低。

因此我们大多数遇到样本不均衡的问题首选过采样。数据多,调整的参数也更加合适。

交叉检验

交叉进行检验的意思吧

对训练集进行均等分,然后选择其中几个当做训练集,另一个当做验证集

在调整参数阶段,用训练集训练,用验证集当做调整效果的检验

同时,最后这是多组检验后的效果

例如,我们对训练集均等分3份,那么

1+2作为训练集,3作为验证集

1+3作为训练集,2作为验证集

2+3作为训练集,1作为验证集

经过三次的调整

在最后的测试之前也能知道模型的效果(累和测试的结果,然后取均值),同时也能更好调整参数和后面对模型的补充,如正则化惩罚。

正则化惩罚

在原有模型后面加上正则化惩罚,如L1,L 2。

正则化惩罚是避免参数泛化程度过高或过低,也就是避免过拟合和欠拟合的情况。

也就是有些参数的权重太大,有些太小,那么就很容易筛选出某些类型的数据(适应了训练集中的数据),这时候就是过拟合了

应用正则化惩罚,需要确定其惩罚力度,对应不同的情况需要的力度也不同

也就需要不断地去尝试,直到找到一个模型效果不错的力度

猜你喜欢

转载自blog.csdn.net/qq_40229367/article/details/88067284
今日推荐