机器学习练习笔记(七)

题目7.1 - 训练数据的准备

目的是产生一个典型的XOR问题的数据分布,通过如下的公式产生:

其中

根据规则产生y=0以及y=1各60组的数据分布:

题目7.2 - k近邻

kNN算法概念,令k=1,3,5,描绘出决策边界,没有什么技巧,就是暴力计算,用密集的点表示出决策边界:

k=1时的决策边界

k=3时的决策边界

k=1时的决策边界

题目7.3 - “Parzen window”分类器

基于欧氏范数的高斯窗口函数:

即根据作为训练集的点与将被预测的点的距离通过此函数计算出影响权重,最后得出哪个类别的权重最大。

利用同样作图方法,画出时的决策边界。

$\sigma_{\mathcal{k}}^2=0.5$时的决策边界

$\sigma_{\mathcal{k}}^2=0.1$时的决策边界

$\sigma_{\mathcal{k}}^2=0.01$时的决策边界

可以看到值越小,边界越靠近支持向量机的结果。

第二问是添加第三个类别,根据,然后利用kNN和Parzen窗口同样的参数再跑一遍算法,观察结果。

kNN,k=1

kNN,k=3

kNN,k=5

Parzen窗口,$\sigma_{\mathcal{k}}^2=0.5$

Parzen窗口,$\sigma_{\mathcal{k}}^2=0.1$

Parzen窗口,$\sigma_{\mathcal{k}}^2=0.01$

题目7.4 - RBF网络

上一题里面,利用全体训练集对进来的点进行预测,显然是一个自然而然的选择,但是当训练集的样本数很大时,假设进来t个点,那么判定的时间复杂度就攀升到,显然对计算能力提出了要求。那么一个想法就是,能不能通过采集一些训练集中具有代表性的点,用来进行预测?

通过这样的思路,选区代表性的点可以通过K-means方法,然后对于每个将要进行预测的点,计算该点与这些代表点的距离(高斯窗口函数),将所得的“距离”作为线性分类器的输,即利用下述的表达式:

其中:

为代表点,信号函数:

根据最小二乘法,可知训练后的权重:

第一问就令,选取合理的,笔者选择0.5与0.01,画出决策边界:

$K=2,\sigma^2_k=0.01$

$K=2,\sigma^2_k=0.5$

$K=3,\sigma^2_k=0.01$

$K=3,\sigma^2_k=0.5$

$K=4,\sigma^2_k=0.01$

$K=4,\sigma^2_k=0.5$

回想一下一个XOR点的分布图,为4的倍数时应该是最佳的效果。

第二问通过修改固定的两个代表点来检验效果,其中,笔者就不画出决策边界了,但是经过线性处理之后的图像,笔者认为可以看一看:

其中横坐标轴为,纵座标轴为,显然通过核函数转换之后,问题变成了线性可分。

至此第七章的练习结束。