# PCA 模型实验
## 实验目的
实现一个 PCA 模型,能够对给定数据进行降维(即找到其中的主成分)
实验要求及实验环境
### 实验要求
**测试:**
首先人工生成一些数据(如三维数据),让它们主要分布在低维空间中,如首先让某个维度的方差远小于其它唯独,然后对这些数据旋转。生成这些数据后,用你的 PCA 方法进行主成分提取。
找一个人脸数据(小点样本量),用你实现 PCA 方法对该数据降维,找出一些主成分,然后用这些主成分对每一副人脸图像进行重建,比较一些它们与原图像有多大差别(用信噪比衡量)。
## 实验环境
OS: Windows 11 Python: 3.7.9
### 设计思想
PCA(主成分分析,Principal Component Analysis)是最常用的一种降维方法。PCA 的主要思想是将 D 维特征通过一组投影向量映射到 K 维上,这 K 维是全新的正交特征,称之为主成分,采用主成分作为数据的代表,有效地降低了数据维度,且保留了最多的信息。关于 PCA 的推导有两种方式:最大投影方差和最小投影距离。
最大投影方差:样本点在这个超平面上的投影尽可能分开
最小投影距离:样本点到这个超平面的距离都足够近
在开始 PCA 之前需要对数据进行预处理,即对数据中心化。设数据集 ![](https://www.writebug.com/myres/static/uploads/2022/9/6/86879226bc9b847fa021bfccb39ca7bb.writebug)其中![](https://www.writebug.com/myres/static/uploads/2022/9/6/640d723ff3577233fb3f57b380bf730f.writebug)
即 X 是一个 n*d 的矩阵。则此数据集的中心向量(均值向量)为:![](https://www.writebug.com/myres/static/uploads/2022/9/6/64351f76b5d510c9da838be57a866ca2.writebug)
对数据集每个样本均进行操作:![](https://www.writebug.com/myres/static/uploads/2022/9/6/6e36150e7bf1128614fdd76cb2c71393.writebug)就得到了中心化后的数据,此时有![](https://www.writebug.com/myres/static/uploads/2022/9/6/362d1c7cf23350cb246da376e7d8d1cb.writebug)
中心化可以给后面的计算带来极大的便利,因为中心化之后的常规线性变换就是绕原点的旋转变化,也 就是坐标变换。此时,协方差为
![](https://www.writebug.com/myres/static/uploads/2022/9/6/d6228bf5e74afa76c292d2d87f977b0b.writebug)
设使用的投影坐标系的一组标准正交基为![](https://www.writebug.com/myres/static/uploads/2022/9/6/1d16d60cd3c883d954b539b1375fc0b7.writebug)
对于任意一个样本 ,在新的坐标系中的投影为![](https://www.writebug.com/myres/static/uploads/2022/9/6/a3b0041d3cd983f7ae30074ee474f074.writebug)在新坐标系中的投影方差为![](https://www.writebug.com/myres/static/uploads/2022/9/6/a62b9e8e9edc0e490c4287d628ac2e97.writebug)要使所有的样本的投影方差和最大,也就是求![](https://www.writebug.com/myres/static/uploads/2022/9/6/f63b79735a4df27b5232cfffbe47392a.writebug)即![](https://www.writebug.com/myres/static/uploads/2022/9/6/914f80d20f0013f206e05c8058d1c691.writebug)
求解:在 方向投影后的方差
![](https://www.writebug.com/myres/static/uploads/2022/9/6/cdfe729b6e1f16cc3d547b966dd83ccd.writebug)
因为 是投影方向,且已经假设它是单位向量,即![](https://www.writebug.com/myres/static/uploads/2022/9/6/a40452ad0a77cd1247b839d1d601beb2.writebug) ,用拉格朗日乘子法最大化目标函数:
![](https://www.writebug.com/myres/static/uploads/2022/9/6/ea275dad70fbc65b654d8e79b5dd1dbe.writebug)对 U1 求导,令导数等于 0,解得![](https://www.writebug.com/myres/static/uploads/2022/9/6/a9b3e8a83e96bf142418302cf7eb200a.writebug) ,显然, 和 是一组对应的 的特征向量和特征 值,所以有![](https://www.writebug.com/myres/static/uploads/2022/9/6/8721a04968889016df59859c32a7511d.writebug) ,结合在 方向投影后的方差式,可得求得最大化方差,等价于求最大的特 征值。
要将 维的数据降维到 维,只需计算前 个最大的特征值,将其对应的特征向量(d×1 的)转为行 向量(1×d 的)组合成特征向量矩阵 ,则降维压缩后的矩阵为![](https://www.writebug.com/myres/static/uploads/2022/9/6/c6d2ae8a37e33b2da3a29f89545f0777.writebug) 。
## 实验结果分析
## 二维降到一维
生成高斯分布数据的参数:
降维结果如下:
![](https://www.writebug.com/myres/static/uploads/2022/9/6/82f197e4b3c3885e27c4cc92058e2466.writebug)
## 三维降到二维
生成高斯分布数据的参数:
降维结果如下:
![](https://www.writebug.com/myres/static/uploads/2022/9/6/6ef199d4bcb12c5117401f3371ed3793.writebug)
可以看到,各点降维到一个平面:
![](https://www.writebug.com/myres/static/uploads/2022/9/6/c29a25e64e26c1d52ec733470e4ad1de.writebug)
## 人脸数据测试
![](https://www.writebug.com/myres/static/uploads/2022/9/6/ab7d94808be40e14b9712bf11b4550d3.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/9/6/257c352b87dc4d86af124848c843372e.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/9/6/48b7250edf3f84d0cab8c7c20c9b1901.writebug)
## 结论
PCA 用于图片的降维可以极大地缓解存储压力,尤其是在如今像素越来越高的情况下,但在维度的选择上需要合适,太低会使图片无法辨认。使用 PCA 降维我们只需要存储三个比较小的矩阵,能够较大地节省存储空间。
![](https://www.writebug.com/myres/static/uploads/2022/9/6/fe7903354f4bde9bb4650b895d249562.writebug)
## 参考文献
《机器学习》
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
PCA(主成分分析,Principal Component Analysis)是最常用的一种降维方法。PCA 的主要思想是将 D 维特征通过一组投影向量映射到 K 维上,这 K 维是全新的正交特征,称之为主成分,采用主成分作为数据的代表,有效地降低了数据维度,且保留了最多的信息。关于 PCA 的推导有两种方式:最大投影方差和最小投影距离。
资源推荐
资源详情
资源评论
收起资源包目录
100011736-基于Python 进行PCA 模型实验.zip (5个子文件)
pca211
Code
utils.py 3KB
main.ipynb 1.01MB
LICENSE 1KB
1190200501-林燕燕-实验4.pdf 1.03MB
README.md 6KB
共 5 条
- 1
资源评论
神仙别闹
- 粉丝: 2679
- 资源: 7667
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功