Obecnie pracuje w Octave, ale z powodu słabej dokumentacji postęp jest bardzo wolny.
Jaki język jest łatwy do opanowania i używania oraz dobrze udokumentowany, aby rozwiązać problemy z uczeniem maszynowym? Szukam prototypu na małym zestawie danych (tysiące przykładów), więc szybkość nie jest ważna.
EDYCJA: Opracowuję silnik rekomendacji. Tak więc jestem zainteresowany wykorzystaniem regularnej regresji liniowej, sieci neuronowych, SVN lub filtrowania grupowego.
Odpowiedzi:
Jeśli chcesz użyć czegoś nieszablonowego, Weka może być świetnym punktem wyjścia. Nie trzeba nic programować. Importujesz swoje dane, wizualizujesz je i bawisz się różnymi modelami.
Następny w kolejności byłby R. Jest pewna krzywa uczenia się - szczególnie w przypadku mungowania danych, aby dopasować je do struktur danych R, ale kiedy już sobie z tym poradzisz, masz mnóstwo bibliotek, które oferują wszystkie możliwości uczenia maszynowego bez większego wysiłku.
Następnym krokiem byłoby ręczne programowanie algorytmów uczenia maszynowego. Ponieważ już używasz Octave i szukasz alternatyw, być może nie chcesz obsługiwać algorytmów kodu w innym systemie, ale po prostu korzystać z bibliotek napisanych przez innych ludzi.
Jeśli pójdziesz ścieżką R., książka Luisa Torgo (Data Mining with R: Learning with Case Studies) może okazać się bardzo przydatna (ujawnienie: brak powiązania). Opisuje dogłębne studia przypadków, które możesz dostosować do swojego problemu.
źródło
Możesz uzyskać lepsze odpowiedzi, jeśli określisz konkretne algorytmy, które Cię interesują. Używam R do tego rodzaju rzeczy (wykonuję ekonometrię szeregów czasowych, ale nie uczenie maszynowe); możesz zobaczyć istniejącą funkcjonalność tutaj:
http://cran.r-project.org/web/views/MachineLearning.html
i istnieje kod R do implementacji analizy w elementach statystycznego uczenia się Hastie, Tibshirani i Friedmana :
http://www-stat.stanford.edu/~tibs/ElemStatLearn/
System pakowania R jest całkiem świetny i popycha ludzi do dokumentowania swojego kodu, a także jest open source, więc zawsze możesz zajrzeć do implementacji. Nie korzystałem z Matlaba od kilku lat i nie używałem go do uczenia maszynowego - ich zestawy narzędzi są zwykle dobrze udokumentowane, ale mogą być drogie, ale kod udostępniony przez użytkownika będzie tak słabo udokumentowany jak każdy inny.
źródło
W swoim internetowym kursie uczenia maszynowego Andrew Ng sugeruje użycie Octave / Matlab.
Polecam zapisać się na kolejną edycję tego kursu: jest to naprawdę przydatne i nauczysz się wielu rzeczy o Octave i różnych algorytmach uczenia maszynowego.
EDYCJA 1 : Zgadzam się z innymi osobami, które wolą pracować w języku R. Jednak przy rozwiązywaniu problemów uczenia maszynowego większość twoich obliczeń ma postać macierzy, a jak wskazano w @Wayne, Matlab lub Octave są bardzo popularne z powodu ich mocy. Możesz rzucić okiem na proponowane przez innych studentów rozwiązania dotyczące kursów uczenia maszynowego; na pewno możesz się od nich nauczyć:
Gkokaisel Github
Merwan Github
źródło
t(A) %*% B
, jest mniej intuicyjny niż w Matlabie.Scikit-learn (obecnie
sklearn
) powinna spełniać kilka kryteriów opisanych wy (prędkości, dobrze zaprojektowanych klas do obsługi danych, modele i wyników), w tym ukierunkowanych zastosowaniach (L1 / L2 karane regresji, SVM, itd.). Jest wyposażony w bogaty zestaw dokumentacji i wiele przykładów . Zobacz także jego opis w artykule opublikowanym w JMLR.Alternatywną strukturą w Pythonie jest Orange , której można używać za pomocą delikatnego interfejsu GUI lub bezpośrednio w wierszu poleceń. W przypadku wspólnego filtrowania Pyrsvd może być interesujące, ale nigdy go nie próbowałem. Jednak Apache Mahout może z pewnością zostać użyty do wspólnego filtrowania .
źródło
Jeśli masz na myśli prototyp przemysłowy (tj. Coś, co robią ludzie, a nie dla czystych badań), pyton jest w tej chwili jedyną drogą.
Jeśli korzystasz z Matlaba, Octave lub R, otrzymasz łatwe w użyciu środowisko do badań ML, ale koszmarem będzie uruchomienie modelu z interfejsem użytkownika lub usługą internetową.
W Pythonie mamy szczęście, że mamy zarówno rozległy ekosystem naukowy ( sklearn dla ML, pandy do zawijania danych, matplotlib / seaborn do wizualizacji), jak i ekosystem aplikacji (pomyśl o django i jego strukturze reszty ).
Python to łatwy język do nauki. Mam nadzieję, że w przyszłości ekosystem Javascript stanie się naukowo zdrowy jako Python, ale pomimo świetnych projektów nie widzę tego wkrótce.
Nie zawijaj się w pudełku, użyj ogólnego języka!
źródło