1. 程式人生 > >降維(一) PCA

降維(一) PCA

為什麼需要降維?

\qquad如果我們希望模型的精度比較高,或者說泛化誤差率較小,那麼我們希樣本的取樣密度足夠大(密取樣),即在任意樣本xx附近任意小的δ\delta距離範圍內總能找到一個樣本。

\qquad假設所有樣本在其屬性上歸一化,對於δ=0.001\delta=0.001,僅考慮單個屬性,需要1000個樣本點平均分佈在其取值範圍內,可以保證所有樣本在其附近0.001範圍內總能找到一個訓練樣本。但是,維數增大時,假定屬性維數為20,若要滿足密取樣的要求,則至少需(103)20=1060(10^3)^{20}=10^{60}個樣本。

\qquad事實上,在高維情形下出現的樣本稀疏距離計算困難等問題,是所有機器學習方法面臨的嚴重障礙,被稱為“維數災難

”。

緩解維數災難的一個重要途徑就是降維:

  • 通過某種數學變換將原始高維屬性空間轉變為一個低維“子空間”,在這個子空間中樣本密度大幅提高,距離計算也變得更為容易。

  • 但是要保證原始空間中樣本之間的距離在低維空間中得以保持,且在低維子空間中更容易學習

常用的降維方法有兩種:PCA、LDA。

這裡先總結PCA的思想和過程:

主成分分析(PCA)

\qquad主成分分析(Principal components analysis,簡稱PCA)是最重要的降維方法之一,在資料壓縮消除冗餘和資料噪音消除等領域都有廣泛的應用。

1、思想

\qquadPCA中主成分的意思就是找出資料裡最主要的方面,用資料裡最主要的方面來代替原始資料。具體的,假如我們的資料集是n

n維的,共有mm個數據(x(1),x(2),...,x(m))(x^{(1)},x^{(2)},...,x^{(m)})。我們希望將這mm個數據的維度從nn維降到nn'維,希望這mmnn'維的資料集儘可能的代表原始資料集。我們知道資料從nn維降到nn'維肯定會有損失,但是我們希望損失儘可能的小。那麼如何讓這nn'維的資料儘可能表示原來的資料呢?

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

\qquad為什麼u1比u2好呢?可以有兩種解釋,第一種解釋是樣本點到這個直線的距離足夠近,第二種解釋是樣本點在這個直線上的投影能儘可能的分開。

\qquad假如我們把n’從1維推廣到任意維,則我們的希望降維的標準為:

  • 樣本點到這個超平面的距離足夠近;
  • 樣本點在這個超平面上的投影能儘可能的分開(方差最大)。
2、原理

通過上面的分析可以從兩方面推導出如下結果: arg  minW  tr(WTXXTW)    s.t.WTW=I\underbrace{arg\;min}_{W}\;-tr( W^TXX^TW) \;\;s.t. W^TW=I 或者: arg  maxW  tr(WTXXTW)    s.t.WTW=I\underbrace{arg\;max}_{W}\;tr( W^TXX^TW) \;\;s.t. W^TW=I 因此將問題轉化為有約束的最優化問題,於是可以採用拉格朗日乘數法,得到: J(W)=tr(WTXXTW+λ(WTWI))J(W) = -tr( W^TXX^TW + \lambda(W^TW-I))WW求導有XXTW+λW=0−XX^TW+λW=0,得到: XXTW=λWXX^TW=\lambda W 即: WTXXTW=λWTW=λW^TXX^TW=\lambda W^TW=\lambda

\qquad由上式可以知道當λ\lambda取最大值時可以使WTXXTWW^TXX^TW達到最大值。

\qquad因此,當我們將資料集從nn維降到nn'維時,需要找到最大的nn'個特徵值對應的特徵向量。這nn'個特徵向量組成的矩陣WW即為我們需要的矩陣。對於原始資料集,我們只需要用z(i)=WTx(i)z^{(i)}=W^Tx^{(i)},就可以把原始資料集降維到最小投影距離或最大方差的nn'維資料集。

3、過程

\qquad求樣本x(i)x^{(i)}nn'維的主成分其實就是求樣本集的協方差矩陣XXTXX^T的前nn'個特徵值對應特徵向量矩陣WW,然後對於每個樣本x(i)x^{(i)},做如下變換z(i)=WTx(i)z^{(i)}=W^Tx^{(i)},即達到降維的目的。

具體的演算法流程:

輸入:nn維樣本集D=(x(1),x(2),...,x(m))D=(x^{(1)}, x^{(2)},...,x^{(m)}),要降維到的維數nn'。 輸出:降維後的樣本集DD′ (1)對所有的樣本進行中心化:x(i)=x(i)1mj=1mx(j)x^{(i)} = x^{(i)} - \frac{1}{m}\sum\limits_{j=1}^{m} x^{(j)}; (2)計算樣本的協方差矩陣XXTXX^T; (3)對矩陣XXTXX^T進行特徵值分解; (4)取出最大的nn'個特徵值對應的特徵向量(w1,w2,...,wn)(w_1,w_2,...,w_{n'}), 將所有的特徵向量標準化後,組成特徵向量矩陣WW; (5)對樣本集中的每一個樣本x(i)x^{(i)},轉化為新的樣本z(i)=WTx(i)z^{(i)}=W^Tx^{(i)}; (6)得到輸出樣本集D=(z(1),z(2),...,z(m))D' =(z^{(1)}, z^{(2)},...,z^{(m)})

\qquad有時候,我們不指定降維後的nn'的值,而是換種方式,指定一個降維到的主成分比重閾值tt。這個閾值t

相關推薦

() PCA

為什麼需要降維? \qquad如果我們希望模型的精度比較高,或者說泛化誤差率較小,那麼我們希樣本的取樣密度足夠大(密取樣),即在任意樣本xxx附近任意小的δ\deltaδ距離範圍內總能找到一個樣本。 \qquad假設所有樣本在其屬性上歸一化,對於δ=0.001\

吳恩達機器學習總結:第十 PCA)(大綱摘要及課後作業)

為了更好的學習,充分複習自己學習的知識,總結課內重要知識點,每次完成作業後都會更博。總結1.動機I:資料壓縮(1)壓縮    a.加速演算法    b.減小資料空間    c.2維降為1維例子    d.3維降為2維例子       e.在實際中,我們正常會將1000維將為1

【火爐煉AI】機器學習053-資料絕招-PCA和核PCA

【火爐煉AI】機器學習053-資料降維絕招-PCA和核PCA (本文所使用的Python庫和版本號: Python 3.6, Numpy 1.14, scikit-learn 0.19, matplotlib 2.2 ) 主成分分析(Principal Component Analysis, PCA)可以

吳恩達機器學習(十二)主成分分析(PCA

目錄 0. 前言 學習完吳恩達老師機器學習課程的降維,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 如果這篇文章對你有一點小小的幫助,請給個關注喔~我會非常開心的~ 0. 前言 資料的特徵數量,又稱作向量的維度。降維(dimens

機器學習--技術PCA

1.PCA降維原理: PCA屬於線性降維方式: X為原空間  W為變化矩陣  Z為新空間    Z的維數要小於X維數,實現了降維處理。 用一個超平面來表示正交屬性空間的樣本點,這個超平面應該儘量滿足最近重構性以及最大可分性,即空間中所有點離這個超平面儘可能近,樣本點

機器學習實戰(十二)PCA、SVD)

目錄 0. 前言 學習完機器學習實戰的降維,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 本篇綜合了先前的文章,如有不理解,可參考: 如果這篇文章對你有一點小小的幫助,請給個關注喔~我會非常開心的~ 0

資料(三)PCA主成分分析

文章目錄 PCA主成分分析 目標函式1:最小化重建誤差 目標函式2:最大化方差 PCA目標函式計算 求解PCA(1) 表現 求解PCA(2) PCA總結 PCA主成分分析 目標

資料()基礎篇

文章目錄 降維簡介 降維方法 維度選擇 維度抽取 基礎知識 特徵分解 奇異值分解 特徵值或奇異值的物理意義 奇異值向量的含義 方法

機器學習---PCA主成分分析法

(一)、主成分分析法PCA簡介 PCA 目的:降維——find a low dimension surface on which to project data ~如圖所示,尋找藍色的點到

機器學習筆記(二)——廣泛應用於資料PCA演算法實戰

   最近在學習的過程當中,經常遇到PCA降維,於是就學習了PCA降維的原理,並用網上下載的iris.txt資料集進行PCA降維的實踐。為了方便以後翻閱,特此記錄下來。本文首先將介紹PCA降維的原理,然後進入實戰,編寫程式對iris.資料集進行降維。一、為什麼要進行資料降維?

演算法--PCA 與 t-SNE

PCA是大家所熟知的降維演算法,但是線性降維雖然簡單,其侷限性也很明顯,難以實現高維資料在低維空間的視覺化。t-SNE是非線性的降維演算法,能實現高維到低維的視覺化對映,但因為涉及大量的條件概率、梯度下降等計算,時間和空間複雜度是平方級的,比較耗資源。t-SNE幾乎可用於所有

PCA、核PCA、SVD、高斯隨機對映 和 NMF)

以下內容來自《Python資料科學指南》降維方法比較:PCA:計算代價高昂,特徵向量得存線上性相關。核PCA: 特徵向量是非線性相關也可以。SVD:比PCA更能解釋資料,因為是直接作用於原資料集,不會像PCA一樣,將相關變數轉換為一系列不相干的變數。另外,PCA是單模因子分析

『 特徵PCA原理-Principal Component Analysis

特徵降維一般有兩類方法:特徵選擇和特徵抽取。特徵選擇即從高緯度的特徵中選擇其中的一個子集來作為新的特徵;而特徵抽取是指將高緯度的特徵經過某個函式對映至低緯度作為新的特徵。常用的特徵抽取方法就是PCA。 PCA(Principal Component An

步步教你輕鬆學主成分分析PCA演算法

(白寧超 2018年10月22日10:14:18) 摘要:主成分分析(英語:Principal components analysis,PCA)是一種分析、簡化資料集的技術。主成分分析經常用於減少資料集的維數,同時保持資料集中的對方差貢獻最大的特徵。常常應用在文字處理、人臉識別、圖片識別、自然語言處

【機器學習算法-python實現】PCA 主成分分析、

pre gre text iss 主成分分析 int 找到 nts 導入 1.背景 PCA(Principal Component Analysis),PAC的作用主要是減少數據集的維度,然後挑選出基本的特征。 PCA的主要思想是移動坐標軸,找

PCAdemo

效果 cti 代碼 push jpg per ims whitening get PCA(Principal Components Analysis)主成分分析法是一種常用的減小數據維度的算法。 能力有限在這裏就不做過多的數學分析了,具體原理可參見http://uf

特征-PCA的數學原理

可用 高維數據 方法 是什麽 維數 http 工作 訪客 數據挖掘   PCA(Principal Component Analysis)是一種常用的數據分析方法。PCA通過線性變換將原始數據變換為一組各維度線性無關的表示,可用於提取數據的主要特征分量,常用於高維數據的降維

sklearn pca

noise .text learn mac crc sigma 參考 clas nts PCA降維 一.原理 這篇文章總結的不錯PCA的數學原理。 PCA主成分分析是將原始數據以線性形式映射到維度互不相關的子空間。主要就是尋找方差最大的不相關維度。數據的最大方差給出了數據的

雙十手機大戰花開兩朵:榮耀的攻擊和小米的回光返照

榮耀 小米 文丨朱翊攪動國人神經的2017“雙十一”電商促銷大節,終於在淩晨時分迎來閉幕。參與大促的各商家紛紛展示了不錯的銷售成績。在智能手機領域,榮耀不出意外地摘取了京東+天貓累計銷量及銷售額的雙料冠軍,總銷售額超40.2億元,成為名副其實的銷售之王。更值得一提的是,在今年雙11當日,京東平臺榮耀手

【資料收集】PCA

post hive ron str AD span clas htm logs 重點整理: PCA(Principal Components Analysis)即主成分分析,是圖像處理中經常用到的降維方法 1、原始數據: 假定數據是二維的 x=[2.5, 0.5, 2.2,