典型關聯分析(canonical correlation analysis,以下簡稱cca)是最常用的挖掘資料關聯關係的演算法之一。比如我們拿到兩組資料,第一組是人身高和體重的資料,第二組是對應的跑步能力和跳遠能力的資料。那麼我們能不能說這兩組資料是相關的呢?cca可以幫助我們分析這個問題。
在數理統計裡面,我們都知道相關係數這個概念。假設有兩組一維的資料集x和y,則相關係數ρρ的定義為:
其中cov(x,y)cov(x,y)是x和y的協方差,而d(x),d(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維後,兩組資料的相關係數最大。
現在我們具體來討論下cca的演算法思想。假設我們的資料集是x和y,x為n1×mn1×m的樣本矩陣。y為n2×mn2×m的樣本矩陣.其中m為樣本個數,而n1,n2n1,n2分別為x和y的特徵維度。
對於x矩陣,我們將其投影到1維,或者說進行線性表示,對應的投影向量或者說線性係數向量為aa, 對於y矩陣,我們將其投影到1維,或者說進行線性表示,對應的投影向量或者說線性係數向量為bb, 這樣x ,y投影後得到的一維向量分別為x',y'。我們有
也就是說,我們的cca演算法的目標最終轉化為乙個凸優化過程,只要我們求出了這個優化目標的最大值,就是我們前面提到的多維x和y的相關性度量,而對應的a,ba,b則為降維時的投影向量,或者說線性係數。
這個函式優化一般有兩種方法,第一種是奇異值分解svd,第二種是特徵分解,兩者得到的結果一樣,下面我們分別講解。
對於上面的優化目標,我們可以做一次矩陣標準化,就可以用svd來求解了。
特徵分解方式就比較傳統了,利用拉格朗日函式,優化目標轉化為最大化下式:
這裡我們對cca的演算法流程做乙個總結,以svd方法為準。
可見演算法流程並不複雜,但是要理解這個演算法需要了解一些背景知識。
cca演算法廣泛的應用於資料相關度的分析,同時還是偏最小二乘法的基礎。但是由於它依賴於資料的線性表示,當我們的資料無法線性表示時,cca就無法使用,此時我們可以利用核函式的思想,將資料對映到高維後,再利用cca的思想降維到1維,求對應的相關係數和線性關係,這個演算法一般稱為kcca。
此外,我們在演算法裡只找了相關度最大的奇異值或者特徵值,作為資料的相關係數,實際上我們也可以像pca一樣找出第二大奇異值,第三大奇異值,。。。得到第二相關係數和第三相關係數。然後對資料做進一步的相關性分析。但是一般的應用來說,找出第一相關係數就可以了。
典型相關分析(CCA)簡述
典型相關分析 canonical correlation analysis 是研究兩組變數之間相關關係的一種多元統計方法,它能夠揭示出兩組變數之間的內在聯絡。在一元統計分析中,用相關係數來衡量兩個隨機變數的線性相關關係,用復相關係數研究乙個隨機變數與多個隨機變數的線性相關關係。然而,這些方法均無法用...
典型相關分析 cca 原理 液壓迴路分析與設計
gb t 786.1 2009這項國家標準已經發布 實施10年了,但其並沒有得到很好的遵照。究其原因 首先在一些標準 手冊 專著和 中就沒有嚴格地遵照 其次一些流體傳動及控制工作者本身不重視 最後受前一段時間的不良學風影響,且國內沒有 鼓勵 糾錯機制。針對前一段情況,作者曾出版過一本 液壓迴路分析與...
核典型關聯分析(KCCA)演算法原理
普通的線性cca只能探索兩組隨機變數之間的線性關係,而在實際情況中,變數間的關係往往是非線性的,於是非線性的cca出現了,kcca就是一種常用的非線性cca演算法。kcca是把核函式的思想引入cca中,思想是把低維的資料對映到高維的特徵空間 核函式空間 並通過核函式方便地在核函式空間進行關聯分析。首...