[MÚSICA] Bienvenidos a un nuevo video de nuestro curso de minería de datos. En este video continuaremos con la evaluación de clasificadores, en particular entraremos en más detalle sobre los tópicos mencionados en el video anterior. Lo que nos motiva en este video es aprender más detalles sobre las distintas técnicas para dividir nuestros datos para entrenamiento y testeo. Recordando el esquema general, lo que aprenderemos en este video corresponde a lo que está en el círculo rojo. La idea es dividir nuestros datos etiquetados en una parte para entrenar y en otra parte para testear, el modelo de clasificación que se usará para estimar el rendimiento se construye solo a partir del set de entrenamiento. Luego, le pedimos a nuestro modelo que clasifique los datos que corresponden al set de testeo para así comparar las predicciones con la clase real. Veremos entonces en detalles tres formas distintas para dividir nuestros datos etiquetados, hold out, random sub-sampling y k-fold cross validation. Hold out es el método más sencillo, simplemente consta de separar nuestro set de datos etiquetados en dos partes, la primera para entrenar el algoritmo y la segunda para testearlo. Típicamente la parte de entrenamiento contiene un 70 u 80% del tamaño de nuestros datos mientras que la parte de testeo contiene el resto. En la imagen vemos un esquema que nos muestra que entrenaremos nuestro modelo con n uno y lo usaremos para clasificar los datos de n dos. Algo importante que mencionar, es que el modelo que usamos para conseguir nuestros indicadores de rendimiento no necesariamente es el mismo modelo que pondremos en producción. Típicamente, el modelo que ponemos en producción se entrena con todos los datos que tenemos etiquetados, para así lograr un entrenamiento con la mayor cantidad de información posible, este proceso es solo para estimar indicadores de rendimiento del modelo en producción para casos futuros. Otra consideración muy importante a la hora de generar la separación entre el entrenamiento y el testeo, es que cada parte debe mantener las mismas proporciones de elementos de cada clase. Por ejemplo, si tenemos tres clases posibles donde la cantidad de elementos de cada clase es distinta, esas cantidades deben mantenerse proporcionalmente en cada parte del entrenamiento, también en la parte de testeo. En la figura vemos en colores las proporciones de cada clase, vemos entonces que las proporciones de datos que teníamos desde un principio de nuestra base de datos etiquetados se mantiene igual en el set de entrenamiento y en el set de testeo. Una de las desventajas del método hold out, es que puede ser que justo hayamos seleccionado un conjunto de testeo muy fácil o quizás muy difícil o también puede ser que justo hayamos seleccionado como set de entrenamiento una proporción muy sesgada de nuestros datos etiquetados. Justamente para evitar este tipo de problemas el ideal es repetir el método hold out varias veces, esto corresponde al método random sub-sampling, así generamos más aleatoriedad en el proceso, disminuyendo la probabilidad de seleccionar partes muy sesgadas para el entrenamiento o para el testeo. Como resultado del proceso random sub-sampling, se generan b nuevas columnas con las respectivas predicciones de cada uno de los b modelos entrenados. El método k-fold cross validation, es en general el más utilizado en la práctica, la idea es asegurar que todos los datos de nuestra base de datos etiquetados han sido parte del set de entrenamiento y también del set de testeo. Procedemos a particionar los datos en cada partes o folds, como es una partición, la intersección entre los folds es vacía y además la unión de ellos forma nuestra base de datos etiquetados inicial. El proceso itera k veces, la iteración i, entrenamos el clasificador con todos los folds menos el fold i y usamos el modelo para predecir la clase del fold i, entonces, en la iteración uno dejamos el fold uno a fuera y entrenamos con los folds desde el dos hasta el k, en la iteración dos, dejamos el fold dos afuera y entrenamos con el resto de los folds. Usamos entonces el modelo entrenado para etiquetar los datos del fold dos, y así sucesivamente hasta llegar al fold k. Como resultado del proceso obtenemos para todos nuestros datos etiquetados una columna nueva con la predicción hecha por cada modelo, en la figura representamos esta columna con el color naranjo. En el siguiente video veremos cómo utilizaremos todas esas columnas para generar indicadores de rendimiento. No olvidar que al igual que en los métodos anteriores también tenemos que preocuparnos en el k-fold cross validation de mantener las mismas proporciones de datos para cada clase en cada uno de los folds, si no lo hacemos podría ocurrir que algunos folds queden sin elementos de alguna clase, generando que algunos modelos se entrenen sin haber visto ningún dato en alguna clase en particular. Un caso particular del método k-fold cross validation es cuando tenemos un fold por cada dato de nuestro set de datos etiquetados, así si por ejemplo tenemos 100 datos habrían 100 folds, tendríamos que iterar 100 veces dejando en cada iteración solo un dato afuera, este proceso se llama leave-one put cross validation, se utiliza cuando tenemos suficientes recursos computacionales you que obviamente es mucho más costoso que comparándolo con el método para valores menores en k. Una vez que tenemos listas las particiones que contienen la predicción del modelo y la clase real, procedemos a juntarlas en dos columnas grandes para luego calcular los indicadores de rendimiento que veremos en el próximo video. Existen casos en que cada una de las particiones es lo suficientemente grande como para usar cada una por separado y luego sacar promedios y desviaciones estándar de los indicadores de rendimiento, pero en general, lo más utilizado es unir todas las particiones. En este video vimos tres métodos distintos para realizar la división de nuestros datos etiquetados en entrenamiento y testeo. Lo principal es asegurar la aleatoriedad y disminuir el riesgo de generar partes muy sesgadas para entrenar o para testear, vimos que es importante el muestreo estratificado para mantener la proporción de datos de cada clase. [AUDIO_EN_BLANCO]