机器学习中的独立同分布、采样

2018/12/15 机器学习

独立同分布

第一种解释:

在概率统计理论中,指随机过程中,任何时刻的取值都为随机变量,如果这些随机变量服从同一分布,并且互相独立,那么这些随机变量是独立同分布。如果随机变量X1和X2独立,是指X1的取值不影响X2的取值,X2的取值也不影响X1的取值且随机变量X1和X2服从同一分布,这意味着X1和X2具有相同的分布形状和相同的分布参数,对离随机变量具有相同的分布律,对连续随机变量具有相同的概率密度函数,有着相同的分布函数,相同的期望、方差。如实验条件保持不变,一系列的抛硬币的正反面结果是独立同分布

第二种解释:

输入空间X中的所有样本服从一个隐含未知的分布,训练数据所有样本都是独立地从这个分布上采样而得。

为什么需要独立同分布?

因为机器学习就是利用当前获取到的信息(或数据)进行训练学习,用以对未来的数据进行预测、模拟。所以都是建立在历史数据之上,采用模型去拟合未来的数据。因此需要我们使用的历史数据具有总体的代表性。为什么要有总体代表性?我们要从已有的数据(经验)中总结出规律来对未知数据做决策,如果获取训练数据是不具有总体代表性的,就是特例的情况,那规律就会总结得不好或是错误,因为这些规律是由个例推算的,不具有推广的效果。通过独立同分布的假设,就可以大大减小训练样本中个例的情形

机器学习并不总是要求数据同分布。在不少问题中要求样本(数据)采样自同一个分布是因为希望用训练数据集训练得到的模型可以合理用于测试集,使用同分布假设能够使得这个做法解释得通。由于现在的机器学习方向的内容已经变得比较广,存在不少机器学习问题并不要求样本同分布,比如一些发表在机器学习方向上的online算法就对数据分布没啥要求,关心的性质也非泛化性。

采样

由于样本不平衡会对结果造成影响,所以需要对这种情况进行处理。

欠采样

欠采样(undersampling)法是去除训练集内一些多数样本,使得两类数据量级接近,然后再正常进行学习。

这种方法的缺点是就是放弃了很多反例,这会导致平衡后的训练集小于初始训练集。而且如果采样随机丢弃反例,会损失已经收集的信息,往往还会丢失重要信息

欠采样改进方法1

我们可以更改抽样方法来改进欠抽样方法,比如把多数样本分成核心样本和非核心样本,非核心样本为对预测目标较低概率达成的样本,可以考虑从非核心样本中删除而非随机欠抽样,这样保证了需要机器学习判断的核心样本数据不会丢失。

欠采样改进方法2

另外一种欠采样的改进方法是EasyEnsemble提出的继承学习制度,它将多数样本划分成N个集合,然后将划分过后的集合与少数样本组合,这样就形成了N个训练集合,而且每个训练结合都进行了欠采样,但从全局来看却没有信息丢失

过采样

过采样(oversampling)是对训练集内的少数样本进行扩充,即增加少数样本使得两类数据数目接近,然后再进行学习。

简单粗暴的方法是复制少数样本,缺点是虽然引入了额外的训练数据,但没有给少数类样本增加任何新的信息,非常容易造成过拟合

过采样改进方法1

通过抽样方法在少数类样本中加入白噪声(比如高斯噪声)变成新样本一定程度上可以缓解这个问题。如年龄,原年龄=新年龄+random(0,1)。

过采样代表算法:SMOTE算法

SMOTE是通过对少数样本进行插值来获取新样本的。比如对于每个少数类样本a,从a最邻近的样本中选取样本b,然后在对ab中随机选择一点作为新样本。

参考

为什么机器学习中, 要假设我们的数据是独立同分布的?

机器学习中样本不平衡的处理方法

机器学习之样本不平衡

(提出了一个新的算法)基于样本权重更新的不平衡数据集成学习方法

样本不均衡的一些处理技巧

What are i.i.d. random variables?

When is undersampling effective in unbalanced classification tasks?

(讲的好)DEALING WITH IMBALANCED DATA: UNDERSAMPLING, OVERSAMPLING AND PROPER CROSS-VALIDATION

(讲的好)解决真实世界问题:如何在不平衡类上使用机器学习?

Search

    Table of Contents