matlab中CH指标聚类评价指标,MATLAB聚类有效性评价指标(外部)

MATLAB聚类有效性评价指标(外部)

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

更多内容,请看标签:MATLAB、聚类

前提:数据的真实标签已知!

1. 归一化互信息(Normalized Mutual information)

定义

2c85db7989de2e56a8a943bd54fdadf5.png

程序

function MIhat = nmi(A, B)

%NMI Normalized mutual information

% A, B: 1*N;

if length(A) ~= length(B)

error('length( A ) must == length( B)');

end

N = length(A);

A_id = unique(A);

K_A = length(A_id);

B_id = unique(B);

K_B = length(B_id);

% Mutual information

A_occur = double (repmat( A, K_A, 1) == repmat( A_id', 1, N ));

B_occur = double (repmat( B, K_B, 1) == repmat( B_id', 1, N ));

AB_occur = A_occur * B_occur';

P_A= sum(A_occur') / N;

P_B = sum(B_occur') / N;

P_AB = AB_occur / N;

MImatrix = P_AB .* log(P_AB ./(P_A' * P_B)+eps);

MI = sum(MImatrix(:));

% Entropies

H_A = -sum(P_A .* log(P_A + eps),2);

H_B= -sum(P_B .* log(P_B + eps),2);

%Normalized Mutual information

MIhat = MI / sqrt(H_A*H_B);

结果

>> A = [1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3];

>> B = [1 2 1 1 1 1 1 2 2 2 2 3 1 1 3 3 3];

>> MIhat = nmi(A, B)

MIhat =

0.3646

2. Rand统计量(Rand index)

定义

c08c123d3b6ece9c4d2865b7ed46f467.png

程序

function [AR,RI,MI,HI]=RandIndex(c1,c2)

%RANDINDEX - calculates Rand Indices to compare two partitions

% ARI=RANDINDEX(c1,c2), where c1,c2 are vectors listing the

% class membership, returns the "Hubert & Arabie adjusted Rand index".

% [AR,RI,MI,HI]=RANDINDEX(c1,c2) returns the adjusted Rand index,

% the unadjusted Rand index, "Mirkin's" index and "Hubert's" index.

if nargin < 2 || min(size(c1)) > 1 || min(size(c2)) > 1

error('RandIndex: Requires two vector arguments')

return

end

C=Contingency(c1,c2);%form contingency matrix

n=sum(sum(C));

nis=sum(sum(C,2).^2);%sum of squares of sums of rows

njs=sum(sum(C,1).^2);%sum of squares of sums of columns

t1=nchoosek(n,2);%total number of pairs of entities

t2=sum(sum(C.^2));%sum over rows & columnns of nij^2

t3=.5*(nis+njs);

%Expected index (for adjustment)

nc=(n*(n^2+1)-(n+1)*nis-(n+1)*njs+2*(nis*njs)/n)/(2*(n-1));

A=t1+t2-t3;%no. agreements

D= -t2+t3;%no. disagreements

if t1==nc

AR=0;%avoid division by zero; if k=1, define Rand = 0

else

AR=(A-nc)/(t1-nc);%adjusted Rand - Hubert & Arabie 1985

end

RI=A/t1;%Rand 1971%Probability of agreement

MI=D/t1;%Mirkin 1970%p(disagreement)

HI=(A-D)/t1;%Hubert 1977%p(agree)-p(disagree)

function Cont=Contingency(Mem1,Mem2)

if nargin < 2 || min(size(Mem1)) > 1 || min(size(Mem2)) > 1

error('Contingency: Requires two vector arguments')

return

end

Cont=zeros(max(Mem1),max(Mem2));

for i = 1:length(Mem1)

Cont(Mem1(i),Mem2(i))=Cont(Mem1(i),Mem2(i))+1;

end

程序中包含了四种聚类度量方法:Adjusted Rand index、Rand index、Mirkin index、Hubert index。

结果

>> A = [1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3];

>> B = [1 2 1 1 1 1 1 2 2 2 2 3 1 1 3 3 3];

>> [AR,RI,MI,HI]=RandIndex(A,B)

AR =

0.2429

RI =

0.6765

MI =

0.3235

HI =

0.3529

3. 参考文献

(simple) Tool for estimating the number of clusters

Mutual information and Normalized Mutual information 互信息和标准化互信息

Evaluation of clustering

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习进度表

周数 专业学习目标 专业学习时/每分钟 新增代码量 知识技能总结 第六周 ps的图像处理 80 30 看书加以实践 第七周 数据结构的链式结构 100 50 多做习题加以巩固知识 第八周 网页设计 80 30 多多练习&#xff0c;学会用代码设计 第九周 图片美工 70 30 慢慢学会运用软…

Axis通过wsdd部署Web Service

axis网上的教程很多&#xff0c;不过搜来搜去&#xff0c;总是只有那么几篇。仔细看了一下那几篇文章&#xff0c;都感觉到不是自己想要的&#xff0c;所以自己整理了一篇分享一下。 本文介绍axis应用的一个小例子&#xff0c;没有麻烦的命令行操作&#xff0c;只需照下面的步骤…

弹簧特性

1.概述 本教程将展示如何通过XML或Java配置在Spring中设置和使用属性 。 在Spring 3.1之前 &#xff0c;将新的属性文件添加到Spring并使用属性值并不像它那样灵活和健壮。 从Spring 3.1开始 &#xff0c;新的Environment和PropertySource抽象大大简化了此过程。 2.通过XML名…

php-cgi cpu很高,php-cgi占用cpu资源过高的解决方法

转的网上的&#xff0c;不过对PHP-CGI菜鸟的人&#xff0c;还是有点帮助的。1. 一些php的扩展与php版本兼容存在问题&#xff0c;实践证明 eAccelerater与某些php版本兼容存在问题&#xff0c;具体表现时启动php-cgi进程后&#xff0c;运行10多分钟&#xff0c;奇慢无比&#x…

《做中学》读后有感

《做中学》读后有感 最近读了娄老师的“做中学”系列文章&#xff0c;有很大感触&#xff0c;今天想着重谈一谈我在学习方面收到的启发。 如何成功get一项技能 如果问到“如何开始get一项技能”&#xff0c;我想我们应该是最有发言权的一代。从小就被爸爸妈妈引导着参加各种课外…

多表之间关联查询

内连接 jion on 自连接 本表进行内连接的查询形式 外链接&#xff1a; 左链接 写法&#xff1a;select 字段 from 表1 t left join 表2 s on t.字段1 s.字段1 where 条件 或者 作用&#xff1a;保证左边的表的数据全部显示&#xff0c;包括空的 右链接 写法 &#xff1a;sele…

php文件夹0777,PHP代码mkdir(‘images’,’0777′)创建一个具有411权限的文件夹!为什么?...

我发誓这是昨天的工作.然而,现在下面的代码破坏文件夹没有问题,但创建一个具有411权限的新文件夹应该是777.我的代码昨天这样做.这样做的目的是压缩文件夹,传递文件夹,删除图像,然后为图像创建新目录.有人能告诉我我做错了什么或我应该做什么&#xff1f;谢谢function delete_d…

调查HashDoS问题

近一个月前&#xff0c;我就如何在不与供应商互动的情况下临时解决 28C3上出现的HashDoS问题或其他代码缺陷发表了一些想法。 现在是时候更深入地研究复杂性攻击并查看来源了。 我完全假设java.util.HashMap和java.util.Hashtable是受此攻击影响的最常用的Java数据结构&#xf…

Linq 和 EF Contains示例

List<int> unitIDListnew List<int>(); //此处添加int元素 var query DB.ElecConsumers.Where(c > unitIDList.Contains(c.ParentUnitID)); //EF方式 var query1 (from c in DB.ElecConsumers where unitIDList.Contains(c.ParentUnitID ) select c); //Linq方…

date 显示或设置系统时间和日期

显示或设置系统时间和日期 date [options] [format] date [options] [new date] date用来显示系统的时间和日期&#xff0c;超级用户可以使用date来更改系统时钟 选项 %H 小时&#xff0c;24小时制&#xff08;00~23&#xff09; %I 小时&#xff0c;12小时制&#xff…

Java 7:WatchService

在Java 7的所有新功能中&#xff0c;更有趣的是WatchService&#xff0c;它增加了监视目录更改的功能。 WatchService直接映射到本机文件事件通知机制&#xff08;如果有&#xff09;。 如果本机事件通知机制不可用&#xff0c;则默认实现将使用轮询。 结果&#xff0c;响应性&…

做一件事情的3个关键指标:兴趣、能力和回报

最近突然有了一点新的感悟&#xff0c;在原有的认识基础之上。关于找工作&#xff0c;大家说的最多的&#xff0c;根据自己的“兴趣”和“能力”。我觉得这是不够的&#xff0c;还应该加上一个“回报”。兴趣&#xff1a;对一件事有没有愿望去尝试&#xff0c;侧重“好奇心”。…

iOS应用内支付(IAP)详解

在iOS开发中如果涉及到虚拟物品的购买&#xff0c;就需要使用IAP服务&#xff0c;我们今天来看看如何实现。 在实现代码之前我们先做一些准备工作&#xff0c;一步步来看。 1、IAP流程 IAP流程分为两种&#xff0c;一种是直接使用Apple的服务器进行购买和验证&#xff0c;另一种…

vagrant box php,vagrant box php开发环境配置 -- nginx

centos7.3 直接用yum安装nginx的版本是1.10.2&#xff0c;当前的最新稳定版是1.10.3&#xff0c;暂时不更新&#xff0c;直接安装yum安装nginxsudo yum install -y nginx测试nginx -t启动sudo service nginx startps -ef|grep nginxcurl -i localhost在virtualbox设置网络的端口…

使用ASM 4处理Java类文件–第二部分:Tree API

什么是ASM树API&#xff1a; ASM树API是ASM的一部分&#xff0c;可让您创建/修改内存中的类。 该类被视为信息树。 像整个类一样&#xff0c;它是ClassNode的实例&#xff0c;其中包含FieldNode对象列表&#xff0c;MethodNode对象列表等。本文假设读者已经在这里阅读了第一部分…

php 去除 html 属性,用PHP 去掉所有html标签里的部分属性

用PHP 去掉所有html标签里的部分属性http://zhidao.baidu.com/question/418471924.html用PHP 去掉所有html标签里的部分属性 tppabsset_time_limit(0);function view_dir($dir){$dpopendir($dir); //打开目录句柄//echo "".$dir."";$path2;while ($file r…

在Windows上安装Elasticsearch 5.0

在windows上安装Elasticsearch Elasticsearch可以使用.zip软件包安装在Windows上。 elasticsearch-service.bat命令&#xff0c;它将设置Elasticsearch作为服务运行。 Elasticsearch的最新稳定版在Download Elasticsearch下载&#xff0c;其他的版本在Past Releases page下载。…

Java EE 6示例– Galleria

您是否一直想知道在哪里可以找到使用Java EE 6构建的良好端到端示例&#xff1f; 我有。 您在网上找到的大多数东西都是非常基础的&#xff0c;不能解决现实世界中的问题。 Java EE 6教程就是这样。 所有其他内容&#xff0c;例如Adam Bien所发表的大多数内容&#xff0c;都是范…

二维有限体积 matlab,二维有限体积法计算热传导及源码.pdf

二维有限体积法计算热传导及源码//#include "stdafx.h"#include #include #include #include #include using namespace std;#define q 500#define k 1000void main (){ //input the value you want:double L,dx,dy,T,Ax,Ay,d;int m,n,i,j,kk,mm ;//char str1[20];ch…

ubuntu与win10互换硬盘

实例&#xff1a;将sdb上的ubuntu转移至sda&#xff0c;将sda上的win转移至sdb1. 备份资料2. 制作老毛桃PE盘3. 格式化sda4. dd if/dev/sdb of/dev/sda ,将sdb克隆到sda上5. 利用Linux live cd修复grub2&#xff08;BIOS不会认GPT分区&#xff09; sudo grub-install /dev/sda …