Travaille actuellement dans Octave, mais en raison de la mauvaise documentation, les progrès sont très lents.
Quelle langue est facile à apprendre et à utiliser et bien documentée pour résoudre les problèmes d'apprentissage automatique? Je cherche à prototyper sur un petit ensemble de données (des milliers d'exemples), donc la vitesse n'est pas importante.
EDIT: Je développe un moteur de recommandation. Je suis donc intéressé à utiliser la régression linéaire régularisée, les réseaux neuronaux, le SVN ou le filtrage collaboratif.
Réponses:
Si vous souhaitez utiliser quelque chose hors de la boîte, Weka pourrait être un excellent point de départ. Il n'est pas nécessaire de programmer quoi que ce soit. Vous importez vos données, les visualisez et jouez avec différents modèles.
Ensuite, la chaîne serait R. Il y a une courbe d'apprentissage associée - en particulier avec la fusion de vos données pour qu'elles s'intègrent dans les structures de données R, mais une fois que vous avez surmonté cela, vous avez des tonnes de bibliothèques qui offrent toutes les capacités d'apprentissage automatique sans trop d'effort.
Ensuite, la programmation manuelle des algorithmes d'apprentissage automatique. Puisque vous utilisez déjà Octave et cherchez des alternatives, peut-être que ce que vous voulez, ce n'est pas de transmettre des algorithmes de code dans un autre système, mais simplement d'utiliser les bibliothèques écrites par d'autres personnes.
Si vous suivez le chemin R, vous trouverez peut-être un livre de Luis Torgo (Exploration de données avec R: Apprentissage avec des études de cas) très utile (divulgation: pas d'affiliation). Il décrit en détail des études de cas que vous pouvez adapter à votre problème.
la source
Vous obtiendrez peut-être de meilleures réponses si vous spécifiez les algorithmes spécifiques qui vous intéressent. J'utilise R pour ce genre de choses (je fais de l'économétrie en série temporelle, cependant, pas de l'apprentissage automatique); vous pouvez voir la fonctionnalité existante ici:
http://cran.r-project.org/web/views/MachineLearning.html
et il existe un code R pour implémenter l'analyse dans Hastie, Tibshirani et Friedman's Elements of Statistic Learning :
http://www-stat.stanford.edu/~tibs/ElemStatLearn/
Le système d'empaquetage de R est assez génial et pousse les gens à documenter leur code, et il est open source afin que vous puissiez toujours regarder la mise en œuvre. Je n'ai pas utilisé Matlab depuis quelques années et je ne l'ai pas utilisé pour beaucoup d'apprentissage automatique - leurs boîtes à outils sont généralement bien documentées mais peuvent être coûteuses, mais le code fourni par l'utilisateur sera aussi mal documenté que les autres.
la source
Dans son cours en ligne d'apprentissage automatique, Andrew Ng suggère d'utiliser Octave / Matlab.
Je vous recommande de vous inscrire à la prochaine édition de ce cours: il est vraiment utile et vous apprendrez beaucoup de choses sur Octave et sur les différents algorithmes d'apprentissage automatique.
EDIT 1 : Je suis d'accord avec d'autres personnes qui préfèrent travailler dans R. Cependant, pour résoudre les problèmes d'apprentissage automatique, la plupart de vos calculs seront sous forme matricielle, et comme souligné par @Wayne, les langages Matlab ou Octave sont très populaires à cause de leur pouvoir. Vous voudrez peut-être jeter un œil aux solutions aux exercices de cours d'apprentissage automatique proposés par d'autres étudiants; vous pouvez sûrement en apprendre certaines choses:
Gkokaisel Github
Merwan Github
la source
t(A) %*% B
, soit moins intuitive que dans Matlab.Le scikit-learn (maintenant
sklearn
) devrait répondre à plusieurs des critères que vous avez décrits (vitesse, classes bien conçues pour gérer les données, les modèles et les résultats), y compris les applications ciblées (régression pénalisée L1 / L2, SVM, etc.). Il est livré avec un ensemble de documentation riche et de nombreux exemples . Voir également sa description dans un article publié dans le JMLR.Un autre framework en Python est Orange , qui peut être utilisé via une interface graphique douce ou directement sur la ligne de commande. Pour le filtrage collaboratif, pyrsvd peut être intéressant mais je ne l'ai jamais essayé. Cependant, Apache Mahout pourrait certainement être utilisé pour le filtrage collaboratif .
la source
Si vous vous référez à un prototype industriel (c'est-à-dire quelque chose qui est fait pour être utilisé par de vraies personnes et non pour de la recherche pure), le python est pour le moment la seule voie à suivre.
Si vous utilisez Matlab, Octave ou R, vous obtenez un environnement facile à utiliser pour la recherche ML, mais ce sera un cauchemar de mettre le modèle au travail avec une interface utilisateur ou un service Web.
En python, nous avons la chance d'avoir à la fois un écosystème scientifique étendu ( sklearn pour ML, pandas pour la recherche de données, matplotlib / seaborn pour la visualisation) et un écosystème d'application (pensez à django et à son cadre de repos ).
Python c'est un langage facile à apprendre. À l'avenir, j'espère que l'écosystème Javascript deviendra scientifiquement solide en tant que python, mais malgré de grands projets, je ne pense pas que cela arrivera bientôt.
Ne vous enveloppez pas dans une boîte, utilisez un langage général!
la source