機器學習(32)之典型相關性分析(CCA)詳解 【文末有福利......】
微信公眾號
關鍵字全網搜尋最新排名
【機器學習演算法】:排名第一
【機器學習】:排名第一
【Python】:排名第三
【演算法】:排名第四
人工智慧與Python公開課
限時免費
文末領取
前言
典型關聯分析(Canonical Correlation Analysis,簡稱CCA)是最常用的挖掘資料關聯關係的演算法之一。比如我們拿到兩組資料,第一組是人身高和體重的資料,第二組是對應的跑步能力和跳遠能力的資料。那麼我們能不能說這兩組資料是相關的呢?CCA可以幫助我們分析這個問題。
CCA概述
在數理統計裡面,都知道相關係數這個概念。假設有兩組一維的資料集X和Y,則相關係數ρ的定義為:
其中cov(X,Y)是X和Y的協方差,而D(X),D(Y)分別是X和Y的方差。相關係數ρ的取值為[-1,1], ρ的絕對值越接近於1,則X和Y的線性相關性越高。越接近於0,則X和Y的線性相關性越低。
雖然相關係數可以很好的幫我們分析一維資料的相關性,但是對於高維資料就不能直接使用了。如上所述,如果X是包括人身高和體重兩個維度的資料,而Y是包括跑步能力和跳遠能力兩個維度的資料,就不能直接使用相關係數的方法。那我們能不能變通一下呢?CCA給了我們變通的方法。
CCA使用的方法是將多維的X和Y都用線性變換為1維的X'和Y',然後再使用相關係數來看X'和Y'的相關性。將資料從多維變到1位,也可以理解為CCA是在進行降維,將高維資料降到1維,然後再用相關係數進行相關性的分析。
CCA演算法思想
上面提到CCA是將高維的兩組資料分別降維到1維,然後用相關係數分析相關性。但是有一個問題是,降維的標準是如何選擇的呢?回想下主成分分析PCA,降維的原則是投影方差最大;再回想下線性判別分析LDA,降維的原則是同類的投影方差小,異類間的投影方差大。對於我們的CCA,它選擇的投影標準是降維到1維後,兩組資料的相關係數最大。
假設資料集是X和Y,X為n1×m的樣本矩陣,Y為n2×m的樣本矩陣.其中m為樣本個數,而n1,n2分別為X和Y的特徵維度。對於X矩陣,將其投影到1維,對應的投影向量為a, 對於Y矩陣,將其投影到1維,對應的投影向量為b, 這樣X ,Y投影后得到的一維向量分別為X',Y'。我們有
CCA的優化目標是最大化ρ(X′,Y′),得到對應的投影向量a,b,即
在投影前,一般會把原始資料進行標準化,得到均值為0而方差為1的資料X和Y。這樣我們有:
由於X,Y的均值均為0,則
令SXY=cov(X,Y),則優化目標可以轉化為:
由於分子分母增大相同的倍數,優化目標結果不變,我們可以採用和SVM類似的優化方法,固定分母,優化分子,具體的轉化為:
進而CCA演算法的目標最終轉化為一個凸優化過程,只要求出了這個優化目標的最大值,就是前面提到的多維X和Y的相關性度量,而對應的a,b則為降維時的投影向量。
這個函式優化一般有兩種方法,第一種是奇異值分解SVD,第二種是特徵分解,兩者得到的結果一樣。
SVD求解CCA
對於上面的優化目標,可以做一次矩陣標準化後在使用SVD來求解。
首先令
進而
優化目標變成下式:
可以看出,SVD的求解方式非常簡潔方便。但如果不熟悉SVD的話,也可以用傳統的拉格朗日函式加上特徵分解來完成這個函式的優化。
特徵值分解求CCA
特徵分解方式比較傳統,利用拉格朗日函式,優化目標轉化為最大化下式:
分別對a,b求導並令結果為0得:
進而
現在拉格朗日系數就是我們要優化的目標。繼續將上面的兩個式子做整理得:
將上面第二個式子帶入第一個式子得到
要求最大的相關係數λ,只需要對上面的矩陣做特徵分解,找出最大的特徵值取平方根即可,此時最大特徵值對應的特徵向量即為X的線性係數a。同樣的辦法,可以找到最大特徵值對應的特徵向量即為Y的線性係數b。
可以看出特徵分解的方法要比SVD複雜,但是兩者求得的結果其實是等價的,只要利用SVD和特徵分解之間的關係就很容易發現兩者最後的結果相同。
CCA演算法流程
對CCA演算法流程做一個歸納,以SVD方法為例:
輸入:各為m個的樣本X和Y,X和Y的維度都大於1
輸出:X,Y的相關係數ρ,X和Y的線性係數向量a和b
流程
1)計算X的方差SXX, Y的方差SYY,X和Y的協方差SXY
2) 計算矩陣
3)對矩陣M進行奇異值分解,得到最大的奇異值ρ,和最大奇異值對應的左右奇異向量
4) 計算X和Y的線性係數向量a和b,
總結
CCA演算法廣泛的應用於資料相關度的分析,同時還是偏最小二乘法的基礎。但是由於它依賴於資料的線性表示,當我們的資料無法線性表示時,CCA就無法使用,此時我們可以利用核函式的思想,將資料對映到高維後,再利用CCA的思想降維到1維,求對應的相關係數和線性關係,這個演算法一般稱為KCCA。此外,在演算法裡只找了相關度最大的奇異值或者特徵值,作為資料的相關係數,實際上我們也可以像PCA一樣找出第二大奇異值,第三大奇異值,。。。得到第二相關係數和第三相關係數。然後對資料做進一步的相關性分析。但是一般的應用來說,找出第一相關係數就可以了。
歡迎分享給他人讓更多的人受益
參考:
周志華《機器學習》
Neural Networks and Deep Learning by By Michael Nielsen
部落格園
http://www.cnblogs.com/pinard/p/6288716.html
李航《統計學習方法》
Deep Learning, book by Ian Goodfellow, Yoshua Bengio, and Aaron Courville
近期熱文
精選 | 2017年全球人工智慧人才報告(附73頁完整版PDF)
乾貨 | 自然語言處理(2)之淺談向量化與Hash-Trick
加入微信機器學習交流群
請新增微信:guodongwe1991
備註姓名-單位-研究方向
(小編晚上才有時間,回覆的可能比較晚)
廣告、商業合作
請新增微信:guodongwe1991
(備註:商務合作)
相關文章
- 典型關聯分析(CCA)原理總結
- CynosDB技術詳解——儲存叢集管理【文末有福利】
- Excel做分析-相關性分析Excel
- matlab相關性分析Matlab
- 數學建模 資料處理模型之變數相關性類(灰色相關聯、相關性分析)模型變數
- 讓git更高效--文末有福利Git
- 量化相關性分析應用
- 建議收藏!超棒的 AWS 機器學習工具包彙總(文末有福利)機器學習
- 機器學習之Xgboost詳解機器學習
- CSS float相關詳解CSS
- iOS 8.1.2 越獄過程詳解及相關漏洞分析iOS
- 機器學習降維之線性判別分析機器學習
- 用圖機器學習探索 A 股個股相關性變化機器學習
- Java String的相關性質分析Java
- 不止卡方檢驗和線性相關係數,相關性分析有6種方法
- HTML中object param 有關flash屬性引數詳解HTMLObject
- 【詳解】WebSocket相關知識整理Web
- stm32之CAN傳送、接收詳解
- 機器學習模型可解釋性的詳盡介紹機器學習模型
- Mssql和Mysql的相關安全性分析(轉)MySql
- 【基底 / 線性組合 / 線性無關(相關)】- 圖解線性代數 02圖解
- 開發者 App Store 收款的科學姿勢(文末有福利)APP
- 學好執行緒池,搞定高併發!(文末福利)執行緒
- background相關屬性
- html 列印相關操作與實現詳解HTML
- MTK Camera相關的Makefile Option詳解
- Linux檔案相關命令詳解(一)Linux
- 【DataGuard】部署Data Guard相關引數詳解
- .NET Framework非託管相關概念詳解Framework
- nginx-k8s 相關配置詳解NginxK8S
- 大資料,資料分析,機器學習,架構等相關係統名稱名詞解釋大資料機器學習架構
- 【機器學習】乾貨丨機器學習知識點;機器學習模型的“可解釋性”到底有多重要?機器學習模型
- 機器學習,深度學習相關介紹機器學習深度學習
- 機器學習之線性迴歸機器學習
- 50個典型電路例項詳解
- 轉錄組GO富集與微生物相關性分析Go
- STM32--USART詳解
- Mbps 及其相關單位詳細講解