在阅读论文[ ]过程中,发现在直线拟合阶段使用了正交最小二乘方法。目前先简单记录最小二乘法和正交最小二乘这两种数学模型的推导和比较。

一、最小二乘法

        最小二乘法是最常见的数学优化方法之一。它通过最小化误差(定义为真实数据与预测数据之间的差)的平方和来寻找数据的最佳函数匹配

若用

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_最小二乘

来描述对y的预测。则在已知的一组x与y的样本数据中,预测的误差平方和为:

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_数据_02

即求使得E最小的w。整理成数学问题,就是:当有数据集合X、Y,求w使得X、Y之间的

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_数据_03

最小。也即为

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_最小二乘_04


推导思路:

推导思路比较简单,就是有数据

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_最小二乘法_05

,求E(x)分别对

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_最小二乘法_05

的偏导为0。

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_最小二乘法_07

 在matlab的函数为polyfit(x,y,n);    其中,n为最小二乘的阶数。

二、正交最小二乘法

       OLS是在LS的基础上一种贪婪选择子集(总是选择最好的路径)的方法。在计算最小二乘时,会将所有点都考虑到,但是,若某个离群值偏离的过大,那么他还是否对最终的拟合结果有正向的帮助呢?OLS就是基于这一思想,通过用部分数据来拟合出符合要求的线。那么,怎么选择这一部分数据呢?

        相对于最小二乘法,现有A与y,我们希望求一x使Ax与y的最小二乘误差最小,即Ax最佳地逼近y。OLS的思路是,将A的列逐个添加到As(A的子集), 然后用最小二乘法求得As与y的最小二乘误差,满足条件就不再添加。具体如何选择列呢?

这里介绍一下误差下降量的概念。

最小二乘的解是

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_最小二乘法_08

, A 为单位正交列矩阵时,

 假设现在已选出的列组成 As。有

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_数据_09

未添加新列时,预测值

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_算法_10

的最小二乘误差为:

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_算法_11

在添加一列a后,最小二乘误差为

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_最小二乘法_12

显然,添加前和添加后,他两之间的差为

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_算法_13

。因此,我们每次添加新列时,只要算出选择池里各列的ΔE,取ΔE 最大的列,就是能使误差下降最快的列。

对于非单位正交列,可以进行单位正交化后,采用一致的方式来进行OLS。

三、对比

正交性与最小二乘法在机器学习中有用的到吗 正交偏最小二乘法_最小二乘法_14

 此图中,粉色为LS,蓝色为OLS。可以看到由于去掉了一部分外点。OLS拟合直线的效果还是比较好的。