python主成分分析代码_主成分分析 (PCA) 与其高维度下python实现(简单人脸识别)

Introduction

主成分分析(Principal Components Analysis)是一种对特征进行降维的方法。由于观测指标间存在相关性,将导致信息的重叠与低效,我们倾向于用少量的、尽可能多能反映原特征的新特征来替代他们,主成分分析因此产生。主成分分析可以看成是高维空间通过旋转坐标系找到最佳投影(几何上),生成新维度,其中新坐标轴每一个维度都是原维度的线性组合\(\theta'X\)(数学上),满足:

新维度特征之间的相关性尽可能小

参数空间\(\theta\)有界

方差尽可能大,且每个主成分的方差递减

数学表示

对于样本 \(i \in N\) 有 \(p\) 维特征 \(X_{p \times 1}\) ,于是有 \(p\) 维主成分 \(Z_{1 \times p}\) ,以及参数空间 \(\theta_{p \times p}\) 满足:

\[ Z_{p \times 1} = \theta_{p \times p} X_{p \times 1} \] 其中

\(Z_1 = Z[0]\) 便是样本

\(i\)

的第一主成分值,以此类推。

\(\theta\)

可以看做是对原坐标系的正交变换,参数估计方法后面会详细讨论。针对上述三点的性质,分别对应有:

\(Cov(Z_i,Z_j)=0~~~i,j = 1,2, \cdots,p~and~i \neq j\)

\(\sum_{i =1}^{p}{\theta_{ij}^2} = 1~~~j = 1,2,\cdots,p\)

\(Var(Z_i) = max(Var(\theta_i X))~and~Var(Z_i)>Var(Z_j)~if~i

问题转换为,如何在满足以上性质下找到合适的 \(\theta\)

以二维特征为例

javaloading.gif

将原本二维空间以角 \(\alpha\) 旋转得到新坐标轴,此时在两轴上投影即主成分,我们可以写出此时 \(X\) 与 \(Z\) 的关系:

\[ \begin{cases} Z_1 = cos\alpha X_1 + sin\alpha X_2 \\ Z_2 = -sin\alpha X_1 + cos\alpha X_2 \end{cases} \]

参数 \(\theta\) 可以写成如下矩阵:

\[ \begin{bmatrix} cos\alpha & sin\alpha \\ -sin\alpha & cos\alpha \end{bmatrix} \] 从上图可以看出,二维平面上点的波动大部分可以归结为

\(Z_1\) 的波动,小部分可以归结为

\(Z_2\)

的波动,这样一来,二维问题可以降维至一维,只看

\(Z_1\)

,因为其反应了大部分信息。

Eigenvalue and Eigenvector

矩阵乘法的几何意义

对于上述示例的向量 \(X=\begin{bmatri

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值