python求各种距离公式
2016-09-19 17:01
856 查看
今天一个偶然的机会体会到了python数据运算的强大。求一个数组各样本之间的距离仅简单的几句代码就行。看来真的技术改变世界啊。废话不多说,记下来怕以后忘记。
from scipy.spatial.distance import pdist, squareform下面结合API文档标注一下具体用法:
1.X = pdist(X, 'euclidean')计算数组X样本之间的欧式距离 返回值为 Y 为压缩距离元组或矩阵(以下等同)
2. X = pdist(X, 'minkowski', p)计算数组样本之间的明氏距离
3. Y = pdist(X, 'cityblock')计算数组样本之间的曼哈顿距离
4. X = pdist(X, 'seuclidean', V=None)计算数组样本之间的标准化欧式距离 ,v是方差向量,表示 v[i]表示第i个分量的方差,如果缺失。默认自动计算。
5. X = pdist(X, 'sqeuclidean')计算数组样本之间欧式距离的平方
6. X = pdist(X, 'cosine')计算数组样本之间余弦距离 公式为:
7. X = pdist(X, 'correlation')计算数组样本之间的相关距离。
8.X = pdist(X, 'hamming')计算数据样本之间的汉明距离
9. X = pdist(X, 'jaccard')计算数据样本之间的杰卡德距离
10. X = pdist(X, 'chebyshev')计算数组样本之间的切比雪夫距离
11. X = pdist(X, 'canberra')
计算数组样本之间的堪培拉距离
12. X = pdist(X, 'mahalanobis', VI=None)
计算数据样本之间的马氏距离还有好多不常用的距离就不一一写出了,如果想查阅可以点点我,点我
除了对指定的距离计算该函数还可以穿lmbda表达式进行计算,如下
dm = pdist(X, lambda u, v: np.sqrt(((u-v)**2).sum()))二、得到压缩矩阵后还需下一步即:
Y=scipy.spatial.distance.squareform(X, force='no', checks=True)
其中,X就是上文提到的压缩矩阵Y,force 如同MATLAB一样,如果force等于‘tovector’ or ‘tomatrix’,输入就会被当做距离矩阵或距离向量。
cheak当X-X.T比较小或diag(X)接近于零,是是有必要设成True的,返回值Y为一个距离矩阵Y[i,j]表示样本i与样本j的距离。
相关文章推荐
- python求各种距离公式
- 图像检索中相似度度量公式:各种距离
- 图像检索中相似度度量公式:各种距离
- 图像检索中相似度度量公式:各种距离(1)
- 机器学习中的各种距离计算公式
- python 机器学习中各种距离
- python距离计算公式
- python 各类距离公式实现
- Python----python实现机器学习中的各种距离计算及文本相似度算法
- python函数——根据经纬度计算距离公式的错误及修正
- python实现机器学习中的各种距离计算及文本相似度算法
- 求通过经纬度计算地球表面任意两点间距离的公式
- 计算地球上A B两点间距离的计算公式
- Python 各种应用收集
- 【各种公式】
- [emacs] Python代码补全的各种方法介绍以及对比
- 由Python想起的各种进制数
- 各种内排序算法(Python实现)
- 在word中输入各种公式
- python的各种GUI开发框架介绍