kmeans_val.m

来自「動態聚類k-means演算 將輸入在程式中的數據資料 給予適當的分群」· M 代码 · 共 49 行

M
49
字号
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 + =
减小字号Ctrl + -
显示快捷键?