¿Cuál es el mejor lenguaje para usar mientras aprende el aprendizaje automático por primera vez? Voy a tomar un curso sobre aprendizaje automático este trimestre y tengo la opción de elegir entre usar C, C ++, Java, Haskell, Lisp, Python o Matlab / Octave.

Te sugiero que aprendas Machine Learning usando Python.

Porque Python tiene muchas bibliotecas, que brindan soporte para ML.

Mejor curso en línea de Python

Python for Data Science y Machine Learning Bootcamp

¡Aprenda a usar NumPy, Pandas, Seaborn, Matplotlib, Plotly, Scikit-Learn, Machine Learning, Tensorflow y más!

Aquí puedes aprender

  • Programando con Python
  • NumPy con Python
  • Uso de marcos de datos de pandas para resolver tareas complejas
  • Use pandas para manejar archivos de Excel
  • Raspado web con python
  • Conecte Python a SQL
  • Use matplotlib y seaborn para visualizaciones de datos
  • Use plotly para visualizaciones interactivas
  • Aprendizaje automático con SciKit Learn, que incluye:
  • Regresión lineal
  • K vecinos más cercanos
  • K significa agrupamiento
  • Árboles de decisión
  • Bosques al azar
  • Procesamiento natural del lenguaje
  • Redes neuronales y aprendizaje profundo
  • Máquinas de vectores de soporte
  • ¡y mucho, mucho más!

Si quieres aprender Machine Learning, mejor aprender en línea

Machine Learning AZ ™: Python práctico y R en ciencia de datos

aqui puedes aprender

  • Parte 1: preprocesamiento de datos
  • Parte 2: Regresión: Regresión lineal simple, Regresión lineal múltiple, Regresión polinómica, SVR, Regresión de árbol de decisión, Regresión forestal aleatoria
  • Parte 3 – Clasificación: Regresión logística, K-NN, SVM, Kernel SVM, Naive Bayes, Clasificación del árbol de decisión, Clasificación aleatoria del bosque
  • Parte 4 – Agrupación: K-medias, agrupación jerárquica
  • Parte 5 – Aprendizaje de reglas de asociación: Apriori, Eclat
  • Parte 6 – Aprendizaje de refuerzo: límite de confianza superior, muestreo de Thompson
  • Parte 7 – Procesamiento del lenguaje natural: modelo de bolsa de palabras y algoritmos para PNL
  • Parte 8 – Aprendizaje profundo: redes neuronales artificiales, redes neuronales convolucionales
  • Parte 9 – Reducción de dimensionalidad: PCA, LDA, Kernel PCA
  • Parte 10 – Selección y refuerzo del modelo: validación cruzada k-fold, ajuste de parámetros, búsqueda de cuadrícula, XGBoost

Además, el curso está repleto de ejercicios prácticos basados ​​en ejemplos en vivo. Entonces, no solo aprenderá la teoría, sino que también obtendrá práctica práctica para construir sus propios modelos.

Todo lo mejor ,

Debes basar tu decisión en qué tipo de abstracciones usa el profesor para explicar los conceptos. Cuando tomé un curso de ML, las principales estructuras de datos utilizadas en los algoritmos eran vectores y matrices, por lo que MATLAB era una opción obvia (y de hecho era necesaria para el curso).

Muchos de los conceptos en ML, más que en muchas otras áreas de IA, se pueden expresar con álgebra lineal. Por ejemplo, los vectores de características, los vectores propios, las descomposiciones de valores singulares y el PCA aparecen en el aprendizaje automático. Pero si su instructor prefiere una abstracción más orientada a objetos, entonces C ++ o Java podrían ser una mejor opción. Echaría un vistazo a algunos de los materiales antes de tomar una decisión.

Para principiantes, sí, Python es la mejor opción. Sin embargo, no me preocuparía demasiado por el aspecto de la programación funcional. Sí, ocasionalmente usarás lambdas, map, reduce (tipo foldl / foldr, en términos de Haskell), pero no esperaría que se convierta en algo más que una patada lateral decente. Explore bibliotecas como scikit-learn y Shogun (este último es menos conocido por la comunidad Python, pero lo mejor de todo es que, usando algo de magia SWIG, proporciona API en casi todos los idiomas que codificaría para ML).

Más tarde, cuando pase a escribir sus propias bibliotecas, cambie a C ++ (11/14 / lo que sea que esté disponible para entonces). Si desea un cálculo más rápido, desea comparar su algoritmo, nada puede vencer a C / C ++. Tenga en cuenta todas las geniales bibliotecas de álgebra lineal para C / C ++, Eigen3, ViennaCL, LAPACK (un poco viejo pero aún dorado).

Enlaces útiles:
La caja de herramientas de aprendizaje automático de SHOGUN

Si está interesado en la creación rápida de prototipos, puede elegir R o Python, ya que ambos proporcionan bibliotecas extensas para Machine Learning.

Si quieres aprovechar la plataforma .NET, prueba F #.

Si desea aprovechar el aprendizaje automático en Hadoop, pruebe Mahout con Java o Spark con Scala.

Si desea explotar la informática GPU (por ejemplo, NVIDIA GeForce), pruebe cudaBLAS, etc. para la informática numérica y cree sus propias bibliotecas de aprendizaje automático.

Si desea un rendimiento comparable a C y también quiere explotar la computación paralela, intente con Julia.

Espero que esto ayude.

Vaya a Python si desea usar bibliotecas para varios algoritmos. Si va a analizar texto, nlp, entonces es mejor usar Python, ya que tiene muchas bibliotecas gratuitas como nltk, textblob, etc. que se pueden descargar y usar fácilmente.

Si desea programar su propio algoritmo con solo números, como un algoritmo de regresión o clasificación, lo mejor es ir con MATLAB u OCTAVE, donde podría controlar todas las optimizaciones mediante la fijación de varios parámetros de regularización y puede agregarlos usted mismo.

Puede considerar los siguientes idiomas:

Matlab : Creo que es el más rápido y fácil entre todos los siguientes, sin embargo, es costoso (debe pagarlo y comprarlo) y también está limitado en las características generales de programación.

Python : Python es gratuito, pero es más complicado y requiere más tiempo que Matlab, por ejemplo, necesita pasar más tiempo dibujando figuras y otras cosas.

R : No trabajé con R, pero también es una herramienta gratuita y de código abierto que puedes usar.

Conclusión : En resumen, puedo decir que si está trabajando con el aprendizaje automático para publicar documentos y cosas por el estilo, es más fácil y rápido usar Matlab, por otro lado, si tiene un programa funcional en mente para implementar, entonces es mejor usas Python

Creo que hacer un curso de aprendizaje automático como el curso del profesor no para ponerse al día. También puede hacer el curso de la Academia en R y Python, pero es pesado en la aplicación y no tanto en la teoría subyacente.

¿Ya estás familiarizado con el aprendizaje automático y quieres explorar diferentes tecnologías? Depende de qué tipo de datos desea usar. Python suele ser el más rápido y fácil de poner al día, pero la sintaxis R es fantástica si ya está familiarizado con más terminología de ciencia de datos y estadística.

¿Tienes un proyecto en particular en mente? Averigüe si no hay API disponibles que hagan la mayor parte del trabajo duro y vea si la tecnología es adecuada. Realmente no hay una respuesta clara, depende de dónde se encuentre, dónde quiera estar y qué quiera lograr.

Zimetrics Technologies Pvt Ltd

También recomendaría Python. Las bibliotecas (SciPy, Numpy, scikit-learn) son geniales. Pandas y Matplotlib también son muy buenas bibliotecas para administrar y visualizar datos. Las cosas que son nativas de Python, como las comprensiones de listas, son muy útiles.

R es más popular que Python: lenguajes utilizados para análisis

Pero uso Python, sugiero Python y soy un verdadero creyente de Python. Hay algunas razones por las que uso y sugiero Python:

  1. Es predeterminado en Linux, no es necesario instalar nada más (Ubuntu 16.x también viene con Python 3.x)
  2. Anaconda hace la vida más fácil: ¡descargue Anaconda ahora!
  3. Odio los lenguajes de programación que tienen notaciones raras. Me gusta la sintaxis de tipo C / C ++ y Python está mucho más cerca de este tipo de sintaxis. Odio y punto, no hay necesidad de discutir 🙂
  4. Aprende 1 idioma y haz muchas cosas. Por ejemplo, puede crear paneles basados ​​en web con Python y Flask. Incluso puede crear API Restful con python y Flask.
  5. No soy un científico académico, soy un científico comercial. Tan rápido y factible son mucho más importantes para mí. A mis clientes no les importa cuando les muestro un resultado gráfico. Se preocupan por acceder a ellos de forma remota, jugarlos y crear nuevos.

Yo recomendaría Python.

Python es uno de los lenguajes de programación más populares para ML. Hay una gran cantidad de bibliotecas complementarias desarrolladas por su gran comunidad.

Aunque el rendimiento del lenguaje interpretado como Python, para la tarea computacional es inferior al lenguaje de programación de nivel inferior. Amplias bibliotecas como NumPy, SciPy se han desarrollado en la implementación de Fortran y C de nivel inferior para una operación rápida y vectorizada en matrices multidimensionales.

Scikit-learn es la biblioteca de código abierto más popular y poderosa en Python para ML.

También recomendaría Python, ya que es un lenguaje de programación completo fantástico que es increíblemente útil para redactar fragmentos de código y explorar datos (con el shell de IPython), ideal para documentar pasos y resultados en la cadena de procesos analíticos (IPython Notebook), tiene una gran selección de bibliotecas para casi cualquier objetivo de aprendizaje automático e incluso puede optimizarse para la implementación del sistema de producción.

En mi opinión, hay lenguajes que son superiores a Python en cualquiera de estas categorías, pero ninguno de ellos ofrece esta versatilidad.

Mi preferencia personal sería R, pero desafortunadamente no está en su lista. 🙂

De las opciones restantes, destacaría a Matlab y Python como las opciones más prácticas. Otros lenguajes requerirían un poco más de esfuerzo para codificar algunas funciones de utilidad no esenciales o seleccionar y usar las bibliotecas correctas. Estos problemas no son imposibles de superar. La compra puede distraerlo de su objetivo principal de aprender ML.

Python junto con Scipy es probablemente la opción más segura. Es un lenguaje maduro con toneladas de ejemplos de código, bibliotecas, etc. Ser interpretado hace que sea fácil probar cosas de forma interactiva.

Siempre tuve cuidado con Matlab / Octave debido a sus raíces propietarias. Matlab es costoso, mientras que con Octave puede tener dificultades para hacer que funcione el código Matlab existente. Si planea usar Matlab / Octave en su proyecto futuro, tal vez sea una buena oportunidad para invertir en aprenderlo. Si no planea usarlo en el futuro, no se moleste en aprenderlo solo para este proyecto.

He usado matlab antes y me encantó lo poderoso que es. Sin embargo, es costoso y difícil de hacer una programación real (OOP). En su lugar, puede usar la octava de código abierto, pero no es compatible con todos los equivalentes de matlab (tuve que hacer mis propias implementaciones para algunas técnicas de procesamiento de imágenes). Tengo un poco de experiencia en Python y, aunque no he usado las bibliotecas de Python ML, pronto investigaré más sobre esto y espero tener más flexibilidad.

Para practicar, no desalentaría matlab / octava. Para un proyecto más complicado, probablemente iría con Python.

Tomé un curso de la Universidad de Brown, codificando la matriz del profesor Philip Klein, se utilizó Python 3 y debo decir que Python es bastante poderoso cuando se trata de abstracciones de álgebra lineal, como matrices, vectores propios, valores propios, etc. en … esperando el curso de ML!

R! no hay duda. Puede que no sea el idioma más fácil de aprender, pero definitivamente tiene las bibliotecas más completas para el aprendizaje automático. Creo que mucha gente sugiere Python porque más programas de ciencia de datos enseñan Python, pero pienso en Python como el lenguaje “en lugar de”. Un lugar en Nueva York que sí enseña R es NYC Data Science Academy

Con muchas buenas respuestas que sugieren Python, prueba la biblioteca Theano de Python si tienes una GPU.
Como ml implica una gran cantidad de operaciones matriciales, cualquier biblioteca acelerada por gpu hará que el entrenamiento de su modelo sea mucho más rápido, lo que le permitirá probar muchas cosas diferentes.
Pero no proporciona un mayor poder de predicción que proviene del modelo.

Echaré mi voto por C / C ++. Todo lo que puede hacer con otros idiomas lo puede hacer en estos, pero el resultado normalmente será mucho más rápido. Debido a que no hay recolección de basura, te obliga a ser más disciplinado. Hay un montón de herramientas para ayudarlo a validar y refinar su código, como gdb, valgrind y gprof, y hay un montón de bibliotecas numéricas.

La gente sigue diciendo que el desarrollo en Python o un lenguaje similar es mucho más rápido, pero lo siento, simplemente no lo creo. Recientemente escribí algunas definiciones de clase en Python para el análisis y predicción de series de tiempo y lo que salió no fue más eficiente en el código que lo que hubiera escrito en C o C ++. La única ventaja era poder llamar desde un mensaje interactivo: no es necesario escribir una rutina principal para llamar desde la línea de comandos. (Todavía estoy esperando que alguien escriba un intérprete interactivo para C / C ++: uno que pueda llamar a código compilado. Aunque supongo que gdb se acerca …)

La otra opción que sugeriría sería algo como Lisp o cualquier otro lenguaje que sea reflexivo y / o le permita escribir dinámicamente y ejecutar código nuevo. Para cosas reales de IA necesitarás este nivel de abstracción.

Estoy de acuerdo * con * Juann-Esteban. * cuando * te enfrentas * con * big data * toma * mucho * tiempo * para entrenar las redes, por lo que sería mejor implementar el código * con C * o * C ++ *. si desea implementar fácilmente su código, * Python *, * Matlab * u * Octave * son * buenas opciones *. Tenga en cuenta que * Python * y * Matlab pueden * realizar códigos más rápido si están escritos.

Entrenamiento Java en Bangalore

Python y Matlab!

Matlab Fácil de codificar y muy eficiente para dibujar curvas