描述主成分分析法 算法+圖像思考 20點

2015-02-26 3:25 pm
該如何說明主成分分析法的運算始末,還請仔細說明,希望能以數學的層面以及空間概念的兩個面向來說明PCA的運作過程
更新1:

老怪物大師,真的很感謝您的細心說明。在運算方面透過多個面向(維積分、線性代數、機率的直接分解(意見區)還有推導過程(回答區),讓我對這個基礎很薄弱的狀態漸漸也看得明白了,再搭配意見區中的圖像概念說明,就可以將概念連貫起來,不是很明白的Cov, Var運算也再網路搜尋一下野得到了解釋,真的很了不起,感謝老怪物大師的詳細說明。 請問能不能透過一個實際的矩陣帶入這個過程演算一次呢~ 例如每筆資料有40個值(每個值都在0到1之間),而資料大約有3000筆的資料,以這個比例放大縮小,可以有個個實際的演算過程嗎?觀念上的運算透過這說明非常清楚,但是實際帶入運算我還是不太會,麻煩再給予指點,感謝:P

更新2:

另外也想請教關於 Karhunen–Loève theorem 跟 PCA 運算上的差別,感激感謝

回答 (4)

2015-03-04 2:26 am
✔ 最佳答案
何不找一本多變量分析的教本來看一看?

2015-02-27 11:59:58 補充:
只要找一本有講解其想法及推導的教本就可以了. 不要找那種
只是教你如何套用軟體計算的.

簡單地說, 主成分分析是對原資料變數向量 X 做正交變換,
Y = PX, 其中 P 是正交矩陣 (P' = P^{-1}), 使 Y 的第1成分具
有最大變異數, 第2成分具有第2大變異數, 以此類推.

或者, 只考慮第一主成分, 考慮 y = w'X, 其中 W 是單位向量.
要 maximize Var(y) = w'[Cov(X)]w, 結果 Var(y) 是 Cov(X) 的
最大徹值, 而 w 是對應的特徵向量.

2015-02-27 12:14:14 補充:
以 V 表示隨機向量 X 的共變異矩陣. 可以將 V 表示為 V = PDP',
D 是 V 之待徵值為對角線元素所形成的對角線矩陣. P 的各行即前
述 w 向量的角色.

實際計算, 一法是對 V 矩陣做上述分解, 其中 D 的主對角線元素
是由大而小排列'

另法是一個成分一個成分來, 也就是說先找出第一主成分
y_1 = (w_1)'X, 並得 V 之最大徵值 λ_1.
而後計算 V_1 = V - λ_1(w_1)(w_1)', 則 V_1 之最大徵值即 V 之
第 2 大徵值. 以此方式逐步找出 V 之最大、次大、第3大徵值等,
以及對應的特徵向量.

2015-02-27 12:18:51 補充:
主成分分析也可以針對標準化變量, 也就是說不用共變異矩陣而用
相關矩陣. 當然, 採用共變異矩陣與採用相關矩陣, 得到的主成分是
不同的.



另外, 以上是以群體為考慮標的, 而實際資料分析通常是樣本資料.

2015-02-27 12:27:45 補充:
從圖像來看, 就是把未標準化或標準化 k 維資料, (先將原點移至
資料分布之中心), 經旋轉方向(轉軸)、鏡射等操作, 使得各軸 (各
方向) 所代表的新變數相互零相關(正交), 並且在最後只取資料點
散佈較廣的各軸 (各方向) 代表的新變數, 是為原資料之主成分.

2015-03-01 09:49:13 補充:
數學的部分涉及統計的機率部分及數學的線性代數(主要是 eigenvalue
與 eigenvector 的內容). 如果對這兩者有不熟悉, 那麼難理解是可想像的.

如果只要應用, 那麼知道 "主成分" 是什麼意思也就可以了. 基本上就是考
慮變數變換 y = w'X 要使 y 的變異數最大. 當然, 因 w 放大則 y 的變異數
也放大, 所以在最大化 Var(w'X) 時限定 ||w|| = 1.

2015-03-01 09:50:18 補充:
最大化 Var(w'X) 時限定 ||w|| = 1. 最終導出 w 是 Cov(X) 之最大igenvalue
所對應的 eigenvector, 利用的是對稱實矩陣 V = Cov(X) 的正交對角線化
V = PDP'.

至於連續求第2, 第3主成分等的計算方式, 最終歸結到等於 Cov(X) 的上述
分解 V = PDP', 也只是一些演算罷了.

2015-03-03 12:46:31 補充:
文字模式沒有字體變化, 確實有些表達上的不便. 不過, 先前所談所用
符號幾乎都代表向量與矩陣, 加上前後語, 應不會有混淆問題.

如果你理解了主成分分析的目標是 w'X 的變異數要最大化, 那麼剩下
的就是計算問題.

線性式 w'X 展開來就是 w_1*X_1 + ... + w_k*X_k, 是隨機變數 X_1,
...,X_k 的線性組合. 在機率或統計基礎課程中都學過它的變異數是
Σ_i w_i^2*Var(X_i) + 2ΣΣ_{i


2015-03-03 18:26:20 補充:
系統怪怪的, 竟然一直無法在意見區貼文. 試試看重新整理一下貼回答區算了.




簡單地說, 主成分分析是對原資料變數向量 X 做正交變換, Y = PX,
其中 P 是正交矩陣 (P' = P^{-1}), 使 Y 的第1成分具有最大變異
數, 第2成分具有第2大變異數, 以此類推.或者, 只考慮第一主成分, 考慮 y = w'X, 其中 w 是單位向量. 用
普通代數式來寫就是 y = w_1*X_1+...+w_k*X_k, 是實數值隨機變
數 X1,...,X_k 的線性組合. 在機率或統計的初級課程可以得到
Var(y) = Σ_i w_i^2*Var(X_i) + 2ΣΣ_{i < j} w_i*w_j*Cov(X_i,X_j), 用矩陣向量表現, 就是
Var(w'X) = w'(Cov(X))w
為方便計, 以 V 表示 X 的共變異數矩陣, 即 V = Cov(X).說 y 是 X 的 (第一)主成分, 就是 y 的變異數要儘量大. 但顯然若
w 成比例放大, 例如把 w 乘以 c 倍, 則 Var(y) 變成 c^2 倍. 因
此, 所謂 Var(y) 儘量大, 是在限制 w 為單位向量, 即 ||w|| = 1
或即 Σ(w_i)^2 = 1 的條件下說的. 要在 ||w|| = 1, 也就是 Σ (w_i)^2 = 1 條件下極大化 w'Vw, 用
微積分的 Lagrange 方法, 是找滿足 Vw = λw 及 ||w|| = 1 的解.學過線性代數的 eigenvalue/eigenvector 章節, 立即可知上列條件
就是說 λ 是 V 的一個特徵值, 而 w 是對應的特徵向量. 而此時
w'Vw = λw'w = λ, 因此要找的就是 V 的最大特徵值及對應的特徵
向量, 然後 X 的第一主成分就是 w'X.當然, 熟悉線性代數或矩陣代數的話, 不經由 Lagrange 方法亦可得
相同結果.
在線性代數, 可以得知, 由於 V = Cov(X) 是實數對稱矩陣, 因此它
可以被 "正交對角線化". 這意思就是存在 "正交矩陣" P, 使 P'VP
為對角線矩陣 D, D 的主對角線元素就是 V 的所有特徵值(根). 這
另外有一個意思, 是:
(1) V 的相異特徵值 λ_1≠λ_2, 其所對應的特徵向量 w_1, w_2
正交, 即點積 w_1.w_2 = 0, 或用矩陣符號: (w_1)'(w_2) = 0.
(2) 若 λ 是 V 的 m 重特徵根(特徵值, 是 det(tI-V) = 0 之根,
故亦名 "特徵根"), 則存在 m 個相互正交的特徵向量.
因此, 若同時考慮隨機向量 X = (X_1,...,X_k)' 的 k 個線性式
(w_i)'X, i=1,...,k, 其中 w_1,...,w_k 是相互正交的單位向量.
把這 k 個向量放在一起成一個矩陣 P = [w_1 ... w_k], 則 P 是
正交矩陣 (P^{-1} = P', 即 P 的轉置即是其逆矩陣), Y = P'X
即是 X 向量的一個正交變換. 則
Cov(Y) = P'(Cov(X))P = P'VP.做 Y = P'X 轉換的目標是 Y 的各成分相互零相關, 並且其第1成分
具有最大變異數, 第2成分具有第2大變異數, 以此類推.若 Y = P'X 的 P 是採用上述將 V 對角線化的 P, 那麼, Cov(Y)=D.
而 V 的特徵值由大而小排列, 連帶著特徵向量一起排序, 於是
P = [w_1 .... w_k] 其中 w_1 對應 V 之最大特徵值, w_2 對應第
2大特徵值, 以此類推.
從 V 找到最大特徵值 λ_1 及對應的特徵向量, 考慮新矩陣
V_1 = V - (λ_1)(w_1)(w_1)', 則
(1) V 之諸特徵值, 除最大特徵值變為 0 以外, 其餘均一一在 V_1
重現.
(2) V_1 之非零特徵值對應的特徵向量, 同於 V 之對應特徵值的特
徵向量.以上結果提供了不直接做 V = PDP' 分解, 而是採用循序找 X 之第
一主成分、第三主成分等等的方法依據.




2015-03-10 19:39:58 補充:
我不知 Karhunen–Loève theorem. 請恕我所學太少.

實例計算需靠電腦、軟體, 恕難如你的意.


另, 回答區似也不容我再增加太多文字. 先前曾有補充說明, 貼不上.

2015-03-10 19:41:03 補充:
就連上面那三句話, 回答區也不讓貼了.
2015-02-27 11:39 pm
參考: 維基百科 , 陳順宇教授 多變量分析
2015-02-27 3:18 am
老怪物大師是統計學專家問他準沒錯
2015-02-26 7:21 pm
請問有推薦的教本嗎?

因為我也有看了好幾本,或許是我理解能力比較差,想來這裡尋求看看協助

2015-02-27 15:31:22 補充:
真不愧是專家,很感謝願意花時間給予說明,在圖像的說明方面一說我就明白,讓我把過去看的部分串連起來了~
只是數學層面還不是很明白,雖然看了很多書,也大概知道他運算的原理、步驟與過程,但是要說明起來看決還是看得沒有很明白,真不好意思:P

2015-02-27 15:41:46 補充:
另外我也有找多變量分析的書以及因素分析的書,還有一些英文的書籍,不知道有沒有推薦什麼書是有講解其想法及推導的教本,目前我找到的書頂多就是說明推倒過程,但遇到特別符號或是代號就不行了 X

2015-03-01 20:44:27 補充:
真不好意思,的確自己不懂這些線性代數,沒有學過,所以自己在看這些算式的時候很吃力,又要再另外去查這些算式,但是查了又看得不是很懂。因該是說,拆開來個別說明都還算懂(自己覺得,大概能明白他的推導過程),但要應用在主成分分析上,例如:正交化、特徵值、特徵向量等,又有他特別的符號,我就混亂了,之前也去詢問其他人,他們就說我基礎(線性代數、機率)不夠所以才看不懂,但是我真的很想明白,很感謝您願意花時間跟我解釋,雖然我還是不是很懂,畢竟這個意見的留言比較沒辦法看出一些特殊的表示(例如粗體、斜體、上下標等),真不好意思要求這麼多,如果可以的話,是不是能再更深入的說明,大感謝:P


收錄日期: 2021-05-04 01:55:46
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20150226000010KK00849

檢視 Wayback Machine 備份