Día 0 aprendiendo Machine Learning

Publicado por @SpainML el Nov. 25, 2018, 6:09 p.m.
Si te quieres iniciar en el mundo del Machine Learning pero no sabes ni por dónde empezar, tal vez este artículo te ayude a saber cuáles son los siguientes pasos que tienes que dar. Voy a explicar en lenguaje llano qué tipos de problemas resuelven los algoritmos de Machine Learning, qué base necesitas para entenderlos y qué herramientas debes aprender para empezar a aplicarlos. Pero antes que nada te advierto que debes tener paciencia para realizar progresos, saber filtrar información y alejarte de pensamientos como “aprendiendo Machine Learning, seré capaz de ganar millones en bolsa en 30 días”. </br> </br> <h2>¿Qué tipo de problemas se resuelven?</h2> Los problema de Machine Learning ó Aprendizaje Automático se pueden dividir en dos categorías: Aprendizaje Supervisado y Aprendizaje no Supervisado. Los problemas de Aprendizaje Supervisado, a grandes rasgos, contienen un conjunto de variables conocidas que sirven como entrada al sistema y una variable desconocida a predecir como salida. Dos de los tipos de problemas más comunes dentro de esta clase son la Clasificación (variables discretas a la salida) y la Regresión (variables continuas a la salida). Por otro lado, el Aprendizaje no Supervisado consiste en reconocer patrones en los datos de entrada. Un ejemplo típico de este caso sería el Clustering o creación de grupos de elementos similares. <h2>¿Cómo se plantean los problemas de Machine Learning?</h2> La gracia de estos algoritmos parte de la premisa de crear modelos que puedan generalizar su salida en función de su entrada de la manera más acertada posible. Por ejemplo, centrándonos en el aprendizaje supervisado, queremos conocer si lloverá mañana en función de si ha llovido la anterior semana. </br> </br> <h2>¿Qué se necesita para resolver este problema por medio del Aprendizaje Automático?</h2> Para empezar, se necesitan datos para entrenar el modelo, que pasarán a ser llamados datos de entrenamiento y que consistirán, en este caso, de siete variables binarias que indiquen si ha llovido cada uno de los días de la semana, y de una variable binaria a predecir que indique si ha llovido o no el día siguiente. </br> </br> Una vez esté el modelo entrenado, éste será capaz de tomar como entradas ejemplos de semanas nuevas que no haya visto al ser entrenado, y tratará de predecir de la manera más acertada si lloverá al día siguiente o no. Ahí entra en juego la capacidad de generalización del modelo. </br> </br> <h2>¿Qué se necesita para crear un Modelo de Machine Learning?</h2> En primer lugar, conocer los fundamentos de cada algoritmo que uses. Existen distintos algoritmos con los que resolver problemas similares y debes desarrollar una intuición para saber cuál aplicar en cada circunstancia. Y para entenderlos debes tener soltura con la estadística, el álgebra y el cálculo (además de la experiencia que vayas adquiriendo). </br> </br> Sin embargo, por suerte y por desgracia, a día de hoy es posible crear modelos de Machine Learning sin tener las bases del todo claras. Te recomiendo que no olvides lo que he dicho en el párrafo anterior sobre los conocimientos requeridos, pero aún así voy a contarte con qué herramientas debes familiarizarte para crear estos modelos. </br> </br> En cuanto a lenguajes de programación, debes aprender a utilizar Python ó R. Python te será más útil a la hora de la creación y despliegue de los modelos, y R te será más útil a la hora de visualizar datos y realizar análisis estadísticos sobre ellos. A partir de ahora me voy a referir a librerías de Python que debes conocer, aunque varias también están disponibles en R. </br> </br> Una parte importantísima en este tipo de problemas es el tratamiento y pre-procesado de los datos. Para ésto será necesario que aprendas a utilizar dos librería fundamentalmente: Pandas, que te ayudará en la utilización de datos estructurados; y Numpy, que te permitirá trabajar con tensores (vectores de N dimensiones) los cuales alimentarán tus modelos (que sólo serán capaces de interpretar información en formato numérico). </br> </br> Por último, la librería que te permitirá crear modelos de forma totalmente simplificada es Scikit-learn. Su documentación te ayudará a conocer los distintos algoritmos que existen y podrás tener tu clasificador entrenado con unas pocas líneas de código. </br> </br> <h2>En resumen</h2> Estás leyendo este artículo porque te han entrado ganas de aprender Machine Learning. He tratado de describirte a qué te enfrentarás durante los primeros meses de aprendizaje, de recordarte que las matemáticas te harán falta y te he comentado qué herramientas necesitarás. Próximamente pretendo hacer un recopilatorio de los mejores recursos gratuitos para formarte en cada una de las materias que te menciono, y dicho recopilatorio saldrá de la experiencia de gente compartiendo conocimientos en la comunidad SpainML. Si quieres unirte, estamos en Slack y puedes entrar desde aquí. Por supuesto, es gratis.