利用IDL计算马氏距离
来源:互联网 发布:淘宝旺旺账号查询 编辑:程序博客网 时间:2024/05/29 06:31
利用IDL计算马氏距离
目录
用 [TOC]
来生成目录:
- 利用IDL计算马氏距离
- 目录
- 马氏距离
- 协方差矩阵
- 协方差矩阵的逆
- 马氏距离的计算
马氏距离
马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的)并且是尺度无关的(scale-invariant),即独立于测量尺度。对于一个均值为
x为一维或多维向量,假定为n维向量,并有m个样本(
假定向量x为2维向量,共有4个样本数据,数据源用矩阵a表示如下:
下面利用IDL求解
- 协方差矩阵
∑ 的计算 - 矩阵逆的计算
- 马氏距离的计算
协方差矩阵
协方差矩阵
;IDL代码;输入:a矩阵(n行m列),n代表数据的维度,m代表数据的样本数。;输出:a的协方差矩阵cov,为n行n列的方阵。a = float([[3,4],[5,6],[10,89],[25,6]])n = n_elements(a[0,*])m = n_elements(a[*,0])cov= fltarr(n,n)for i = 0, n-1 do begin for j = i, n-1 do begin x = total((a[*,i] - mean(a[*,i]))*(a[*,j] - mean(a[*,j])))/(m - 1) cov[i,j] = x cov[j,i] = x endforendfor
输入:a矩阵如下
a=[34561089256]
输出:协方差矩阵cov如下
cov=[98.9167−15.5833−15.58331750.92]
协方差矩阵的逆
计算协方差矩阵的逆
;IDL代码vcov = MATRIX_POWER(cov,-1,status=sta)
矩阵
cov−1 如下cov−1=[0.01012379.01021e−0059.01021e−0050.000571931]
马氏距离的计算
令向量
;IDL代码z = [[3],[4]] - [[5],[6]]print,z -2 -2zt = transpose(z)dm = 0.0for k = 0, 1L do begin dm += total(zt*reform(vcov[k,*]))*z[0,k]endforprint,"dm=",dm^0.5dm= 0.208575
数据源矩阵a中
(0,1)=0.208575
(0,2)=2.17612
(0,3)=2.21587
(1,2)=2.06589
(1,3)=2.01233
(2,3)=2.44817
结果与MATLAB计算结果相同。见cau228charm在CSDN论坛的发文
>> x=[3,4;5,6;10,89;25,6]x = 3 4 5 6 10 89 25 6>> d=pdist(x,'mahalanobis')d = 0.2086 2.1761 2.2159 2.0659 2.0123 2.4482
- 利用IDL计算马氏距离
- 利用经纬度计算距离
- 利用经纬度计算距离
- 利用经纬度计算距离
- 马氏距离计算--MATLAB
- 模式识别相似性测度距离计算---马氏距离
- 【Python】Python实现马氏距离计算
- 利用google map api计算两地距离
- 利用Google Api计算行车距离代码
- 利用google directions api计算距离
- 利用经纬度计算两点之间距离:
- 利用编辑距离计算文本相似性
- 欧氏距离计算
- python计算欧氏距离
- 计算欧氏距离cvNorm
- Python 计算欧氏距离
- 基于js利用经纬度进行两地的距离计算
- 利用MATLAB计算三维坐标序列距离误差程序
- LearnOpenGL学习笔记7:摄像机
- 省市区街道四级地址库的应用案例(有图,可下载地址库)
- 挚爱 Theme of Love for My Sweatheart
- 欢迎使用CSDN-markdown编辑器
- opencv 与matlab 批量读取并保存图片
- 利用IDL计算马氏距离
- hzau1200——Choosy in Food(概率DP+高斯消元)
- 【javaScript】加减乘除的精确计算
- PHP sql批量更新(CASE WHEN THEN END)
- Android 设置第一个Activity
- Volley用法详解
- (尼姆+巴什)取石子--NOJ
- shell编程(2)
- grep 命令整词匹配 搜索某个字符串并打印下几行 搜索某个字符串并打印行号