普通的線性cca只能探索兩組隨機變數之間的線性關係,而在實際情況中,變數間的關係往往是非線性的,於是非線性的cca出現了,kcca就是一種常用的非線性cca演算法。kcca是把核函式的思想引入cca中,思想是把低維的資料對映到高維的特徵空間(核函式空間),並通過核函式方便地在核函式空間進行關聯分析。
首先引入乙個把資料對映到高維特徵空間的的對映(從m維到n維的對映):ϕ:
x=(x
1,..
.,xm
)↦ϕ(
x)=(
ϕ1(x
),..
.,ϕn
(x))
,(m核kernel是指乙個函式k,對所有的x,
z 有:k(
x,z)
=⟨ϕ(
x),ϕ
(z)⟩
設兩組向量的樣本矩陣為: xp
×n=(
x1,.
..,x
n),y
q×n=
(y1,
...,
yn)
設ϕx,ϕ
y 分別表示作用於x,
y 上的變換,即: ϕx
(x)=
(ϕx(
x1),
...,
ϕx(x
n)),
ϕy(y
)=(ϕ
y(y1
),..
.,ϕy
(yn)
) 變換後的ϕx
(x)、
ϕy(y
) 均為n x n維矩陣。之後和線性cca類似,我們希望找到兩個n維向量wx
,wy ,使得u=
wtxϕ
x(x)
與 v=
wtyϕ
y(y)
相關係數
ρ 最大。在x
、y上定義核矩陣kx
、ky(
均為n×
n)如下: kx
(i,j
)=kx
(xi,
xj)=
ϕx(x
i)tϕ
x(xj
),ky
(i,j
)=ky
(yi,
yj)=
ϕy(y
i)tϕ
y(yj
) 該問題可以轉化為乙個優化問題: l(
wx,w
y,λx
,λy)
=αtm
α−λx
2αtl
α−λy
2βtn
β 其中: m=
1nkt
xjky
l=1nkt
xjkx
+ηkx
n=1nkt
yjky
+ηky
j=i−11
t 1
=(1,
...,
1)t
參考《cca在數字影象處理中的應用研究》
由理論推導可得:wx
=∑ni
=1αi
ϕx(x
i),w
y=∑n
i=1β
iϕy(
yi)
則有: u=
wtxϕ
x(x)
=∑ni
=1αi
ϕx(x
i)tϕ
x(x)
(2.1)v=
wtyϕ
y(y)
=∑ni
=1βi
ϕy(y
i)tϕ
y(y)
(2.2)
具體的kcca實現步驟如下:
(1)由樣本x、y以及核函式k(
x,z)
的定義計算核矩陣kx
、ky
高斯核函式為: k(
x,z)
=e−∣
x−z∣
22σ2
(2)計算m、n、l;
(3)由以下式子計算α、
β :l−
1mn−
1mtα
=λ2α
n−1mtl
−1mβ
=λ2β
(4)由2.1、2.2式計算u,
v :u=
∑ni=
1αik
x(xi
,x)
v=∑ni=1
βiky
(yi,
y)
通過很多樣本對x,
y 可以得到很多u,
v 對,通過這些u,
v 對可以畫圖觀察u,
v 之間的線性相關性,並計算相關係數ρ(
u,v)
,其實最後計算u,
v 可以直接利用核矩陣和α,
β 求解。
典型關聯分析 CCA 原理總結
典型關聯分析 canonical correlation analysis,以下簡稱cca 是最常用的挖掘資料關聯關係的演算法之一。比如我們拿到兩組資料,第一組是人身高和體重的資料,第二組是對應的跑步能力和跳遠能力的資料。那麼我們能不能說這兩組資料是相關的呢?cca可以幫助我們分析這個問題。在數理統...
關聯分析演算法
關聯分析演算法 關聯分析演算法的應用非常廣泛,它可以在大規模資料集中找出一組有關聯的資料。例如 商品分析中,我們可以分析出哪些商品之間有購買的關聯,也就是買了其中乙個商品之後,顧客就很有可能買另外乙個商品。頻繁項集是指那些經常出現在一起的物品集合,那麼如何評價這裡的頻繁程度呢?我們用支援度和可信度 ...
關聯分析中FPGrowth演算法原理及實戰
apriori存在以下不足,每次計算項集都會產生大量的候選項集,使計算資源和儲存空間產生浪費。而樹模型是一種很好的儲存資料的方式,故fpgrowth演算法由此而生。fpgrowth演算法是優化版的apriori演算法。某家水果店的訂單清單如下 購物單號 購買的水果 1蘋果 香蕉 梨 2蘋果 香蕉 梨...