解决非平衡的数据处理方式

// 学习笔记,勿喷,xjb写的,借鉴的地方很多

SMOTE 算法介绍

由于在实际运用中,对于分类问题中,因变量时存在很大地差距的,对应的比列严重失调。因为非类的样本毕竟在真实情况下所占的比例时很小的一块。

对于数据严重有偏的,对应的预测的结果也是有偏的,因此对应的分类结果很大程度地偏向较多观测样本的类别。因此,我们在这里需要很大程度的去构造出 1 : 1的数据比例。如果直接使用 过采样 的处理方式, 这样放回的样本是之前数据的简单的拟合,因此在这里是会出现模型的过拟合的情况;如果直接采用 欠采样 的处理方式,这样就会导致对应的 正样本 中间的数据被砍掉了很大的一部分,会导致某些信息的丢失。

SMOTE 算法是采用 对于少类的数据样本进行分析和模拟,将人工模拟出来的数据添加到对应的数据集中间去,进而使得原始的数据集中的类别变得不再严重失衡,从而原始数据集中的类别不再会严重失衡。

使用的算法是 KNN 算法:

  1. 先算出少类样本的K个近邻
  2. 从K个近邻中间挑选出 N 个样本进行线性插值,因此构造出少类的样本
  3. 和原数据集混合,构建新的数据集

这个处理的方式在 imblearn 的 over_sampling 中的 SMOTE 中被实现,具体的查询官方文档

直接使用 SMOTE.fit()对应的数据集,能够实现缺失信息变成 1: 1的处理,改变AOC数据。


猜你喜欢

转载自blog.csdn.net/skd621/article/details/80340348