Moim celem jest grupowanie słów na podstawie ich zbieżności w stosunku do zbioru dokumentów tekstowych. Wyliczyłem podobieństwo Jaccard pomiędzy każdą parą słów. Innymi słowy, mam ze sobą rzadką matrycę odległości. Czy ktokolwiek może wskazać mi dowolny algorytm grupowania (i ewentualnie jego bibliotekę w Pythonie), który bierze matrycę odległości jako dane wejściowe? Nie znam też wcześniej liczby klastrów. Chcę tylko skupić te słowa i uzyskać, które słowa są skupione razem.Klastrowanie oparte na macierzy odległościowej
Odpowiedz
Pakiet klastrowania scipy może być przydatny (scipy.cluster). Istnieją hierarchiczne funkcje grupowania w scipy.cluster.hierarchy. Należy jednak pamiętać, że wymagają one skondensowanej matrycy jako wejścia (górny trójkątny macierzy odległości). Mam nadzieję, że strony dokumentacji pomogą ci razem.
Możesz użyć większości algorytmów w nauce scikit z wstępnie obliczoną macierzą odległości. Niestety potrzebujesz wielu klastrów dla wielu algorytmów. DBSCAN jest jedynym, który nie potrzebuje liczby klastrów, a także używa macierzy arbitralnych odległości. Możesz także wypróbować MeanShift, ale to zinterpretuje odległości jako współrzędne - co również może działać.
Istnieje również affinity propagation, ale tak naprawdę nie widziałem, że działa dobrze. Jeśli jednak potrzebujesz wielu klastrów, może to być pomocne.
Ujawnienie: Jestem uczonym dev rdzenia naukowego.
czy możesz podać [przykład odtwarzalny] (http://stackoverflow.com/help/mcve) algorytmu uczenia się naukowego używającego macierzy odległości jako danych wejściowych? – Bryan
Jest jeden tutaj: http://scikit-learn.org/dev/auto_examples/cluster/plot_segmentation_toy.html –
- 1. "Oparte na Monadzie" oparte na zdarzeniach IO
- 2. Klastrowanie z matrycą odległościową
- 3. Aglomeracyjne klastrowanie w Matlab
- 4. Widoki oparte na klasach Widoki oparte na funkcjach VS
- 5. Wartości oparte na warunku
- 6. IDE oparte na przeglądarce?
- 7. Klastrowanie czarno-białych dokumentów obrazkowych
- 8. Klastrowanie w MapKit ze Swiftem
- 9. Wyzwalacze zdarzeń oparte na zegarach
- 10. Widoki oparte na rolach Django?
- 11. Maszyny stanu oparte na korupinach
- 12. Wyśmiewające połączenia oparte na odbiorze
- 13. Specjalizujące szablony oparte na metodach
- 14. Opracowanie oparte na chmurze Android
- 15. Przekierowanie JavaScript oparte na Referrer?
- 16. Treści warunkowe oparte na konfiguracji
- 17. Adnotacje warunkowe oparte na środowisku
- 18. Inicjalizacja macierzy na deklaracji
- 19. Dlaczego niektóre funkcje SQLite są oparte na zerach, a niektóre oparte na jednym z nich:
- 20. oparte na komunikatach a oparte na zdarzeniach podejścia do integracji aplikacji
- 21. Mapowanie macierzy genetycznej na macierz C
- 22. Autouzupełnianie oparte na tabulatorach w aplikacji Console
- 23. SVN authz, uwierzytelnianie oparte na ścieżkę woes
- 24. Zamówienie CVS oparte wyłącznie na znacznikach
- 25. Narzędzia do rysowania UML oparte na skrypcie
- 26. Autouzupełnianie oparte na symfony zrywa autouzupełnianie SCP
- 27. Szyfrowanie oparte na hasłach w Androidzie
- 28. Skanowanie oparte na datownikach w HBase?
- 29. Oparte na widoku NSTableView/NSOutlineView i isGroupItem
- 30. Aplikacje internetowe oparte na języku Python?
spójrz na http://code.google.com/p/em-python/ i "http://en.wikipedia.org/wiki/Expectation-maximization_algorithm" – Moj
jest również http: // www .pymix.org/pymix/index.php? n = PyMix.Tutorial – Moj
@Moj Przykro mi ... Nie mogę się dowiedzieć, w jaki sposób informacje zawarte w linkach, o których wspomniałeś, są tutaj istotne – user2115183