主成份分析

概念

主成份分析(PCA)是一种维度归约的技术。
(维度规约:把高维数据转换成低维数据的。)

涉及的其他概念

  1. 数据标准化处理
  2. 计算相关系数(矩阵)、协方差cov,
    【知乎】如何通俗易懂地解释「协方差」与「相关系数」的概念?https://www.zhihu.com/question/20852004
  3. 特征根
  4. 特征向量
  5. 矩阵方程求解

用途

用较少的变量去解释原始数据中的大部分变量,将许多相关性很高的变量转化成彼此相互独立或不相关的变量。

计算步骤

1.设原始变量为数据矩阵X(n,P),共n条记录,P个属性(列)。
2.将矩阵X按列进行中心标准化,继续记为X(z-score 标准化)。


3.按列计算相关系数矩阵,记为R。
相关系数 = 协方差xy / (样本标准差x样本标准差y)
相关系数计算公式

  1. 求R的特征方程|R-λE|=0 的特征根 λ1≥λ2≥λp>0
  2. 确定主成份个数m。
    分子为第1-第m个特征值的和
    分母为所有特征值的和
    分子/分母>a,一般a去80%。即这m个主成份可以概括80%的信息。
  3. 计算m个相应的单位特征向量:
    把上面m个λ代入方程,求(R-λE)β=0的解,
    得β1、β2、β3..βm
  4. 计算主成份:
    Zi= Xβ,i=1,2,3...m

对计算步骤的理解

  1. 过程如上,首先对矩阵数据进行标准化转换,提升模型的精度。
  2. 对标准化后的矩阵数据,求出每一条记录中两两属性列之间的相关系数。
  3. 由于原矩阵可以分解成特征值Λ及特征向量U。所以计算出相关系数矩阵的所有特征根,这所有的特征根(以及相应的特征向量),包含了100%的数据变量信息。
  4. 把特征根从大到小排序求和,取m个特征值,目的是为了概括80%~90%的信息。
  5. 计算出对应的单位特征向量。
  6. 计算主成份。

python中如何做主成份分析

在python中,主成份分析的函数在Scikit-Learn下:
sklearn.decomposition.PCA

from sklearn.decomposition import PCA

pca = PCA()
pca.fit(data)
pca.components_ #返回模型的各个特征向量(原始数据)
pca.explained_variance_ratio_ # 返回各个成分各自的方差百分比(贡献率)
# 根据以上贡献率,选取前n个主成份,累积贡献率达到95%左右。然后重新建立模型
pca = PCA(3)#这里假设前3个主成份已经足够代表数据集的大部分信息。
pca.fit(data)
low_d = pca.transform(data) #计算出主成份结果。
#到这里位置,原始数据已经从8维降到了3个维度,同时这三个维度占了原始数据大部分的信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • PCA 算法主要是把高维度的数据降为低维度数据。典型地应用包括数据压缩和数据可视化。本文介绍 PCA 算法及其典型...
    kamidox阅读 10,497评论 6 12
  • 数学是计算机技术的基础,线性代数是机器学习和深度学习的基础,了解数据知识最好的方法我觉得是理解概念,数学不只是上学...
    闯王来了要纳粮阅读 23,156评论 2 48
  • 一、创建一个文件夹,将模块文件放入A中。 在下面的例子中,模块文件是nester.py,文件夹是nester。...
    金石明镜阅读 1,895评论 0 1
  • 爬上四楼 三楼的灯灭了 开机又慢成两分钟 老旧的笔记本 冯唐写了新诗 少了鸡鸡肿胀 吃了一碗不正宗的酸辣粉 没加香...
    叫我哪托阅读 1,864评论 1 1
  • 7.6 Editing 7.6.1 让一个文档区域可以编辑:contenteditable属性 一个元素节点拥有可...
    IAIAE阅读 1,837评论 0 1

友情链接更多精彩内容