lista 3 zadanie 2 numpy

Mam wygenerować 1e6 wektorów 1000 wymiarowych i użyć na nich prostego k-means, dzieląc dane na 1000 grup. Moje algorytmy działają, ale na tak dużych danych nie przechodzą. Sparse matrices nie pomagają.

Obliczanie odległości zajmuje za dużo czasu. Co robić? Da radę usprawnić?

PS. oczywiście mogę przybliżyć wynik nie obliczając wszystkich danych. Pytanie brzmi, czy da radę usprawnić to w przypadku ogólnym.

Te dane chyba nie są rzadkie, także sparse matrices nie pomoże. Nie wiem jak długo powinno się to liczyć, ale możliwe ze długo. Próbowałeś odpalić przy użyciu kmeans z sklearn?

Edit:
Może się nie znam i te dane są rzadkie, odniosłem się do podobnego zadania z zeszłego roku i tam to nie były rzadkie macierze

Sugestia była prosto od Piotra Lipińskiego. Gęstość macierzy M to w tym przypadku dokładnie 1/1000; nie mam dokładnych danych czy się opłacają, czy nie. To chyba nawet nie ma dużego znaczenia, bo obliczanie odległości jest tu zbyt kosztowne.

Spróbuję na sklearnowym algorytmie. Na moim leci już ponad 2 godziny na google databasie. :slight_smile:
Końca nie widać.

Edit: na sklearnowym też raczej nie widać. Ktoś to w ogóle zrobił?
Edit2: sklearn ma zaimplementowany dużo gorzej zoptymalizowany algorytm niż taki z wykładu.