![30b08a1c57047af1aaf5c70abdb0cb7e.png](https://i-blog.csdnimg.cn/blog_migrate/40f5a806696a7bdecc95324793a13c90.jpeg)
进入正题之前先给大家推荐一本书--《Python机器学习及实践-从零开始通往KAGGLE竞赛之路》,对于想系统学习机器学习的同学,推荐去看一下,电子版下载链接如下:
链接:https://pan.baidu.com/s/1rzaFErwbtQ6CQdTSRnaURg
提取码:5gou
1.非参数化概率密度的估计
- 对于未知概率密度函数的估计方法,其核心思想是:一个向量x落在区域R中的概率可表示为:
![74f23d5fa4f863ad09da5a1d9cc75b9e.png](https://i-blog.csdnimg.cn/blog_migrate/875e29a67ad1af42cbdc48a6e696db3b.png)
- 其中,P是概率密度函数p(x)的平滑版本,因此可以通过计算P来估计概率密度函数p(x),假设n个样本x1,x2,…,xn,是根据概率密度函数p(x)独立同分布的抽取得到,这样,有k个样本落在区域R中的概率服从以下分布:
![674c64a92ef0e0f026b80761f8a259fa.png](https://i-blog.csdnimg.cn/blog_migrate/86f1313eb43e1cfe6f8c9ed83c506341.png)
- 其中k的期望值为:
![dbf3ee3a6a530da28edd2a457d0df94d.png](https://i-blog.csdnimg.cn/blog_migrate/8ca9ea66051d14248debf81befa200aa.png)
- k的分布在均值附近有着非常显著的波峰,因此若样本个数n足够大时,使用k/n作为概率P的一个估计将非常准确。假设p(x)是连续的,且区域R足够小,则有:
![d47f15325c58e7317907d85696fb0ce1.png](https://i-blog.csdnimg.cn/blog_migrate/2c412236fdf31e798b2aeca71c4f5cc7.png)
- 如下图所示,以上公式产生一个特定值的相对概率,当n趋近于无穷大时,曲线的形状逼近一个δ函数,该函数即是真实的概率。公式中的V是区域R所包含的体积。综上所述,可以得到关于概率密度函数p(x)的估计为:
![3d347b8c9d7fb4c55ea036f8daa1fade.png](https://i-blog.csdnimg.cn/blog_migrate/a3cfb86a8e9f713c67c95a01fa049920.png)
![eb07af34e91414dd16f76b8d263431d6.png](https://i-blog.csdnimg.cn/blog_migrate/b8b4c45c63f4bfb09c4f651c84be637c.png)
- 在实际中,为了估计x处的概率密度函数,需要构造包含点x的区域R1,R2,…,Rn。第一个区域使用1个样本,第二个区域使用2个样本,以此类推。记Vn为Rn的体积。kn为落在区间Rn中的样本个数,而pn (x)表示为对p(x)的第n次估计:
![c717e23c0faad20e424978a48f1acb49.png](https://i-blog.csdnimg.cn/blog_migrate/4ca8cb53216380d2a14a2b030b128aa8.png)
- 欲满足pn(x)收敛:pn(x)→p(x),需要满足以下三个条件:
![7350438b23a45691cab986850bbefa09.png](https://i-blog.csdnimg.cn/blog_migrate/0d0466be2d08fdc8f436b48eb253b7f6.png)
- 有两种经常采用的获得这种区域序列的途径,如下图所示。其中“Parzen窗方法”就是根据某一个确定的体积函数,比如Vn=1/√n来逐渐收缩一个给定的初始区间。这就要求随机变量kn和kn/n能够保证pn (x)能收敛到p(x)。第二种“k-近邻法”则是先确定kn为n的某个函数,如kn=√n。这样,体积需要逐渐生长ÿ