作业一 PCA降维练习

【题目】

1.现有我国大陆30个省、直辖市、自治区的经济发展状况数据集如表所示,包括8项经济指标:国民生产总值(A1);居民消费水平(A2);固定资产投资(A3);职工平均工资(A4);货物周转量(A5);居民消费指数(A6);商品零售价格指数(A7);工业总产值(A8),试用基本PCA方法将这8项经济指标融合成3项综合指标。

【要求】

1.写出PCA完成降维的主要步骤;

2.详细写出题目降维的计算过程;

3.请大家在博客中直接完成或在作业本上完成后拍照上传。

点击查看代码
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']]
data1 = np.mat(data)
dataT = data1.T
a=[]
b=[]
c=[]
d=[]
e=[]
f=[]
g=[]
h=[]
for i in range(30):
    for j in range(8):
        if(j==0):
            a.append(dataT[j,i])
        elif(j==1):
            b.append(dataT[j,i])
        elif(j==2):
            c.append(dataT[j,i])
        elif(j==3):
            d.append(dataT[j,i])
        elif(j==4):
            e.append(dataT[j,i])
        elif(j==5):
            f.append(dataT[j,i])
        elif(j==6):
            g.append(dataT[j,i])
        elif(j==7):
            h.append(dataT[j,i])
a = np.mat(a)
b=np.mat(b)
c = np.mat(c)
d = np.mat(d)
e=np.mat(e)
f = np.mat(f)
g=np.mat(g)
h=np.mat(h)
W = np.concatenate((a,b,c,d,e,f,g,h))#拼接数组
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-04 10:20  杜怡丹  阅读(39)  评论(0)    收藏  举报