核典型關聯分析(KCCA)演算法原理

2021-07-04 01:54:08 字數 2421 閱讀 3220

普通的線性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蘋果 香蕉 梨...