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 : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Partager