日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【机器学习】主元分析(PCA)以及与SVD的区别联系

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】主元分析(PCA)以及与SVD的区别联系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考文章:如何理解主元分析(PCA)?

主元分析的目的是降低數據的維度。主元分析也就是PCA,主要用于數據降維。

1 什么是降維?

比如說有如下的房價數據:

這種一維數據可以直接放在實數軸上:

不過數據還需要處理下,假設房價樣本用表示,那么均值為:

然后平移到以均值為原點:

以為原點的意思是,以為0,那么上述表格的數字就需要修改下:

這個過程稱為“中心化”。“中心化”處理的原因是,這些數字后繼會參與統計運算,比如求樣本方差,中間就包含了:

說明下,雖然樣本方差的分母應該是,這里分母采用是因為這樣算出來的樣本方差為一致估計量,不會太影響計算結果并且可以減少運算負擔。

用“中心化”后的數據就可以直接算出“房價”的樣本方差:

“中心化”之后可以看出數據大概可以分為兩類:

現在新采集了房屋的面積,可以看出兩者完全正相關,有一列其實是多余的:

求出房屋樣本、面積樣本的均值,分別對房屋樣本、面積樣本進行“中心化”后得到:

房價()和面積()的樣本協方差是這樣的(這里也是用的一致估計量):

可見“中心化”后的數據可以簡化上面這個公式,這點后面還會看到具體應用。

把這個二維數據畫在坐標軸上,橫縱坐標分別為“房價”、“面積”,可以看出它們排列為一條直線:

如果旋轉坐標系,讓橫坐標和這條直線重合:

旋轉后的坐標系,橫縱坐標不再代表“房價”、“面積”了,而是兩者的混合(術語是線性組合),這里把它們稱作“主元1”、“主元2”,坐標值很容易用勾股定理計算出來,比如在“主元1”的坐標值為:

很顯然在“主元2”上的坐標為0,把所有的房間換算到新的坐標系上:

因為“主元2”全都為0,完全是多余的,我們只需要“主元1”就夠了,這樣就又把數據降為了一維,而且沒有丟失任何信息:

2 非理想情況如何降維?

上面是比較極端的情況,就是房價和面積完全正比,所以二維數據會在一條直線上。

現實中雖然正比,但總會有些出入:

把這個二維數據畫在坐標軸上,橫縱坐標分別為“房價”、“面積”,雖然數據看起來很接近一條直線,但是終究不在一條直線上:

那么應該怎么降維呢?分析一下,從線性代數的角度來看,二維坐標系總有各自的標準正交基(也就是兩兩正交、模長為1的基),:

在某坐標系有一個點,,它表示在該坐標系下標準正交基的線性組合:

只是在不同坐標系中,的值會有所不同(旋轉的坐標表示不同的坐標系):動圖,建議看原網站。

因為到原點的距離不會因為坐標系改變而改變:

而:

所以,在某坐標系下分配給較多,那么分配給的就必然較少,反之亦然。最極端的情況是,在某個坐標系下,全部分配給了,使得:

那么在這個坐標系中,就可以降維了,去掉并不會丟失信息:

如果是兩個點,情況就復雜一些:

為了降維,應該選擇盡量多分配給,少分配給的坐標系。

3 主元分析(PCA)

具體怎么做呢?假設有如下數據:(a、b為樣本,X、Y為特征)

上面的數據這么解讀,表示有兩個點:

這兩個點在初始坐標系下(也就是自然基)下坐標值為:

圖示如下:

隨著坐標系的不同,的值會不斷變化:

要想盡量多分配給,借鑒最小二乘法(請參考如何理解最小二乘法)的思想,就是讓:

要求這個問題,先看看怎么表示,假設:

根據點積的幾何意義(如何通俗地理解協方差和點積)有:

那么:

上式其實是一個二次型(可以參看如何通俗地理解二次型):

這里矩陣就是二次型,是一個對稱矩陣,可以進行如下的奇異值分解(可以參看如何通俗地理解奇異值分解):

其中,為正交矩陣,即。

而是對角矩陣:

其中,是奇異值,。

將代回去:

因為是正交矩陣,所以令:

所得的也是單位向量,即:

繼續回代:

最初求最大值的問題就轉化為了:

感興趣可以用拉格朗日乘子法計算上述條件極值(參看如何通俗地理解拉格朗日乘子法以及KKT條件),結果是當時取到極值。

因此可以推出要尋找的主元1,即:

4 協方差矩陣

上一節的數據:

我們按行來解讀,得到了兩個向量:

在這個基礎上推出了矩陣:

這個矩陣是求解主元1、主元2的關鍵。

如果我們按列來解讀,可以得到兩個向量:

即:

那么剛才求出來的矩陣就可以表示為:

之前說過“中心化”后的樣本方差(關于樣本方差、協方差可以參看這篇文章:如何通俗地理解協方差和點積):

樣本協方差為:

兩相比較可以得到一個新的矩陣,也就是協方差矩陣:

都可以進行奇異值分解:

可見,協方差矩陣的奇異值分解和相差無幾,只是奇異值縮小了倍,但是不妨礙奇異值之間的大小關系,所以在實際問題中,往往都是直接分解協方差矩陣。

5 實戰

回到使用之前“中心化”了的數據:

這些數據按行,在自然基下畫出來就是:

按列解讀得到兩個向量:

組成協方差矩陣:

進行奇異值分解:

根據之前的分析,主元1應該匹配最大奇異值對應的奇異向量,主元2匹配最小奇異值對應的奇異向量,即:

以這兩個為主元畫出來的坐標系就是這樣的:

如下算出新坐標,比如對于:

以此類推,得到新的數據表:

主元2整體來看,數值很小,丟掉損失的信息也非常少,這樣就實現了非理想情況下的降維。

?

總結

以上是生活随笔為你收集整理的【机器学习】主元分析(PCA)以及与SVD的区别联系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。