📄 kmeans_val.m
字号:
function [val, db] = kmeans_val(data, clusters, nc);%% Compute the distance between each datapoint to the clustersdists = kmeans_dist(data, clusters);% Assign datapoints to clusters and compute updates[minval, dbelong] = min(dists');% Intra mean distanceintra = 0.0;for i=1:nc idxtmp = find(dbelong == i); if length(idxtmp > 0) cpoints = data(idxtmp,:); ctmp = clusters(i,:); cdists = kmeans_dist(cpoints, ctmp); intra = intra + sum(cdists); err(i) = mean(cdists); else err(i) = 0.0; end end% Normalize with number of data[ndata, nvar] = size(data);intra = intra / ndata;% Inter distanceinterdist = dist(clusters');tmp = find(interdist > 0.0);inter = min(interdist(tmp));val = intra / inter;% Compute the Davies-Bouldin indexRk = zeros(nc);for i=1:nc for j=1:nc if( j ~= i ) R(i,j) =(err(i) + err(j))/ interdist(i,j); end endendRk = max(R);db = sum(Rk) / nc;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -