深度学习入门---PCA,白化 Python实现

本文介绍了PCA和白化的深度学习基础知识,并提供了Python代码实现,包括详细注释,基于数据集pcaData.txt。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

深度学习入门—PCA,白化 已经完整阐述了PCA和白化算法的原理,这篇博客更新其算法的Python实现。代码有很完整的注释。

#implement PCA
file=open('/notebooks/pcaData.txt','r')
dataSet=[]
for text in file:
    tt=text.strip().split()
    line=[]
    for t in tt:
        line.append(float(t))
    dataSet.append(line)
dataSet=np.array(dataSet)
dataSet.shape  #(2,45)

import matplotlib.pylab as plt
%matplotlib inline

#画出原数据
plt.figure(1)
plt.scatter(dataSet[0,:],dataSet[1,:])
plt.title("origin data")

#计算协方差矩阵sigma,以及特征向量矩阵u
sigma=dataSet.dot(dataSet.T)/dataSet.shape[1]
print(sigma.shape)  #(2,2)
[u,s,v] = np.linalg.svd(sigma)
print(u.shape)  #(2,2)

#画出两个主成分方向
plt.figure(2)
plt.plot([0, u[0,0]], [0, u[1,0]])   
plt.plot([0, u[0,1]], [0, u[1,1]])
plt.scatter(dataSet[0,:],dataSet[1,:])

#PCA转换数据,不降维
xRot=u.T.dot(dataSet)
xRot.shape   #(2,45)

#画出PCA转换后的数据
plt.figure(3)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值