主成分分析法(PCA)

算法简介

主成分分析法是一种特征提取的方法。它是一种常用的无监督学习方法,这一方法利用正交变换把由线性相关变量表示的观察数据转换为少数几个由线性无关变量表示的数据,线性无关的变量称为主成分。主成分分析主要用于发现数据中的基本结构,即数据中变量之间的关系,是数据分析的有利工具,也用于其他机器学习方法的前处理。
关键理论或技术技术。

特征提取

什么是特征提取算法呢?假设我们有一系列的样本X,每个X是N维的。举例来说,我们有一车西瓜作为样本,其中每一个西瓜都有大小、颜色、形状,重量等N个特征。但是这些特征中有很多特征是相互冗余的,比如西瓜的大小和重量就发生了冗余,因为大西瓜的重量一定也大。PCA所作的事情就是对这些冗余数据进行消除,只留下最有用的,换句话说,就是对数据进行降维。
我们可以从数学的角度进行阐述:
对于一个n维列向量x,我们可以构造一个m*n维的矩阵A,和一个m维列向量b,使得Y=Ax+b,得到的Y是m维的列向量,我们就可以用Y代替原来的X,从而实现降维。
在这里插入图片描述

算法主要思想以及公式推导

在这里插入图片描述
推导过程中用到了拉格朗日乘子法,不熟悉的同学可以复习一下高等数学的内容,下面给出简要的过程。
在这里插入图片描述

最后我们对PCA的流程做一个梳理

在这里插入图片描述

总结

降维技术使得数据变得更易使用,并且他们往往能够去除数据中的噪声,使得其他机器学习任务更加精确。降维往往作为预处理步骤,在数据应用到其他算法之前清洗数据。
PCA可以从数据中识别其主要特征,它是通过沿着数据最大方向差方向旋转坐标轴来实现的。选择方差最大的方向作为第一条坐标轴,后续坐标轴则与前面的坐标轴正交。协方差矩阵上的特征值分析可以用一系列的正交坐标轴来获取。

### 主成分分析法 (PCA) 的原理 主成分分析是一种用于降维的技术,旨在通过线性变换将一组可能存在相关性的变量转换成一组线性不相关的变量。这组新的变量被称为“主成分”,其中第一个主成分具有最大的方差,第二个主成分则是在与第一个主成分正交的前提下拥有最大方差,以此类推[^2]。 为了实现这一目标,算法会尝试找到能够最大化数据投影后方差的方向作为新坐标轴方向。这样做不仅减少了维度数量,还尽可能保持了原有数据集中的重要信息[^1]。 ### 实现过程概述 具体来说,PCA 的实现通常遵循以下几个方面: #### 数据预处理 在执行 PCA 之前,需要先对输入的数据进行中心化(即减去均值),有时还需要进一步标准化(即将标准差调整为 1)。这是因为不同尺度上的特征会影响最终的结果,因此有必要使各个特征处于相似的数量级上[^3]。 #### 计算协方差矩阵并求解特征值和特征向量 接着计算样本间的协方差矩阵或相关系数矩阵,并对该矩阵做谱分解得到对应的特征值及其相应的特征向量。这些特征向量定义了新的坐标系下的基底;而它们所关联的特征值反映了沿该方向变化的程度大小——较大的特征值意味着更多的变异被捕捉到了这条线上面。 ```matlab CM = corrcoef(SA); % 计算标准化后的数据的相关系数矩阵 [V, D] = eig(CM); % 计算相关系数矩阵的特征值D和特征向量V ``` #### 构建映射矩阵 选取前 k 个具有最高特征值的特征向量组成投影矩阵 W,这里 k 小于等于原空间维度 n 并决定了输出低维表示的空间维数 m=k。此操作实际上是从高维到低维的一个线性映射 T(x)=W^T * x ,它能有效地降低原始数据集中存在的冗余度同时保留大部分有用的信息。 ```python import numpy as np def pca(X, num_components): # 中心化数据 X_meaned = X - np.mean(X , axis=0) cov_mat = np.cov(X_meaned , rowvar=False) eigen_values , eigen_vectors = np.linalg.eigh(cov_mat) sorted_index = np.argsort(eigen_values)[::-1] sorted_eigenvectors = eigen_vectors[:,sorted_index] chosen_components = sorted_eigenvectors [:,:num_components] reduced_data = np.dot(chosen_components.transpose() , X_meaned.transpose()).transpose() return reduced_data ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值