有放回采样和无放回采样

 

 

随机采样

可以分为随机欠采样和随机过采样两种类型。

随机欠采样(下采样)

顾名思义即从多数类$S_maj$中随机选择少量样本$E$再合并原有少数类样本作为新的训练数据集,新数据集为$S_min+E$;

随机欠采样有两种类型分别为有放回和无放回两种,无放回欠采样在对多数类某样本被采样后不会再被重复采样,有放回采样则有可能。

放回子采样:bagging(bootstrap aggregation)方法

{有放回的随机采样,有一些样本被重复采样,从而在训练集中多次出现,有的则从未在训练集中出现,此则自助采样法}

对于一个样本,它在某一次含m个样本的训练集的随机采样中,每次被采集到的概率是1m。不被采集到的概率为1−1m。如果m次采样都没有被采集中的概率是(1−1m)m。当m→∞时,(1−1m)m→1e≃0.368。也就是说,在bagging的每轮随机采样中,训练集中大约有36.8%的数据没有被采样集采集中。对于这部分大约36.8%的没有被采样到的数据,我们常常称之为袋外数据(Out Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。[Bagging与随机森林算法原理小结]

放回采样后的数据集会有一些数据重复,一些数据缺失,从N个样本中采样K个样本,不同样本数量的期望为U(K)=N(1−(N−1N)K)。证明:首先,显然有U(1)=1;其次,设从N个样本中采样k−1个样本,不同样本数量的期望为U(k−1),则第k个样本是未曾抽到的样本的概率为1−U(k−1)N,所以U(k)=1+N−1NU(k−1)=1+N−1N+(N−1N)2+⋯+(N−1N)k−1,根据等比数列求和公式得U(K)=N(1−(N−1N)K)。对于一种特殊情况,当K=NN足够大时,则有最终不同样本数量是原始样本数量的期望为(1−1e),大约是23。

[放回采样最终不同样本数量]

评价

Bootstrap的基本思想是:因为观测样本包含了潜在样本的全部的信息,那么我们不妨就把这个样本看做“总体”。可以简单地概括为:既然样本是抽出来的,那我何不从样本中再抽样。

应该说Bootstrap是现代统计学较为流行的一种统计方法,在小样本时效果很好。通过方差的估计可以构造置信区间等,其运用范围得到进一步延伸。

bootstrap方法简单说就是重抽样。为什么需要bootstrap方法呢?因为bootstrap方法使得我们无需分布理论的知识也可以进行假设检验,获得置信区间。当数据来自未知分布,或者存在严重异常点,又或者样本量过小,没有参数方法解决问题时,bootstrap方法将是一个很棒的方法。对于回归分析而言,bootstrap无疑对回归的正态性假设做了极大地放松,使得回归推断越来越好用,也更具有说服力。对于参数统计,特别是在已知分布的参数估计,bootstrap并没有多大的意义,它的结果和矩估计或者极大似然估计的结果并没有多大的差别

bagging方法为什么要采取有放回的采样方式?

放回采样,这样产生的训练集才相互独立。

Bagging是无权重采样,是一种用来提高学习算法准确度的方法。bagging 法是以可重复的随机抽样为基础的,每个样本是初始数据集有放回抽样。在可重复抽样生成多个训练子集时,存在于初始训练集D中的所有的样本都有被抽取的可能,但在重复多次后,总有一些样本是不能被抽取的,每个样本不能被抽取的概率在无穷大的时候趋向于37%。[为什么说bagging是减少variance,而boosting是减少bias?]

核心关键步骤就转变为获得m趋于无穷的bootstrap样本。从Fn中产生随机样本即产生m个服从Fn(x)的i.i.d.样本,而Fn(x)服从于{x1,…,xn}的均匀分布,那么该问题就等价于从随机变量x中再抽样m次,即保证Bootstrap抽样过程中是有放回抽样(因为是均匀分布)。那么对x抽采样j轮,每轮做有放回抽样n次(jn=m),此时,抽取迭代数越大,即j越大,则m越大,根据大数定理的含义,对于总体的统计量估计就会越准确。以上就是重采样或者是bootstrap可以用于估计总体统计量的原因和解释。

主要原因是不破坏数据的分布情况,如果采用不放回的形式,那么下一次采样出来的时候和整体的数据分布情况以及每一次采用出来的数据的分布情况都不相同,所以要采用有放回的采样形式。

[R语言——重采样]

无放回采样:GBDT

boosting方法为什么要采取无放回的采样方式?

lz: BalanceCascade,利用增量训练。还有是要体现不同小模型的差异性,每次采样的分布不同,数据方差更大?

 

随机过采样(上采样)

正好相反,即通过多次有放回随机采样从少数类$S_min$中抽取数据集$E$,采样的数量要大于原有少数类的数量,最终的训练集为$S_maj+E$。

可以看到随机采样通过改变多数类或少数类样本比例以达到修改样本分布的目的,从而让样本分布较为均衡,但是他们也存在一些问题。

对于随机欠采样,由于采样的样本要少于原样本集合,因此会造成一些信息缺失,未被采样的样本往往带有很重要的信息。

对于随机过采样,由于需要对少数类样本进行复制因此扩大了数据集,造成模型训练复杂度加大,另一方面也容易造成模型的过拟合问题(上采样后的数据集中会反复出现一些样本,训练出来的模型会有一定的过拟合;而下采样的缺点显而易见,那就是最终的训练集丢失了数据,模型只学到了总体模式的一部分。

上采样会把小众样本复制多份,一个点会在高维空间中反复出现,这会导致一个问题,那就是运气好就能分对很多点,否则分错很多点。为了解决这一问题,可以在每次生成新数据点时加入轻微的随机扰动,经验表明这种做法非常有效。)。

Note: 机器学习模型中,如果对负样本重采样,模型计算的概率,需要重新修正。修正公式为q=p/(p+(1−p)/w),其中q是修正后的数据,p时模型预测的数据,w是负样本重采样比例。

 

 

 

from:

ref:

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页