机器学习 -- PCA(Ⅰ PCA介绍)

1. PCA是什么?

        PCA,全称Principal Component Analysis(主成分分析)。主成分分析法本身是一个非监督的机器学习算法,主要用于数据的降维。降维可以发现更便于人们理解的特征。主成分分析法也有其他应用:如可视化;去噪。

 

举例:

如图所示有二维平面,横轴和纵轴分别代表不同特征,座标上有如下样本。

要将此二维特征进行降维,则考虑以下两种方式:

(1)若抛弃特征2,保留特征1进行降维:

(2)若抛弃特征1,保留特征2进行降维:

(3)比较

比较两个降维方案,我们认为右边是较好的降维方案。因为右图中点与点距离较大,即点与点之间有较高的可区分度,保持了原来的点之间距离。而左侧与原先点之间分布差异更大。而右边是最好的方案吗?

若给出一条直线如图。

将所有点映射到此直线上,如图所示。

这样点与点之间距离更大,区分度更高,同时使得降维后的点的位置更接近与原先点位置。

问题:如何找到这个让样本间间距最大的轴?

如何定义样本间间距?

使用方差(Variance)Var(x) = \frac{1}{m} \sum _{i=1}^m(x_i - \bar{x})^2

问题转化为:找到一个轴,使得样本空间的所有点映射到这个轴后,方差最大。

 

2. 方法

第一步:将样例的均值归为0(demean)

即所有样本都减去样本的均值。

即从图:

变为:

使得每一个样本在每个维度均值都为0。此时\bar{x} = 0 ,则方差化简为:Var(x) = \frac{1}{m} \sum _{i=1}^mx_i^2 。式子中x_i 为所有样本点映射在新的座标轴上对应的新的样本,二维中可表示为w = (w1, w2)。

我们想求一个轴的方向w = (w1, w2),使得所有样本映射到w后,有:Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m(X_{project}^{(i)} - \bar{X}_{project})^2 (映射后的方差值)最大。由于X是包含两个维度的向量,故可写成:Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m||X_{project}^{(i)} - \bar{X}_{project}||^2  求解最大值。

 

Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m||X_{project}^{(i)} - \bar{X}_{project}||^2 最大,由于进行了demean处理,故\bar{X}_{project} = 0,所以求解如下式子最大值。

Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m||X_{project}^{(i)}||^2

假设红线w = (w1, w2)为我们要寻找的方向,X^{(i)} = (X^{(i)}_1, X^{(i)}_2) 为样本点对应的向量,现X映射到w则做一垂线,交点 (X^{(i)}_{pr1}, X^{(i)}_{pr2}) 如下图。则我们要求的||X_{project}^{(i)}||^2 的平方对应的是下图蓝色线长度的平方。

X^{(i)} \cdot w = ||X^{(i)}|| \cdot ||w|| \cdot cos\theta (夹角为两红线之间夹角)

由于||w|| = 1,故可化为:

X^{(i)} \cdot w = ||X^{(i)}|| \cdot cos\theta = ||X^{(i)}_{project}||

即求: Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m||X^{(i)} \cdot w||^2 最大值。(可以不用||符号,因为两个向量点乘结果是一个数)。

Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m(X^{(i)}_1w_1 + X^{(i)}_2w_2 + ... + X^{(i)}_nw_n)^2

也可以表示为:

Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m (\sum _{j=1}^m(X^{(i)}_jw_j))^2

到此为止,主成分分析法就化成了一个目标函数的最优化问题,我们可以使用梯度上升法解决。

 

 

 

 

 

 

 

 

发布了306 篇原创文章 · 获赞 70 · 访问量 13万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章