Regroupement Basé Sur La Matrice Des Distances

mon objectif est de regrouper les mots en fonction de leur similitude par rapport à un corpus de documents textuels. J'ai calculé la Similarité de Jaccard entre chaque paire de mots. En d'autres termes, j'ai une matrice de distance clairsemée disponible avec moi. Est-ce que quelqu'un peut me pointer vers n'importe quel algorithme de regroupement (et peut-être sa bibliothèque en Python) qui prend la matrice de distance comme entrée ? Je ne connais pas non plus le nombre de grappes à l'avance. Je veux seulement regrouper ces mots et obtenir quels mots sont groupés ainsi.

18
demandé sur user2115183 2013-04-27 02:19:10

2 réponses

vous pouvez utiliser la plupart des algorithmes de scikit-learn avec une matrice de distance prédéfinie. Malheureusement, vous avez besoin du nombre de clusters pour de nombreux algorithmes. DBSCAN est le seul qui n'a pas besoin du nombre de clusters et qui utilise aussi des matrices de distances arbitraires. Vous pouvez également essayer changement de MeanShift, mais cela interprétera les distances comme des coordonnées - ce qui pourrait aussi fonctionner.

Il y a aussi propagation d'affinité, mais je n'ai pas vraiment vu qui fonctionne bien. Si vous voulez beaucoup de grappes, cela pourrait être utile, cependant.

divulgation: je suis un scikit-learn core dev.

11
répondu Andreas Mueller 2013-04-27 12:59:29

Le scipy de clustering paquet pourrait être utile ( scipy.cluster