一:为什么要去量纲
表征相同属性(单位不同)的各特征之间才有可比性,如1cm 与 0.1kg 你怎么比?
二:什么是去量纲
量纲:衡量一个属性的单位,比如:米,千克等;
去量纲:去除该属性单位带来的影响,使得该属性成为一个单纯的数,或者使得所有的属性的单位变为“1”。总之就是统一单位的过程
三:使用PCA到底需不需要去量纲呢?
我们先看看PCA的原理
PCA有个规则就是:使得新数据集中各属性之间没有相关性。
(1)当:各个属性单位相同时(比如,都是kg,都是米)这时候,各个属性是可比较的。因此直接求属性与属性之间的协方差即可。原本协方差的大小并不说明相关程度(协方差只表示正相关还是负相关),但是在单位相同时候,我们可以认为协方差越大,相关性越大。
(2)当:各个属性单位不同时,(比如,一个是kg,一个是米)这个时候,由于单位不同,协方差不表示相关程度,这时候,我们就要使用相关系数来进行描述。
相关系数的公式:(其中除以标准差就是一种去量纲的方式)
因此:相关系数也可以看成协方差:一种剔除了两个变量量纲影响、标准化后的特殊协方差,它消除了两个变量变化幅度的影响,而只是单纯反应两个变量每单位变化时的相似程度。
写到这里,相信大家已经明白了,使用PCA到底需不需要去量纲了~。
四:去量纲方法
参考博客:https://blog.csdn.net/OnTheWayGoGoing/article/details/79871559
一共有三种常用的去量纲的方法:
(1)min-max归一化(2)z-score标准化(3)Normalization
这里我不想搬运了,大家自己去看看链接的内容即可。这里我主要解释一下这一句话:
这句话的意思是,如果我认为原始数据中,某一个属性标准差越大,表示这个属性变化大,那么这个属性就越重要。
这句话很绕啊,乍一看.....这不就是说的协方差矩阵的对角线么?协方差矩阵对角线上的元素就是方差(标准差的平方)。再乍一看......PCA不就是通过方差的大小判断是不是主要成分么?那是不是意味着,在PCA中去量纲应该使用min-max归一化?
答案是~~~NO。在PCA中去量纲,我们还是应该使用z-score标准化,其实在我上面这句话中,给埋了一个坑
”PCA是通过方差大小判断是不是主成分“这句话没错,但是他是根据变换后的新数据集方差大小判断的,而我们去量纲时候,处理的是原数据集,而且忘了相关系数了么~~使用min-max去量纲后,计算的属性与属性之间的协方差,是没有数学意义可以说明能表示相关性大小的喔(至少我没找到)。
五:总结
当数据各个属性的单位不同时候,使用PCA是需要去量纲的,而且去量纲的方法应该选用z-score标准化(减去均值之后除以方差)。