热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DistanceSimilarity

2019独角兽企业重金招聘Python工程师标准估算不同样本之间的相似性度量(SimilarityMeasurement),通常采用的方法就是计算样本间的“距离

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

估算不同样本之间的相似性度量(Similarity Measurement),通常采用的方法就是计算样本间的“距离”(Distance)

1.欧氏距离(Euclidean Distance) 
欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式
import numpy as np
vector1 = np.mat([1,2,3])
vector2 = np.mat([4,5,6])
distance = np.sqrt((vector1-vector2)*((vector1-vector2).T))
print(distance)

2. 曼哈顿距离(ManhattanDistance)
城市街区距离(CityBlock distance)
import numpy as np
vector1 = np.mat([1,2,3])
vector2 = np.mat([4,5,6])
distance = np.sum(np.abs(vector1-vector2))
print(distance)

3.切比雪夫距离 ( Chebyshev Distance )
二个点之间的距离定义是其各坐标数值差绝对值的最大值
import numpy as np
vector1 = np.mat([1,2,3])
vector2 = np.mat([4,7,5])
distance = np.abs(vector1-vector2).max()
print(distance)

4.闵可夫斯基距离(Minkowski Distance)
闵氏距离不是一种距离,而是一组距离的定义
曼哈顿距离/欧氏距离/切比雪夫距离

5.标准化欧氏距离(Standardized Euclidean Distance )
(标准化变量的数学期望为0,方差为1)
标准化后的值 =  ( 标准化前的值  - 分量的均值 ) /分量的标准差

6.马氏距离(Mahalanobis Distance)
两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度

7.夹角余弦(Cosine)
衡量两个向量方向的差异
夹角余弦取值范围为[-1,1]。夹角余弦越大表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。当两个向量的方
向重合时夹角余弦取最大值1,当两个向量的方向完全相反夹角余弦取最小值-1
from numpy import *
cosV12 = dot(vector1,vector2)/(linalg.norm(vector1)*linalg.norm(vector2))
print(cosV12)

8.汉明距离(Hamming Distance)
两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数
import numpy as np
matV = np.mat([[1,1,0,1,0,1,0,0,1],[0,1,1,0,0,0,1,1,1]])
smstr = np.nonzero(matV[0]-matV[1]);
distance = np.shape(smstr[0])[1]
print(distance)

9.杰卡德相似系数(Jaccard Similarity Coefficient) & 杰卡德距离(Jaccard Distance)
 杰卡德相似系数:两个集合A和B的交集元素在A,B的并集中所占的比例
 杰卡德相似系数是衡量两个集合的相似度一种指标。

 杰卡德距离:用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度
from numpy import *
import scipy.spatial.distance as dist
matV = bp.mat([[1,1,0,1,0,1,0,0,1],[0,1,1,0,0,0,1,1,1]])
distance = dist.pdist(matV,'jaccard')
print(distance)

10.相关系数(Correlation Coefficient)与相关距离(Correlation Distance)
  相关系数是衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。
  相关系数的绝对值越大,则表明X与Y相关度越高。
  当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关)
from numpy import *
import scipy.spatial.distance as dist
matV = bp.mat([[1,1,0,1,0,1,0,0,1],[0,1,1,0,0,0,1,1,1]])
distance = dist.pdist(matV,'correlation')
print(distance)

11.信息熵(Information Entropy)
  信息熵是衡量分布的混乱程度或分散程度的一种度量。
  分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小

12.其他 scipy.spatial.distance.xxxx
        scipy.spatial.distance.pdist(x, 'xxxx')

braycurtis(u, v)Computes the Bray-Curtis distance between two 1-D arrays.
canberra(u, v)Computes the Canberra distance between two 1-D arrays.
chebyshev(u, v)Computes the Chebyshev distance.
cityblock(u, v)Computes the City Block (Manhattan) distance.
correlation(u, v)Computes the correlation distance between two 1-D arrays.
cosine(u, v)Computes the Cosine distance between 1-D arrays.
dice(u, v)Computes the Dice dissimilarity between two boolean 1-D arrays.
euclidean(u, v)Computes the Euclidean distance between two 1-D arrays.
hamming(u, v)Computes the Hamming distance between two 1-D arrays.
jaccard(u, v)Computes the Jaccard-Needham dissimilarity between two boolean 1-D arrays.
kulsinski(u, v)Computes the Kulsinski dissimilarity between two boolean 1-D arrays.
mahalanobis(u, v, VI)Computes the Mahalanobis distance between two 1-D arrays.
matching(u, v)Computes the Matching dissimilarity between two boolean 1-D arrays.
minkowski(u, v, p)Computes the Minkowski distance between two 1-D arrays.
rogerstanimoto(u, v)Computes the Rogers-Tanimoto dissimilarity between two boolean 1-D arrays.
russellrao(u, v)Computes the Russell-Rao dissimilarity between two boolean 1-D arrays.
seuclidean(u, v, V)Returns the standardized Euclidean distance between two 1-D arrays.
sokalmichener(u, v)Computes the Sokal-Michener dissimilarity between two boolean 1-D arrays.
sokalsneath(u, v)Computes the Sokal-Sneath dissimilarity between two boolean 1-D arrays.
sqeuclidean(u, v)Computes the squared Euclidean distance between two 1-D arrays.
wminkowski(u, v, p, w)Computes the weighted Minkowski distance between two 1-D arrays.
yule(u, v)Computes the Yule dissimilarity between two boolean 1-D arrays.

转:https://my.oschina.net/igooglezm/blog/1860809



推荐阅读
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 本文详细介绍了Python中正则表达式和re模块的使用方法。首先解释了转义符的作用,以及如何在字符串中包含特殊字符。然后介绍了re模块的功能和常用方法。通过学习本文,读者可以掌握正则表达式的基本概念和使用技巧,进一步提高Python编程能力。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有