english version
(請注意:中文版本並未隨英文版本同步更新!)
首先,我們看看 PCA 所產生的主軸方向,是否和資料一致,請見下列範例:
很明顯的,PCA 的主軸剛好是延著資料最分散的方向。
在下面的範例,我們針對 150 筆 IRIS 資料進行 PCA,如下:
在上述範例中,第一個圖是把 IRIS 資料投影於第一和第二個 PCA 向量,第二個圖則是投影於第三和第四個 PCA 向量。很明顯的,在第一個圖形中,資料點分佈很散,而在第二個圖形中,資料點的散佈程度就比較小。(請注意:第二個圖的範圍比第一個圖的範圍小很多。)
對於 WINE 資料,我們可以進行類似的計算,範例如下:
很明顯的,第一個圖的散佈程度比第二個圖大很多。
PCA 的概念是「將資料拉開」(或是「將資料投影到變異量最大的子空間」),並沒有考慮到資料的類別,因此嚴格來說,並不完全適用於樣式辨認的問題。但由於「將資料拉開」與「將不同類別的資料拉開」有一些共同性,因此碰到有某一些資料維度太大的樣式辨認問題(例如人臉辨識),PCA 就常被使用,以降低資料維度及運算量。
若以 KNNC 及 leave-one-out 來測試 LDA 投影的維度對辨識率的影響,可使用下列範例程式來測試 iris 資料:
若以相同的方式來測試 WINE 資料,結果如下:
以上述兩個範例來看,似乎特徵個數越多,效果越好,換句話說,PCA對於分類而言,似乎沒辦法選取數個有效的特徵來得到辨識率的最大值,這也是一個合理的現象,因為PCA在選取投影的方向時,並未考慮資料的類別資訊。(在下一節中,你可以比較使用 LDA 於同樣的資料集所得到的結果。)
若我們將上述範例寫成一個函數 pcaKnncLoo.m,則可用此函數來測試「資料正規化」對於辨識率的影響,請見下列範例:
有上述範例可以看出,對於這個應用而言,使用了資料正規化,使得辨識率提升不少。但是,整體辨識率還是小於 LDA,請見下一節對於 LDA 的介紹以及相關的範例。
More info:
Data Clustering and Pattern Recognition (資料分群與樣式辨認)