Cómo aprender el aprendizaje automático, qué idioma debo aprender y qué IDE debo usar

Para empezar, me gustaría enfatizar que el dominio del aprendizaje automático no se trata de aprender lenguajes de programación o IDE específicos. Es más importante comprender los conceptos de aprendizaje automático y tener las habilidades básicas de programación para implementar soluciones viables a los problemas.

Dicho esto, hay algunas herramientas excelentes que muchos científicos de datos están utilizando que tienen un gran apoyo de la comunidad.

Los dos favoritos de la comunidad son el lenguaje de programación Python con el paquete scikit-learn en combinación con el ecosistema SciPy y el lenguaje de programación R con sus paquetes CRAN .

Ambos lenguajes se pueden ejecutar en Jupyter Notebook , que es un entorno de programación interactivo basado en la web, o un REPL (Read-Eval-Print Loop). Con R, puede obtener un entorno REPL sólido de fábrica con RStudio . No puedo enfatizar demasiado la importancia de tener un entorno interactivo como este al aprender ML. Debe poder ver los resultados reales de lo que está haciendo mientras lo hace. De lo contrario, todo será demasiado abstracto.

Si bien no tiene que usar ninguno de estos idiomas, le aconsejaría comenzar con uno de ellos, ya que probablemente terminará usando ambos en algún momento. Si ya conoce la programación orientada a objetos, Python probablemente será más fácil para comenzar.

En la primera fase de aprendizaje, sugeriría que se mantenga alejado de scikit-learn y CRAN, ya que estas herramientas sostienen su mano un poco demasiado. Creo que es importante implementar los algoritmos comunes de aprendizaje automático desde cero, incluso si solo lo haces una vez en la vida.

Un curso en línea sería una buena manera de comenzar. El curso de aprendizaje automático de Stanford sobre Coursera con Andrew Ng es una excelente introducción a lo básico. Es bastante viejo ahora, pero probablemente sigue siendo el mejor curso que existe.

Una vez que haya dominado los conceptos básicos, haya comprendido los conceptos más importantes y haya implementado soluciones de trabajo para algunos problemas con los juguetes, habrá terminado con la parte fácil. Luego llegas a la parte (mucho) más difícil, que es usar tu conocimiento para resolver problemas del mundo real. Ahí es cuando se vuelve realmente emocionante pero también muy complicado. Ah, y ¿mencioné que probablemente terminarás pasando más tiempo en SQL que en cualquier otro lenguaje de programación? ¡De todos modos, buena suerte!

Libros:

  • 12 mejores libros electrónicos gratuitos para el aprendizaje automático
  • 5 eBooks de estadísticas gratis que debes leer este otoño

Idiomas y herramientas, además de la respuesta de Håkons, existen numerosas herramientas que pueden ser más fáciles de comprender, como WEKA (Minería de datos con software de aprendizaje automático de código abierto en Java) y Genie (BayesFusion, LLC). Las herramientas a menudo son limitadas en términos de cantidad de técnicas que se pueden aplicar, pero a menudo proporcionan visualización y son menos difíciles de configurar en muchos casos. Una herramienta que está ganando terreno es Julia (The Julia Language). Puede comparar R, Python, Scala y Julia en la versión interactiva de este “mot popular de la lista de PL 2016” (Los principales lenguajes de programación 2016)

En mi humilde opinión, una estrategia de ruta de aprendizaje general sugerida es:

  1. Clasificación
  2. Predicción / detección en series temporales / secuencias de eventos
  3. Minería de texto / análisis semántico
  4. Análisis gráfico dinámico (p. Ej., Análisis de sentimientos).

Aprendizaje automático

Lenguaje: Python

Instalación: use linux + entornos virtuales + paquete anaconda (tómese el tiempo para aprender qué es un entorno virtual)

IDE: Spyder … escriba en Linux para instalar

$ sudo apt-get install spyder

IDE (opción 2) : el IDLE estándar de Python

Uso pycharm, después de una experiencia inicial con Spyder puedes probarlo.

Hay muchas formas de aprender los conceptos básicos de los conceptos de Machine Learning. Pueden ser tutoriales en línea / fuera de línea o algunos libros. Pero una vez que se sienta cómodo con los conceptos de ML, puede comenzar a trabajar en algunos problemas básicos.

Recomiendo encarecidamente el lenguaje Python sobre R debido a su creciente popularidad en ML y también a la gran asistencia comunitaria disponible. Sin embargo, es tu decisión.

Para configurar el entorno Python, sugeriría la distribución Anaconda de Python que viene con 2 IDEs y los paquetes necesarios para comenzar con ML.

  1. Jupyter
  2. Spyder

Ambos IDEs son los mejores en su propósito.

Aquí está mi publicación de blog que proporciona más detalles y todas sus preguntas. – Entorno de desarrollo para el aprendizaje automático – Alimentación lógica

Espero que esto responda a su pregunta.

More Interesting

Informática teórica: estadísticamente, ¿Harvard es el lugar más difícil para convertirse en estudiante de doctorado para estudiante de teoría de CS?

Como estudiante de primer año de CSE interesado en IA y ML, ¿cómo debo proceder?

¿Puede una máquina de Turing operar con un conjunto de instrucciones para todas las entradas y mostrar la respuesta correcta?

Teoría de la complejidad computacional: ¿Por qué algunas operaciones se consideran primitivas mientras que otras no?

¿Cómo se ejecuta una unión en dos tablas grandes en una empresa como Facebook o Google?

¿Por qué Windows solo tiene virus, no I-OS Linux, Mac, Android y todos los demás sistemas operativos comunes?

He desarrollado mucho interés orientado a la investigación en física cuántica y ciencias de la computación / ciencia computacional, pero estoy buscando un BE en CSE de alguna universidad baja. No lo he intentado para IISC / IIST / IIT. Ahora me arrepiento de mi decisión. ¿Puedo hacer algo de justicia con mis intereses en este momento?

En Tensorflow, si uso sigmoid_cross_entropy_loss, ¿cómo puedo calcular la etiqueta que estoy prediciendo? (No puedo usar tf.argmax como en softmax_cross_entropy).

¿Cuáles son algunos errores famosos en el mundo de la informática?

A la larga, ¿deberían las computadoras adaptarse a los humanos o los humanos deberían adaptarse a las computadoras?

¿Cuál es el estado de aceptación en una máquina finita determinista?

¿Qué tan peligroso es el virus WireLurker y cómo podemos mantener nuestros Macs / iPhones a salvo de él?

¿Cómo se almacena la información en binario?

¿Qué aprendizaje automático y otras técnicas de inteligencia artificial se utilizan en economía?

Alguien me dijo que una computadora portátil con una resolución de pantalla de 1366 * 768 es horrible. Me dijo que no es bueno para nuestros ojos. ¿Es eso cierto? ¿Es realmente una resolución 'antihumana'?