DBSCAN algorithm and Rand index

조회 수: 6 (최근 30일)
as nem
as nem 2016년 5월 3일
답변: Marco Riani 2021년 9월 2일
Hi,
I used DBSCAN and clustered a dataset, As known, result clusters have a noise cluster.Then I want to estimate Rand index on result cluster. But I have noise cluster ,There is not a response of noise points in contingency table. how can I use noise cluster for estimate contingency table ? Whether I ignore noise result or not ?

답변 (1개)

Marco Riani
Marco Riani 2021년 9월 2일
Function RandIndexFS of the FSDA toolbox does what you asked.
For a preview of the documentation of this function please see
Below there is an example of the use of this function
load fisheriris
% first partition c1 is the true partition
c1=species;
% second partition c2 is the output of tclust clustering procedure
k=3;
out=tclust(meas,k,0.1,100,'msg',0);
c2=out.idx;
% Units inside c2 which contain number 0 are referred to trimmed observations
% With option noisecluster you can decide to ignore or not to ignore
% noise cluster
noisecluster=0;
[ARI,RI,MI,HI]=RandIndexFS(c1,c2,noisecluster);
disp("adjusted ARI index ignoring noise cluster")
disp(ARI)
% Contingency table
[tbl,~,~,labels]=crosstab(c1,c2);
TBL=array2table(tbl,'RowNames',labels(1:3,1),'VariableNames',labels(1:k+1,2));
disp(TBL)
Hope it helps
Marco

카테고리

Help CenterFile Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by