[MÚSICA] [MÚSICA] En este video vamos a ver la fase de modelización. El objetivo de esta fase es construir un modelo analítico a partir del tablón de datos que you tenemos generado. Vamos a ver una introducción a todas las etapas de esta fase de modelización. Las etapas son las siguientes. Lo primero, conocer la tipología técnica de modelado. Lo segundo, es el diseño de esa técnica de modelado. Lo siguiente es diseñar la evaluación que vamos a utilizar seguida del entrenamiento de construcción de modelo para acabar con la evolución del modelo. Inicialmente tenemos que elegir cuál es la técnica o familia de técnicas que vamos a utilizar para construir el modelo. Para eso tenemos que tener claro si se trata de un problema de aprendizaje supervisado o un problema de aprendizaje no supervisado. Los problemas de aprendizaje no supervisados son aquellos donde nosotros tenemos muchísimos datos y le pedimos al algoritmo que encuentre o identifique patrones sin que le demos ninguna pista. Los problemas de aprendizaje supervisado son aquellos en los que sí vamos a atener esas pistas porque tenemos ocurrencias pasadas que nos van a permitir decirle al algoritmo qué es lo que debe o no aprender. Por ejemplo, nosotros podemos poner, para que tengamos un ejemplo, queremos clasificar a todos los alumnos de un curso podemos decirle, oye, estos son todos los alumnos, clasifícalos, sin decirle nada más. Eso ha sido un aprendizaje no supervisado y lo que hará será hacer grupos de personas parecidas. Que es lo que se llaman clusters, mediante técnicas de clustering. Y las más habituales son K-means, el clustering jerárquico, el T-SNE, el Bi-clustering, el DBSCAN, etcétera. Sin embargo si le decimos, queremos saber cuál es la prioridad que un alumno apruebe el curso o no, si yo tengo datos pasados de alumnos y además también si aprobaron o no aprobaron el curso, yo puedo introducir esa pista y decirle, lo que quiero es que busques patrones enfocados a aprobar o no el curso. Entonces, esto es aprendizaje supervisado y normalmente se divide en tres, a groso modo. Clasificación, cuando le pedimos que clasifique en base a dos o más categorías, por ejemplo aprobar o no aprobar, o podemos tener tres, si es alto, medio o bajo el resultado de algo, o más categorías. Después puede ser regresión cuando lo que queremos es que nos estime una cantidad. Por ejemplo, podríamos querer estimar cuál es la nota que va a sacar un alumno o cuál es el precio de una vivienda, etcétera, entonces es un problema de regresión. Y por último, problema de recomendación si lo que queremos es que nos cree recomendaciones personalizadas o bien de contenidos o bien de cualquier otro tipo de recomendación. Las técnicas más habituales de clasificación son, la más básica, la regresión logística, el super vector machines, los árboles de decisión, la redes bayesianas, hay muchas más, que las veremos más adelante en el curso. Las técnicas más habituales de regresión, pues la regresión lineal, el vector machine también puede actuar como técnica de regresión, árboles de regresión, y las redes neuronales. Además hay muchísimas más técnicas. Y como sistemas de recomendación, pues tenemos KNN, los filtrados colaborativos o los filtrados basados en contenidos, entre otras. Ahora tenemos que diseñar cómo vamos a realizar el modelado. Para eso partimos del tablón de datos que si es una clasificación clasificada, además tendremos una columna que será el target, que está representada en color azul y tendremos un modelo de una familia de modelos que lo hemos representado a través de una fórmula matemática. El objetivo es que ese modelo tenemos que calcular los parámetros que hacen que sea óptimo y que se adecúe a los datos y que nos aporte conocimiento. ¿Esto cómo se hace? Se hace a través de algoritmos estimadores que son normalmente algoritmos recursivos que tratan de encontrar cuáles son los mejores valores de los parámetros, los valores que hacen que el modelo sea el mejor. ¿Pero qué es esto que el modelo sea el mejor? ¿El mejor con respecto a qué? El mejor con respecto a una función de costes que decidamos. El objetivo es encontrar los mejores parámetros para función de costes. Por ejemplo, si yo considero que mi modelo es una recta y = a + b x, yo lo que quiero encontrar es cuáles son los valores de a y de b que mejor se adecúan a los datos para relacionar esas variables x e y. Para eso yo tengo que identificar una función de costes. ¿Cuál es la función de costes? Pues, puede ser que quiero minimizar el error de la estimación, puede ser que quiero maximizar los beneficios, también podrían ser funciones de negocio, puede ser cualquier función que se nos ocurra con función de costes. Al final lo que hacemos es que el algoritmo busque cuáles son los valores de a y de b que hacen esa función de costes sea mínima o máxima en función de lo que estemos definiendo. Pero es muy importante que establezcamos cuál es el criterio porque con distintos criterios llegaremos a distintos modelos. Y hay que buscar siempre el criterio adecuado para el problema que queramos resolver. Después tenemos que diseñar la evaluación. Estos modelos que hemos construido con esta técnica de modelado, ¿cómo los vamos a evaluar? Métricas de evaluación hay muchísimas. Más adelante en el curso podríamos ir viendo otras técnicas de evaluación. Pero vamos a nombrar algunas para que las conozcamos, por ejemplo, está el área bajo la curva, o AUC_ROC, después tenemos el akaike information criterion, o AIC, el BIC, el RMSE, el KS, etcétera. Hay muchísimas métricas de evaluación. Lo importante es elegir una y utilizar siempre la misma. Hay veces que se utilizan varias métricas de evaluación para ver si hay algún modelo que puede ser mejor que los demás en todas o en la mayoría de las métricas de evaluación. Pero lo importante es definir claramente el criterio al principio, ¿para qué? Para que siempre se utilice la misma metodología y se elija el model en base a esa métrica de evaluación. Es muy importante no elegir cualquier métrica porque las métricas se suelen adecuar a la técnica de modelo y al problema a resolver, por lo tanto, hay que hacer un ejercicio previo de analizar y elegir las métricas adecuadas. Pero lo importante es que el criterio sea claro y único para que tengamos siempre una forma de elegir el modelo finalista. Una vez que tenemos you el diseño de cómo vamos a modelar y tenemos diseñado cómo vamos a evaluar, empezamos con el entrenamiento. Para eso hay que tener una metodología de división de los datos para poder realizar esta metodología. Se pueden utilizar distintas metodologías. Yo voy a contar una, para que tengamos el concepto, pero más adelante en el curso se verán otras. Por ejemplo, podemos dividir el conjunto en tres, conjunto de entrenamiento, validación y test. El conjunto de entrenamiento suele ser el más grande y es el que se va a utilizar para construir los modelos. El conjunto de validación es el que se va a utilizar para elegir cuál es el modelo finalista o también para si hay que hacer algún tipo de cálculo de estimación de hiper parámetros o fine tuning, lo haremos con el conjunto de validación. Y por último reservaremos un conjunto de datos de test para realmente evaluar la capacidad del modelo. Este conjunto de test no se va a utilizar nunca a la hora de construir el modelo. Esta metodología lo que asegura es conocer la capacidad predictiva real del modelo y evitar problemas que pueden surgir como el overfitting. Una vez que you tenemos la división de los conjuntos, pasamos a estimar esos parámetros. Claro, para eso tenemos por un lado el modelo, que hemos dicho que es esa fórmula donde no conocemos los parámetros y los datos, cogemos los datos de entrenamiento. Y utilizando el algoritmo estimador y la función de costes, de forma recursiva, vamos calculando cuáles son los mejores parámetros para obtener ese modelo. Una vez que tengamos los mejores parámetros, tendremos un modelo entrenado que será una fórmula donde you los parámetros tendrán un valor concreto. Lo importante es destacar que este entrenamiento de este modelo, de todos los modelos que elijamos, lo haremos utilizando el conjunto de entrenamiento, ¿para qué? Para cuando los evaluemos, los evaluemos en un conjunto que no se haya utilizado para entrenar. Es muy importante que el examen que le hagamos al modelo sea con información diferente a la que he utilizado para aprender. Así evitaremos que en lugar de aprender, memorice. Los siguiente es seleccionar. Hemos entrenado varios modelos con distintos algoritmos y distintas funciones de coste. ¿Cómo podemos ahora elegir cuál es el modelo mejor o el modelo final? Bueno, podemos utilizar esa métrica de evaluación que hemos elegido y vamos a calcularla tanto en el conjunto de entrenamiento como en el conjunto de validación. Entonces una vez que tengamos todos los datos, lo que buscaremos es aquel modelo que tiene un valor mayor en el conjunto de validación. Después podremos ver que hay algunos casos en los que se utilizan otras técnicas pero en principio, en general lo que se quiere encontrar es el modelo que mejor actúa en unos datos que no he utilizado de entrenamiento y eso nos permite. Conocer si los modelos son robustos o no. Además en este momento si vemos que las familias de modelos que hemos utilizado no son adecuadas o no aprenden, podremos cambiar las técnicas y volver a empezar a entrenar modelos y volver a pasar por la validación. Esto es un proceso cíclico en donde hasta que no tengamos un modelo que pensemos o que consideremos que es el modelo finalista, no terminaremos nunca. Pero importante, repito, la evaluación, aunque se realiza en entrenamiento y validación, la decisión se toma con los resultados en el conjunto de validación que no se utilizaron en el entrenamiento. Por último, tenemos la evaluación final del modelo, es decir, ¿cuál es la capacidad real de un modelo? Cuando para esto se utiliza ese conjunto de test que hemos obtenido del conjunto inicial de forma aleatoria extrayendo una muestra aleatoria y lo que hacemos es evaluar el modelo en ese conjunto de test que no se ha utilizado ni en el entrenamiento ni en la validación. Porque esto nos hace referencia y nos demuestra cómo funcionaría un modelo cuando lo utilicemos con datos nuevos que nunca ha utilizado. Entonces, este valor es el que realmente nos medirá la capacidad real del modelo. Por último, quiero destacar una frase de Samuel Karlin, que decía que el propósito de los modelos no es ajustarse a los datos, sino realmente es afinar o adecuar las preguntas. Realmente la fase de modelado es la fase más crítica. Aunque el objetivo es obtener un modelo realmente en esta fase también el objetivo es conocer mejor el problema, identificar cuáles son la variables que están relacionadas, entender cómo se relacionan entre sí y cómo se hacen la proyección para también hacer propuestas de construcción de nuevas variales, tratamiento diferente de variables que habíamos hecho, nuevas técnicas de filtrado, etcétera, de forma que es probable que una vez que lleguemos a la parte de modelado tengamos que volver a empezar otra vez por la comprensión de negocio, porque hemos detectado en la fase de modelización que hemos encontrado nuevo conocimiento, nueva información que sería accesible con un tratamiento distinto. Por eso es muy importante que no solo nos focalicemos en la construcción del modelo, que hay que construirlo, sino también en ir afinando las preguntas, ¿hemos hecho las preguntas correctas? ¿Hemos creado el tablón de forma correcta? ¿El target que hemos puesto realmente representa el problema de negocio que queremos? ¿Los resultados que obtenemos los contrastamos con negocio para saber que tienen sentido y que son coherentes? Bueno, es muy importante, así que tiene que quedar claro que el modelo no es el objetivo, es el vehículo para aprender el conocimiento y aprender la experiencia que tienen los datos. En esta fase hay muchos retos que asumir, el primero es decidir entre cajas blancas y cajas negras. Las cajas blancas son aquellos algoritmos que son interpretables, que tienen una fórmula sencilla que podemos comprender porque obtenemos la proyección que tenemos. Mientras que las cajas negras son algoritmos más complejos, normalmente que predicen mejor pero que es muy difícil interpretarlos. Según quién sea el interlocutor y cómo se vaya a utilizar pues tendremos que decidir si queremos elegir caja blanca, más interpretable, o caja negra, más precisa menos interpretable. Ese equilibrio hay que buscarlo. Además tenemos que intentar buscar una métrica de evaluación adecuada al problema, aunque las métricas de evaluación están muy enfocadas a la parte analítica, si que es cierto que podemos utilizar métricas más enfocadas a la parte de negocio. Por ejemplo, yo podría buscar optimizar un problema o estimar un problema utilizando la métrica UC o podría plantearme buscar cuáles son los valores del cociente que minimizan el beneficio de la empresa o minimizar los costes, etcétera. De forma que busque realmente los parámetros que me ayudan realmente a resolver mi problema. Tenemos que analizar problemas que pueden surgir como el problema del overfitting de la multicolinealidad y buscar el equilibrio entre el sesgo y la varianza que es muy difícil buscar el punto intermedio. También es importante tener claro si disponemos de suficientes datos para la convergencia de los algoritmos más complejos. Puede ser que necesitemos más datos para que ciertos algoritmos puedan converger. Eso es importante para verlo lo antes posible. Y también por supuesto disponer de la suficiente potencia adecuada. Claro lo que no podemos hacer es considerar algoritmos muy complejos con muchísimos datos y no tener la potencia adecuada y tener que esperar, cinco, seis, siente hora para obtener el resultado de un modelo. you que la tecnología lo permite y podemos escalar, lo importante es contar con la tecnología adecuada. Esta fase de modelado es una de las fases más críticas, es una de las fases más difíciles donde realmente se tienen que tomar muchísimas decisiones, y todas esas decisiones tienen que estar totalmente documentadas y totalmente validadas para que después a la hora de poner el modelo en funcionamiento, las tengamos todas claras, por eso es tan crítica. [MÚSICA] [MÚSICA]