import numpy as np

def PCA(X,k): # 输入参数: # X: 每一行对应一个样本的特征向量,每一列对应一个特征 # k:选取的主成分数量

# 输出参数:
# W:降维矩阵

n = X.shape[0]

######### 需要你完成: #########
# 1. 计算数据的均值向量mu
mu = np.mean(X, axis=0)
# 2. 计算数据的协方差矩阵S
S = np.cov(X.T)
# 3. 对S进行特征值分解,求得其特征值L以及对应的特征向量U
L,U = np.linalg.eig(S)
# 4. 选取L中前k个最大的特征值所对应的特征向量构成降维矩阵W
idx = np.argsort(L)[::-1][:k]
W = U[:, idx]
###############################

return W

原文地址: https://www.cveoy.top/t/topic/i7gA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录