Atrévete con  Python: un experimento para todos los públicos

Tuesday, March 13, 2018

Atrévete con  Python: un experimento para todos los públicos

Al igual que hicimos en nuestro experimento sobre el dataset del Titanic en Azure Machine Learning Studio, vamos a seguir con la estrategia del “Learning by doing” porque consideramos que la mejor forma de aprender es llevar a cabo pequeños proyectos, de principio a fin.

Logo Python
Figura 1: Logo Python (fuente)

Un proyecto de Machine Learning puede no ser lineal, pero tiene una serie de etapas bien definidas:

1. Definir el problema
2. Preparar los datos
3. Evaluar distintos algoritmos
4. Refinar los resultados
5. Presentarlos

Por otro lado, la mejor manera de conocer una nueva plataforma o herramienta es trabajar con ella. Y eso es precisamente lo que vamos a hacer en este tutorial: conocer Python como lenguaje, y como plataforma.

¿Qué NO hace falta para poder seguir este tutorial?


El objetivo de este experimento es mostrar cómo se puede hacer un experimento sencillo de Machine Learning en Python. Personas muy distintas, con perfiles diferentes pueden trabajar con modelos de ML. Por ejemplo, un investigador de Ciencias Sociales, o un experto en Finanzas, Seguros, Marketing etc. lo que quieren es aplicar el modelo (y ¿por qué no?, comprender cómo funciona). O un desarrollador que ya conoce otros lenguajes/entornos de programación, puede querer empezar a aprender Phyton. O un Data Scientist que trabaja desarrollando nuevos algoritmos en R, por ejemplo, y quiere empezar a trabajar en Python. Así, en vez de hacer un listado de los requisitos previos para poder seguir el tutorial, vamos a detallar lo que no hace falta:

  • No hace falta comprenderlo todo a la primera. El objetivo es seguir el ejemplo de principio a fin y obtener un resultado real. Puedes ir tomando nota de las preguntas que te van surgiendo, y usar la función help (“FunctionName”) de Python para aprender sobre las funciones que vamos usando.
  • No hace falta saber exactamente cómo funcionan los algoritmos. Es conveniente conocer sus limitaciones, y cómo se configurarlos. Pero se puede aprender poco a poco. El objetivo de este experimento es perderle el miedo a la plataforma y ¡seguir aprendiendo con otros experimentos!
  • No hace falta ser programador. El lenguaje Python tiene una sintaxis bastante intuitiva. Como pista para empezar a comprenderlo, conviene fijarse en las llamadas a funciones   (e.g. function()) y en la asignación de variables (e.g. a = “b”). Lo importante ahora es “arrancar”, poco a poco, se pueden ir aprendiendo todos los detalles (si es nuestro interés).
  • No hace falta ser un experto en Machine Learning. Puedes ir aprendiendo poco a poco sobre las ventajas y limitaciones de los distintos algoritmos, sobre cómo mejorar en las distintas etapas del proceso, o la importancia de evaluar la precisión mediante la validación cruzada.

Como es nuestro primer proyecto en Python, vamos a centrarnos en los pasos básicos. En otros tutoriales podremos trabajar sobre otras tareas como la preparación de datos con Panda o la mejora de los resultados con PyBrain.


¿Qué es Python?


Python es un lenguaje de programación interpretado, orientado a objetos de alto nivel y con semántica dinámica. Su sintaxis hace énfasis en la legibilidad del código, lo que facilita su depuración y, por tanto, favorece la productividad. Ofrece la potencia y la flexibilidad de los lenguajes compilados con una curva de aprendizaje suave. Aunque Python fue creado como lenguaje de programación de uso general, cuenta con una serie de librerías y entornos de desarrollo para cada una de las fases del proceso de Data Science. Esto, sumado a su potencia, su carácter open source y su facilidad de aprendizaje le ha llevado a tomar la delantera a otros lenguajes propios de la analítica de datos por medio de Machine Learning como pueden ser SAS (software comercial líder hasta el momento) y R (también open source, pero más propio de entornos académicos o de investigación).

Python fue creado por Guido Van Rossum en 1991 y, como curiosidad, debe su nombre a la gran afición de su creador por las películas del grupo Monty Python.

Además de librerías de herramientas científicas, numéricas, de herramientas de análisis y estructuras de datos, o de algoritmos de Machine Learning como NumPy, SciPy, Matplotlib, Pandas o PyBrain, de las que hablaremos con más detalle en otro de los post del tutorial, Python ofrece entornos interactivos de programación orientados al Data Science. Entre ellos encontramos: 

1. La Shell o intérprete de Python, que se puede lanzar desde el menú Windows, es interactiva (ejecuta las órdenes según las escribes), y resulta útil para pruebas y cálculos sencillos, pero no para el desarrollo.






2. IPython : Es una versión extendida del intérprete que permite  resaltado de líneas y errores mediante colores, una sintaxis adicional para el shell, y autocompletado mediante tabulador.






3. Los IDE o Entornos de desarrollo integrado como Ninja IDE, Spyder, o, con el que vamos a trabajar, Jupyter. Jupyter es una aplicación web que permite crear y compartir documentos con código ejecutable, ecuaciones, visualización, y texto explicativo. Además de Python es compatible con más de 40 lenguajes de programación, incluyendo: R, Julia, y Scala y se integra muy bien con herramientas Big Data, como Apache Spark.



¿Qué pasos vamos a dar en este tutorial?


Para que no sean demasiado largos, vamos a dividir el trabajo en distintos post.


¿Preparados?. Mañana mismo empezamos….

21 comments:

  1. muy interesante, debería de seguirlo y probarlo mucha gente

    ReplyDelete
  2. Muchas gracias por el esfuerzo, lo seguiré ...

    ReplyDelete
  3. Como se apunta uno? o basta simplemente con seguir el blog? Muy interesante el aporte, gracias !!

    ReplyDelete
  4. Gracias, lo seguire con mucho interes

    ReplyDelete
  5. Replies
    1. Hola Carlos, no hay que apuntarse en ningún sitio. Tan sólo seguir el tutorial que iremos publicando gradualmente, y ¡practicar en casa con tu ordenador!

      Delete
  6. Acercando el Data Science a todos. Que buena iniciativa. Enhorabuena !!!

    Muchas Gracias y saludos.
    Francisco Javier Morales

    ReplyDelete
  7. Hola Ibrahim, no hay que apuntarse y no cuesta más que tu tiempo y tu esfuerzo. Sigue los post de la serie (después de éste, son sólo 5, para ir paso a paso), y en pocas semanas habrás completado tu primer experimento de Machine learning con Python

    ReplyDelete
    Replies
    1. donde estan los otros enlaces de la serie?

      Delete
    2. Hola José, los iremos publicando semana a semana. El martes que viene publicamos el tercero:
      Python para todos (2): ¿Qué son los Jupiter Notebook?

      Delete
  8. Gracias, por el esfuerzo e iniciativa.

    http://www.nltk.org/book_1ed/

    ReplyDelete
    Replies
    1. ¡Gracias por el aporte, Juan! (He borrado el mensaje repetido)

      Delete
  9. Hola,
    ya no vais a subir más?
    Gracias!

    ReplyDelete
  10. Claro que sí. Ya hemos publicado los dos primeros y esta semana sale el tercero.

    ReplyDelete