统计学习-经典重采样方法简介
机器学习中的重采样方法
在我们之前讲过的文章里,介绍过一些抽样、采样的方法,当实际情况中由于数据本身的均衡性出现很大偏差的时候,采用之前的方法会有一些问题,比如模型过拟合或者是在抽样的数据预测的非常完美。其实这种样本的不均衡问题在实际情况中非常常见,比如信用卡欺诈的问题、垃圾邮件的问题等,如果使用传统的抽样会使得样本数据无法体现负样本的情况,所以需要使用重采样方法进行处理。
其实最简单的方式会使用类似bootstrap那种进行样本的扩充,或者是从少数类的样本集合里进行有放回地样本抽取,从而达到正样本和负样本之间较为平衡的状态。但显然,这种抽取的方式有很大可能会使得样本被反复抽到,从而使得学习到的负样本没有完全显示出原始数据的负样本特性,也就是模型会学不到一些特征导致模型整体的预测能力变差。
因此针对上述的情况,本文在此处介绍一种比较经典的重采样方法,也就是SMOTE方法,这种方法对于含有某类样本比较小的数据集的采样是比较有效果的,它的中文名称是人工少数类过采样法,也就是制造一些很像负样本数据的人工数据,不同于之前的反复放回再抽样的方法,这种方法是将负样本数据结合KNN方法,然后在选定最近的K个样本后,随机选择其中一个和当前样本进行连线,然后随机选择线上的一点作为抽取到的样本,它的具体步骤如下:
1、设置初始化的参数,比如最近邻方法里的K的个数,需要重复操作的阈值也就是采样倍率R,使用何种距离度量去计算,比如欧式距离、曼哈顿距离等。
2、获取某一类小样本数据里的所有样本,将每个样本都计算它和剩下样本的距离,并且取前K个数据作为K个邻居,从这些邻居中随机选择一个