Arbeitet derzeit in Octave, ist aber aufgrund der schlechten Dokumentation nur sehr langsam vorangekommen.
Welche Sprache ist leicht zu lernen und zu verwenden und gut dokumentiert, um Probleme des maschinellen Lernens zu lösen? Ich möchte einen Prototyp für einen kleinen Datensatz (Tausende von Beispielen) erstellen, daher ist Geschwindigkeit nicht wichtig.
EDIT: Ich entwickle eine Empfehlungs-Engine. Daher interessiere ich mich für die Verwendung von regulierter linearer Regression, neuronalen Netzen, SVN oder kollaborativer Filterung.
Antworten:
Wenn Sie etwas Out-of-Box verwenden möchten, könnte Weka ein guter Ausgangspunkt sein. Es besteht keine Notwendigkeit, etwas zu programmieren. Sie importieren Ihre Daten, visualisieren sie und spielen mit verschiedenen Modellen.
Als nächstes in der Kette wäre R. Es gibt eine gewisse Lernkurve - insbesondere beim Munging Ihrer Daten, um sie in R-Datenstrukturen zu integrieren, aber sobald Sie darüber hinweg sind, haben Sie Tonnen von Bibliotheken, die alle maschinellen Lernfunktionen ohne großen Aufwand bieten.
Als nächstes würde man die Algorithmen für maschinelles Lernen von Hand programmieren. Da Sie Octave bereits verwenden und nach Alternativen suchen, möchten Sie möglicherweise keine Codealgorithmen in einem anderen System übergeben, sondern nur die von anderen Personen geschriebenen Bibliotheken verwenden.
Wenn Sie den R-Pfad beschreiten, ist das Buch von Luis Torgo (Data Mining mit R: Lernen mit Fallstudien) möglicherweise sehr nützlich (Offenlegung: keine Zugehörigkeit). Es beschreibt ausführliche Fallstudien, die Sie an Ihr Problem anpassen können.
quelle
Sie erhalten möglicherweise bessere Antworten, wenn Sie die spezifischen Algorithmen angeben, an denen Sie interessiert sind. Ich verwende R für diese Art von Dingen (ich mache jedoch Zeitreihenökonometrie, aber kein maschinelles Lernen); Sie können die vorhandene Funktionalität hier sehen:
http://cran.r-project.org/web/views/MachineLearning.html
und es gibt R-Code, um die Analyse in Hastie, Tibshirani und Friedmans Elementen des statistischen Lernens zu implementieren :
http://www-stat.stanford.edu/~tibs/ElemStatLearn/
Das Verpackungssystem von R ist großartig und bringt die Leute dazu, ihren Code zu dokumentieren. Es ist Open Source, sodass Sie sich jederzeit die Implementierung ansehen können. Ich habe Matlab seit einigen Jahren nicht mehr verwendet und es nicht für viel maschinelles Lernen verwendet - ihre Toolboxen sind normalerweise gut dokumentiert, können aber teuer sein, aber vom Benutzer bereitgestellter Code wird genauso schlecht dokumentiert sein wie jeder andere.
quelle
In seinem Online-Kurs zum maschinellen Lernen schlägt Andrew Ng die Verwendung von Octave / Matlab vor.
Ich empfehle Ihnen, sich für die nächste Ausgabe dieses Kurses anzumelden: Es ist sehr nützlich und Sie werden viel über Octave und die verschiedenen Algorithmen für maschinelles Lernen lernen.
BEARBEITEN 1 : Ich stimme anderen Leuten zu, die es vorziehen, in R zu arbeiten. Bei der Lösung der Probleme des maschinellen Lernens werden die meisten Ihrer Berechnungen jedoch in Matrixform ausgeführt, und wie von @Wayne hervorgehoben, sind Matlab- oder Octave-Sprachen sehr beliebt wegen ihrer Macht. Vielleicht möchten Sie einen Blick auf die Lösungen für Übungen zum maschinellen Lernen werfen, die von anderen Studenten vorgeschlagen wurden. sicherlich können Sie einige Dinge von ihnen lernen:
Gkokaisel Github
Merwan Github
quelle
t(A) %*% B
weniger intuitiv ist als in Matlab.Das Scikit-Lernen sollte (jetzt
sklearn
) mehrere der von Ihnen beschriebenen Kriterien erfüllen (Geschwindigkeit, gut konzipierte Klassen für den Umgang mit Daten, Modellen und Ergebnissen), einschließlich gezielter Anwendungen (L1 / L2-bestrafte Regression, SVM usw.). Es enthält ein umfangreiches Dokumentationsset und viele Beispiele . Siehe auch die Beschreibung in einem Papier in der JMLR veröffentlicht.Ein alternatives Framework in Python ist Orange , das über eine übersichtliche Benutzeroberfläche oder direkt über die Befehlszeile verwendet werden kann. Für die kollaborative Filterung mag pyrsvd interessant sein, aber ich habe es nie ausprobiert. Allerdings Apache Mahout könnte sicherlich verwendet werden für Collaborative Filtering .
quelle
Wenn Sie sich auf einen industriellen Prototyp beziehen (dh etwas, das von echten Menschen verwendet wird und nicht für reine Forschung), ist Python im Moment der einzige Weg.
Wenn Sie Matlab, Octave oder R verwenden, erhalten Sie eine benutzerfreundliche Umgebung für die ML-Forschung, aber es ist ein Albtraum, das Modell mit einer Benutzeroberfläche oder einem Webdienst in Betrieb zu nehmen.
In Python haben wir das Glück, sowohl ein umfangreiches wissenschaftliches Ökosystem ( sklearn für ML, Pandas für Daten-Wragling, Matplotlib / Seaborn für die Visualisierung) als auch ein Anwendungs-Ökosystem (denken Sie an Django und sein Rest-Framework ) zu haben.
Python ist eine leicht zu erlernende Sprache. Ich hoffe, dass das Javascript-Ökosystem in Zukunft wissenschaftlich fundiert sein wird wie das Python-Ökosystem, aber trotz einiger großartiger Projekte sehe ich das nicht in Kürze.
Wickeln Sie sich nicht in eine Schachtel, verwenden Sie eine allgemeine Sprache!
quelle