主要是记录一些采样方面的知识。参考来源如下:
https://blog.youkuaiyun.com/fengying2016/article/details/80593266
https://www.cnblogs.com/xinzhihao/p/11289108.html
为什么要采样?
从概率论的角度来解释机器学习,就是我们的模型是学习了样本的概率分布,我们认为我们的目标都遵从这个概率分布从而能有效的进行分类或者预测。但是对于我们已有的数据来说,一次性采样得到的数据可能非常的庞大(相对于建立的模型来说会花费特别多的资源),也有可能比较小(小样本问题)。
讨论大样本的问题,这时候我们没法也没有必要对所有的数据进行拟合,我们可以利用采样的方式,从原始的数据集构造出一个训练集,然后用剩下的部分作为测试集。
所以问题就是,在已知数据概率分布的情况下,如何对数据进行采样。这里有一道阿里的面试题:
一道编程题,现在有包含很多个样本数据的数组,现在对这些数进行多次有放回采样,但每个数都有自己的采样概率,这个概率存在另外一个数组里面,总概率是1,问怎么实现这个采样过程。
常见的采样算法
一、逆变换采样
对 任 意 随 机 变 量 ξ , 设 其 概 率 密 度 分 布 函 数 为 P ( x ) , 其 积 分 分 布 函 数 为 P ( x ) = ∫ x − ∝ p ( z ) d z , 只 要 有 均 匀 分 布 的 另 一 随 机 变 量 θ , 则 反 函 数 ξ = F − 1 ( θ ) 即 可 得 到 , 且 ξ 一 定 服 从 P ( x ) 分 布 。 对任意随机变量\xi ,设其概率密度分布函数为P\left( x \right) ,其积分分布函数为P\left( x \right) =∫x−\propto p\left( z \right) dz,只要有均匀分布的另一随机变量\theta ,则反函数\xi =F−1\left( \theta \right) 即可得到,且\xi 一定服从P\left( x \right) 分布。 对任意随机变量ξ,设其概率密度分布函数为P(x),其积分分布函数为P(x)=∫x−∝p(z)dz,只要有均匀分布的另一随机变量θ,则反函数ξ=F−1(θ)即可得到,且ξ一定服从P(x)分布。
逆变换法残生随机数的步骤:
1 、 生成一 个 服从均匀分布的随 机 数 U ∼ U n i t ( 0 , 1 ) ; 2 、 设