Mam zestaw danych o znanych etykietach. Chcę spróbować klastrować i sprawdzić, czy mogę uzyskać te same klastry podane przez znane etykiety. Aby zmierzyć dokładność, potrzebuję czegoś w rodzaju matrycy mylącej.Macierz konwersji dla klastrów w scikit-learn
Wiem, że mogę łatwo uzyskać matrycę do pomylenia dla zestawu testowego problemu klasyfikacji. Próbowałem już tak jak this.
Jednak nie można go używać do tworzenia klastrów, ponieważ oczekuje, że zarówno kolumny, jak i wiersze będą miały ten sam zestaw etykiet, co ma sens w przypadku problemu z klasyfikacją. Ale w przypadku problemu klastrowego oczekuję czegoś takiego.
Wiersze - Rzeczywiste etykiety
Kolumny - Nowe nazwy klastra (tj cluster-1, klaster-2 itd.)
Czy istnieje sposób, aby to zrobić?
Edytuj: Oto więcej szczegółów.
W sklearn.metrics.confusion_matrix, że spodziewa y_test
i y_pred
mieć te same wartości, a labels
być etykiety tych wartości.
Dlatego daje matrycę, która ma takie same etykiety dla obu wierszy i kolumn, jak to.
Ale w moim przypadku (KMeans klastrowania), rzeczywiste wartości są ciągi i szacowane wartości są liczbami (czyli liczba klastrów)
Dlatego, jeśli zadzwonię confusion_matrix(y_true, y_pred)
daje poniżej błędu.
ValueError: Mix of label input types (string and number)
To jest prawdziwy problem. W przypadku problemu klasyfikacji ma to sens. Jednak w przypadku problemu związanego z tworzeniem skupień ograniczenie to nie powinno występować, ponieważ prawdziwe nazwy etykiet i nowe nazwy klastra nie muszą być takie same.
Rozumiem, że próbuję użyć narzędzia, które ma służyć do rozwiązywania problemów związanych z klasyfikacją, w przypadku problemu związanego z tworzeniem klastrów. Moje pytanie brzmi: czy istnieje sposób, w jaki mogę uzyskać taką matrycę dla danych w klastrze.
Mam nadzieję, że pytanie jest teraz jaśniejsze. Daj mi znać, jeśli tak nie jest.
Proszę wyjaśnić to na przykładowej próbce –
Dodano więcej szczegółów. Dzięki. – Bee
Więc jeśli nie wiesz, jak zmapować numer klastra do rzeczywistych wyników, jak będziesz postępować? –