PCA介绍以及简单实例

目录

  • 数学基础

  • 基变换

  • 特征值,特征向量

  • 线性变换

  • 协方差

  • 矩阵对角化

  • PCA简单实例

简介

PCA全称Principal Component Analysis,即主成分分析,是一种常用的数据降维方法。它可以通过线性变换将原始数据变换为一组各维度线性无关的表示,以此来提取数据的主要线性分量。

数学基础
向量的表示
  • 内积

a 1 , a 2 , ⋯   , a n ) T ⋅ ( b 1 , b 2 , ⋯   , b n ) T = a 1 b 1 + a 2 b 2 + ⋯ + a n b n a_{1},a_{2},\cdots ,a_{n})^T\cdot (b_1,b_2,\cdots,b_n)^T = a_1b_1+a_2b_2+\cdots+a_nb_n a1,a2,,an)T(b1,b2,,bn)T=a1b1+a2b2++anbn

几何解释

A ⋅ B = ∣ A ∣ ∣ B ∣ c o s ( a ) A\cdot B = \left | A \right |\left | B \right |cos(a) AB=ABcos(a)

设向量B的模维1 , 则A与B的内积值等于A向B所在的直线投影的矢量长度
af19c30e-a602-44d2-9bc4-edb27d5a7ac4.jpg

向量表示为(3,2)

实际上表示线性组合

x ( 1 , 0 ) T + y ( 0 , 1 ) T x(1,0)^T + y(0,1)^T x(1,0)T+y(0,1)T (1,0)就是X轴,(0,1)就是y轴

基变换

基是正交的(即内积为0 , 或者直观的说相互垂直)

要求: 线性无关

线性无关.jpg

将(3,2)映射到新的基上 xy

变换 : 数据与一个基做内积运算,结果作为第一个新的坐标分量,然后与第二个基做内积运算,结果作为第二个新坐标的分量

将数据(3,2)映射到基中的坐标

3-2.jpg

PCA算法在图像识别以及高维度数据降维处理中有很强的应用性,还可用于解析多元事物的主要影响因素、简化复杂问题等。以下结合引用内容介绍两个简单案例应用: - **人脸识别**:PCA可用于人脸识别。它能从多元事物中解析出主要影响因素,揭示事物本质,简化复杂问题,结合人脸识别实例,能利用其在降维和特征提取方面的有效性进行详细分析。通过计算特征值最大的特征向量对原始数据进行线性变换,可对人脸图像数据进行处理,比如将高维的人脸图像数据投影到较低维空间,从而实现特征提取和降维,有助于后续的识别工作 [^1][^2]。 - **高维度数据降维**:假设存在m条n维数据,PCA算法可按以下步骤对其降维。首先将原始数据按列组成n行m列矩阵X,接着将X的每一行进行零均值化(减去该行均值),之后求出协方差矩阵,再计算协方差矩阵的特征值及对应的特征向量,把特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P,最终得到降维到k维后的数据 [^3]。 ```python import numpy as np # 示例数据 X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) # PCA算法步骤实现 # 1. 将原始数据按列组成n行m列矩阵X # 这里X已经是符合要求的矩阵 # 2. 将X的每一行进行零均值化 X_mean = np.mean(X, axis=0) X_centered = X - X_mean # 3. 求出协方差矩阵 cov_matrix = np.cov(X_centered, rowvar=False) # 4. 求出协方差矩阵的特征值及对应的特征向量 eigenvalues, eigenvectors = np.linalg.eig(cov_matrix) # 5. 将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P k = 2 # 降维到2维 idx = eigenvalues.argsort()[::-1] eigenvectors = eigenvectors[:, idx] P = eigenvectors[:, :k] # 6. 得到降维到k维后的数据 X_reduced = np.dot(X_centered, P) print("降维后的数据:") print(X_reduced) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值