一、定义符号
主成分分析(Principal Components Analysis, PCA)是一种降维方法。为了更好的解释该算法,首先假设数据集为 { x ( i ) ; i = 1 , 2 , … , m } \{x^{(i)}; i=1,2, \dots, m\} { x(i);i=1,2,…,m},其中 x ( i ) ∈ R n x^{(i)} \in \mathbb {R}^n x(i)∈Rn,也就是说数据集一共包含 m 条数据,每条数据的特征向量的维度为 n。
二、中心化和标准化
中心化又叫零均值化,中心化(零均值化)后的数据均值为零。下面两幅图是数据做中心化前后的对比,可以看到其实就是一个平移的过程,平移后所有数据的中心是(0, 0)。
数据标准化的目的就是使各个特征都在同一尺度下被衡量。
三、Z-score 标准化
Z-score 标准化(也叫 0-1 标准化),这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为 0,标准差为 1。Z-score 标准化的公式如下:
x ∗ = x − μ σ x^{*} = \frac{x - \mu}{\sigma} x∗=σx−μ
我们可以发现 Z-score 标准化的过程中是包含中心化的。以下图片展示了一组数据进行 Z-score 标准化的过程。左图表示的是原始数据,中间的是中心化后的数据,右图是将中心化后的数据除以标准差,得到的标准化后的数据,可以看出每个维度上的尺度是一致的(红色线段的长度表示尺度)。
想要使用 PCA 算法,需要先对数据做以下处理:
- μ = 1 m ∑ i = 1 m x ( i ) \mu = \frac{1}{m} \sum_{i=1}^{m} x^{(i)} μ=m1∑i=1mx(i)
- x ( i ) = x ( i ) − μ x^{(i)} = x^{(i)} - \mu x(i)=x(i)−μ
- σ j 2 = 1 m ∑ i ( x j ( i ) ) 2 \sigma_j^2 = \frac{1}{m} \sum_i(x_j^{(i)})^2 σj2=