Kmedoid fonction objective
Bonjour à tous,
Je voudrais savoir si quelqu'un d'entre vous à déjà travailler sur les Kmedoids ?
Voici un code que j'ai trouvé sur le site de matlab. J'aurai juste une question sur ce code. Voilà dans la fonction Kmeans de base il y a une option 'replicate' qui nous donne une solution ayant une fonction objective minimale parmi X itérations.
Or dans le code suivant pour les kmedoids je ne sais pas comment faire pour calculer cette fonction objective. Es-ce que quelqu'un aurait une idée ?
Merci d'avance
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| function [label, energy, index] = kmedoids(X,k)
% X: d x n data matrix
% k: number of cluster
v = dot(X,X,1);
D = bsxfun(@plus,v,v')-2*(X'*X);
n = size(X,2);
[~, label] = min(D(randsample(n,k),:),[],1);
last = 0;
while any(label ~= last)
[~, index] = min(D*sparse(1:n,label,1,n,k,n),[],1);
last = label;
[val, label] = min(D(index,:),[],1);
end
energy = sum(val); |