如何计算度 聚类系数网络参数的k均值聚类算计算公式和方差

小木虫 --- 600万学术达人喜爱的学术科研平台
热门搜索:
&&请教关于 多样性指数、聚类分析的方法。
请教关于 多样性指数、聚类分析的方法。
我做100个品种的遗传多样性差异分析,每个品种田间取10株,灌浆中期在每个小区中间2行随机抽选10株,调查单株穗数、株高、主茎穗长、小穗数、旗叶长、旗
叶宽及倒一节长,收获后室内调查主茎穗粒数、单株粒重和单穗粒重。
& & 多样性指数(Shannon,1949)的计算方法如下:先计算参试材料总体平均数(x)和标准差(σ),然后划分为10级,从第一级【xi&(x-2σ)】到第10级[xi&(x+2σ)】,每0.5 σ为一级。每一级的相对频率用于计算多样性指数。多样性指数公式为:H’=-Σpi Lnpi,公式中Pi为某性状第i级别内材料份数占总份数的百分比,ln为自然对数。
& & 看了这段话,很多文献都是用这种方法计算多样性指数,不理解这话的意思,具体怎么操作呢?100个品种每个品种10次重复,参试材料总体平均数(x),这个是啥意思,每个品种的同一性状分别求出平均值之后,再用所求的平均值再算一次平均值吗?从第一级【xi&(x-2σ)】到第10级[xi&(x+2σ)】,每一级的相对频率用于计算多样性指数,这个可以用EXCL操作么?怎么操作呢,请大拿指教,万分感激。
& & 另外需要做聚类分析,关于聚类分析的方法选择也存在疑惑,哪种聚类方法都可以吗,不同方法得出的结果是否有影响,用DPS做遗传多样性聚类哪种方法最常用呢?聚类分析的数据是平均值算,还是10次重复数值直接录入计算呢?
期待您的解答。
讲解的太明白了,大赞!!!受益匪浅啊,感谢啊~~~ 另外问一下大哥,聚类分析数据是用每个品种的平均值,还是直接10次重复数据进行聚类呢,我用的是DPS。
大哥,我想了一下,还有几个不懂的问题,请您指教。
1.标准差是所有品种的某一性状的总标准差吗?如果是这样,那我10株的重复数据,比如单株粒重这一项,我的一个品种十株一起脱粒,称重后的重量是10株的重量之和,除以10就可以得到这个品种的单株粒重的平均值了,貌似不需要进行单独每一株都称重,分别记下数值了?是这样吗,这样是不是也可以做多样性指数分析,也就是说品种内个别的性状不需要进行重复了,我只是要某一个品种的平均值就行了呢?计算多样性指数,我需要用总体的平均值,每个品种的平均值,表型方差,标准差,这些我假设我每个品种都只有一个总数,能算出平均值就能求出吧,是这样吗?我之前问的一个关于变异系数的帖子您也指导我了,我可以理解成变异系数的计算需要10次重复数据,而多样性指数的计算不需要10次重复数据,只需有均值即可吗?这是引用的一篇文献【【从变异系数可以看出,除小穗数外,其他5个性状均存在较大的变异,其中单株粒重的变异程度最大,其次是单穗粒重。各性状的变异系数在不同国家材料间存在明显差异,智利材料的单穗粒重、墨丙哥材料的小穗数、千粒重和单株粒重、澳大利亚材料的单株穗数及俄罗斯材料的穗粒数变异程度最小;荷兰材料的单穗粒重和千粒重、中国材料的穗粒数和单株穗数及俄罗斯材料的小穗数和单株粒重变异程度最大。采用6个性状变异系数的平均值评价不同国家种质资源产量综合性状的变异大小,其顺序为:荷兰材料(25.53%)&俄罗斯材料(24.48%)&中国材料(23.47%)&智利材料(22.22%)&澳大利亚材料(19.24%)&墨西哥材料(19.14%)。】】我需要计算的各性状的变异系数到底是您所说表型变异还是遗传变异呢。换句话说我到底是用各个品种均值计算还是用10次重复数据计算呢?下面还有一个图片的附表,请您看一下。
2.关于这个【划分为10级,从第一级【xi&(x-2σ)】到第10级[xi&(x+2σ)】,每0.5σ为一级。每一级的相对频率用于计算多样性指数。】统计每一级的品种个数,比如我100个品种,第一级有12个品种,那么Pi就是0.12,用这个公式H’=-Σpi Lnpi,将Pi带入,算出第一级的指数。再统计余下的9级,将余下的求和,就算出了这个性状的多样性指数了,这样操作对吗?
3.聚类分析的问题,文献中聚类方法大多不一致,有用离差平方和法,有用最长、短距离法,还有完全联接法的,我该如何选择聚类方法呢?
聚类分析是否需要将10次重复数据录入计算,还是根据各个品种的平均值计算(我记得好像需要,但是单一的数据好像也可以聚类,这个不太懂..)
&&问题好多,麻烦您了
截图.png,
多谢回答:hand:
由于有几个公式在文本框无法显示,我以附件方式上传,请查看!
谢谢您的指导,基本我的问题都解决了,厉害,大赞!!
学术必备与600万学术达人在线互动!
扫描下载送金币一、聚类算法简介
聚类是无监督学习的典型算法,不需要标记结果。试图探索和发现一定的模式,用于发现共同的群体,按照内在相似性将数据划分为多个类别使得内内相似性大,内间相似性小。有时候作为监督学习中稀疏特征的预处理(类似于降维,变成K类后,假设有6类,则每一行都可以表示为类似于0000)。有时候可以作为异常值检测(反欺诈中有用)。
应用场景:新闻聚类、用户购买模式(交叉销售)、图像与基因技术
相似度与距离:这个概念是聚类算法中必须明白的,简单来说就是聚类就是将相似的样本聚到一起,而相似度用距离来定义,聚类是希望组内的样本相似度高,组间的样本相似度低,这样样本就能聚成类了。
1.Minkovski距离,当p=2时,就是欧式距离: 相似性就被定义为了d的倒数,1/d & ;当P=1时就说城市距离(曼哈顿距离):下图中直角的距离,直接同维度相减后加总
2.余弦距离 &夹角的距离cos& = (at* b)/(|a|*|b|)&余弦距离比较难收敛,优势是不受原来样本线性变换影响
3. 皮尔斯相关系数 &从概率论角度得到的距离 当x和y的均值为0时,皮尔森相关系数就等于余弦距离
4. KL散度(交叉熵) 衡量两个分布之间的差异,不是传统意义上的距离,其中p(x)是真实样本分布,Q(x)是数据的理论分布,或者说是一种更简单的分布。有时候p(x)的分布很难写出,可以通过求KL散度最小而求出Q(X)。
/charlotte77/p/5392052.html
聚类算法分类:基于位置的聚类(kmeans\kmodes\kmedians)层次聚类(agglomerative\birch)基于密度的聚类(DBSCAN)基于模型的聚类(GMM\基于神经网络的算法)
二、Kmeans算法
1.确定聚类个数K&
2.选定K个D维向量作为初始类中心&
3.对每个样本计算与聚类中心的距离,选择最近的作为该样本所属的类&
4.在同一类内部,重新计算聚类中心(几何重心) 不断迭代,直到收敛:
(损失函数为此就是Kmeans算法(其实是默认了我们样布服从均值为&,方差为某固定值的K个高斯分布,混合高斯分布),如果(x-&)不是平方,而只是绝对值那就是Kmedian算法,混合拉普拉斯分布)每个样本到聚类中心的距离之和或平方和不再有很大变化。对损失函数求导,,可以看到其实我们更新聚类中心的时候,就是按照梯度的方向更新的。由于损失函数有局部极小值点,所以它是初值敏感的,取不同的初值可能落在不同的极小值点。
轮廓系数(silhouetee)可以对聚类结果有效性进行验证。python中有该方法,metrics.silhouetee_score。越接近1聚的越好,越接近-1聚的越不好。适用于球形聚类的情况。
缺点:1.对初始聚类中心敏感,缓解方案是多初始化几遍,选取损失函数小的。2.必须提前指定K值(指定的不好可能得到局部最优解),缓解方法,多选取几个K值,grid search选取几个指标评价效果情况3.属于硬聚类,每个样本点只能属于一类 4.对异常值免疫能力差,可以通过一些调整(不取均值点,取均值最近的样本点)5.对团状数据点区分度好,对于带状不好(谱聚类或特征映射)。尽管它有这么多缺点,但是它仍然应用广泛,因为它速度快,并且可以并行化处理。
优点:速度快,适合发现球形聚类,可发现离群点
缺失值问题:离散的特征:将缺失的作为单独一类,90%缺失去掉。连续的特征:其他变量对这个变量回归,做填补;样本平均值填补;中位数填补。
对于初始点选择的问题,有升级的算法Kmeans++,每次选取新的中心点时,有权重的选取(权重为距离上个中心店的距离),
cls = KMeans(n_clusters=4, init='k-means++')另外,想要收敛速度进一步加快,可以使用Mini-BatchKmeans,也就是求梯度的时候用的是随机梯度下降的方法,而不是批量梯度下降。sklearn.cluster.MiniBatchKMeans
三、层次聚类算法
也称为凝聚的聚类算法,最后可以生成一个聚类的图,但Python中不容易生成这种图,一般直接在界面软件中生成。其实更像是一种策略算法,画出来有点类似于树模型的感觉。
有自顶而下和自底向上两种,只是相反的过程而已,下面讲自顶而下的思路。
1.计算所有个体和个体之间的距离,找到离得最近的两个样本聚成一类。
2.将上面的小群体看做一个新的个体,再与剩下的个体,计算所有个体与个体之间距离,找离得最近的两个个体聚成一类,依次类推。
3.直到最终聚成一类。
群体间的距离怎么计算呢?(下图用的是重心法,还有ward法)
优点:不需要确定K值,可根据你的主观划分,决定分成几类。
缺点:虽然解决了层次聚类中Kmeans的问题,但计算量特别大。与Kmeans相比两者的区别,除了计算速度,还有kmeans只产出一个聚类结果和层次聚类可根据你的聚类程度不同有不同的结果。
层次聚类中还有一种是brich算法,brich算法第一步是通过扫描数据,建立CF树(CF树中包含簇类中点的个数n,n个点的线性组合LS=,数据点的平方和SS;而簇里面最开始只有一个数据点,然后不断往里面加,直到超过阈值);第二步是采用某个算法对CF树的叶节点进行聚类。优点就是一次扫描就行进行比较好的聚类。缺点是也要求是球形聚类,因为CF树存储的都是半径类的数据,都是球形才适合。
四、DBSCAN
Dbscan是基于密度的算法,之前的一些算法都是考虑距离,而DBscan是考虑的密度,只要样本点的密度大于某阈值,则将该样本添加到最近的簇中(密度可达的簇)
核心点:在半径eps内含有超过Minpts数目的点,则该点为核心点。边界点:在半径eps内含有小于Minpts数目的点但是在核心点的邻居。 核心点1连接边界点2,边界点2又连接核心点2,则核心点1和边界点2密度可达。
噪音点:任何不是核心点或是边际点的点。密度:在半径eps内点的数目。
DBscan过程:
簇:密度相连点的最大集合
算法的关键要素:距离的度量有欧几里德距离,切比雪夫距离等,最近邻搜索算法有Kd_tree, ball_tree
Python中可调的参数:eps和m, eps为半径,m为要求的半径内点的个数即密度,m越大聚出的类越多,因为即要求成某个类的密度要比较高,一旦中间比较稀疏的就不算一个类了;eps越大,类的个数越少。
优点:相对抗噪音(可发现离群点),可以发现任意形状的样本。
缺点:但计算密度单元的计算复杂度大,但计算密度单元的计算复杂度;不能很好反应高维数据,高维数据不好定义密度
五、GMM(混合高斯模型)
属于软聚类(每个样本可以属于多个类,有概率分布)GMM认为隐含的类别标签z(i),服从多项分布,并且认为给定z(i)后,样本x(i)满足多值高斯分布,,由此可以得到联合分布。
GMM是个鸡生蛋、蛋生鸡的过程,与KMEANS特别像,其估计应用EM算法。
1.首先假设知道GMM参数,均值、协方差矩阵、混合系数,基于这些参数算出样本属于某一类的概率(后验概率)wji:
&2.然后根据该概率,重新计算GMM的各参数。此参数求解利用了最大似然估计。
3.一直迭代,直到参数稳定。
EM(Expectation Maximization)算法是,假设我们想估计知道A和B两个参数,在开始状态下二者都是未知的,但如果知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。
混合高斯模型,实质上就是一个类别一个模型。先从k个类别中按多项式分布抽取一个z(i),然后根据z(i)所对应的k个多值高斯分布中的一个生成样本x(i),整个过程称作混合高斯模型。
GMM优点:可理解、速度快& 劣势:初始化敏感、需要手工指定k(高斯分布)的个数、不适合非凸分布数据集(基于密度的聚类和核方法可以处理)
Kmeans可以看做混合高斯聚类在混合成分方差相等、且每个样本派给一个混合成分时的特例。
六、谱聚类
&首先什么是谱呢?比如矩阵A,它的所有特征值的全体就统称为A的谱,AU=&U,&1...&n。如果下次看到跟谱相关的算法,多半就是跟特征值相关的算法了。什么是谱半径呢?就是最大的那个特征值。
谱聚类就是基于图论的聚类方法,通过对样本数据的拉普拉斯矩阵的特征向量进行聚类,从而达到对样本数据的聚类。
1. 第i个样本和第j个样本度量相似&高斯相似度,其中delta是超参数,svm里面也用到过这个核函数
2. 形成相似度矩阵W=(Sij)n*n,对称矩阵,其中sii本来应该等于1,但为了方便计算都写成0,所以相似度矩阵就变长了主对角线上都为0的对称阵。
3. 计算第i个样本到其他所有样本的相似度的和di = si1+Si2+....Sin(这里关于Si的相加,有些比如要聚成K类的就只会使用前K个si相加,或者设定一个阈值,小于阈值的si都舍去),在图论中,di叫做度,可以理解为连接边的权值。将所有点的度di,构成度矩阵D(对角阵)
4. 形成拉普拉斯矩阵L=D-W,L是对称半正定矩阵,最小特征值是0,相应的特征向量是全1向量。把L的特征值从小到大排列,&1...&n,对应特征向量u1 u2...un,如果我们要求聚成K类,我们就取前K个特征值对应的特征向量,形成矩阵Un*k,这样我们认为对应第一个样本的特征就是u11,u12..u1k,第二个样本的特征就是u21,u22...u2k,第n个样本的特征就是un1,un2...unn,对这n个样本做K均值,最后对这n个样本的聚类结果是什么,我们原始的聚类结果就是什么。
优点:可以发现非球形的样本
缺点:也要事先给定K值
七、部分应用经验
可以先对样本进行基于其分布的抽样,然后在小样本范围内进行层次聚类,然后用层次聚类得出的K值,应用于整个样本进行Kmeans聚类。
聚类分析结果评价:
当知道实际分类时:Homogeneity(均一性), completeness(完整性) and V-measure(同时考虑均一性和完整性)
不知道实际分类时:轮廓系数(求出每个样本的Si,再取平均值就是整体的轮廓系数),Calinski-Harabaz Index
http://blog.csdn.net/sinat_/article/details/
建模步骤:1.变量预处理:缺失值、异常值(用p1或P99替代)、分类变量变成数值型、分类变量转为哑变量、分类变量过多& 这里涉及一系列recoding的过程。2.变量标准化:变量的量纲不一样会引起计算距离的差距。3.变量的筛选:商业意义、多个维度、变量间相关性。4.确定分类个数:区分性足够好,又不能太细
在聚类之前往往先做主成分分析,或者变量的聚类。
阅读(...) 评论()如何理解 95% 置信区间? - 知乎2450被浏览191295分享邀请回答en.wikipedia.org/wiki/Confidence_interval#Misunderstandings评论里的补充解释:换种方法说,假设我们还没有取样,但已经制定好取样后构造 95% 置信区间的方法。我们可以说取样一次以后,获得的那个置信区间(现在还不知道)包含真值的概率是 95%。然而在取样并得到具体的一个区间之后,在频率学派框架下就无法讨论这个区间包含真值的概率了。取样前能讨论,取样后却无法讨论,这可能让很多人感到很不自然。扩大来说,传统频率学派对已经发生,但我们不知道结果的事件的讨论存在困难。虽然这个问题通常在应用上无伤大雅,但确实有不少学者因此寻求对概率的不同解释。______________________* 也许你会说这么描述就相当于说某个置信区间包含真值的概率是 95%。那我只能说你必须寻求频率学派以外的对概率的解释。这是一个很深奥的哲学问题:)^ 参见
中的回答23422 条评论分享收藏感谢收起265 条评论分享收藏感谢收起查看更多回答3 个回答被折叠()6649人阅读
Basic Theories(15)
& & & & 在分类聚类算法中,时常需要计算两个变量(通常是向量的形式)的距离,即相似性度量。其中,距离度量的性质:非负性,自反性,对称性和三角不等式。
  本文的目的就是对常用的相似性度量作一个总结。
本文目录:
1.欧氏距离
2.曼哈顿距离
3. 切比雪夫距离
4. 闵可夫斯基距离
5.标准化欧氏距离
6.马氏距离
7.余弦相似度
8.汉明距离
9.杰卡德距离& 杰卡德相似系数
10.皮尔逊相关系数
11.相关系数& 相关距离
1. 欧氏距离(Euclidean Distance)
&&&&&& 欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。相当于高维空间内向量所表示的点到点之间的距离。
(1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离:
(2)三维空间两点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:
(3)两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的欧氏距离:
  也可以用表示成向量运算的形式:
(4)Matlab计算欧氏距离
Matlab计算距离主要使用pdist函数。若X是一个M×N的矩阵,则pdist(X)将X矩阵M行的每一行作为一个N维向量,然后计算这M个向量两两间的距离。
例子:计算向量(0,0)、(1,0)、(0,2)两两间的欧式距离
X= [0 0 ; 1 0 ; 0 2]
D= pdist(X,'euclidean')
&&& 1.0000&&&2.0000&&& 2.2361
由于特征向量的各分量的量纲不一致,通常需要先对各分量进行标准化,使其与单位无关,比如对身高(cm)和体重(kg)两个单位不同的指标使用欧式距离可能使结果失效。
优点:简单,应用广泛(如果也算一个优点的话)
缺点:没有考虑分量之间的相关性,体现单一特征的多个分量会干扰结果。
2. 曼哈顿距离(Manhattan Distance)
&&&&&& 从名字就可以猜出这种距离的计算方法了。想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。实际驾驶距离就是这个“曼哈顿距离”。而这也是曼哈顿距离名称的来源,
曼哈顿距离也称为城市街区距离(City Block Distance)。
(1)二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离
(2)两个n维向量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的曼哈顿距离
(3)Matlab计算曼哈顿距离
例子:计算向量(0,0)、(1,0)、(0,2)两两间的曼哈顿距离
X= [0 0 ; 1 0 ; 0 2]
D= pdist(X, 'cityblock')
&&&& 1&&&&2&&&& 3
3. 切比雪夫距离 ( Chebyshev Distance )
&&&&&& 国际象棋玩过么?国王走一步能够移动到相邻的8个方格中的任意一个。那么国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?自己走走试试。你会发现最少步数总是max(| x2-x1 | , | y2-y1 | ) 步。有一种类似的一种距离度量方法叫切比雪夫距离。
(1)二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离
(2)两个n维向量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的切比雪夫距离
  这个公式的另一种等价形式是
&&&&&& 看不出两个公式是等价的?提示一下:试试用放缩法和夹逼法则来证明。
(3)Matlab计算切比雪夫距离
例子:计算向量(0,0)、(1,0)、(0,2)两两间的切比雪夫距离
X= [0 0 ; 1 0 ; 0 2]
D= pdist(X, 'chebychev')
&&&& 1&&&&2&&&& 2
4. 闵可夫斯基距离(Minkowski Distance)
闵氏距离不是一种距离,而是一组距离的定义。
(1)闵氏距离的定义
&&&&&& 两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:
其中p是一个变参数。
当p=1时,就是曼哈顿距离
当p=2时,就是欧氏距离
当p→∞时,就是切比雪夫距离
&&&&&& 根据变参数的不同,闵氏距离可以表示一类的距离。
(2)闵氏距离的缺点
  闵氏距离,包括曼哈顿距离、欧氏距离和切比雪夫距离都存在明显的缺点。
  举个例子:二维样本(身高,体重),其中身高范围是150~190,体重范围是50~60,有三个样本:a(180,50),b(190,50),c(180,60)。那么a与b之间的闵氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫距离)等于a与c之间的闵氏距离,但是身高的10cm真的等价于体重的10kg么?因此用闵氏距离来衡量这些样本间的相似度很有问题。
&&&&&& 简单说来,闵氏距离的缺点主要有两个:(1)将各个分量的量纲(scale),也就是“单位”当作相同的看待了。(2)没有考虑各个分量的分布(期望,方差等)可能是不同的。
(3)Matlab计算闵氏距离
例子:计算向量(0,0)、(1,0)、(0,2)两两间的闵氏距离(以变参数为2的欧氏距离为例)
X= [0 0 ; 1 0 ; 0 2]
D= pdist(X,'minkowski',2)
&&& 1.0000&&&2.0000&&& 2.2361
5. 标准化欧氏距离(Standardized Euclidean Distance )
(1)标准欧氏距离的定义
  标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。标准欧氏距离的思路:既然数据各维分量的分布不一样,好吧!那我先将各个分量都“标准化”到均值、方差相等吧。均值和方差标准化到多少呢?这里先复习点统计学知识吧,假设样本集X的均值(mean)为m,标准差(standarddeviation)为s,那么X的“标准化变量”表示为:
  而且标准化变量的数学期望为0,方差为1。因此样本集的标准化过程(standardization)用公式描述就是:
  标准化后的值 =& ( 标准化前的值& - 分量的均值 ) /分量的标准差
  经过简单的推导就可以得到两个n维向量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的标准化欧氏距离的公式:
  如果将方差的倒数看成是一个权重,这个公式可以看成是一种加权欧氏距离(Weighted Euclidean distance)。
(2)Matlab计算标准化欧氏距离
例子:计算向量(0,0)、(1,0)、(0,2)两两间的标准化欧氏距离 (假设两个分量的标准差分别为0.5和1)
X= [0 0 ; 1 0 ; 0 2]
D= pdist(X, 'seuclidean',[0.5,1])
&&& 2.0000&&&2.0000&&& 2.8284
6. 马氏距离(Mahalanobis Distance)
(1)马氏距离定义
&&&&&& 有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到u的马氏距离表示为:
&&&&&& 而其中向量Xi与Xj之间的马氏距离定义为:
&&&&&& 若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了:
&&&&&& 也就是欧氏距离了。
  若协方差矩阵是对角矩阵,公式变成了标准化欧氏距离。
(2)适用场合:
1、度量两个服从同一分布并且其协方差矩阵为C的随机变量X与Y的差异程度
2、度量X与某一类的均值向量的差异程度,判别样本的归属。此时,Y为类均值向量.
(3)马氏距离的优缺点:量纲无关,排除变量之间的相关性的干扰。缺点:不同的特征不能差别对待,可能夸大弱特征。
(4)Matlab计算(1 2),( 1 3),( 2 2),( 3 1)两两之间的马氏距离
X = [1 2; 1 3; 2 2; 3 1]
Y = pdist(X,'mahalanobis')
&&& 2.3452&&&2.0000&&& 2.3452&&& 1.2247&&&2.4495&&& 1.2247
7. 余弦相似度(Cosine Similarity)
& & & &就是两个向量之间的夹角的余弦值。余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。此外,也有调整的余弦相似度(Adjusted Cosine Similarity)。
& & & 优点:不受坐标轴旋转,放大缩小的影响。
(1)在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式:
(2)两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹角余弦
&&&&&& 类似的,对于两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n),可以使用类似于夹角余弦的概念来衡量它们间的相似程度。
&&&&&& 夹角余弦取值范围为[-1,1]。夹角余弦越大表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。当两个向量的方向重合时夹角余弦取最大值1,当两个向量的方向完全相反夹角余弦取最小值-1。
&&&&&& 夹角余弦的具体应用可以参阅参考文献[1]。
(3)Matlab计算夹角余弦
例子:计算(1,0)、( 1,1.732)、(-1,0)两两间的夹角余弦
X= [1 0 ; 1 1.732 ; -1 0]
D= 1- pdist(X, 'cosine')& % Matlab中的pdist(X,'cosine')得到的是1减夹角余弦的值
&&& 0.5000&&-1.0000&& -0.5000
8. 汉明距离(Hamming Distance)
(1)汉明距离的定义
&&&&&& 在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。例如字符串“1111”与“1001”之间的汉明距离为2。
&&&&&& 应用:信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。
(2)Matlab计算汉明距离
  Matlab中2个向量之间的汉明距离的定义为2个向量不同的分量所占的百分比。
&&&&&& 例子:计算向量(0,0)、(1,0)、(0,2)两两间的汉明距离
X = [0 0 ; 1 0 ; 0 2];
D = PDIST(X, 'hamming')
&&& 0.5000&&&0.5000&&& 1.0000
9. 杰卡德相似系数(Jaccard Similarity Coefficient)
Jaccard系数主要用于计算符号度量或布尔值度量的个体间的相似度,因为个体的特征属性都是由符号度量或者布尔值标识,因此无法衡量差异具体值 的大小,只能获得“是否相同”这个结果,所以Jaccard系数只关心个体间共同具有的特征是否一致这个问题。
(1) 杰卡德相似系数
&&&&&& 两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示。
  杰卡德相似系数是衡量两个集合的相似度一种指标。
(2) 杰卡德距离
&&&&&& 与杰卡德相似系数相反的概念是杰卡德距离(Jaccard Distance)。杰卡德距离可用如下公式表示:
  杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。
(3)杰卡德相似系数与杰卡德距离的应用
&&&&&& 可将杰卡德相似系数用在衡量样本的相似度上。
  样本A与样本B是两个n维向量,而且所有维度的取值都是0或1。例如:A(0111)和B(1011)。我们将样本看成是一个集合,1表示集合包含该元素,0表示集合不包含该元素。
p:样本A与B都是1的维度的个数
q:样本A是1,样本B是0的维度的个数
r:样本A是0,样本B是1的维度的个数
s:样本A与B都是0的维度的个数
那么样本A与B的杰卡德相似系数可以表示为:
这里p+q+r可理解为A与B的并集的元素个数,而p是A与B的交集的元素个数。
而样本A与B的杰卡德距离表示为:
(4)Matlab计算杰卡德距离
Matlab的pdist函数定义的杰卡德距离跟我这里的定义有一些差别,Matlab中将其定义为不同的维度的个数占“非全零维度”的比例。
例子:计算(1,1,0)、(1,-1,0)、(-1,1,0)两两之间的杰卡德距离
X= [1 1 0; 1 -1 0; -1 1 0]
D= pdist( X , 'jaccard')
0.5000&&& 0.5000&&&1.0000
10. 皮尔逊相关系数(Pearson Correlation Coefficient)
即相关分析中的相关系数r,分别对X和Y基于自身总体标准化后计算空间向量的余弦夹角。公式如下:
11. 相关系数( Correlation Coefficient )与相关距离(Correlation Distance)
(1)相关系数的定义
相关系数是衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的绝对值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关)。
(2)相关距离的定义
(3)Matlab计算(1, 2 ,3 ,4 )与( 3 ,8 ,7 ,6 )之间的相关系数与相关距离
X = [1 2 3 4 ; 3 8 7 6]
C = corrcoef( X' ) &&%将返回相关系数矩阵
D = pdist( X , 'correlation')
&&& 1.0000&&&0.4781
&&& 0.4781&&&1.0000
&&&&& 其中0.4781就是相关系数,0.5219是相关距离。
12. 信息熵(Information Entropy)
&&&&&& 信息熵并不属于一种相似性度量。那为什么放在这篇文章中啊?这个。。。我也不知道。 (╯▽╰)
信息熵是衡量分布的混乱程度或分散程度的一种度量。分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小。
&&&&&& 计算给定的样本集X的信息熵的公式:
参数的含义:
n:样本集X的分类数
pi:X中第i类元素出现的概率
&&&&&& 信息熵越大表明样本集S分类越分散,信息熵越小则表明样本集X分类越集中。。当S中n个分类出现的概率一样大时(都是1/n),信息熵取最大值log2(n)。当X只有一个分类时,信息熵取最小值0
参考资料:&
[1]吴军. 数学之美 系列 12 -余弦定理和新闻的分类.
[2]Wikipedia. Jaccard index.
[3]Wikipedia. Hamming distance
[4] 求马氏距离(Mahalanobisdistance )matlab版
[5] Pearson product-momentcorrelation coefficient
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:42312次
排名:千里之外
原创:28篇
转载:14篇
(1)(4)(3)(3)(1)(1)(1)(1)(4)(1)(2)(1)(2)(2)(1)(7)(7)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 pajek聚类系数计算 的文章

 

随机推荐