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

主成分分析(PCA)

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

主成分分析(PCA)

例题来源于:
http://blog.csdn.net/zhongkelee/article/details/44064401

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, 1, 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])

x_avg = np.average(x)
y_avg = np.average(y)
x_adjust = x - x_avg
y_adjust = y - y_avg

H=np.vstack((x_adjust,y_adjust))
# x和y的平均值,然后对于所有的样例,都减去对应的均值。
H_T=np.transpose(H)
# 转置
cov=np.cov(x_adjust,y_adjust)
# 特征协方差矩阵, 对角线上分别是x和y的方差,非对角线上是协方差。
# 协方差是衡量两个变量同时变化的变化程度。

eigen_vals, eigen_vecs = np.linalg.eig(X)
#特征值是eigen_vals,特征向量是eigen_vecs

index = np.argsort(eigen_vals) 
#将特征值按从大到小排序,输出原来的下标
a = np.max(index)
vec=eigen_vecs[:,a] 
# vec为最大的特征值对应的特征向量
FinalData = np.dot(H_T,vec)
print(FinalData)

fig1=plt.figure()#创建一个绘图对象  
plt.title("PCA") #图像标题
plt.scatter(FinalData,y)
plt.show()
[-0.82797019  1.77758033 -0.99219749 -0.27421042 -1.67580142 -0.9129491
  0.09910944  1.14457216  0.43804614  1.22382056]

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

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

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