機器學習 一 PCA

2021-10-25 17:58:12 字數 3295 閱讀 9583

pca主要是用來對特徵進行降維的

參考**並茂的pca教程

設一矩陣xm行n列

將x的每一行(代表乙個屬性字段)進行零均值化

求出協方差矩陣c=1

mxxt

c=\fracxx^

c=m1​x

xt求出協方差矩陣的特徵值及對應的特徵向量

將特徵向量按對應特徵值大小從上到下按行排列成矩陣,取前k行組成矩陣p

y=px即為降維到k維後的資料 例項

原始資料集矩陣x:

( 11

2421

3344

)\begin 1& 1& 2& 4& 2&\\ 1& 3& 3& 4& 4& \end

(11​13

​23​

44​2

4​​)

求均值後:

( −1

−102

0−20

011)

\begin -1 & -1& 0& 2& 0\\ -2 & 0 &0 & 1& 1 \end

(−1−2​

−10​

00​2

1​01

​)求協方差矩陣:

c =1

5(−1

−102

0−20

011)

(−1−

2−10

0021

11)=

(654

5456

5)

c=\frac\begin -1 & -1& 0& 2& 0\\ -2 & 0 &0 & 1& 1 \end\begin -1 &-2 \\ -1& 0\\ 0&0 \\ 2&1 \\ 1 & 1 \end=\begin \frac &\frac \\ \frac & \frac \end

c=51​(

−1−2

​−10

​00​

21​0

1​)⎝

⎜⎜⎜⎜

⎛​−1

−102

1​−2

0011

​⎠⎟⎟

⎟⎟⎞​

=(56

​54​

​54​

56​​

)特徵值:

λ 1=

2,λ2

=2

5_=2,_=\frac

λ1​=2,

λ2​=

52​對應的特徵向量:

c 1(

1212

),c1

(−12

12

)c1\begin \frac}\\ \frac} \end,c1\begin -\frac}\\ \frac} \end

c1(2​1

​2​1

​​),

c1(−

2​1​

2​1​

​)標準化(其實不標準化也一樣,只是稍顯不專業):

p =(

1212

−121

2)

p=\begin \frac} & \frac} \\ -\frac} & \frac} \end

p=(2​1

​−2​

1​​2

​1​2

​1​​

)選擇較大特徵值對應的特徵向量:

( 12

12

)\begin \frac} & \frac} \end

(2​1​​

2​1​

​)執行pca變換:y=px,得到的y就是pca降維後的值資料集矩陣:

y =(

1212

)(−1

−102

0−20

011)

=(−3

2−12

0321

2)

y=\begin \frac} & \frac} \end\begin -1 & -1& 0& 2& 0\\ -2 & 0 &0 & 1& 1 \end=\begin -\frac} & -\frac}&0 &\frac} & \frac} \end

y=(2​1

​​2​

1​​)

(−1−

2​−1

0​00

​21​

01​)

=(−2

​3​​

−2​1

​​0​

2​3​

​2​1

​​)sklearn.decomposition.pca(n_components=none)

將資料分解為較低維數空間

n_components: 小數:表示保留百分之多少的資訊 整數:減少到多少特徵

pca.fit_transform(x) x:numpy array格式的資料[n_samples,n_features]

返回值:轉換後指定維度的array

data[[

2,8,

4,5]

,[6,

3,0,

8],[

5,4,

9,1]

]from sklearn.decomposition import pca

def pca_demo()

:"""

對資料進行pca降維

:return

: none

"""data =[[

2,8,

4,5]

,[6,

3,0,

8],[

5,4,

9,1]

] # 1、例項化pca, 小數——保留多少資訊

transfer =

pca(n_components=

0.9)

# 2、呼叫fit_transform

data1 = transfer.

fit_transform

(data)

print

("保留90%的資訊,降維結果為:\n"

, data1)

# 1、例項化pca, 整數——指定降維到的維數

transfer2 =

pca(n_components=3)

# 2、呼叫fit_transform

data2 = transfer2.

fit_transform

(data)

###下面這一行的意思是將4列變為3列

print

("降維到3維的結果:\n"

, data2)

return none

機器學習 PCA

介紹 pca是一種無監督學習的降維技術 思想1.投影後樣本越分散,保留的資訊越多 2.pca的主要思想是將n維特徵對映到k維上,這k維是全新的正交特徵也被稱為主成分,是在原有n維特徵的基礎上重新構造出來的k維特徵 做法1.將所有的樣本點向直線w投影 2.目標函式 讓投影後樣本的方差極大 第一步 x減...

sklearn機器學習 PCA

pca使用的資訊量衡量指標,就是樣本方差,又稱可解釋性方差,方差越大,特徵所帶的資訊量越多 原理推導 class sklearn decomposition.pca n components none,copy true whiten false svd solver auto tol 0.0,it...

機器學習之PCA演算法學習

pca全稱principal component analysis,即主成分分析,是一種常用的資料降維方法。它可以通過線性變換將原始資料變換為一組各維度線性無關的表示,以此來提取資料的主要線性分量。其中,z為低維矩陣,x為高維矩陣,w為兩者之間的對映關係。假如我們有二維資料 原始資料有兩個特徵軸 特...