闵可夫斯基距离Minkowsli:
P=(x1,x2,...,xn)andQ=(y1,y2,...,yn)∈Rn
是衡量数值点之间距离的一种非常常见的方法,假设数值点 P 和Q 坐标如上:那么,闵可夫斯基距离定义为:
dist(X,Y)=(∑i=1n|xi−yi|p)1p
当p = 2时,表示的是欧几里得距离(Euclidean distance),
当p = 1时,表示的是曼哈顿距离(Manhattan distance)。
如图,白色是高楼大厦,灰色是街道假设车子要从左下角到右上角,绿色的斜线表示两点的欧几里得距离(两点间的直线距离)。其他三条是p=1时的曼哈顿距离,且这三条折现的长度相等(两点间的水平距离加上垂直距离)。
当p大于2到趋近于无穷大时,闵可夫斯基距离转化为切比雪夫距离(Chebyshev distance):
limp→∞(∑i=1|xi−yi|pn)1p=maxi=1|xi−yi|n.2.杰卡德相似性度量(Jaccard)
(1)杰卡德相似系数
两个集合A和B交集元素的个数在A、B并集中所占的比例,称为这两个集合的杰卡德系数,用符合
J(A,B)表示。杰卡德相似系数是衡量两个集合的一种指标
J(A,B)=|A∩B||A∪B|(2)杰卡德距离
与杰卡德相似系数相反的概念是杰卡德距离(Jaccard Distance),可以用如下公式来表示:
Jℓ=1−J(A,B)=|A∪B|−|A∩B||A∪B|
杰卡德距离用两个两个集合中不同元素占所有元素的比例来衡量两个集合的区分度(3)性质
1)、若A,B两个集合都为空,则 J(A,B)=1 ;
2)、 0≤J(A,B)≤1 .(4)应用
给定两个n维向量A、B,A、B的每一维都只能是0或者1,利用Jaccard相似系数来计算二者的相似性:
1) M00 代表向量A与向量B都是0的维度个数;
2) M01 代表向量A是0而向量B是1的维度个数;
3) M10 代表向量A是1而向量B是0的维度个数;
4) M11 代表向量A和向量B都是1的维度个数。
n维向量的每一维都会落入这个4类中的某一种,因此:
M00+M01+M10+M11=n
则Jaccard相似系数为
J(A,B)=M11M01+M10+M11
Jaccard距离为(相似系数的补集)
dJ(A,B)=M01+M10M01+M10+M11此处分母之所以不加 M00 的原因在于:
对于杰卡德相似系数或杰卡德距离来说,它处理的都是非对称二元变量。非对称的意思是指状态的两个输出不是同等重要的,例如,疾病检查的阳性和阴性结果。
按照惯例,我们将比较重要的输出结果,通常也是出现几率较小的结果编码为1(例如HIV阳性),而将另一种结果编码为0(例如HIV阴性)。给定两个非对称二元变量,两个都取1的情况(正匹配)认为比两个都取0的情况(负匹配)更有意义。负匹配的数量s认为是不重要的,因此在计算时忽略。3.余弦相似度(cosine dimilarity)
cos(θ)=aTb|a|∗|b|
这是两个向量的乘积在除以各个向量的模的乘积,得到两个向量的夹角余弦值。来衡量两个向量的相似度。
这个函数是在区间[0, π]上的减函数,单两个向量的余弦值越小,它们间的夹角越大,反之亦然。根据两个向量的余弦值来判断两个向量的夹角,从而得出两个向量的相似度。夹角越小相似度越大,表现为余弦值越大,相似度也越大。
4.Pearson相似系数
pearson是一个介于-1和1之间的值,用来描述两组线性的数据一同变化移动的趋势。
当两个变量的线性关系增强时,相关系数趋于1或-1;当一个变量增大,另一个变量也增大时,表明它们之间是正相关的,相关系数大于0;如果一个变量增大,另一个变量却减小,表明它们之间是负相关的,相关系数小于0;如果相关系数等于0,表明它们之间不存在线性相关关系。
|p| 表示两个变量相关的程度, p>0 表示正相关, p<0 表示负相关, p=0 表示零相关。 |p| 越接近于1,表明两变量相关程度越大,它们之间的关系越紧密。1)Person相关系数
a.两个变量均应有测量得到的连续变量
b.两个变量所来自的总体都应是正太分布,或接近正态的单峰对称分布。
c.变量必须是成对的数据
d.两变量间为线性关系5.相对熵(K-L散度)
在概率论或信息论中,KL散度(Kullback-Leibler divergence),又称相对熵(relative entropy),是描述两个概率分布P和Q差异的一种方法。
- 公式定义为:
对于离散随机变量:
对于连续随机变量:
- 物理意义:度量使用基于q分布的编码来编码来自p分布的样本评价所需的额外的bit个数。
举例:假设两个人通过纸筒电话交流。现在大家来玩一个游戏
两个人都拿2枚骰子,投掷记录下两个骰子点数之和,如果按照点数之和的数来弹电话线,则弹的次数和投掷骰子数字之和如下图所示:
这是q分布情况。p分布呢?,q分布这种不符合出现的数字和多的编码短,出现的数字和少的编码长。那么实际出现的数字和的情况
出现和为[2,3,4,5,6,7,8,9,10,11,12]的次数分别为[1,2,3,4,5,6,5,4,3,2,1]和出现的次数也就是上面的斜线\的里面的组合数。可以直观看出数字7出现的概率最大,根据出现的概率大,编码短的思想。我们改进的编码
从中看出7的编码最短,也就是符合数字和7出现的次数最大,编码就最短的思想。
接下来编程实现:
- 公式定义为:
#点数和出现的统计次数
num = [1,2,3,4,5,6,5,4,3,2,1]
p = num / np.sum(num) #点数和[2,3,4,5,6,7,8,9,10,11,12]出现的概率
#平均弹的次数q分布的数学期望
q = np.arange(2,13)#[2,3,4,5,6,7,8,9,10,11,12]
E_q = np.sum(p * q) #
#平均弹的次数P分布的数学期望
P = [10,8,6,4,2,1,3,5,7,9,11]
E_p = np.sum(p * P)
结果为:
7.0
4.47222222222
也就是p分布比q分布平均每次少弹约2.5次电话线