Potrzebuję skupić prosty jednoczynnikowy zestaw danych w ustalonej liczbie klastrów. Technicznie byłoby bliżej do binowania lub sortowania danych, ponieważ jest to tylko 1D, ale mój szef nazywa to grupowaniem, więc zamierzam trzymać się tej nazwy. Obecna metoda używana przez system, na którym się znajduję, to K-środki, ale to wydaje się przesadą.W jaki sposób można użyć oszacowania gęstości jądra jako metody grupowania 1D w nauce scikit?
Czy istnieje lepszy sposób wykonania tego zadania?
Odpowiedzi na niektóre inne posty wymieniają KDE (Estymacja gęstości jądra), ale to jest metoda szacowania gęstości, jak by to działało?
Widzę, jak KDE zwraca gęstość, ale jak mam powiedzieć, aby podzielić dane do pojemników?
Jak mam stałą liczbę pojemników niezależnych od danych (to jedno z moich wymagań)?
Mówiąc dokładniej, jak można to wykorzystać, ucząc się scikita?
Mój plik wejściowy wygląda następująco:
str ID sls
1 10
2 11
3 9
4 23
5 21
6 11
7 45
8 20
9 11
10 12
Chcę grupy liczbę SLS w klastry lub pojemników, tak że:
Cluster 1: [10 11 9 11 11 12]
Cluster 2: [23 21 20]
Cluster 3: [45]
A mój plik wyjściowy będzie wyglądać następująco:
str ID sls Cluster ID Cluster centroid
1 10 1 10.66
2 11 1 10.66
3 9 1 10.66
4 23 2 21.33
5 21 2 21.33
6 11 1 10.66
7 45 3 45
8 20 2 21.33
9 11 1 10.66
10 12 1 10.66
Na czym polega problem k-średnich? Wydajność? –
kmeans jest bardziej wydajny niż kde – lejlot
@ DavidMaust 1) Kiedy próbowałem uruchomić k-średnich sklearn na jednowymiarowych danych, zacząłem dostawać błędy. Musiałem go oszukać, ponieważ posiadałem klaster na danych 2d, które były identycznymi kopiami oryginalnych danych 1d. 2) Zgodnie z tym [post] (http://stackoverflow.com/a/11516590/3967806) jest to zły pomysł. –