(机器学习)PCA 具体怎么做 Principal Components Analysis

1 PCA步骤

PCA指的是给定一组数据,对数据进行降维
它分5步:

  1. 计算特征的协方差矩阵
  2. 计算协方差矩阵的特征值
  3. 计算特征值对应的特征向量
  4. 选取最大的k个特征值(k是你要降到的维度)对应的特征向量组成一个新矩阵
  5. 数据矩阵先进行中心化(center)再乘特征向量矩阵,构成一个新矩阵,即为降维后的数据

2 一个例子

假设我们现在拿到的数据一共有3个数据,分别是x_{1}, x_{2}, x_{3}, 其中每个数据有两个特征:
x_{1} = \left[ \begin{matrix} -1 \\ 1 \end{matrix} \right], x_{2} = \left[ \begin{matrix} -1 \\ -1 \end{matrix} \right], x_{3} = \left[ \begin{matrix} 2 \\ 0 \end{matrix} \right]
那么,我们的特征可以构成一个新矩阵:
X = \left[ \begin{matrix} -1 & 1 \\ -1 & -1 \\ 2 & 0 \end{matrix} \right]

2.1 计算协方差矩阵

我们首先计算协方差矩阵:
cov = \frac {1}{n} X^{T}X
其中,n是样本个数,可得:
cov = \left[ \begin{matrix} 2 & 0 \\ 0 & \frac {2}{3} \end{matrix} \right]

2.2 计算特征值

接下来,计算特征向量, 令:
det(cov- \lambda E) = 0
其中E是单位阵,则有:
det\left[ \begin{matrix} 2-\lambda & 0 \\ 0 & \frac {2}{3}-\lambda \end{matrix} \right] = 0
解得:
\lambda_{1} = 2, \lambda_{2} = \frac {2}{3}

2.3 计算特征向量

求特征向量,利用公式:
cov \times e_{1} = \lambda_{1} \times e_{1}
解得:
e_{1} = \left[ \begin{matrix} 1 \\ 0 \end{matrix} \right], e_{2} = \left[ \begin{matrix} 0 \\ 1 \end{matrix} \right]

2.4 选取k个特征向量

这里,我们只能选1个特征向量了,因为数据本来是2维的,只能降到1维,所以就选择
e_{1} = \left[ \begin{matrix} 1 \\ 0 \end{matrix} \right]

2.5 计算PCA后的数据

先对原始数据进行中心化,每个元素都减去它本列的均值,可得(和原来一样,因为每一列均值是1)
X' = \left[ \begin{matrix} -1 & 1 \\ -1 & -1 \\ 2 & 0 \end{matrix} \right]
那么,PCA后的数据:
P = X'e_{1}^{T} = \left[ \begin{matrix} -1 & 1 \\ -1 & -1 \\ 2 & 0 \end{matrix} \right] \left[ \begin{matrix} 1 \\ 0 \end{matrix} \right] = \left[ \begin{matrix} -1 \\ -1 \\ 2 \end{matrix} \right]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容