作业一:PCA降维练习

作业一:PCA降维作业

代码

点击查看代码
#author:qiao_px
#@Time 2022/10/31  16:11
#@File ceshiPCA.py
import pandas as pd
from sklearn.decomposition import PCA
import numpy as np
data = pd.read_excel("./我国大陆经济发展状况数据.xlsx",header=None)
data = data[2:]
rename = ['province','A1','A2','A3','A4','A5','A6','A7','A8']
data.columns=rename
A1 = data['A1'].mean()
A2 = data['A2'].mean()
A3 = data['A3'].mean()
A4 = data['A4'].mean()
A5 = data['A5'].mean()
A6 = data['A6'].mean()
A7 = data['A7'].mean()
A8 = data['A8'].mean()
data = data[['A1','A2','A3','A4','A5','A6','A7','A8']]
# print(data)
# print(A1,'\n',A2,'\n',A3,'\n',A4,'\n',A5,'\n',A6,'\n',A7,'\n',A8)
data1 = np.mat(data)
# print(data1)
dataT = data1.T
# print(dataT)
# print(dataT[0].shape)
a= []
for i in range(30):
    # print(dataT[0,i])
    newData = dataT[0,i]-A1
    a.append(newData)
a=np.mat(a)
b=[]

for i in range(30):
    # print(dataT[0,i])
    newData = dataT[1,i]-A2
    b.append(newData)
b=np.mat(b)
c=[]
for i in range(30):
    # print(dataT[0,i])
    newData = dataT[2,i]-A3
    c.append(newData)
c = np.mat(c)
d=[]
for i in range(30):
    # print(dataT[0,i])
    newData = dataT[3,i]-A4
    d.append(newData)
d = np.mat(d)
e=[]
for i in range(30):
    # print(dataT[0,i])
    newData = dataT[4,i]-A5
    e.append(newData)
e = np.mat(e)
f = []
for i in range(30):
    # print(dataT[0,i])
    newData = dataT[5,i]-A6
    f.append(newData)
f = np.mat(f)
g =[]
for i in range(30):
    # print(dataT[0,i])
    newData = dataT[6,i]-A7
    g.append(newData)
g = np.mat(g)
h=[]
for i in range(30):
    # print(dataT[0,i])
    newData = dataT[7,i]-A8
    h.append(newData)
h = np.mat(h)
# print(a,'\n',b,'\n',c,'\n',d,'\n',e,'\n',f,'\n',g,'\n',h)
W = np.concatenate((a,b,c,d,e,f,g,h))
# print(W.shape)
W1 = np.mat(W)
W11 = W1.T
tr,S = np.linalg.eig(W11.T*W11)
# print(tr)
#S为样本特征矩阵
print('样本特征矩阵:',S)
# print(S[0],S[1],S[2])
S1 = np.concatenate((S[0],S[1],S[2]))
#投影矩阵
print('投影矩阵:',S1)

#低维样本特征矩阵
SSS = S1*S
print('低维样本特征矩阵:',SSS)
## 解题步骤

image

image

image

posted @ 2022-11-01 20:46  decode("utf-8")  阅读(89)  评论(0编辑  收藏  举报
/* 设置动态特效 */ levels of contents