Pierwszy artykuł, który przychodzi mi na myśl, to: Klastrowanie za pomocą konstrukcji drzewa decyzyjnego
https://pdfs.semanticscholar.org/8996/148e8f0b34308e2d22f78ff89bf1f038d1d6.pdf
Jak już wspomniano, „hierarchiczna” (od góry do dołu) i „hierarchiczna aglomeracja” (od dołu do góry) są dobrze znanymi technikami opracowanymi przy użyciu drzew do tworzenia klastrów. Scipy ma to.
Jeśli nie masz nic przeciwko niestandardowemu kodowi, ponieważ nie znam żadnej biblioteki, mogę polecić dwie techniki. Ostrzegamy, że nie są technicznie skupione ze względu na mechanikę, na której polegają. Możesz nazwać to pseudo klastrowaniem.
1) Nadzorowane: Jest to nieco podobne do artykułu (warte przeczytania). Zbuduj model pojedynczego drzewa decyzyjnego, aby poznać cel (decydujesz, co ma sens). Cel może być losowo generowaną kolumną (wymaga powtórzenia i oceny, która iteracja była najlepsza, patrz poniżej). Zdefiniuj każdą pełną ścieżkę drzewa jako „klaster”, ponieważ punkty, które przechodzą przez tę serię gałęzi, są technicznie podobne pod względem celu. Działa to dobrze tylko w przypadku niektórych problemów, ale jest skuteczne na dużą skalę. Skończysz z klastrami K (patrz poniżej).
2) Semisupervised (rodzaj bez nadzoru, ale nadzorowany mechanicznie), wykorzystując # 1: możesz spróbować budować drzewa, aby przewidzieć kolumny według wzorca wykluczającego. tzn. jeśli schemat to [A, B, C], zbuduj 3 modele [A, B] -> C, [A, C] -> B, [B, C] -> A. Otrzymujesz klastry KN (patrz poniżej). N = len (schemat). Jeśli niektóre z tych funkcji nie są interesujące ani zbyt niezrównoważone (w przypadku kategorii), nie używaj ich jako celów.
Podsumowanie: model wybierze funkcje w kolejności na podstawie informacji lub czystości, a klastry będą oparte tylko na kilku funkcjach, a nie na wszystkich. W tych klastrach nie ma koncepcji odległości, ale z pewnością można by ją opracować w oparciu o centra.
Plusy: łatwy do zrozumienia i wyjaśnienia, szybki trening i wnioskowanie, działa dobrze z kilkoma silnymi funkcjami, działa z kategoriami. Kiedy Twoje funkcje są w gruncie rzeczy niejednorodne i masz wiele funkcji, nie musisz tracić czasu na podejmowanie decyzji, które z nich użyć w funkcji odległości.
Wady: niestandardowe, muszą być napisane, naiwne uprzedzenie, kolinearność z celem powoduje złe wyniki, posiadanie 1000 równie ważnych cech nie będzie działać dobrze (KMeans z odległością euklidesową jest tutaj lepszy).
Ile masz klastrów? Musisz bezwzględnie ograniczyć model DT, aby nie urósł zbytnio. np. Ustaw minimalną liczbę próbek na liść, maksymalną liczbę węzłów liści (preferowane) lub maksymalną głębokość. Opcjonalnie ustaw ograniczenia czystości lub entropii. Musisz sprawdzić, ile klastrów ci to dało, i ocenić, czy ta metoda jest lepsza niż prawdziwe klastrowanie.
Czy techniki i parametry działały dla Ciebie dobrze? Który był najlepszy? Aby się tego dowiedzieć, musisz dokonać oceny klastra: Wskaźniki wydajności w celu oceny uczenia się bez nadzoru
But I need it for unsupervised clustering, instead of supervised classification
Samo to kluczowe wyrażenie jest zbyt krótkie i nie wyczerpuje dokładnie tego, czego chcesz. Powyżej opisałeś coś, co wydaje mi się drzewem decyzyjnym. Czy możesz teraz podać podobny fragment na temat algo, którego chcesz?