2013-05-01 16 views
5

Mam plik csv o rozmiarze [66k, 56k] (wiersze, kolumny). Jest to rzadka matryca. Wiem, że numpy może obsłużyć taką wielkość matrycy. Chciałbym wiedzieć, na podstawie doświadczeń wszystkich, ile funkcji algorytmów uczenia się nauczy się wygodnie?Ile funkcji może obsługiwać nauka naukowa?

+0

Zadanie, nad którym pracuję, to regresja. Ale byłoby dobrze wiedzieć, jak ogólnie sklearn obsługuje dane wielowymiarowe. – viper

Odpowiedz

12

Zależy od estymatora. Przy tej wielkości modele liniowe nadal dobrze się sprawdzają, podczas gdy maszyny SVM prawdopodobnie będą trwać wiecznie, aby trenować (i zapomnieć o losowych lasach, ponieważ nie będą one obsługiwać rzadkich macierzy).

Osobiście użyłem LinearSVC, LogisticRegression i SGDClassifier z rzadkimi matrycami o wielkości około 300k × 3,3 miliona bez żadnych problemów. Zobacz @ amueller's scikit-learn cheat sheet, aby wybrać odpowiedni kalkulator dla danego zadania.

Pełne ujawnienie: Jestem programistą core-learn-learn.

1

Niektóre modele liniowe (Regresja, SGD, Bayes) będą prawdopodobnie najlepszym rozwiązaniem, jeśli będziesz musiał często trenować swój model.

Chociaż przed pobiegać żadnych modele można wypróbować następujące

1) Redukcja funkcji. Czy istnieją dane, które można łatwo usunąć? Na przykład, jeśli dane są oparte na tekście lub ocenach, dostępnych jest wiele znanych opcji.

2) Analiza krzywej uczenia. Być może potrzebujesz tylko niewielkiego podzbioru danych, aby wyszkolić model, a następnie pasujesz do danych lub zyskujesz niewielki wzrost dokładności.

Oba podejścia mogą znacznie zmniejszyć wymagane dane treningowe.