核主成分分析(英語:kernel principal component analysis,簡稱kernel PCA)是多變量統計領域中的一種分析方法,是使用核方法主成分分析的非線性擴展,即將原數據通過核映射到再生核希爾伯特空間英語Reproducing kernel Hilbert space後再使用原本線性的主成分分析。[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個特徵值及相對應的特徵向量。

示例

Thumb
應用核PCA前的數據點
Thumb
使用核進行核PCA分析後的數據點
Thumb
使用高斯核進行核PCA分析後的數據點

考慮圖中所示的三組同心點雲,我們試圖使用核PCA識別這三組。圖中各點的顏色並不是算法的一部分,僅用於展示各組數據點在變換前後的位置。

首先,我們使用核

進行核PCA處理,得到的結果如第二張圖所示。

其次,我們再使用高斯核

該核是數據接近程度的一種度量,當數據點重合時為1,而當數據點相距無限遠時則為0。結果為第三張圖所示。

此時我們注意到,僅通過第一主成分就可以區別這三組數據點。而這對於線性PCA而言是不可實現的,因而線性PCA只能在給定維(此處為二維)空間中操作,而此時同心點雲是線性不可分的。

應用

核PCA方法還可用於新奇檢測(novelty detection)[3]與數據降噪[4]等。

參考文獻

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.