1. 程式人生 > >吳恩達機器學習(第十五章)---降維PCA

吳恩達機器學習(第十五章)---降維PCA

一、目標

1.資料壓縮

在機器學習中,會用到大量資料進行學習訓練,當資料量很大,維度高時,對電腦記憶體的壓力會很大,並且學習的速度也會很慢。

2.視覺化

我們將一些高維的資料降維到1維,2維,3維的話,就可以進行視覺化,將資料以圖表的方式展示出來。

二、主成分分析方法

主成分分析方法(Principal Component Analysis (PCA))是目前比較流行的進行降維的演算法。

1.主要思想:

找一個向量,使得所有資料點到這個向量的距離(投影誤差)最小。

2.線性迴歸與PCA的區別

  pca                                                                             線性迴歸

 

 兩者的區別就在於,線性迴歸是求資料點對其對應在函式上的點之間的誤差,是點與點之間的距離;而PCA是求點到直線的距離

三、預處理

在使用PCA之前要先進行預處理-----均值標準化

這個均值化和特徵縮放類似,都是為了讓所有資料都在一個較小範圍內。

\mu_j=\frac{1}{m}\sum_{i=1}^{m}{x_j^i}求得的u是每一個數據的所有特徵的平均值,然後x_j=x_j-\mu_j,如果不同的特徵之間差的比較大的話,可以將上式改寫為x_j=\frac{x_j-\mu_j}{s_j}(s_j是x_j的標準差)

四、PCA計算過程

1.求該矩陣的協方差\Sigma=\frac{1}{m}\sum_{i=1}^{m}{(x^i)(x^i)^T}

2.用[U,S,V]=svd(sigma)對上式結果奇異值分解

3.我們得到的U是n*n的矩陣(n是向量x^i的維度),我們想要降維到k維的向量上,那麼就取U的前k列向量。

4.z^i=U_{reduce}^Tx^i   ,U_{reduce}^T為k*n維,求得的z就是最終結果。

注:奇異值分解還在學習中,所以無法給出解釋,還是個小菜雞

五、k的選擇

k不能隨意選擇,否則誤差會很大。

1.通常我們用下式進行判斷

當其小於0.01的時候我們認為這個k值是可以使用的,當然這個0.01不是絕對的,也可以是0.05,0.1等等,是根據個人而定。x_approx(是z通過壓縮重現得到的x的近似值,z_approx=U_reduce*z)

2.也可以使用[U,S,V]=svd(sigma)

1-\frac{\sum_{i=1}^{k}{S_{ii}}}{\sum_{i=1}^{n}{S_{ii}}}\leq 0.01