iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python如何实现马氏距离求取函数
  • 923
分享到

Python如何实现马氏距离求取函数

2023-06-25 15:06:25 923人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python如何实现马氏距离求取函数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。马氏距离区别于欧式距离,如百度知道中所言:马氏距离(Mahalanobis

这篇文章主要介绍了python如何实现马氏距离求取函数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

马氏距离区别于欧式距离,如百度知道中所言:

马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示点与一个分布之间的距离。它是一种有效的计算两个未知样本集的相似度的方法。与 欧氏距离不同的是,它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的),并且是尺度无关的(scale-invariant),即独立于测量尺度。对于一个均值为μ, 协方差矩阵为Σ的多变量向量,其马氏距离为sqrt( (x-μ)'Σ^(-1)(x-μ) )。

因此,对于马氏距离最终的定义式为:

Python如何实现马氏距离求取函数

上代码,将马氏距离求取式,封装为Python函数,拷贝即可使用:

from numpy import *import numpydef get_mahalanobis(x, i, j):    xT = x.T  # 求转置    D = numpy.cov(xT)  # 求协方差矩阵    invD = numpy.linalg.inv(D)  # 协方差逆矩阵    assert 0 <= i < x.shape[0], "点 1 索引超出样本范围。"    assert -1 <= j < x.shape[0], "点 2 索引超出样本范围。"    x_A = x[i]    x_B = x.mean(axis=0) if j == -1 else x[j]    tp = x_A - x_B    return numpy.sqrt(dot(dot(tp, invD), tp.T))

使用方式如下:

if __name__ == '__main__':    # 初始化数据点集,或者从其它地方加载    x = numpy.array([[3, 4], [5, 6], [2, 2], [8, 4]])    # 求第0个点到均值之间的马氏距离(j为-1时代表均值)    print(get_mahalanobis(x, 0, -1))    # 求第0个点到第1个点之间的马氏距离    print(get_mahalanobis(x, 0, 1))    # 求第2个点到第3个点之间的马氏距离(索引从0开始算起)    print(get_mahalanobis(x, 2, 3))

运行结果贴图

Python如何实现马氏距离求取函数

感谢你能够认真阅读完这篇文章,希望小编分享的“Python如何实现马氏距离求取函数”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网Python频道,更多相关知识等着你来学习!

--结束END--

本文标题: Python如何实现马氏距离求取函数

本文链接: https://www.lsjlt.com/news/305696.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python如何实现马氏距离求取函数
    这篇文章主要介绍了Python如何实现马氏距离求取函数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。马氏距离区别于欧式距离,如百度知道中所言:马氏距离(Mahalanobis...
    99+
    2023-06-25
  • Python 马氏距离求取函数详解
    马氏距离区别于欧式距离,如百度知道中所言: 马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示点与一个...
    99+
    2024-04-02
  • Python如何实现距离和相似性计算
    本篇内容主要讲解“Python如何实现距离和相似性计算”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何实现距离和相似性计算”吧!欧氏距离也称欧几里得距离,是指在m维空间中两个点之间...
    99+
    2023-07-05
  • 使用python怎么实现经纬度求两点距离
    本篇文章给大家分享的是有关使用python怎么实现经纬度求两点距离,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。先给出半正失公式(haversine formula):先看第一...
    99+
    2023-06-15
  • python如何实现华氏温度和摄氏温度转换
    目录华氏温度和摄氏温度转换输出华氏-摄氏温度转换表题目描述划重点( ̄︶ ̄)↗ 华氏温度和摄氏温度转换 TempStr=input("请输入带有符号的温度值,C/c表示摄氏度、F/f...
    99+
    2022-11-13
    python华氏温度 python摄氏温度 华氏温度转摄氏温度
  • Python如何利用百度地图获取两地距离
    这篇文章主要介绍“Python如何利用百度地图获取两地距离”,在日常操作中,相信很多人在Python如何利用百度地图获取两地距离问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何利用百度地图获取两...
    99+
    2023-06-20
  • python如何实现快速的求和函数
    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!                     ...
    99+
    2023-01-31
    如何实现 函数 快速
  • Python如何实现杰卡德距离以及环比算法
    这篇文章将为大家详细讲解有关Python如何实现杰卡德距离以及环比算法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言NLP-字符串相似性计算、集合相似性度量杰卡德距离是什么?杰卡德距离(Jaccard...
    99+
    2023-06-29
  • Python 函数如何实现实时响应并发请求?
    Python 是一门强大的编程语言,它支持并发编程。在现代 Web 应用程序中,实现并发请求处理是至关重要的。在本文中,我们将探讨如何使用 Python 函数来实现实时响应并发请求。 Python 函数是一种可重复使用的代码块,可以接收参...
    99+
    2023-08-29
    函数 实时 并发
  • Python中如何实现Flask请求数据获取响应
    这篇文章给大家分享的是有关Python中如何实现Flask请求数据获取响应的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一,请求数据及其获取      ...
    99+
    2023-06-25
  • Python如何求取逆序数
    目录Python求取逆序数方法一.py方法二.py方法三.pypython列表逆序数求解什么是逆序数总结Python求取逆序数 方法一.py num = int(input('请输入...
    99+
    2022-12-20
    Python求取逆序数 Python逆序数 求取逆序数
  • Matlab利用垂距法实现提取离散坐标数据特征点
    目录1.工具函数2.基础使用(二维)3.使用并修饰绘图(二维)4.三维数据垂距法是指根据中间顶点到其前、后两相邻顶点连线的距离的大小,来确定是否保留该顶点的一种 线要素顶点...
    99+
    2024-04-02
  • MySQL中Datax如何实现离线数据抽取
    这篇文章将为大家详细讲解有关MySQL中Datax如何实现离线数据抽取,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Datax下载地址:https://github.co...
    99+
    2024-04-02
  • python如何实现质数求和
    目录如何实现质数求和实现1~100所有质数求和如何实现质数求和 生活中很多问题是需要用数学来解决的,比如说要是做一栋房子,各方面的数据都要计算,要用多少材料,长宽高多少等,简单地说,...
    99+
    2024-04-02
  • python中如何求幂函数
    python中可以使用pow函数求幂,具体方法如下:pow():pow()函数的作用是返回x的y次方的值。pow()函数语法:math.pow( x, y )pow()函数使用方法:import math #导入math模块print "m...
    99+
    2024-04-02
  • Matlab怎么利用垂距法实现提取离散坐标数据特征点
    这篇文章主要介绍了Matlab怎么利用垂距法实现提取离散坐标数据特征点的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Matlab怎么利用垂距法实现提取离散坐标数据特征点文章都会有所收获,下面我们一起来看看吧。垂...
    99+
    2023-06-29
  • python如何获取函数名
    在python中获取函数名的方法在类内部获取函数名import sysclass testsqawd(object):def hello(self):print('the name of method is ## {}##'.format(...
    99+
    2024-04-02
  • java如何实现数位分离
    目录java数位分离分离整数的各个数位java数位分离 题目: 问题描述  编写一个程序,输入一个1000 以内的正整数,然后把这个整数的每一位数字都分离出来,并逐一地显示。  输入...
    99+
    2024-04-02
  • python如何通过函数取差
    小编给大家分享一下python如何通过函数取差,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!通过函数取差如下方法首先会应用一个给定的函数,然后再返回应用函数后结果...
    99+
    2023-06-27
  • Python 如何截取字符函数
    目录如何截取字符函数截取字符串(字符串切片)字符串如何截取字符函数 在工作中我们经常会遇到某种情况需要截取字符串中某个特定标签之间的内容(爬虫可能用到的较多),适用于很多情况例如字符...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作