import numpy as np
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
iris_data = np.loadtxt('iris_train_data.csv', skiprows=1, delimiter=',',usecols=[1,2,3,4,5])
iris = iris_data[:,:4]
labels = iris_data[:,4]
#sklearn的PCA实现
pca = PCA(n_components=2)
pca_x2d_sklearn = pca.fit_transform(iris)
# print(pca.explained_variance_ratio_)
#手算实现
iris_x = iris - iris.mean(axis=0)
iris_cov = np.cov(iris_x, rowvar=False)
eig_vals, eig_vecs = np.linalg.eig(iris_cov)
index = np.argsort(-np.abs(eig_vals))
pca_x2d_hand = iris_x.dot(eig_vecs[:,index[:2]])
#SVD分解实现
U,D,VT = np.linalg.svd(iris_x)
W = VT.T[:,:2]
pca_x2d_svd = iris.dot(W)
print('sklearn'+'.'*30)
print(pca_x2d_sklearn[:5,:])
print('hand'+'.'*30)
print(pca_x2d_hand[:5,:])
print('SVD'+'.'*30)
print(pca_x2d_svd[:5,:])
print
PCA的python实现
最新推荐文章于 2023-12-31 16:26:13 发布
本文详细介绍了PCA主成分分析的基本概念,并通过Python代码展示了如何进行PCA降维处理,包括数据预处理、计算协方差矩阵、特征值分解等步骤,帮助读者深入理解并掌握PCA的实际应用。
摘要由CSDN通过智能技术生成