PCA-python实现综合评价求解
今天帮人做了一个综合评价得分,下面是实现代码,Mat使我们的数据矩阵,k,是我们选择主成分数量,之后返回的是,主成分和特征值,我们求解一下贡献率,比值,加权求解就可以得到特征值。
·
PCA-python实现综合评价
今天帮人做了一个综合评价得分,下面是实现代码,Mat使我们的数据矩阵,k,是我们选择主成分数量,之后返回的是,主成分和特征值,我们求解一下贡献率,比值,加权求解就可以得到特征值,数据集我已上传到,我的资源当中,想要运行此代码的可以直接下载,也可以联系我
下面的代码并不全,我后面打算写一个续文,可以得到pca主成分,并且输出我们计算的评价指标到一个文件
续文已出,有完整代码:
点击跳转续文
数据显示如下:
import numpy as np
def pca_tre(Mat, k):
p,n = np.shape(Mat) # shape of Mat
t = np.mean(Mat, 0) # mean of each column
# substract the mean of each column
for i in range(p):
for j in range(n):
Mat[i,j] = float(Mat[i,j]-t[j])
# covariance Matrix
cov_Mat = np.dot(Mat.T, Mat)/(p-1)
# PCA by original algorithm
# eigvalues and eigenvectors of covariance Matrix with eigvalues descending
U,V = np.linalg.eigh(cov_Mat) #U 是特征值
index = np.argsort(-U)
if k > n:
print("k must lower than feature number")
return
else:
selectVec = np.matrix(V.T[index[:k]])
finalData = Mat * selectVec.T
return finalData,U#主成分
import pandas as pd
data=pd.read_excel(r"C:\Users\gaoxi\Desktop\data.xlsx")
#print(data.iloc[:, 1:].values)
data=data.iloc[:, 1:].values
finalData,u=pca_tre(data,2)
print(finalData,u)
更多推荐
已为社区贡献10条内容
所有评论(0)