关闭

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

标签: 机器学习数据
88人阅读 评论(1) 收藏 举报
分类:

中心化的作用

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

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

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

中心化示例

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

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

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

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

XI1mX11T(1)

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

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

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

完结撒花~

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1811次
    • 积分:106
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条