主成分分析练习(PCA)
原始数据:
程序:
import numpy as np
def pca(data):
row = np.size(data, 0) #行
col = np.size(data, 1) #列
avg = np.zeros([1, col])
for i in range(col):
avg[0, i] = np.mean(data[:, i])
for i in range(col):
data[:, i] = data[:, i] - avg[0, i]
mat=np.cov(data,rowvar=False)
print("mat:",mat)
eigenvalue, featurevector = np.linalg.eig(mat)
print("协方差矩阵:",mat)
print("特征值:", eigenvalue)
print("特征向量:", featurevector)
featurevector=np.transpose(featurevector)
finaldata=np.dot(data,featurevector[np.argmax(eigenvalue)])
print("最终结果",finaldata)
data=np.array([[2.5, 2.4],
[0.5, 0.7],
[2.2, 2.9],
[1.9, 2.2],
[3.1, 3],
[2.3, 2.7],
[2, 1.6],
[1, 1.1],
[1.5, 1.6],
[1.1, 0.9]])
pca(data)
运行结果: