⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fvalidity.m

📁 k-means算法(matlab编写),其中包含测试数据集,可以使用.
💻 M
字号:
function [fpi, nce, S, dJdphi]=fvalidity(U,W,centroid,dist,nclass,phi)
% calculate cluster validity value
% [fpi, mpe, S, dJdphi]=fvalidity(U,dist,nclass,phi)
% Input:
%   U           = membership matrix     U(ndata,nclass)
%   W           = distance norm matrix  W(ndim,ndim)
%   centroid    = cluster centre        centroid(nclass,ndim)
%   dist        = distance matrix       dist(ndata,nclass)
%   nclass      = no. class
%   phi         = fuzzy exponent        >1
% Output:
%   fpi = fuzzy performance index
%   nce = normalised classification entropy
%   S   = cluster separation 
%   dJdphi = derivative of objective function over phi dJ/dphi

ndata = size(U, 1);         % number of data 

% fuzzy performance index
F = 1/ndata*sum(sum(U.*U));
f = (nclass*F-1)/(nclass-1);
fpi = 1-f;

% mpe
H = -1/ndata*sum(sum(U.*log(U)));
nce = H/log(nclass);

% S
disc = mahaldist(centroid, centroid, W)+eye(nclass).*1/eps;
dmin=min(min(disc));
ud=(U.*U).*(dist.*dist); 
j2=sum(sum(ud));
S=j2./(ndata*dmin);

% dJ/dphi
uphi = U.^phi;   
d1=(dist.^2).*log(U).*uphi;
dJdphi = sum(sum(d1')); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -