python hstack_无监督数据降维技术-主成分分析(PCA)的Python实现

网上已经有非常多的大佬讲解了PCA的原理,我这里不再赘述原理问题,主要说一说如何用代码实现我们PAC与Python自己的库

如果有小伙伴想了解PCA的具体数学原理,我推荐大家看看这两篇文章,讲的都非常到位了。

主成分分析(Principal components analysis)-最大方差解释​www.cnblogs.com
93a0016c8d1e500f76944d6202ea65dc.png
https://blog.csdn.net/zhongkelee/article/details/44064401​blog.csdn.net

那么我们就开始讲解我们的实现步骤:

我们假定data是我们事先读入的CSV文件中的数据

X是我们的特征值,y是我们的类标

第一步:对我们的原始数据进行标准化处理

from sklearn import StandarScaler
sc = StandarScaler()
X_std = sc.fit_transform(X)

第二步:构造协方差矩阵

第三步:得到特征值和特征向量

import numpy as np
cov_mat = np.cov()//得到协方差矩阵
vals,vecs = np.linalg.eig(cov_mat)//得到特征值和特征向量

第四步:得到前K个特征值对应的特征向量

第五步:构造特征向量组成矩阵

pairs = [(np.abs(vals[i],vector[:,i]) for i in range(len(vals)))]
pairs.sort(reverse = True)
w = np.hstack((pairs[0][1][:,np.newaxis],pairs[1][1][:,np.newaxis]))

最后让我们的数据集点乘这个矩阵即可

我们也可以使用scikit-learn进行主成分分析

from sklearn.decomposition import PCA
pca=PCA(n_components=2)
X=pca.fit_transform(X)

好了,实现就是这么简单明了,但是如果要搞懂其背后的数学含义还是要下一番大功夫的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值