【从零开始】主成分分析(PCA)学习笔记

主成分分析(PCA)学习笔记

PCA算法流程

1、数据预处理
2、求协方差矩阵
3、对协方差矩阵做特征值分解
4、选出最大的K个特征值对应K个特征向量
5、将原始数据投影到选取的特征向量
6、输出投影后的数据集

样本点

在这里插入图片描述

PyCharm实现

pycharm代码实现

// An highlighted block
import numpy as np
import matplotlib.pyplot as plt

data = np.genfromtxt('data.csv',delimiter = ',')
x_data = data[:,0]
y_data = data[:,1]
#plt.scatter(x_data,y_data)
#plt.show()

#预处理中心化
def zeroMean(dataMat):
    meanVal = np.mean(dataMat,axis = 0)
    newData = dataMat - meanVal
    return newData, meanVal


newData,meanVal = zeroMean(data)
covMat = np.cov(newData,rowvar = 0 )

eigVals,eigVects = np.linalg.eig(np.mat(covMat))

top = 1
eigValIndice = np.argsort(eigVals)
n_eigValIndice = eigValIndice[-1:-(top+1):-1]
n_eigVect = eigVects[:,n_eigValIndice]

lowDDataMat = newData * n_eigVect
reconMat = lowDDataMat * n_eigVect.T + meanVal

#原始数据
x_data = data[:,0]
y_data = data[:,1]
plt.scatter(x_data,y_data)
#plt.show()

#重构后数据
x1_data = np.array(reconMat)[:,0]
y1_data = np.array(reconMat)[:,1]
plt.scatter(x1_data,y1_data, c='r')
plt.show()

降维投影后

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值