Actualmente trabaja en Octave, pero debido a la pobre documentación, el progreso es muy lento.
¿Qué lenguaje es fácil de aprender y usar y está bien documentado para resolver problemas de aprendizaje automático? Estoy buscando crear un prototipo en un pequeño conjunto de datos (miles de ejemplos), por lo que la velocidad no es importante.
EDITAR: estoy desarrollando un motor de recomendación. Por lo tanto, estoy interesado en utilizar Regresión lineal regularizada, Redes neuronales, SVN o Filtrado colaborativo.
Respuestas:
Si desea usar algo fuera de la caja, Weka podría ser un excelente punto de partida. No hay necesidad de programar nada. Importa sus datos, los visualiza y juega con diferentes modelos.
El siguiente en la cadena sería R. Hay una curva de aprendizaje asociada, especialmente con la mezcla de sus datos para que encajen en las estructuras de datos R, pero una vez que lo supera, tiene toneladas de bibliotecas que ofrecen todas las capacidades de aprendizaje automático sin mucho esfuerzo.
El siguiente paso sería programar manualmente los algoritmos de aprendizaje automático. Como ya está utilizando Octave y está buscando alternativas, tal vez lo que desea no es entregar algoritmos de código en algún otro sistema, sino simplemente usar las bibliotecas escritas por otras personas.
Si sigue el camino R, puede encontrar el libro de Luis Torgo (Data Mining with R: Learning with Case Studies) muy útil (divulgación: sin afiliación). Describe estudios de caso en profundidad que puede adaptar a su problema.
fuente
Es posible que obtenga mejores respuestas si especifica los algoritmos específicos que le interesan. Uso R para este tipo de cosas (sin embargo, hago econométrica de series temporales, no aprendizaje automático); Puedes ver la funcionalidad existente aquí:
http://cran.r-project.org/web/views/MachineLearning.html
y hay un código R para implementar el análisis en los elementos de aprendizaje estadístico de Hastie, Tibshirani y Friedman :
http://www-stat.stanford.edu/~tibs/ElemStatLearn/
El sistema de empaquetado de R es bastante bueno y empuja a las personas a documentar su código, y es de código abierto para que siempre pueda ver la implementación. No he usado Matlab en unos años y no lo usé para mucho aprendizaje automático: sus cajas de herramientas generalmente están bien documentadas pero pueden ser costosas, pero el código aportado por el usuario estará tan mal documentado como cualquier otro.
fuente
En su curso en línea de aprendizaje automático, Andrew Ng sugiere usar Octave / Matlab.
Le recomiendo que se inscriba en la próxima edición de este curso: es realmente útil y aprenderá muchas cosas sobre Octave y sobre los diferentes algoritmos de aprendizaje automático.
EDITAR 1 : estoy de acuerdo con otras personas que prefieren trabajar en R. Sin embargo, al resolver los problemas del aprendizaje automático, la mayoría de sus cálculos serán en forma de matriz, y como lo señalan los idiomas @Wayne, Matlab u Octave son muy populares por su poder Es posible que desee echar un vistazo a las soluciones para los ejercicios del curso de aprendizaje automático propuestos por otros estudiantes; seguramente puedes aprender algunas cosas de ellos:
Gkokaisel Github
Merwan Github
fuente
t(A) %*% B
, es menos intuitiva que en Matlab.El scikit-learn (ahora
sklearn
) debe cumplir con varios de los criterios que describió (velocidad, clases bien diseñadas para manejar datos, modelos y resultados), incluidas las aplicaciones específicas (regresión penalizada L1 / L2, SVM, etc.). Viene con un rico conjunto de documentación y muchos ejemplos . Vea también su descripción en un artículo publicado en el JMLR.Un marco alternativo en Python es Orange , que se puede utilizar a través de una interfaz gráfica de usuario suave o en la línea de comandos directamente. Para el filtrado colaborativo, pyrsvd puede ser interesante, pero nunca lo he intentado. Sin embargo, Apache Mahout ciertamente podría usarse para el filtrado colaborativo .
fuente
Si se refiere a un prototipo industrial (es decir, algo que está hecho para ser utilizado por personas reales y no para investigación pura), Python es en este momento el único camino a seguir.
Si usa Matlab, Octave o R, obtendrá un entorno fácil de usar para la investigación de ML, pero será una pesadilla poner el modelo en funcionamiento con una interfaz de usuario o con un servicio web.
En python tenemos la suerte de tener tanto un ecosistema científico extenso ( sklearn para ML, pandas para el análisis de datos, matplotlib / seaborn para visualización) como un ecosistema de aplicación (piense en django y su marco de descanso ).
Python es un lenguaje fácil de aprender. En el futuro, espero que el ecosistema Javascript sea científicamente sólido como el de Python, pero a pesar de algunos grandes proyectos, no veo que llegue pronto.
¡No te envuelvas en una caja, usa un lenguaje general!
fuente