Machine Learning en tu TFG/TFM

Publicado por @SpainML el Jan. 2, 2019, 4:43 p.m.
En este post voy a contarte en qué consistirá tu TFG ó TFM si éste está relacionado con el Aprendizaje Automático. La estructura que siguen este tipo de trabajos suele ser similar en la mayoría de casos, así que este post os servirá a la mayoría de los estudiantes que estéis en vuestro último año de grado o de máster y que tengáis interés en el campo del Machine Learning. Voy a definir primero qué tipos de problemas debéis resolver, cómo se estructurará vuestro trabajo y qué herramientas os serán útiles para desarrollarlo. </br> </br> Antes de empezar con el post, si ya has elegido hacer tu trabajo en algo relacionado con ML te recomiendo entrar a la comunidad de Slack de SpainML, allí hemos creado un canal llamado #tfgs para juntar a gente que esté en ello y poder resolver todas las dudas que tengáis. </br> </br> <h2>¿En qué consistirá tu TFG/TFM?</h2> La gran mayoría de trabajos relacionados con Machine Learning consistirán en que, tomando como muestra unos datos de partida, tendrás que ser capaz de predecir los valores que tomará una variable en el futuro. En el caso de que la variable a predecir sea discreta el problema será de clasificación, mientras que si la variable es continua, será un problema de regresión. </br> </br> Como ejemplo de clasificación, un caso de ejemplo sería determinar a qué temática pertenecen los textos de un periódico. En este caso la variable a predecir podrá tener un valor entre un conjunto de temáticas (Deportes, Economía, Internacional, Cultura, Sucesos…). Como ejemplo de regresión, podríamos tener una serie de características de un producto como su marca, tejido ó colores y a partir de ellas predeciríamos su precio, que es una variable continua y puede tomar por ejemplo cualquier valor entre 0 y 150 euros. </br> </br> Esos dos casos son sólo dos ejemplos de un amplísimo conjunto de problemas que podrás resolver dentro del campo de aplicación de tu carrera o máster, pero como podéis ver la mayoría se pueden plantear de una forma similar. Y además debes saber que tanto los problemas de clasificación como los de regresión forman parte de un subconjunto de problemas de Machine Learning conocido como Aprendizaje Supervisado. Se denomina supervisado porque para poder predecir la variable objetivo en el futuro, necesitarás tener ejemplos de datos del pasado que se encuentren ya etiquetados, es decir, necesitas un conjunto de datos de entrenamiento asociados a la variable a predecir (la temática en el caso de los textos, o el precio en el caso de los productos) para poder construir tu modelo que servirá para predecir dicha variable en ejemplos que no hayan sido vistos por el modelo. </br> </br> <h2>Estructura del TFG/TFM</h2> A partir de aquí voy a contarte la estructura que seguirá tu TFG/TFM, y las distintas tareas que tendrás que acometer. Probablemente en tu memoria tengas que escribir cada una de estas tareas como capítulos, empezando con el estado del arte del problema que estudias y las tecnologías habilitadoras, y acabando con la bibliografía utilizada. </br> </br> <h3>1) Datos: Extracción, Persistencia, Preprocesado y Análisis.</h3> En el caso de los textos de un periódico, tendrás un conjunto de textos asociados a la clases a la que pertenecen; y en el caso de los productos tendrás las características de cada uno junto con su precio en formato tabular. Para poder trabajar con estos datos, te los podrás encontrar de diversas formas: tanto en ficheros con formato csv, formato txt, o en bases de datos tanto relacionales (p.ej. SQL) como no relacionales (p.ej. MongoDB). Necesitarás conocer cómo trabajar con datos que se encuentren tanto en dichos formatos de datos como las bases de datos que te toque usar. </br> </br> Todo esto ocurrirá en el mejor de los casos, porque puede que también necesites idear la recolección de datos etiquetados. En ese caso, tendrás que conocer bien los sistemas sobre los que sacarás los datos, o necesitarás aprender a hacer Web Scraping para extraer información de Internet. En estos casos también deberás guardar la información en cualquiera de los formatos que te he contado antes. </br> </br> Una vez tengas los datos necesarios para poder trabajar en tu problema, tendrás que pasar por una fase de análisis conocida como Análisis Exploratorio de los Datos (comúnmente conocido como EDA en inglés). Para poder hacer este análisis, te tocará primero pasar por una de las tareas más laboriosas de todas: el preprocesado de los datos. Algunos ejemplos de preprocesado de datos puede ser la normalización, comprobación de que no existen datos corruptos, gestión de outliers o datos atípicos, eliminación de ruido, reducción de dimensionalidad (muy importante para problemas en los que los datos contengan una gran cantidad de variables)… Todo esto te llevará un tiempo y debes poner mucho empeño en hacerlo bien, ya que es fundamental para poder construir buenos modelos posteriormente. </br> </br> Con los datos ya preprocesados, debes ser capaz de extraer unas primeras conclusiones sobre los mismos a través del EDA, como por ejemplo proporción de ejemplos pertenecientes a cada clase o correlación entre variables. Un gran valor añadido que puedes darle a tu trabajo será la visualización de datos, que también puede ayudarte a entenderlos. Adicionalmente, te puede ayudar aprender sobre modelos de Aprendizaje No Supervisado como por ejemplo de tipo clustering para crear agrupaciones de datos o detectar patrones significativos que te ayuden a guiarte antes de crear el modelo final. </br> </br> <h3>2) Modelo</h3> Una vez tengas los datos preprocesados y unas nociones sobre qué patrones pueden esconderse entre ellos, deberás crear el modelo de Machine Learning con el que trates de solucionar el problema planteado en tu trabajo. Como ya te he comentado anteriormente, lo más probable será que el problema que necesites resolver te lleve a crear un modelo de clasificación o de regresión, y aunque hasta ahora no haya hablado sobre qué lenguaje de programación utilizar ya te voy adelantando que en el 90% de los casos utilizarás Python ó R. </br> </br> Ambos lenguajes contienen librerías muy potentes para trabajar con datos y también librerías que te permiten cargar implementaciones de los modelos que utilizarás. Como ejemplos de estas librerías, en el caso de Python necesitarás aprender a utilizar Pandas (gestión de datos en formatos tabulares), Numpy (operaciones sobre datos en formatos matriciales), Scikit-Learn (modelos básicos de Machine Learning) o Keras/Tensorflow (modelos más complejos como redes neuronales). </br> </br> En esta fase tendrás que ir entendiendo qué algoritmos dentro de todos los elegibles (Support Vector Machines, Random Forest, Naive Bayes, KNN…) tiene más sentido aplicar para tu problema en concreto. Si es tu primera vez creando un modelo de estas características, es probable que te cueste entender cuál se adapta mejor a tus necesidades, pero con el tiempo será una habilidad que irás adquiriendo. </br> </br> <h3>3) Interpretación de los resultados</h3> Después de haber experimentado con los algoritmos que hayas considerado necesario, te tocará explicar la decisión de tu elección final. Este es uno de los puntos que mayor valor añadido puede dar a tu trabajo, porque determinará si has entendido de verdad el problema que se te planteaba. Algunas sugerencias que te lanzo para este apartado son comprobaciones sobre casos en los que falla el modelo (y dar una explicación con palabras sobre situaciones que no ha sabido capturar, y si tienen sentido los fallos cometidos), qué supondrá utilizar tu modelo para resolver el problema (imagínate el impacto que puede tener en una empresa, grupo de investigación…) y posibles vías de mejora (qué necesitarías para conseguir mejorar los resultados). </br> </br> <h2>Conclusión</h2> Habitualmente, cuando llegas a hacer un TFG/TFM sobre Machine Learning tendrás poca experiencia creando modelos. En este artículo he tratado de enseñarte las distintas fases por las que tendrás que pasar y los recursos que te tocará aprender. En este tipo de trabajos suele haber partes mecánicas como la limpieza de datos pero también partes en las que el ingenio marcará la diferencia. Recuerda que hacer un buen TFG/TFM puede darte un contenido muy valioso para contar en tu entrevista de trabajo. </br> </br> Si tienes cualquier duda no dudes en preguntármela por aquí o dentro del Slack de nuestra comunidad SpainML, donde te encontrarás con un grupo amplio de personas apasionadas del Machine Learning.