吳恩達機器學習(第十五章)---降維PCA
阿新 • • 發佈:2018-11-04
一、目標
1.資料壓縮
在機器學習中,會用到大量資料進行學習訓練,當資料量很大,維度高時,對電腦記憶體的壓力會很大,並且學習的速度也會很慢。
2.視覺化
我們將一些高維的資料降維到1維,2維,3維的話,就可以進行視覺化,將資料以圖表的方式展示出來。
二、主成分分析方法
主成分分析方法(Principal Component Analysis (PCA))是目前比較流行的進行降維的演算法。
1.主要思想:
找一個向量,使得所有資料點到這個向量的距離(投影誤差)最小。
2.線性迴歸與PCA的區別
兩者的區別就在於,線性迴歸是求資料點對其對應在函式上的點之間的誤差,是點與點之間的距離;而PCA是求點到直線的距離
三、預處理
在使用PCA之前要先進行預處理-----均值標準化
這個均值化和特徵縮放類似,都是為了讓所有資料都在一個較小範圍內。
求得的u是每一個數據的所有特徵的平均值,然後,如果不同的特徵之間差的比較大的話,可以將上式改寫為(s_j是x_j的標準差)
四、PCA計算過程
1.求該矩陣的協方差
2.用[U,S,V]=svd(sigma)對上式結果奇異值分解
3.我們得到的U是n*n的矩陣(n是向量x^i的維度),我們想要降維到k維的向量上,那麼就取U的前k列向量。
4. ,為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)