r语言 逆矩阵如何做马氏距离的距离矩阵?

基于马氏距离的FCM图像分割算法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
6页¥2.005页¥2.003页¥2.002页¥1.003页¥2.00 3页¥2.006页免费4页免费3页免费3页免费
喜欢此文档的还喜欢7页免费2页免费3页免费3页2下载券2页免费
基于马氏距离的FCM图像分割算法|F​C​M​,​f​u​z​z​y​ ​c​ ​m​e​a​n​s​模​糊​C​均​值​相​关​文​献
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢S为样本协方差矩阵 马氏距离是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧式距离不同的是它考虑到各种特性之间的联 系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的),并且是尺度无关的(scale-invariant),即独立于测量尺 度。
&1)马氏距离的计算是建立在总体样本的基础上的,这一点可以从上述协方差矩阵的解释中可以得出,也就是说,如果拿同样的两个样本,放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的,除非这两个总体的协方差矩阵碰巧相同;
2)在计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧式距离计算即可。 S = D1 * D1' (D1为m*n矩阵,m & n, m为特征维数,n为样本数) rank(S) &= n 故 S 不可逆。 [if A=BC, then rank(A) &= min(rank(B), rank(C)).]
3)还有一种情况,满足了条件总体样本数大于样本的维数,但是协方差矩阵的逆矩阵仍然不存在,比如三个样本点(3,4),(5,6)和(7,8),这种情况是因为这三个样本在其所处的二维空间平面内共线。这种情况下,也采用欧式距离计算。 (均值向量为[5, 6], D1 = [-2 0 2; -2 0 2], S显然不可逆)
4)在实际应用中“总体样本数大于样本的维数”这个条件是很容易满足的,而所有样本点出现3)中所描述的情况是很少出现的,所以在绝大多数情况下,马氏距 离是可以顺利计算的,但是马氏距离的计算是不稳定的,不稳定的来源是协方差矩阵,这也是马氏距离与欧式距离的最大差异之处。
&优点:它不受量纲的影响,两点之间的马氏距离与原始数据的测量单位无关;由标准化数据和中心化数据(即原始数据与均值之差)计算出的二点之间的马氏距离相同。马氏距离还可以排除变量之间的相关性的干扰。
缺点:它的缺点是夸大了变化微小的变量的作用。
&——————————————————————————————————————
&Matlab函数 d = mahal(Y,X) —— 计算Y中每个样本到X数据集中心的马氏距离。 即:d(I) = (Y(I,:)-mu)*inv(SIGMA)*(Y(I,:)-mu)',其中mu、SIGMA分别为X的均值和方差。 X的行数必须大于列数(样本数多于维数)。
——————————————————————————————————————
Points 1 and 2 are at the same euclidian distance from the origin, but point 1 is very far away from the bulk of the cloud.
参考: http://zh.wikipedia.org/wiki/%E9%A9%AC%E6%B0%8F%E8%B7%9D%E7%A6%BB http://rogerdhj./.html http://topic.csdn.net/u//4d4ccbe6-f186-48e6-a150-61c1f41dc4d2.html http://zoonek2.free.fr/UNIX/48_R/06.html /arcview/mahalanobis_description.htm
http://www.aiaccess.net/English/Glossaries/GlosMod/e_gm_mahalanobis
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:91687次
积分:1182
积分:1182
排名:第15191名
原创:22篇
转载:47篇
评论:32条
(1)(2)(2)(1)(2)(1)(3)(4)(4)(4)(2)(3)(1)(4)(2)(6)(1)(5)(1)(2)(8)(3)(1)(1)(3)(2)广义马氏距离及其在数据挖掘中应用研究数据,运用,应用,马氏距离,及其在,数据挖掘,..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
广义马氏距离及其在数据挖掘中应用研究
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口R语言多元分析系列之五:聚类分析(完) - 为程序员服务
为程序员服务
推荐团队博客
相关专栏文章
最近更新博客
R语言多元分析系列之五:聚类分析(完)
聚类分析(Cluster Analysis)是根据“物以类聚”的道理,对样品或指标进行分类的一种多元统计分析方法,它是在没有先验知识的情况下,对样本按各自的特性来进行合理的分类。聚类分析被应用于很多方面,在商业上,聚类分析被用来发现不同的客户群,并且通过购买模式刻画不同的客户群的特征;在生物上,聚类分析被用来动植物分类和对基因进行分类,获取对种群固有结构的认识;在因特网应用上,聚类分析被用来在网上进行文档归类来修复信息。聚类分析有两种主要计算方法,分别是凝聚层次聚类(Agglomerative hierarchical method)和K均值聚类(K-Means)。一、层次聚类层次聚类又称为系统聚类,首先要定义样本之间的距离关系,距离较近的归为一类,较远的则属于不同的类。可用于定义“距离”的统计量包括了欧氏距离(euclidean)、马氏距离(manhattan)、 两项距离(binary)、明氏距离(minkowski)。还包括相关系数和夹角余弦。层次聚类首先将每个样本单独作为一类,然后将不同类之间距离最近的进行合并,合并后重新计算类间距离。这个过程一直持续到将所有样本归为一类为止。在计算类间距离时则有六种不同的方法,分别是最短距离法、最长距离法、类平均法、重心法、中间距离法、离差平方和法。下面我们用iris数据集来进行聚类分析,在R语言中所用到的函数为hclust。首先提取iris数据中的4个数值变量,然后计算其欧氏距离矩阵。然后将矩阵绘制热图,从图中可以看到颜色越深表示样本间距离越近,大致上可以区分出三到四个区块,其样本之间比较接近。data=iris[,-5]
dist.e=dist(data,method='euclidean')
heatmap(as.matrix(dist.e),labRow = F, labCol = F)然后使用hclust函数建立聚类模型,结果存在model1变量中,其中ward参数是将类间距离计算方法设置为离差平方和法。使用plot(model1)可以绘制出聚类树图。如果我们希望将类别设为3类,可以使用cutree函数提取每个样本所属的类别。
model1=hclust(dist.e,method='ward')
result=cutree(model1,k=3)为了显示聚类的效果,我们可以结合多维标度和聚类的结果。先将数据用MDS进行降维,然后以不同的的形状表示原本的分类,用不同的颜色来表示聚类的结果。可以看到setose品种聚类很成功,但有一些virginica品种的花被错误和virginica品种聚类到一起。 mds=cmdscale(dist.e,k=2,eig=T)
x = mds$points[,1]
y = mds$points[,2]
library(ggplot2)
p=ggplot(data.frame(x,y),aes(x,y))
p+geom_point(size=3,alpha=0.8,
aes(colour=factor(result),
shape=iris$Species))二、K均值聚类K均值聚类又称为动态聚类,它的计算方法较为简单,也不需要输入距离矩阵。首先要指定聚类的分类个数N,随机取N个样本作为初始类的中心,计算各样本与类中心的距离并进行归类,所有样本划分完成后重新计算类中心,重复这个过程直到类中心不再变化。在R中使用kmeans函数进行K均值聚类,centers参数用来设置分类个数,nstart参数用来设置取随机初始中心的次数,其默认值为1,但取较多的次数可以改善聚类效果。model2$cluster可以用来提取每个样本所属的类别。 model2=kmeans(data,centers=3,nstart=10)使用K均值聚类时需要注意,只有在类的平均值被定义的情况下才能使用,还要求事先给出分类个数。一种方法是先用层次聚类以决定个数,再用K均值聚类加以改进。或者以来判断分类个数。改善聚类的方法还包括对原始数据进行变换,如对数据进行降维后再实施聚类。cluster扩展包中也有许多函数可用于聚类分析,如agnes函数可用于凝聚层次聚类,diana可用于划分层次聚类,pam可用于K均值聚类,fanny用于模糊聚类。
相关文章推荐:马氏距离结果越大表示的两样本矩阵的相似度越小么?马氏距离的几何意义是什么?_百度知道
马氏距离结果越大表示的两样本矩阵的相似度越小么?马氏距离的几何意义是什么?
马氏距离能表示出两矩阵的相似度么?急急急急
提问者采纳
马氏距离其实是用来衡量2个数据样本之间的相似度的,怎么衡量呢,如果这2个数据样本分别用2个样本矩阵表示,样本矩阵1数据的协方差就是样本矩阵1马氏距离,同样样本矩阵2也有对应的马氏距离, 如果算出来的2个马氏距离越接近,那么可以认为这2个样本的相似度越高。我们日常生活中的距离其实是马氏距离的特殊化,马氏距离中, 协方差矩阵如果是单位矩阵,这样的马氏距离就转化为日常生活中的欧式距离了。由于要算协方差的因素,马氏距离计算是不稳定的,而且加了平方,它把微小的数据变化反映出来。
提问者评价
其他类似问题
马氏距离的相关知识
您可能关注的推广回答者:回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 距离矩阵 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信