数据分析-数据挖掘基础-样本距离度量

目录

前言

曼哈顿距离

欧氏距离

 切比雪夫距离

闵可夫斯基距离(Minkowski Distance)

余弦相似性

 相关系数 ( Correlation coefficient )与相关距离(Correlationdistance)

汉明距离(Hamming distance)


前言

机器学习算法中,如k近邻,聚类算法等,需要计算样本间的距离。样本间距离的计算方法与具体解决的问题相关。常用的距离计算方法有:欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离等。

曼哈顿距离

考虑在城市两点之间不能横穿,必须沿着街道走,曼哈顿距离也称为城市街区距离(City Block distance)。m维空间两点的曼哈顿距离为:

d(x1,x2)=\sum_{i=1}^{m}\left | x_{1i} -x_{2i}\right |

d12=sum(np.abs(x1-x2))
'''
from scipy.spatial.distance import pdist
d12=pdist([x1,x2],"cityblock")
'''

欧氏距离

欧氏距离最常用的一种距离计算方法,源自欧氏空间中两点间的距离公式,n维空间的欧氏距离计算公式如下。

d(x1,x2)=\sqrt{\sum_{i=1}^{n}(x_{1i}-x_{2i})^{2}}

d12=np.sqrt(np.sum(np.square(x1-x2)))
'''
from scipy.spatial.distance import pdist
d12=pdist([x1,x2],"euclidean")
'''

 切比雪夫距离

国际象棋zhong 国王走一步能够移动到相邻的8个方格中的任意一个。那么国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?你会发现最少步数总是max(| x2-x1| , |y2-y1| ) 步。有一种类似的一种距离度量方法叫切比雪夫距离(L∞范数)。

d(x1,x2)=\lim_{k\rightarrow \infty }(\sum_{i=1}^{n}\left | x_{1i}-x_{2i} \right |^{k})^{1/k}=max(\left | x_{1i}-x_{2i} \right |)

np.abs(vector1-vector2).max()
'''
from scipy.spatial.distance import pdist
d12=pdist([x1,x2],"chebyshev")
'''

闵可夫斯基距离(Minkowski Distance)

两个n维变量x1与 x2间的闵可夫斯基距离定义为:        

d(x1,x2)=(\sum_{i=1}^{n}\left | x_{1i}-x_{2i} \right |^{p})^{1/p}

其中p是一个变参数。

当p=1时,就是曼哈顿距离

当p=2时,就是欧氏距离

当p→∞时,就是切比雪夫距离

d12=np.sum(np.abs(x1-x2)**p)**(1/p)
'''
from scipy.spatial.distance import pdist
d12=pdist([x1,x2],"minkowski",p=2)
'''

余弦相似性

对文本数据分析时,常用余弦相似性为计算文本的相似性,其值越大说明文档越相似。

sim(x1,x2)=\frac{x1\cdot x2}{\parallel x1\parallel\cdot \parallel x2\parallel}

from scipy.spatial.distance import pdist
d12=pdist([x1,x2],"cosine)

 相关系数 ( Correlation coefficient )与相关距离(Correlationdistance)

相关系数是衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的绝对值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关)。

from scipy.spatial.distance import pdist
pdist([x,y],"correlation")  #相关距离
np.corrcoef([x,y])   #相关系数

汉明距离(Hamming distance)

两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。

from scipy.spatial.distance import pdist
d12 = pdist([x,y], 'hamming')
'''
metric : str or function, optional
    The distance metric to use. The distance function can
    be 'braycurtis', 'canberra', 'chebyshev', 'cityblock',
    'correlation', 'cosine', 'dice', 'euclidean', 'hamming',
    'jaccard', 'jensenshannon', 'kulsinski', 'mahalanobis', 'matching',
    'minkowski', 'rogerstanimoto', 'russellrao', 'seuclidean',
    'sokalmichener', 'sokalsneath', 'sqeuclidean', 'yule'.
'''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ITLiu_JH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值