NCC算法
首先进行向量归一化操作,
S
=
S
i
,
j
−
m
e
a
n
S
S=S_{i,j}-meanS
S=Si,j−meanS,
T
=
T
i
,
j
−
m
e
a
n
T
T=T_{i,j}-meanT
T=Ti,j−meanT
然后计算两个向量的余弦相似度:
c
o
s
(
R
)
=
S
∗
T
/
(
S
2
∗
T
2
)
cos(R)=S*T/(\sqrt{S^2} *\sqrt{T^2})
cos(R)=S∗T/(S2∗T2)
分母第一部分优化:
∑ ( S i − S ˉ ) 2 = ∑ ( S i − ∑ S i n ) 2 \sum({S_i}-\bar{S})^2=\sum({S_i}-\frac{\sum S_i}{n})^2 ∑(Si−Sˉ)2=∑(Si−n∑Si)2,令 a = S i a=S_i a=Si, b = ∑ S i n b=\frac{\sum S_i}{n} b=n∑Si
原式展开:
∑ ( a − b ) 2 = ∑ a 2 − 2 ∑ a ∗ b + ∑ b 2 \sum(a-b)^2=\sum a^2 -2\sum a*b +\sum b^2 ∑(a−b)2=∑a2−2∑a∗b+∑b2
得:
∑ S i 2 − 2 ∑ S i ∗ ∑ S i n + ∑ ( ∑ S i n ) 2 = ∑ S i 2 − 2 ∑ S i ∗ ∑ S i n + n ∗ ( ∑ S i n ) 2 \sum S_i^2 -2\sum S_i*\frac{\sum S_i}{n} +\sum (\frac{\sum S_i}{n})^2 =\sum S_i^2 -2\sum S_i*\frac{\sum S_i}{n} +n* (\frac{\sum S_i}{n})^2 ∑Si2−2∑Si∗n∑Si+∑(n∑Si)2=∑Si2−2∑Si∗n∑Si+n∗(n∑Si)2
化简:
∑ S i 2 − 2 ∑ S i ∗ ∑ S i n + ∑ S i ∗ ∑ S i n \sum S_i^2 -2\sum S_i*\frac{\sum S_i}{n} +\sum S_i*\frac{\sum S_i}{n} ∑Si2−2∑Si∗n∑Si+∑Si∗n∑Si
得最后结果:
= ∑ S i 2 − ∑ S i ∗ ∑ S i n =\sum S_i^2 -\sum S_i*\frac{\sum S_i}{n} =∑Si2−∑Si∗n∑Si