主成分分析(資料分析課本例3 9 1)

2021-08-15 10:34:14 字數 2481 閱讀 9325

python**:

# -*- coding: utf-8 -*-

"""created on tue feb  6 14:37:21 2018

e-mail = [email protected]

@author: didilv

"""# 專案內容:線性統計模型(線性回歸與方差分析)例3.9.1

import numpy as np

from sklearn import preprocessing

from numpy import linalg as la

# 匯入資料

# 匯入x

x1 = np.array([ [149.3, 4.2, 108.1],

[ 161.2, 4.1, 114.8],

[171.5, 3.1, 123.2],

[175.5, 3.1, 126.9],

[180.8, 1.1, 132.1],

[190.7, 2.2, 137.7],

[202.1, 2.1, 146.0],

[212.4, 5.6, 154.1],

[226.1, 5.0, 162.3],

[231.9, 5.1, 164.3],

[239.0, 0.7, 167.6]])

# 匯入y

y1 = np.array([15.9, 16.4, 19.0, 19.1, 18.8, 20.4, 22.7, 26.5, 28.1, 27.6, 26.3])

# 中心化標準化直接用相關的包進行處理

x = preprocessing.scale(x1)

y = preprocessing.scale(y1)

# 特徵值分解

u, sigma, vt = la.svd(np.dot(x.t, x))

#將第三個特徵值為0

sigma[2] = 0.0

#z就是主成分

z = np.dot(x,u)

#我們選取前兩個主成分:就是前兩列

z1 = z[:,:2]

z1tz1_inv = la.inv(np.dot(z1.t, z1))

# 這是對 alpha1的估計

alpha1 = np.dot(np.dot(z1tz1_inv,z1.t),y)

# 下面就是給alpha1某尾加上0

#這是最終的beta的數值

beta = np.dot(u,alpha)

'''# 因為到現在都是中心化和標準化的資料進行的回歸,

# 還有一步就是利用69頁下面的那個經驗回歸方程這樣的形式還原成3.9.1的例子的形式,

# 你完成吧!

'''

matlab**:

clear

%% 匯入資料(未經過中心化標準化的資料)

% 匯入x

x1 = [ 149.3, 4.2, 108.1;

161.2, 4.1, 114.8;

171.5, 3.1, 123.2;

175.5, 3.1, 126.9;

180.8, 1.1, 132.1;

190.7, 2.2, 137.7;

202.1, 2.1, 146.0;

212.4, 5.6, 154.1;

226.1, 5.0, 162.3;

231.9, 5.1, 164.3;

239.0, 0.7, 167.6;];

% 匯入y

y1 = [15.9, 16.4, 19.0, 19.1, 18.8, 20.4, 22.7, 26.5, 28.1, 27.6, 26.3]';

%% 中心化標準化: zscore函式

[m,n]=size(x1);

x = zscore(x1);

y = zscore(y1);

%% 特徵值分解: matlab裡面的svd對於對稱矩陣的時候就是特徵值分解

[u, sigma, v] = svd(x'*x); % 分解後的結果: x'x = u*sigma*v' ;

sigma(3,3)=0; %將第三個特徵值為0

z = x*u; % z就是主成分

z1 = z(:,1:2); % 我們選取前兩個主成分:就是前兩列

z2 = z(:,3); % 這是第三個主成分(第三列),由於對應的特徵值為0,所以捨掉,在後面沒有用到,只是寫到這裡符合課本的順序。

alpha0 = mean(y); % 這是對alpha0的估計

alpha1 = inv(z1'*z1)*z1'*y % 這是對 alpha1的估計

alpha = [alpha1; 0] % 我們看到alpha的第三個量為零,實際上就是把第三個主成分對應的係數改為了0

beta = u*alpha %

%% 還有一步就是利用69頁下面的那個經驗回歸方程這樣的形式還原成3.9.1的例子的形式,你完成吧!

%

主成分分析

主成分分析 pca 分析乙個隨機向量的中的主成分 主成分一般不是隨機向量中的某乙個分量,而是不同分量的線性組合,根據資訊理論的觀點,資訊的多少與方差有關,所以 主成分是方差最大的幾個成分 主成分分析的方法是求隨機向量的協方差矩陣 用樣本協方差矩陣代替 對於差異較大的資料,可採用相關矩陣代替協方差矩陣...

主成分分析

理論要點 1 主成分分析是一種無監督學習,因此不能用交叉驗證來檢驗誤差 2 在處理資料之前,要對資料做中心化處理 3 p太大的話,做特徵分解用svd 4 一共有min n 1,p 個主成分,因為中心化以後,rank要降一維 5 主成分的載荷向量就是協方差矩陣的特徵向量,對應特徵值最大的是第一主成分,...

主成分分析

1.概念 將一組可能存在相關性的隨機變數轉變成互不相關的隨機變數。這個概念裡有三個地方需要理解清楚。1 隨機變數的指代 在資料集中,每乙個樣本,即將資料集理解成乙個 的話,乙個樣本就是一行,則每一列就是乙個特徵,也就是乙個隨機變數,一列的所有取值就是隨機變數的所有可能取值 說的所有可能取值只針對訓練...