¿Qué debo aprender para el aprendizaje automático, C ++ o Python?

Hay muy pocas buenas razones para aprender C ++ en general y menos excusas para aprenderlo para Machine Learning.

C ++ en la mayoría de los casos no ofrece ningún beneficio de rendimiento en lo que respecta a un programador promedio (y definitivamente no es para principiantes):

Encontramos que en lo que respecta al rendimiento, C ++ gana por un amplio margen. Sin embargo, también requirió los esfuerzos de ajuste más extensos, muchos de los cuales se realizaron a un nivel de sofisticación que no estaría disponible para el programador promedio

https://days2011.scala-lang.org/…

Y tiene una curva de aprendizaje extremadamente empinada por sí misma. Aún más, configurar una cadena de herramientas completa, todas las bibliotecas y dependencias no es una tarea fácil en los sistemas Linux y es extremadamente difícil hacerlo bien en las máquinas con Windows.

Por otro lado, Python se ha convertido en una opción casi de facto para el trabajo e investigación de Machine Learning.

Es extremadamente fácil aprender y usar el lenguaje. Es muy fácil configurar todas las dependencias que necesita. Básicamente, puedes comenzar a correr con Python.

También tiene una enorme cantidad de bibliotecas que están listas para usar con fines de aprendizaje automático y análisis de datos:

  • NumPy – NumPy
  • SciPy.org – SciPy.org
  • scikit-learn: aprendizaje automático en Python
  • Guía del usuario de PyMC
  • Biblioteca de análisis de datos de Python
  • Dask – dask
  • gensim: modelado de temas para humanos
  • Jupyter y el futuro de IPython

Cuando compara el ecosistema disponible con el desarrollador de Python y el que está disponible para el desarrollador de C ++, ni siquiera es divertido.

Pero te preocupa el rendimiento. Adivina qué. La mayoría de estos proyectos que he mencionado anteriormente usan código C altamente optimizado o bibliotecas que dependen de proyectos como BLAS o LAPACK: proporcionan primitivas de manipulación matemática extremadamente optimizadas, y es REALMENTE difícil hacerlo mejor que eso.

TLDR: Definitivamente, Python. NO C ++.

EDITAR:

Olvidé:

  • TensorFlow
  • Bienvenido – Documentación de Theano 0.9.0
  • Documentación de Keras

Mejor ir con Python. Debido a que Python es ampliamente utilizado por muchos desarrolladores, obtendrá mucho soporte de Python ML Communities.

Si quieres aprender Python te sugiero

El mejor curso en línea de Python para Machine Learning.

Python for Data Science y Machine Learning Bootcamp

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

¡Este curso integral será su guía para aprender a usar el poder de Python para analizar datos, crear visualizaciones hermosas y usar algoritmos de aprendizaje automático potentes!

Aquí algunos de los temas que aprenderemos:

  • 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!

Aprenderás

  • Use Python para la ciencia de datos y el aprendizaje automático
  • Use Spark para el análisis de Big Data
  • Implemente algoritmos de aprendizaje automático
  • Aprenda a usar NumPy para datos numéricos
  • Aprenda a usar pandas para el análisis de datos
  • Aprenda a usar Matplotlib para el trazado de Python
  • Aprenda a usar Seaborn para gráficos estadísticos
  • Use Plotly para visualizaciones dinámicas interactivas
  • Utilice SciKit-Learn para tareas de aprendizaje automático
  • Agrupamiento de medias K
  • Regresión logística
  • Regresión lineal
  • Bosque aleatorio y árboles de decisión
  • Procesamiento de lenguaje natural y filtros de spam
  • Redes neuronales
  • Máquinas de vectores de soporte

Todo lo mejor .

Recursos adicionales : –

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

Estadísticas para ciencia de datos y análisis de negocios

Automatizar la exploración de datos con R

Todo lo mejor .

Depende de tu propósito y de lo que quieres decir al aprender ML.

Si solo quieres aprender a usar ML para hacer investigación o análisis, entonces python es la única opción. Tal como se menciona en todas las respuestas anteriores, muchas bibliotecas implementadas en C garantizan el rendimiento.

Si está aprendiendo el algoritmo ML y planea optimizarlos o desarrollar un nuevo algoritmo, debe usar C ++ o C. De lo contrario, nadie lo usará por razones de rendimiento.

Pero ahora personalmente creo que Golang podría ser una opción si está implementando el algoritmo ML específicamente para Big Data, y su algoritmo está completamente paralelo. Dado que la programación en paralelo en C o C ++, tiene que lidiar con MPI, y Go ayuda a simplificar el código si su algoritmo es independiente de la tarea y no requiere que los nodos de trabajo se comuniquen entre sí.

Gracias por el A2A Mahmoud.

Ya he respondido una pregunta muy similar aquí: ¿Cuáles son los mejores lenguajes de programación para construir una IA, específicamente una red neuronal de alimentación directa?

Básicamente, iría con Python para aprender y desarrollar, C ++ para implementar en el mundo real.

Para empezar con … Ve por Python.

Fácil de entender para los novatos y utilizado para crear algunas herramientas realmente poderosas. Google lo usa y la NASA también, el mejor lenguaje para crear herramientas científicas y YouTube entero se crea en Python. Así que adelante.

Definitivamente Python!

Si sus datos son enormes y le importa el rendimiento, entonces C ++, de lo contrario, Python es suficiente.

More Interesting

¿Podemos vender potencia informática a empresas de aprendizaje automático? ¿Cuál es la dificultad de hacer eso?

Cómo evaluar mi modelo cada época en TensorFlow

Cómo comenzar una investigación independiente en aprendizaje profundo

¿Cuáles podrían ser las características posibles para detectar fraude en transacciones en cajeros automáticos?

¿Cuáles son los temas de investigación sobre aprendizaje profundo para la tesis de maestría?

¿Qué significa Wabbit?

¿Por qué el uso de información mutua / ganancia de información / funciones similares funciona mejor que simplemente usar el error promedio (usando probabilidad) para un booleano (conjunto de datos de 2 clases) al construir un árbol de decisión?

Cuando la gente dice que la inteligencia artificial destruirá a la raza humana, ¿es que alguien los programará para que estén predispuestos a no gustarle la vida orgánica, o que de alguna manera adquirirán naturalmente las mismas emociones o algoritmos que lo llevan a uno a matar?

¿Hay proveedores de reconocimiento de voz que aún brinden soluciones de servidor en las instalaciones (no en la nube) en 2017?

Podría ser el primer experto en aprendizaje automático en una empresa como consultor o a tiempo completo. En cualquier caso, ¿cuál debería ser mi tasa?

¿Qué libros o recursos de probabilidad y estadística debo consultar antes de sumergirme en Machine Learning, PNL, minería de datos, etc.? Soy un completo principiante.

¿Por qué hay tantos enfoques generativos en la clasificación de escenas, mientras que el enfoque discriminatorio es el principal en el reconocimiento / detección de objetos?

Tengo problemas para mejorar el rendimiento de mi red neuronal a medida que aumento el número de unidades, ¿cuál podría ser el problema?

¿Cómo agrupamos el comportamiento de navegación de usuarios similares y seleccionamos características separables?

¿Cómo son convexos los métodos del núcleo?