otázka by neměla směřovat na počet řádků, ale počet dimenzí (features) a počet clusterů. Počet řádků nebývá takový problém, dá se redukovat samplingem a každá dimenze je obrovsky znát.
Každá z metod na clustering má jiné škálování s počtem dimenzí, obecně vzato pokud jich máš do 10, máš ten výběr široký a rychlost dobrou, když jich máš 1000, musíš začít přemýšlet na tom, jak ty dimenze redukovat (např. PCA) dříve než to začneš clusterovat, to ti neupočítání asi z žádná z nabízených metod.
Např. pokud vezmu kmeans, je lepší při velkém vstupu použít elkan algoritmu, který počítá daleko efektivněji vzdálenosti jednotlivých bodů přes trojuhelníky. Nebo jdi dál a zvol MiniBatchKMeans, který je ještě rychlejší.
Umí to být velice rychlé, scikit-learn ale numí škálovat do šířky, takže nemůžeš výpočet snadno distribuovat na více strojů, což je náš případ, takže ho kluci používají jen omezeně.
aha, díky za odpověď. No pokud každou metriku, co sbíráme, budeme považovat za jednu dimenzi, tak je to okolo 30 dimenzí (krát těch řekněme 10000 řádků) a počet clusterů je trošku velká neznámá. Asi bysme si to museli nechat vykreslit (předpokládám nějaký řezy z 30 dimenzí na 2 až 3), ale takto z placu to nedokážu odhadnout.
Teď clustering neděláme, resp. byla snaha, ale běží nám nad tím jen nějaká heuristika, které asi nikdo moc nevěří :-) [potom je otázka, které z těch 30 metrik mají smysl a které ne, ale to s clusteringem asi už nesouvisí]
Exaktní metody (k-means) se nehodí pro mnohodimenzionální data, protože existuje matematický jev, kterému se říká prokletí dimenzionality. Pokud je počet dimenzí větší než řekněme 10, je obvykle potřeba podívat se po aproximativních metodách (např. Faiss).