1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java 实现协方差_无监督数据降维技术-主成分分析(PCA)的Python实现

java 实现协方差_无监督数据降维技术-主成分分析(PCA)的Python实现

时间:2024-03-17 14:13:24

相关推荐

java 实现协方差_无监督数据降维技术-主成分分析(PCA)的Python实现

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

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

主成分分析(Principal components analysis)-最大方差解释​/zhongkelee/article/details/44064401​

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

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

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

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

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

第二步:构造协方差矩阵

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

import numpy as npcov_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 PCApca=PCA(n_components=2)X=pca.fit_transform(X)

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。