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.pswp.cn/news/373246.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373246.shtml
英文地址,請注明出處:http://en.pswp.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 …