机器学习作业3 - 中心化的作用
中心化的作用
这次作业是周志华《机器学习》中习题10.3,比较简单,就是一道问答题:在对高维数据进行降维的时候,为什么往往需要中心化呢?当然这个问题随便百度一下就一大堆答案啦,在这里放上我的理解,如有不对之处,还请指教。
在高维数据中,不同维度的数据范围并不相同,例如Yale人脸数据集,眼睛部分的维度数据几乎都在0 – 50左右,而脸颊部分的维度数据可能在200左右。在一些更夸张的数据集上,不同维度的数据之间可能存在几个数量级的差距,如此一来,如果直接计算,数据量很小的维度很可能在降维的时候因为浮点计算的误差,而产生非常大的偏差,从而产生错误。
例如:房价数据集中,存在以下两个数据:“总价”和“同比上个月的价格波动率”,某套房子的总价为20000000.00,价格波动率为0.0015,如果直接进行降维,则产生的结果中,波动率可能有很大的误差。
因此,要将数据进行中心化。将所有维度上的数据减去其均值后,数据变成均值为0的较为稳定的数据(必要时还可进行标准化),此时进行计算,则不同维度之间的数据相差不会太大,可以有效降低误差,提高准确率。具体演示可见上方图片,图片来自知乎。
那么,针对作业中的如下中心化算法,进行解释:
将降维协方差矩阵中的
XXT 转化为XHHTXT ,其中H=I−1m11T
所以现在需要解释下
其中
那么,
那么,
完结撒花~