当前位置:网站首页>11、PCA 介绍
11、PCA 介绍
2022-06-13 12:05:00 【nsq1101】
背景
在许多领域的研究与应用中,通常需要对含有多个变量的数据进行观测,收集大量数据后进行分析寻找规律。
因此需要找到一种合理的方法,在减少需要分析的指标同时,尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。
1、 PCA 介绍
PCA(Principal Component Analysis) 是一种常见的数据分析方式,常用于高维数据的降维,可用于提取数据的主要特征分量。
PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征
2、 PCA 步骤和实例分析
2.1 步骤
1、求均值,每列减去对应的均值
2、求特征协方差矩阵
3、求协方差的特征值和特征向量
4、特征值排序,选择最大的k个,特征向量分别作为列向量组成特征向量矩阵。
5、样本点投影到选取的特征向量上
2.2 实例
现在假设有一组数据如下:

行代表了样例,列代表特征,这里有10个样例,每个样例两个特征。可以这样认为,有10篇文档,x是10篇文档中“learn”出现的TF-IDF,y是10篇文档中“study”出现的TF-IDF。
第一步,分别求x和y的平均值,然后对于所有的样例,都减去对应的均值。这里x的均值是1.81,y的均值是1.91,那么一个样例减去均值后即为(0.69,0.49),得到

第二步,求特征协方差矩阵,如果数据是3维,那么协方差矩阵是

这里只有x和y,求解得
对角线上分别是x和y的方差,非对角线上是协方差。协方差是衡量两个变量同时变化的变化程度。协方差大于0表示x和y若一个增,另一个也增;小于0表示一个增,一个减。如果x和y是统计独立的,那么二者之间的协方差就是0;但是协方差是0,并不能说明x和y是独立的。
第三步,求协方差的特征值和特征向量,得到

上面是两个特征值,下面是对应的特征向量,特征值0.0490833989对应特征向量为,这里的特征向量都归一化为单位向量。第四步,将特征值按照从大到小的顺序排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。
这里特征值只有两个,我们选择其中最大的那个,这里是1.28402771,对应的特征向量是(-0.677873399, -0.735178656)T。第五步,将样本点投影到选取的特征向量上。假设样例数为m,特征数为n,减去均值后的样本矩阵为DataAdjust(mn),协方差矩阵是nn,选取的k个特征向量组成的矩阵为EigenVectors(nk)。那么投影后的数据FinalData为
FinalData(101) = DataAdjust(10*2矩阵) x 特征向量(-0.677873399, -0.735178656)T
得到的结果是
这样,就将原始样例的n维特征变成了k维,这k维就是原始特征在k维上的投影。
3、 代码实例
##用sklearn的PCA
from sklearn.decomposition import PCA
import numpy as np
X = np.array([[-1, 1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
pca=PCA(n_components=1)
pca.fit(X)
print(pca.transform(X))
4、 总结
- 缓解维度灾难:
PCA 算法通过舍去一部分信息之后能使得样本的采样密度增大(因为维数降低了),这是缓解维度灾难的重要手段; - 降噪:
当数据受到噪声影响时,最小特征值对应的特征向量往往与噪声有关,将它们舍弃能在一定程度上起到降噪的效果; - 过拟合:
PCA 保留了主要信息,但这个主要信息只是针对训练集的,而且这个主要信息未必是重要信息。有可能舍弃了一些看似无用的信息,但是这些看似无用的信息恰好是重要信息,只是在训练集上没有很大的表现,所以 PCA 也可能加剧了过拟合; - 特征独立:
PCA 不仅将数据压缩到低维,它也使得降维之后的数据各特征相互独立;
边栏推荐
- Problems encountered in using the Pluto table of the flutter plug-in
- Lucene从入门到实战
- Product story | YuQue drawing board you don't know
- 产品故事|你所不知道的语雀画板
- Web development project, web single page development
- What is the appropriate setting for the number of database connections?
- 【TcaplusDB知识库】TcaplusDB-tcapulogmgr工具介绍(一)
- Web 3.0? High cost version of P2P
- [tcapulusdb knowledge base] Introduction to tcapulusdb table data caching
- break algorithm---dynamic planning(dp-func)
猜你喜欢

【TcaplusDB知识库】TcaplusDB-tcapulogmgr工具介绍(二)

【TcaplusDB知识库】TcaplusDB-tcaplusadmin工具介绍

Pointnet: deep learning on point sets for 3D classification and segmentation

Audio and video technology development weekly 𞓜 249

Query the current number of computer CPU cores

kubernetes 部署 ActiveMQ

【福利】,分分钟搞定

2022年二建《市政》科目答案已出,请收好

基于STM32F103——SIM900A发送短信+串口打印

致力超表面光子芯片产品研发与制造,山河光电完成数千万元Pre-A轮融资
随机推荐
Fuel scheme and product business modeling
【TcaplusDB知识库】TcaplusDB分析型文本导出介绍
Web developer, web development background development
Review guide for students
基于STM32F103——AS608指纹模块+串口打印
【TcaplusDB知识库】TcaplusDB-tcapulogmgr工具介绍(二)
Web 3.0? High cost version of P2P
【TcaplusDB知识库】TcaplusDB-tcapulogmgr工具介绍(一)
kubernetes 部署 ActiveMQ
面试突击56:聚簇索引和非聚簇索引有什么区别?
Audio and video technology development weekly 𞓜 249
[tcapulusdb knowledge base] Introduction to tcapulusdb tcapsvrmgr tool (II)
Mac 安装 MySQL 教程
Pulsar 生产者
Docker dockerfile installation mysql5.7
The answer to the subject "highway" of the second construction company in 2022 has been provided. Please keep it
Text error correction -- crisp model
Adaptation of multi system docking and application of packaging mode
Lvgl Library Tutorial 01- porting to STM32 (touch screen)
(Yousheng small message-04) how to use mobile WPS for electronic signature on PDF