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.

0
user12277274 21 listopad 2019, 09:46
Jak na przykładzie wygląda na to, że chcesz pogrupować według wartości col-1?
 – 
Shankar Saran Singh
21 listopad 2019, 09:50
Nie, na podstawie col1,col2,col 4, col5 we wszystkich czterech kolumnach. Nie jestem pewien, czy to możliwe.
 – 
user12277274
21 listopad 2019, 10:00
Mam też podobny scenariusz. Czy udało ci się to zrobić przypadkiem?
 – 
user3164187
27 październik 2020, 16:45

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

0
blehblehbleh 21 listopad 2019, 13:40