1 为何需要标准化
有的数据,不同维度的数量级差别较大,导致有的维度会主导整个分析过程。如下图所示:
该图的数据维度 d = 30 d=30 d=30,样本量 n = 40 n=40 n=40,上面的图是对原始数据做PCA后,第一个PC在各个维度上的权重的平行坐标图,下面的图则是对数据做标准化之后的情况。可以发现,在原始数据中,第 4 4 4和 24 24 24个维度的权重非常大。如果其他的维度也包含了重要的信息,而我们只取第一个PC做研究,可能就会造成信息损失。
2 如何标准化
那该如何预处理数据?一般而言有两种处理方法。
2.1 Scale
常见的一种方法就是对数据做scale,如我们知道数据的总体为 x ∼ ( μ , Σ ) x\sim (\mu,\Sigma) x∼(μ,Σ),那么可以将 Σ \Sigma Σ的对角线元素单独取出做成一个对角矩阵 Σ diag \Sigma_\text{diag} Σdiag,然后定义
x scale = Σ diag − 1 / 2 ( x − μ ) x_\text{scale}=\Sigma_\text{diag}^{-1/2}(x-\mu) xscale=Σdiag−1/2(x−μ)
这样做的好处显而易见,在做完scale后,我们有
Var ( x scale )