Próbuję się dowiedzieć i zrozumieć, jak działają algorytmy klastrowania w języku Python
Pytanie:
Mam zbiór danych z około 5 kolumnami z mieszanymi typami danych (alfanumeryczne / data / numeryczne) i chcę go zgrupować na podstawie wielu pól o wspólnej wartości.
Przykład:
Index Col-1 Col-2 Col-3 Col-4 Col-5
----------------------------------------------------------------
0 US1 John ABC123 01/01/2019 200
1 US2 Alex 256xyz 01/12/2018 8000
2 US1 John ABC12 01/01/2019 200
3 US2 Alex 00256xyz 01/12/2018 8000
4 US2 Alex XYZ 01/12/2018 8000
5 US3 Mary 345abc 27/03/2000 9040
Wynik:
Index
Cluster-1: 0 and 2
Cluster-2: 1,3,4
Cluster-3: 5
W oparciu o Col-1,2,4,5 należy stworzyć klastry.
Nie wiem, czy to ma sens i czy da się to osiągnąć.
Jeśli tak, jaki byłby najlepszy algorytm do wykorzystania w przypadku zbioru danych nienumerycznych? Lub można to osiągnąć za pomocą kodu.
1 odpowiedź
Nie jestem pewien, czy szukasz dokładnego dopasowania, czy grupowania z przybliżonym dopasowaniem. Aby uzyskać dokładne dopasowanie, możesz po prostu pogrupować według wszystkich czterech kolumn, aby utworzyć identyfikator group_id dla każdej kombinacji, a następnie znaleźć wszystkie osoby należące do tej samej grupy, łącząc się z tą tabelą.
W przypadku przybliżonego dopasowania możesz albo zakodować je jako zmienne fikcyjne i użyć odległości Hamminga do obliczenia podobieństwa i stworzenia na jego podstawie klastrów
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.