理解降維演算法之PCA 主成分分析)

2021-09-11 22:54:03 字數 2486 閱讀 3157

主成分分析(principal component analysis)是目前為止最流行的降維演算法。首先它找到接近資料集分布的超平面,然後將所有的資料都投影到這個超平面上

「具體的,假如我們的資料集是n維的,共有m個資料(x(1),x(2),…,x(m))。我們希望將這m個資料的維度從n維降到n』維,希望這m個n』維的資料集盡可能的代表原始資料集。我們知道資料從n維降到n』維肯定會有損失,但是我們希望損失盡可能的小。那麼如何讓這n』維的資料盡可能表示原來的資料呢?

我們先看看最簡單的情況,也就是n=2,n』=1,也就是將資料從二維降維到一維。資料如下圖。我們希望找到某乙個維度方向,它可以代表這兩個維度的資料。圖中列了兩個向量方向,u1和u2,那麼哪個向量可以更好的代表原始資料集呢?從直觀上也可以看出,u1比u2好為什麼u1比u2好呢?

可以有兩種解釋,第一種解釋是樣本點到這個直線的距離足夠近第二種解釋是樣本點在這個直線上的投影能盡可能的分開。

假如我們把n』從1維推廣到任意維,則我們的希望降維的標準為:樣本點到這個超平面的距離足夠近,或者說樣本點在這個超平面上的投影能盡可能的分開。」----by劉建平老師

劉老師上面我加粗的部分的兩個解釋分別是指利用最小平方誤差準則,這個類似於線性回歸中最優擬合中的想法;第二個解釋是基於最大方差的準則,」樣本點在這個直線上的投影能盡可能的分開「就是說在這條直線上的投影方差最大

輸入:n維樣本集d=(x(1),x(2),…,x(m)),要降維到的維數n』.

輸出:降維後的樣本集d′

1)對所有的樣本進行中心化:

2) 計算樣本的協方差矩陣xxt

xxxt3) 對矩陣xxt

xxxt 進行特徵值分解(即求解特徵值和特徵向量)

4)取出最大的n』個特徵值對應的特徵向量(w1,w2,…,wn′), 將所有的特徵向量標準化後,組成特徵向量矩陣w。

5)對樣本集中的每乙個樣本x(i),轉化為新的樣本z(i)=wtx

(i)x(i)

wtx(i)

6) 得到輸出樣本集d′=(z(1),z(2),…,z(m))

有時候,我們不指定降維後的n』的值,而是換種方式,指定乙個降維到的主成分比重閾值t。這個閾值t在(0,1]之間。假如我們的n個特徵值為λ1≥λ2≥…≥λn,則n』可以通過下式得到:

下面舉乙個簡單的例子,說明pca的過程。

假設我們的資料集有10個二維資料(2.5,2.4), (0.5,0.7), (2.2,2.9), (1.9,2.2), (3.1,3.0), (2.3, 2.7), (2, 1.6), (1, 1.1), (1.5, 1.6), (1.1, 0.9),需要用pca降到1維特徵。

首先我們對樣本中心化,這裡樣本的均值為(1.81, 1.91),所有的樣本減去這個均值後,即中心化後的資料集為(0.69, 0.49), (-1.31, -1.21), (0.39, 0.99), (0.09, 0.29), (1.29, 1.09), (0.49, 0.79), (0.19, -0.31), (-0.81, -0.81), (-0.31, -0.31), (-0.71, -1.01)。

現在我們開始求樣本的協方差矩陣,由於我們是二維的,則協方差矩陣為:

x xt

xxxt=(cov(x1,x1)cov(x2,x1)

cov(x1,x2)cov(x2,x2))

對於我們的資料,求出協方差矩陣為:

x xt

xxxt=(0.616555556 0.615444444

0.6154444440.716555556)

求出特徵值為(0.0490833989, 1.28402771),對應的特徵向量分別為:(0.735178656,0.677873399)t,(−0.677873399,−0.735178656)t,由於最大的k=1個特徵值為1.28402771,對於的k=1個特徵向量為(−0.677873399,−0.735178656)t. 則我們的w=(−0.677873399,−0.735178656)t

我們對所有的資料集進行投影z(i)=wtx

(i)x(i)

wtx(i)

,得到pca降維後的10個一維資料集為:(-0.827970186, 1.77758033, -0.992197494, -0.274210416, -1.67580142, -0.912949103, 0.0991094375, 1.14457216, 0.438046137, 1.22382056)

注,公式推導部分沒有總結,可以檢視已有資料的推導

劉建平老師部落格

PCA主成分分析(降維)

opencv中使用 實現降維分類預處理 參考 降維 我的理解是,通過降維得到基本特徵可以加快學習演算法。並且由於降維後的資料本身就是正交的,和聚類一樣可以實現分類 識別問題。在自我學習中也可以採用大量無標註的影象,對這些影象降維分類,並結合部分編碼資料得到特徵。例如 將很2500張人臉資訊,通過25...

降維 PCA 主成分分析

其實早該整理一下pca了,怎奈一直沒有時間,可能是自己對時間沒有把握好吧,下面進入正題。所謂降維,就是降低資料的維數。在機器學習中尤其常見,之前做過對一幅提取小波特徵,對於一幅大小為800 600的,如果每個點提取五個尺度 八個方向的特徵,那麼每乙個畫素點提取40個特徵,那麼一副的話就是40 800...

降維方法 主成分分析(PCA)

推薦一篇絕對好的文章 理解pca的數學原理 pca principle component analysis 主成分分析,主要應用於資料降維,它是一種非監督的降維方法,主要捕獲觀測資料之間的變異程度。當資料集的維度過高之後,運用各種演算法處理起來的時間複雜度可能會很高,所以需要對資料進行降維處理,而...