Preface
Principal Components Analysis(主成份分析)
Principal Components Analysis
我们在上一篇文章中说讲述的 Andrew Ng机器学习课程笔记(十六)之无监督学习之因子分析模型与EM算法的因子分析是基于概率模型对样例的个数 m m 都小于其特征个数,甚至样例的个数 m m 都远远小于其特征个数情况的处理。 这里我们将使用一种改进的因子分析方法PCA来解决问题(PCA以前也叫做Principal Factor Analysis,PFA)。
Problem
对于给定的数据集 S={x(i)∈Rn;i=1,...,m} S = { x ( i ) ∈ R n ; i = 1 , . . . , m } ,我们希望得到一个更低维的数据集合 S′={x(i)∈Rk;i=1,...,m;k<n} S ′ = { x ( i ) ∈ R k ; i = 1 , . . . , m ; k < n } 。
Normalize Mean and Variance
- 置均值 μ=0 μ = 0 , μ=1m∑mi=1x(i) μ = 1 m ∑ m i = 1 x ( i ) ;
- 用 x(i)−μ x ( i ) − μ 替换 x(i) x ( i ) ;
- 置方差 σ2j σ j 2 为单位向量, σ2j=1m∑mi=1(x(i)j)2 σ j 2 = 1 m ∑ i = 1 m ( x j ( i ) ) 2 ;
- 用 x(i)j/σj x j ( i ) / σ j 替换每一个 x(i)j x j ( i ) ;
在上述过程中步骤1-2完成将样本数据均值置0;步骤3-4完成将样本数据方差置1;使得数据保持统一规格。值得一提的是:当数据本身就是同一规格时,步骤3-4可以忽略。
For Example
我们现在以二维数据到一维数据的例子来说明:
假设我们已经对数据集
S={x(i)∈Rn;i=1,...,m}
S
=
{
x
(
i
)
∈
R
n
;
i
=
1
,
.
.
.
,
m
}
进行了规范化处理,所以有:
我们将数据集中的数据投影到一三象限的角平分线上,可以看出投影后的数据有较大的方差。
我们将数据集中的数据投影到二四象限的角平分线上,可以看出投影后的数据有较小的方差。
根据方差最大化理论,我们认为将数据投影到一三象限的角平分线上好,因为投影后的样本点之间方差大。
Principal Components Analysis
步骤一:规范化数据,即数据集
S={x(i)∈Rn;i=1,...,m}
S
=
{
x
(
i
)
∈
R
n
;
i
=
1
,
.
.
.
,
m
}
中的每一个样本
x(i)
x
(
i
)
满足均值为零,且有单位方差。
步骤二:向某一个特定方向的单位向量
u
u
投影,使得投影之后的样本方差最大。
所以投影样本数据可以表示为:
由于投影后均值为 0,投影之后的样本方差可以表示为:
步骤三:在投影之后的样本方差公式中的中间那部分是样本特征的协方差矩阵 (当 x x 的均值为 0 时,一般协方差矩阵都除以 m‐1,这里用 m)。
令, λ=uT(1m∑mi=1x(i)x(i)T)u λ = u T ( 1 m ∑ m i = 1 x ( i ) x ( i ) T ) u ,所以使得投影之后的样本方差最大的目标问题可以表示为:
步骤四: 由于 u u 是单位向量,即。所以:
所以 λ λ 为的特征值, u u 为的特征向量。所以,最佳的投影直线是特征值 λ λ 最大时对应的特征向量,其次是第二大对应的特征向量,依次类推。
所以:
步骤五:因此,我们只需要对协方差矩阵 Σ Σ 进行特征值分解,得到的前大特征值对应的特征向量就是最佳的 k k 维新特征,而且这维新特征是正交的。得到前 k k 个以后,样例 x x 通过以下变换可以得到新的样本。
对于步骤五我们还需要引入累计贡献率来论证:
由于协方差矩阵是正定矩阵,并且我们对特征值(假设有n个)按大小排序后,可以得到:
称 λi/∑ni=1λi λ i / ∑ n i = 1 λ i 为第 i i 个主成份的贡献率。
称前k个主成份的累计贡献率。这个累计贡献率表示这 k k 个主成份能够多大程度上代表原始数据。所以我们在步骤五中选择最大的个特征值对应的特征向量来作为投影方向能够在尽可能的程度上代表原始数据。