机器学习作业3 - 中心化的作用

中心化的作用

这次作业是周志华《机器学习》中习题10.3,比较简单,就是一道问答题:在对高维数据进行降维的时候,为什么往往需要中心化呢?当然这个问题随便百度一下就一大堆答案啦,在这里放上我的理解,如有不对之处,还请指教。

在高维数据中,不同维度的数据范围并不相同,例如Yale人脸数据集,眼睛部分的维度数据几乎都在0 – 50左右,而脸颊部分的维度数据可能在200左右。在一些更夸张的数据集上,不同维度的数据之间可能存在几个数量级的差距,如此一来,如果直接计算,数据量很小的维度很可能在降维的时候因为浮点计算的误差,而产生非常大的偏差,从而产生错误。

例如:房价数据集中,存在以下两个数据:“总价”和“同比上个月的价格波动率”,某套房子的总价为20000000.00,价格波动率为0.0015,如果直接进行降维,则产生的结果中,波动率可能有很大的误差。

中心化示例

因此,要将数据进行中心化。将所有维度上的数据减去其均值后,数据变成均值为0的较为稳定的数据(必要时还可进行标准化),此时进行计算,则不同维度之间的数据相差不会太大,可以有效降低误差,提高准确率。具体演示可见上方图片,图片来自知乎。

那么,针对作业中的如下中心化算法,进行解释:

将降维协方差矩阵中的 XXT 转化为 XHHTXT ,其中 H=I1m11T

所以现在需要解释下 H 的作用是啥。前面说了,中心化的作用就是减掉平均值,那么怎么减呢?我们直接把 H 拆开,原式 XH 变为:

XI1mX11T(1)

其中 I 是单位矩阵,所以 XI 还是 X ,而后面就有意思了,假设矩阵 X mn 的,也就是 m 维,每维 n 个数据,那么式子中的 1 就是 n1 的单位列向量,很显然, 1mX1 的结果是一个长 m 的列向量,每个数据对应矩阵 X 中每一维数据的平均值。

那么, 1T 就是一个 1n 的行向量。和前面的结果相乘,得到一个 mn 的矩阵,矩阵里每一行的每一个元素都是这一行的平均值。所以现在就可以看出公式1的结果了。它就是传说中减去了每一行(每一维)平均值以后的矩阵。

那么, XT HT 也是同理,这里就不多说了,于是这一题也愉快的写完啦!

完结撒花~

猜你喜欢

转载自blog.csdn.net/dapanbest/article/details/78218921
今日推荐