核主成分分析(英語:kernel principal component analysis,簡稱kernel PCA)是多變量統計領域中的一種分析方法,是使用核方法對主成分分析的非線性擴展,即將原數據通過核映射到再生核希爾伯特空間後再使用原本線性的主成分分析。[1]
背景:線性主成分分析
線性PCA對於中心化後的數據進行分析,即
- ,
其中是個多變量樣本之一。之後將協方差矩陣
對角化。換言之,即是對協方差矩陣進行特徵分解
或寫作
- .[2]
引入核方法
一般而言,N個數據點在維空間中是線性不可分的,但它們在維空間中則是幾乎必然線性可分的。這也意味着,如果我們能將N個數據點映射到一個N維空間
- 其中
中,就能很容易地構建一個超平面將數據點作任意聚類。不過由於經映射後的向量是線性無關的,我們無法再像在線性PCA中那樣顯式地對協方差進行特徵分解。
而在核PCA中,我們能夠使用任意非平凡的函數,但無需顯式地計算在高維空間中的值,使我們得以使用非常高維的。為了避免直接在-空間(即特徵空間)中操作,我們可以定義一個的核
來代表特徵空間的內積空間(見格拉姆矩陣)。這一對偶形式使我們能夠進行主成分分析,同時又不用直接在-空間中解協方差矩陣的特徵值與特徵向量。K中每一列的N個元素代表了轉換後的一個數據點與所有N個數據點的點積。
由於我們並不在特徵空間中進行計算,核PCA方法不直接計算主成分,而是計算數據點在這些主成分上的投影。特徵空間中的一點在第k個主成分上的投影為
其中代表點積,即核中的元素。上式中剩下的部分可以通過解特徵方程
得到,其中N為數據點的數量,與則分別為的特徵值與特徵向量。為了歸一化,我們要求
值得注意的是,無論是否在原空間中對中心化,我們無法保證數據在特徵空間中是中心化的。由於PCA要求對數據中心化,我們可以對K「中心化」:
其中代表一個每個元素值皆為的矩陣。於是我們可以使用進行前述的核PCA計算。[2]
在使用核PCA時,還有一點值得注意。在線性PCA中,我們可以通過特徵值的大小對特徵向量進行排序,以度量每個主成分所能夠解釋的數據方差。這對於數據降維十分有用,而這一技巧也可以用在核PCA中。不過,在實踐中有時會發現得到所有方差皆相同,這通常是源於錯誤選擇了核的尺度。
大數據集
在實踐中,大數據集會使K變得很大,從而導致存儲問題。一種解決方式是先對數據集聚類,然後再對每一類的均值進行核PCA計算。有時即便使用此種方法仍會導致相對很大的K,此時我們可以只計算K中最大的P個特徵值及相對應的特徵向量。
示例
考慮圖中所示的三組同心點雲,我們試圖使用核PCA識別這三組。圖中各點的顏色並不是算法的一部分,僅用於展示各組數據點在變換前後的位置。
首先,我們使用核
進行核PCA處理,得到的結果如第二張圖所示。
其次,我們再使用高斯核
該核是數據接近程度的一種度量,當數據點重合時為1,而當數據點相距無限遠時則為0。結果為第三張圖所示。
此時我們注意到,僅通過第一主成分就可以區別這三組數據點。而這對於線性PCA而言是不可實現的,因而線性PCA只能在給定維(此處為二維)空間中操作,而此時同心點雲是線性不可分的。
應用
參考文獻
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.