邻近性的度量 (距离、相似度)

邻近性度量的应用非常广泛,例如在推荐算法的协同过滤中可以用来衡量物品之间或用户之间的相似性,从而做推荐;又例如在做特征工程,衡量特征之间的相关性,从而筛选特征。那么接下来就讲一下特征性度量的指标。

  • 简单匹配系数

    简单匹配系数(Simple Match Coefficient,SMC):

    s m c = f 00 + f 11 f 00 + f 11 + f 10 + f 01 smc=\frac{f_{00}+f_{11}}{f_{00}+f_{11}+f_{10}+f_{01}} smc=f00+f11+f10+f01f00+f11

    对于取值是二元的 x 1 , x 2 x_1,x_2 x1,x2 两个样本或两个特征:

    f 00 , f 11 f_{00},f_{11} f00,f11 表示它们取值都为 0 或都为 1 的个数;

    f 10 , f 01 f_{10},f_{01} f10f01 表示它们取值不同的个数;


    例如:

    对用户 u 1 , u 2 , u 3 u_1,u_2,u_3 u1,u2,u3 之间的相似度进行衡量( 1 1 1 代表 “是”, 2 2 2 代表 “否”):

    ID爱看书爱唱歌爱看电影爱购物爱睡觉
    u111001
    u200011
    u310000

    ∙ \bullet u 1 / u 2 : f 11 = 1 , f 00 = 1 , f 10 = 2 , f 01 = 1 u_1/u_2:f_{11}=1,f_{00}=1,f_{10}=2,f_{01}=1 u1/u2f11=1f00=1f10=2f01=1

    s m c u 1 , u 2 = f 00 + f 11 f 00 + f 11 + f 10 + f 01 = 1 + 1 1 + 1 + 2 + 1 = 2 5 smc_{u_1,u_2}=\frac{f_{00}+f_{11}}{f_{00}+f_{11}+f_{10}+f_{01}}=\frac{1+1}{1+1+2+1}=\frac{2}{5} smcu1,u2=f00+f11+f10+f01f00+f11=1+1+2+11+1=52

    ∙ \bullet u 2 / u 3 : f 11 = 0 , f 00 = 1 , f 10 = 2 , f 01 = 1 u_2/u_3:f_{11}=0,f_{00}=1,f_{10}=2,f_{01}=1 u2/u3f11=0f00=1f10=2f01=1

    s m c u 2 , u 3 = f 00 + f 11 f 00 + f 11 + f 10 + f 01 = 0 + 1 0 + 1 + 1 + 2 = 1 4 smc_{u_2,u_3}=\frac{f_{00}+f_{11}}{f_{00}+f_{11}+f_{10}+f_{01}}=\frac{0+1}{0+1+1+2}=\frac{1}{4} smcu2,u3=f00+f11+f10+f01f00+f11=0+1+1+20+1=41

    因为: s m c u 1 , u 2 > s m c u 2 , u 3 smc_{u_1,u_2} > smc_{u_2,u_3} smcu1,u2>smcu2,u3,所以用户 u 1 , u 2 u_1,u_2 u1,u2 更相似,所以可以将 u 1 u_1 u1 的爱好推荐给 u 2 u_2 u2.

  • Jaccard 系数

    一般来讲,我们更关注值为 1 的特征,当数据向量 非常稀疏时,值为 1 的特征个数少,值为 0 的特征个数非常多,此时 SMC 对每个用户间计算的值都是非常相近的,容易判定都相似,所以引入 Jaccard 系数,它忽略了取值都是 0 的特征:

    J = f 11 f 11 + f 10 + f 01 J=\frac{f_{11}}{f_{11}+f_{10}+f_{01}} J=f11+f10+f01f11,忽略了 f 00 f_{00} f00

  • 广义 Jaccard 系数

    对于多值属性可以使用 广义 Jaccard 系数:

    E J ( x 1 , x 2 ) = ( x 1 , x 2 ) ∣ ∣ x 1 ∣ ∣ 2 + ∣ ∣ x 2 ∣ ∣ 2 − ( x 1 , x 2 ) EJ(x_1,x_2)=\frac{(x_1,x_2)}{||x_1||^2+||x_2||^2-(x_1,x_2)} EJ(x1,x2)=x12+x22(x1,x2)(x1,x2),其中 ( x 1 , x 2 ) (x_1,x_2) (x1,x2) x 1 , x 2 x_1,x_2 x1,x2 的内积,即对应特征乘积的和。

    可用于稀疏向量,且在特征都为二元取值的条件下归约为 Jaccard 系数。

  • 距离

    定义 x 1 , x 2 x_1,x_2 x1,x2 之间的距离为: d ( x 1 , x 2 ) = [ ∑ k = 1 n ∣ x 1 − x 2 ∣ β ] 1 β d(x_1,x_2)=[\sum_{k=1}^{n}|x_1-x_2|^β]^{\frac{1}{β}} d(x1,x2)=[k=1nx1x2β]β1

    β = 1 β=1 β=1 时,称为曼哈顿距离,或 L1 范数,L1 正则项;

    β = 2 β=2 β=2 时,称为欧氏距离,或 L2 范数,L2 正则项;

    β = ∞ β=\infty β= 时,称为上确界距离,或 Lmax 范数, d ( x 1 , x 2 ) = β → ∞ lim ⁡ [ ∑ k = 1 n ∣ x 1 ( k ) − x 2 ( k ) ∣ ] 1 β d(x_1,x_2)=\mathop{}_{β→\infty}^{\lim}[\sum_{k=1}^{n}|x_1^{(k)}-x_2^{(k)}|]^{\frac{1}{β}} d(x1,x2)=βlim[k=1nx1(k)x2(k)]β1

    距离易受值域大的特征的影响,应注意规范化。


    对于一个距离,需要满足三条距离公理:正定性、对称性、三角不等式。

    ∙ \bullet 正定性: d ( x 1 , x 2 ) ≥ 0 d(x_1,x_2)\ge0 d(x1,x2)0

    ∙ \bullet 对称性: d ( x 1 , x 2 ) = d ( x 2 , x 1 ) d(x_1,x_2)=d(x_2,x_1) d(x1,x2)=d(x2,x1)

    ∙ \bullet 三角不等式: d ( x 1 , x 3 ) ≤ d ( x 1 , x 2 ) + d ( x 2 , x 3 ) d(x_1,x_3)\le d(x_1,x_2)+d(x_2,x_3) d(x1,x3)d(x1,x2)+d(x2,x3)

    只有满足此三条公理,此度量标准才能称为距离。显然以上所说的三种都满足。

  • 余弦相似度

    定义 x 1 , x 2 x_1,x_2 x1,x2 之间的余弦相似度为: cos ⁡ ( x 1 , x 2 ) = ( x 1 , x 2 ) ∣ ∣ x 1 ∣ ∣ + ∣ ∣ x 2 ∣ ∣ \cos(x_1,x_2)=\frac{(x_1,x_2)}{||x_1||+||x_2||} cos(x1,x2)=x1+x2(x1,x2)

    计算的是两个向量夹角的余弦值,其中 ( x 1 , x 2 ) (x_1,x_2) (x1,x2) 为内积, ∣ ∣ x ∣ ∣ = ∑ k = 1 n x ( k ) ⋅ x ( k ) ||x||=\sum_{k=1}^{n}x^{(k)}·x^{(k)} x=k=1nx(k)x(k)。余弦相似度在计算过程中有求和操作,自动忽略 0 值。

    余弦相似度还可改写为: cos ⁡ ( x 1 , x 2 ) = x 1 ∣ ∣ x 1 ∣ ∣ ⋅ x 2 ∣ ∣ x 2 ∣ ∣ \cos(x_1,x_2)=\frac{x_1}{||x_1||}·\frac{x_2}{||x_2||} cos(x1,x2)=x1x1x2x2

    相当于 x 1 , x 2 x_1,x_2 x1,x2 被各自的长度除,将长度规范化,意味着不考虑 x 1 , x 2 x_1,x_2 x1,x2 量值。

    余弦相似度不是一个严格定义的距离,它只满足正定性与对称性,但不满足三角不等式。

  • 皮尔森系数

    皮尔森系数(Pearson’s Correlation)定义为: p c ( x 1 , x 2 ) = S x 1 , x 2 S x 1 ⋅ S x 2 pc(x_1,x_2)=\frac{S_{x_1,x_2}}{S_{x_1}·S_{x_2}} pc(x1,x2)=Sx1Sx2Sx1,x2

    其中 S x 1 , x 2 = c o v ( x 1 , x 2 ) = 1 n − 1 ∑ k = 1 n ( x 1 − x ‾ 1 ) ( x 2 − x ‾ 2 ) S_{x_1,x_2}=cov(x_1,x_2)=\frac{1}{n-1}\sum_{k=1}^{n}(x_1-\overline x_1)(x_2-\overline x_2) Sx1,x2=cov(x1,x2)=n11k=1n(x1x1)(x2x2) x 1 , x 2 x_1,x_2 x1,x2 的协方差。

    S x 1 = 1 n ∑ k = 1 n ( x 1 − x ‾ 1 ) S_{x_1}=\sqrt{\frac{1}{n}\sum_{k=1}^{n}(x_1-\overline x_1)} Sx1=n1k=1n(x1x1) S x 2 = 1 n ∑ k = 1 n ( x 2 − x ‾ 2 ) S_{x_2}=\sqrt{\frac{1}{n}\sum_{k=1}^{n}(x_2-\overline x_2)} Sx2=n1k=1n(x2x2) 为标准差。


    ∙ \bullet p c = 1 pc=1 pc=1 x 1 , x 2 x_1,x_2 x1,x2 完全正相关;

    ∙ \bullet p c = − 1 pc=-1 pc=1 x 1 , x 2 x_1,x_2 x1,x2 完全正相关;

    ∙ \bullet p c = 0 pc=0 pc=0 x 1 , x 2 x_1,x_2 x1,x2 不存在线性关系(可能非线性);

  • Bregman 散度

    Bregman 散度(Bregman Divergence):假设 y y y 为真实点 , x x x y y y 的近似点或失真点(例如向 y y y 点加入噪声得到 x x x),Bregman 散度的目的是度量 x x x y y y 之间的损失量或差,是度量相异性的函数,当然相异性越小则意味着相似性越大。

    d ( x , y ) = f ( x ) − f ( y ) − &lt; ∇ f ( y ) , ( x − y ) &gt; d(x,y)=f(x)-f(y)-&lt;\nabla f(y),(x-y)&gt; d(x,y)=f(x)f(y)<f(y),(xy)>

    其中, f ( t ) f(t) f(t) 为一个函数, f ( y ) f(y) f(y) f ( t ) f(t) f(t) t = y t=y t=y 时的斜率, ( x − y ) (x-y) (xy) 为向量差, &lt; ∇ f ( y ) , ( x − y ) &gt; &lt;\nabla f(y),(x-y)&gt; <f(y),(xy)> 为二者的内积。

    ∙ \bullet 注:可从 d ( x , y ) = f ( x ) − L ( x ) , L ( x ) = f ( y ) + &lt; ∇ f ( y ) , ( x − y ) &gt; d(x,y)=f(x)-L(x),L(x)=f(y)+&lt;\nabla f(y),(x-y)&gt; d(x,y)=f(x)L(x)L(x)=f(y)+<f(y),(xy)>

    L ( x ) L(x) L(x) 代表在 y y y 上正切与 f ( t ) f(t) f(t) 函数的(平面)方程; d ( x , y ) d(x,y) d(x,y) f ( t ) f(t) f(t) f ( t ) f(t) f(t) 的线性近似之间的差。

    例: f ( t ) = t 2 f(t)=t^2 f(t)=t2,假设真实点 y = 1 y=1 y=1,求 x = 2 , x = 3 x=2,x=3 x=2,x=3时分别的 Bregman 散度:
    解: d ( x , y ) = x 2 − y 2 − 2 y ⋅ ( x − y ) = { 1 , x = 2 4 , x = 3 d(x,y)=x^2-y^2-2y·(x-y)=\begin{cases}1,x=2\\4,x=3 \end{cases} d(x,y)=x2y22y(xy)={1,x=24,x=3
    在这里插入图片描述

  • 选择正确的度量指标

    ∙ \bullet 对于稠密的、连续的数据:使用距离、SMC等;

    ∙ \bullet 对于稀疏的、非对称的数据:余弦相似度、Jaccard、广义Jaccard等;

    ∙ \bullet 对于量值重要的,衡量数值是否相近:距离等;

    ∙ \bullet 对于形状重要的,衡量形状是否相似:余弦等。

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值