栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

主成分分析PCA算法-python实现

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

主成分分析PCA算法-python实现

import numpy as np
import matplotlib.pyplot as plt

X = np.array([2.5, 0.5, 2.2, 1.9, 3.1, 2.3, 2.0, 1.0, 1.5, 1.1])
Y = np.array([2.4, 0.7, 2.9, 2.2, 3.0, 2.7, 1.6, 1.1, 1.6, 0.9])
X1 = sum(X) / len(X)
Y1 = sum(Y) / len(Y)

for i in range(len(X)):
    X[i] = X[i] - X1
    Y[i] = Y[i] - Y1

X = X[:, np.newaxis]
Y = Y[:, np.newaxis]
D = np.hstack((X, Y))
print("减去均值后的矩阵")
print(D)
cov_mat = np.cov(D.T)
print("协方差矩阵")
print(cov_mat)
eigen_vals, eigen_vecs = np.linalg.eig(cov_mat)
print("特征值")
print("eigen_vals = ", eigen_vals)
print("特征向量")
print("eigen_vecs = ", eigen_vecs)

Max_value = max(eigen_vals)
feature = np.array(eigen_vecs[:, 1])

finalData = D.dot(feature.transpose())
print("投影后的数据")
print(finalData)


运行结果

"D:py projectexervenvscriptspython.exe" "D:/py project/exer/PCA.py"
减去均值后的矩阵
[[ 0.69  0.49]
 [-1.31 -1.21]
 [ 0.39  0.99]
 [ 0.09  0.29]
 [ 1.29  1.09]
 [ 0.49  0.79]
 [ 0.19 -0.31]
 [-0.81 -0.81]
 [-0.31 -0.31]
 [-0.71 -1.01]]
协方差矩阵
[[0.61655556 0.61544444]
 [0.61544444 0.71655556]]
特征值
eigen_vals =  [0.0490834  1.28402771]
特征向量
eigen_vecs =  [[-0.73517866 -0.6778734 ]
 [ 0.6778734  -0.73517866]]
投影后的数据
[-0.82797019  1.77758033 -0.99219749 -0.27421042 -1.67580142 -0.9129491
  0.09910944  1.14457216  0.43804614  1.22382056]

Process finished with exit code 0

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/300352.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号