python 均匀采样_机器学习采样方法大全

Index数据采样的原因

常见的采样算法

失衡样本的采样

采样的Python实现

数据采样的原因

其实我们在训练模型的过程,都会经常进行数据采样,为了就是让我们的模型可以更好的去学习数据的特征,从而让效果更佳。但这是比较浅层的理解,更本质上,数据采样就是对随机现象的模拟,根据给定的概率分布从而模拟一个随机事件。另一说法就是用少量的样本点去近似一个总体分布,并刻画总体分布中的不确定性。

因为我们在现实生活中,大多数数据都是庞大的,所以总体分布可能就包含了无数多的样本点,模型是无法对这些海量的数据进行直接建模的(至少目前而言),而且从效率上也不推荐。

因此,我们一般会从总体样本中抽取出一个子集来近似总体分布,这个子集被称为“训练集”,然后模型训练的目的就是最小化训练集上的损失函数,训练完成后,需要另一个数据集来评估模型,也被称为“测试集”。

采样的一些高级用法,比如对样本进行多次重采样,来估计统计量的偏差与方法,也可以对目标信息保留不变的情况下,不断改变样本的分布来适应模型训练与学习(经典的应用如解决样本不均衡的问题)。

常见的采样算法

采样的原因在上面已经阐述了,现在我们来了解一下采样的一些算法:

01 逆变换采样

有的时候一些分布不好直接采样,可以用函数转换法,如果存在随机变量x和u的变换关系:u=ϕ(x),则它们的概率密度函数如下所示:

p(u)|ϕ′(x)|=p(x)

因此,如果从目标分布p(x)中不好采样x,可以构造一个变换u=ϕ(x),使得从变换后地分布p(u)中采样u比较容易,这样可以通过对u进行采样然后通过反函数x=ϕ−1(u)x=ϕ−1(u)来间接得到x。如果是高维空间地随机变量,则ϕ′(x)对应Jacobian行列式。

而且,如果变换关系ϕ(·)是x的累积分布函数的话,则就是我们说的 逆变换采样(Inverse Transform Sampling), 我们假设待采样的目标分布的概率密度函数为p(x), 它的累积分布函数为:

u=ϕ(x)=∫x−∞p(t)dtu=ϕ(x)=∫−∞xp(t)dt

逆变换采样法的过程:从均匀分布U(0,1)产生一个随机数uiui

计算逆函数xi=ϕ−1(ui)xi=ϕ−1(ui)来间接得到x

但并不是所有的目标分布的累积分布函数的逆函数都是可以求解的(or容易计算),这个时候逆变换采样法就不太适用,可以考虑拒绝采样(Rejection Sampling)和重要度采样(Importance Sampling)。

02 拒绝采样(Rejection

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值