机器学习练习笔记(五)

该章里面涉及一个白化的概念。

在解本章题目之后,笔者认为除了算法实现之外的全部知识属于线性代数以及坐标变换,虽然题目要求与PCA算法有些不一样,但是其涉及到的线性代数知识是共享的,故理解白化过程之后,就很容易理解PCA了。

题目5.1 - 交叉验证

所用的训练集

  • 200个样本,其中

以及验证集

  • 1476个样本,其中为坐落在图像的坐标信息。

第一问是将训练集以及验证集的数据白化后作图,首先画出白化前的数据分布:

白化前训练集

白化前验证集

在开始解题前已经介绍过白化过程了,于是直接贴出白化后的数据分布:

白化后训练集

白化后验证集

第二问是多项式展开,利用核函数将白化后的数据从2维升至更高维度,使得非线性问题在高维表示为线性问题。

所用的映射函数:

例如当时,可以产生55项这样的单项式,根据该映射函数,所用的预测方程为:

然而本题要输出的是各单项式的值,例如当的时候,本题要求画出前10个单项式的值,这会产生10张图。

,即在前10个的组合中每对对应的值,绘图。

笔者懒得去画了,毕竟用ggplot将多张图片放在一个输出文件中有点麻烦,读者可以挑其中一个,如,以来绘出热度图。

第三问引入正则化来降低过拟合,这里用了L1正则化

其中为单位矩阵,尝试不同的值对过拟合的影响,画出不同的平均方误差以及平均方误差的方差:

可以看到附近对于训练集正则化效果最好。

最后一问是试出对于验证集最好的,与比较一下:

然后最佳的,显然与不同。

至此第五章题解完毕。