机器学习python实践中sklearn.decomposition.PCA 主成分分析的三个关键属性的个人思考

最近在利用python对机器学习进行实践,学到PCA的时候,说实话,有点懵,然后吭哧吭哧去把PCA的原理搞懂了,然后在编程的时候,又发现无法将sklearn.decomposition.PCA主成分分析中的相关属性与理论联系起来,所以这篇文章,主要是依托互联网大佬给出的简单示例,去给出python编程时PCA类方法中的相关属性的理论对照,同时记录一下,如果有误请见谅,欢迎一起探讨。当然,如果这篇文章还能入得了各位“看官”的法眼,麻烦点赞、关注、收藏,支持一下!

在进入正题前,可能有些小伙伴对PCA并不了解,然后这里先给出三个我认为讲的都还不错的b站视频,链接如下,大家有需要的自取:

科研技能 | 主成分分析是什么?做一个奶奶也能看懂的教程!_哔哩哔哩_bilibili主成分分析(PCA)的原理和简单推导_哔哩哔哩_bilibili用最直观的方式告诉你:什么是主成分分析PCA_哔哩哔哩_bilibili

在这里也说一下个人对于PCA主成分分析的理解:

在我看来,PCA主成分分析本质上就是在坐标系下寻找一个坐标系,用坐标系来表征数据点的信息,但是要求数据点在坐标系的坐标轴方向上的方差要达到最大

当然,如果有小伙伴看了很多PCA讲解后还是不清楚主成分的具体概念是什么,可以参考下面链接所指向的文章:

 主成分分析(principal component analysis, PCA)公式_pca公式-CSDN博客

那么现在进入正题:

本文主要探讨sklearn.decomposition.PCA主成分分析中的以下三个属性的理论对照:

①component_           

②explained_variance_         

③explained_variance_ratio_

这里引用互联网大佬给出的具体事例进行说明:

具体事例的原文链接如下:

主成分分析(PCA)原理通俗解释,看完必懂_主成分分析法通俗易懂-CSDN博客

对X使用PCA主成分分析法进行降维,且X由五个样本点组成,即五列,每个样本点由两个特征组成,即两行

通过观察X可以知道,X已经完成了去中心化,即两个特征的均值均为0, 因此根据PCA主成分分析法的计算流程,可以先后得到协方差矩阵C,协方差矩阵的特征值λi,协方差矩阵对应的特征向量ci,贡献率Ai,特征向量矩阵P,以及由数据点在主成分方向上的投影距离所组成的矩阵Y,具体如下:

​​​​​将特征向量ci标准化后可得:

此处我们对Y求方差:

通过上对Y求方差,可以知道,主成分方向上的方差等于其对应的协方差矩阵的特征值

​​​​​将上述过程表达于图像之上,即:

结合数据和图像,不难发现,矩阵X中的五个数据点,都从原坐标系中投影到了斜线上,斜线的方向即可用标准化特征向量 表示,且原始坐标中的原点也为该斜线上的原点,同时,五个数据点在斜线上的投影距离共同构成了矩阵Y

现在我们在python编辑器中输入以下代码:

import numpy as np
#导入PCA
from sklearn.decomposition import PCA

X=np.array([[-1,-1,0,2,0],[-2,0,0,1,1]]).T
#‘.T’表示转置,等价于np.array([[-1,-2],[-1,0],[0,0],[2,1],[0,1]])
pca=PCA(n_components=1)#设置主成分数量为1
pca.fit(X)
X_pca=pca.transform(X)

print("X_pca为:\n{}\n".format(X_pca.T))
print("pca.components_为:\n{}\n".format(pca.components_))
print("pca.explained_variance_为:\n{}\n".format(pca.explained_variance_))
print("pca.explained_variance_ratio_为:\n{}\n".format(pca.explained_variance_ratio_))

运行上述代码我们可以得到以下结果:

 对比理论计算和程序运行计算结果,可以知道:

①经过PCA转换的数据X_pca=矩阵Y,所以经过PCA转换化的数据等于各数据点在主成分所构成的新的坐标系下的坐标

②pca.component_=标准化特征向量,所以属性component_表示的是数据点所投影到的直线在原坐标系中的单位方向向量,即原始数据点的主成分

③pac.explained_variance_=特征值λ1,所以属性explained_variance_表示的是协方差矩阵的特征值,即对应主成分方向上的方差

④pca.explained_variance_ratio_=贡献率A1,所以属性explained_variance_ratio_表示的是贡献率

  • 36
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值