MATLAB聚類有效性評價指標(內部)


MATLAB聚類有效性評價指標(內部)

作者:凱魯嘎吉 - 博客園 http://www.cnblogs.com/kailugaji/

    外部評價指標(需要真實標簽),請看:MATLAB聚類有效性評價指標(外部)MATLAB聚類有效性評價指標(外部 成對度量)

    MATLAB中有一個聚類內部評價指標的函數evalclusters(),即不需要知道聚類中數據的真實標簽,也可以評價聚類的好壞。

    若事先不知道數據的真實類別信息,使用內部評價指標;若數據的真實標簽已知,用外部評價指標。

    關於函數的官網,請看:https://www.mathworks.com/help/stats/evalclusters.html

1. evalclusters()函數用法

  • eva= evalclusters(data,clust,'xxx');
  • data:可以是歸一化/標准化之后的。
  • clust:聚類后的標簽,參數可以是字符串或者矩陣,字符串了話就要寫matlab規定的聚類算法,比如'kmeans'。如果你用的不是matlab自帶的聚類算法去聚類的,而是想評估自己寫的聚類算法性能,那么clust就填寫你聚類結果的標簽矩陣Label就行了,比如你的數據data是N*M的,N是樣本個數,M是特征維數。那么標簽矩陣Label就是N*1的矩陣,代表聚類后每個樣本的標簽,這樣就可以輸出評估結果了。
  • 'xxx':可以選擇四種評價指標:'CalinskiHarabasz' | 'DaviesBouldin' | 'gap' | 'silhouette'
  • 'CalinskiHarabasz': Calinski-Harabasz index (CHI,越大越好)
  • 'DaviesBouldin': Davies-Bouldin index(用的最多,越小越好)
  • 'gap': gap statistic (越大越好)
  • 'silhouette': silhouette coefficient (SC,輪廓系數,越大越好)

2. MATLAB程序

實驗數據來自:https://www.cnblogs.com/kailugaji/p/10861064.html#_label3_0_1_2,將生成的三維數據存為data.txt。

clear
clc
% 作者:凱魯嘎吉 https://www.cnblogs.com/kailugaji/
% 用了SC與DBI這兩個指標
% label:聚類后的標簽,不是真實標簽
data_load = dlmread("data.txt");
data = data_load(:, 1:end-1);
label = data_load(:, end); % 真實標簽
label_2 = [ones(180, 1); 2.*ones(120, 1)]; % 瞎寫的標簽
%% 真實標簽的評價結果
eva_DBI_1= evalclusters(data,label,'DaviesBouldin'); 
eva_SC_1= evalclusters(data,label,'silhouette'); 
DBI_1 = eva_DBI_1.CriterionValues; % 越小越好
SC_1 = eva_SC_1.CriterionValues; % 越大越好
%% 瞎寫的標簽的評價結果
eva_DBI_2= evalclusters(data,label_2,'DaviesBouldin'); 
eva_SC_2= evalclusters(data,label_2,'silhouette'); 
DBI_2 = eva_DBI_2.CriterionValues; % 越小越好
SC_2 = eva_SC_2.CriterionValues; % 越大越好
%% 顯示評價結果
fprintf("DBI越小越好:DBI(真實標簽): %f, DBI(壞標簽): %f\n", DBI_1, DBI_2); % 越小越好
fprintf("SC越大越好:SC(真實標簽): %f, SC(壞標簽): %f\n", SC_1, SC_2); % 越大越好

3. 結果

DBI越小越好:DBI(真實標簽): 0.892058, DBI(壞標簽): 0.938236
SC越大越好:SC(真實標簽): 0.599176, SC(壞標簽): 0.574342

4. 參考

[1] https://www.mathworks.com/help/stats/evalclusters.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM