Je suis intéressé à effectuer le regroupement de KMEANS sur une liste de mots avec la mesure de distance étant Leveshtein. p>
1) Je sais qu'il y a beaucoup de cadres là-bas, y compris Scipey et Orange qui a une mise en œuvre KMEANS. Cependant, ils nécessitent tous une sorte de vecteur comme les données qui ne me correspondent pas vraiment. P>
2) J'ai besoin d'une bonne implémentation de clustering. J'ai regardé le regroupement de Python et réalisez que ce n'est pas a) renvoie la somme de toute la distance à chaque centroïde, et b) il n'a aucune sorte de limite d'itération ni de coupure qui assure la qualité du regroupement. Le clustering Python et l'algorithme de clustering sur DaniWeb ne fonctionne pas vraiment pour moi. P>
Quelqu'un peut-il me trouver une bonne lib? Google n'a pas été mon ami p>
4 Réponses :
Pas vraiment une réponse à votre question spécifique, mais je vous recommande de regarder à "Programmation de l'intelligence collective" . À la fin de chaque chapitre, par exemple, le regroupement, il éroque à décrire toute la meilleure lecture sur le sujet. P>
Ouais, je pense qu'il n'y a pas de bonne implémentation à ce dont j'ai besoin. p>
J'ai des exigences folles, telles que la mise en cache de distance, etc. P>
Alors je pense que je vais simplement écrire ma propre lib et la libérer comme gplv3 bientôt. p>
Vous avez peut-être consulté weka . C'est une bibliothèque Java avec des implémentations d'apprentissage non supervisées et des outils de visualisation agréables. Cela fait longtemps que je l'ai utilisé, je ne suis pas sûr que cela soit idéal pour un environnement de production réel mais de manière déficiblement un bon point de départ. P>
Quoi de Ce Très belle réponse sur CrossValidée? P>
Il utilise la propagation d'affinité au lieu de k-moyens K et, dans ce cas, vous pouvez donner en tant qu'entrée une métrique de distance. Je ne pense pas que l'approche basée sur la K-Windyse pourrait fonctionner dans votre cas puisqu'elle est basée sur la construction d'un Centroidid et pour faire cela, vous devez être dans un espace de vecteur. P>
La propagation d'affinité a le bonus qu'il sélectionne automatiquement le nombre de clusters, que vous pouvez modifier (à avoir plus ou moins de clusters) en modifiant la préférence (qui par défaut est la médiane de tous les paires de distance, mais vous pouvez choisir d'autres Poignés). P>
Si vous devez spécifier le nombre exact de clusters, en plus de modifier la propagation d'affinité par essai et par erreur, vous pouvez rechercher une implémentation de K-Medoids (apparemment, il n'y a pas de mise en œuvre à Sklearn, mais les gens ont demandé il ici et là-bas ). K-Medoides ne construit pas de centroïds, de sorte qu'il n'a pas besoin du concept d'espace vectoriel. La mise en œuvre peut donc accepter comme entrée une matrice de distance précalisée (n'a pas vérifié les références que je donne, cependant). P>
J'aurais besoin exactement de la même chose. Avez-vous trouvé quelque chose depuis lors?