Entrenamiento y test en la evaluación de un modelo

Autor: | Última modificación: 16 de abril de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes en qué consisten el entrenamiento y test en la evaluación de un modelo? Si no lo sabes, sigue leyendo este artículo, porque a continuación te contamos cómo funcionan estas características.

¿Qué son y cómo funcionan el entrenamiento y test en la evaluación de un modelo?

Para saber cómo de bien se comporta un algoritmo de machine learning, hemos de medir su capacidad de generalización, es decir, las prestaciones en muestras no vistas previamente por el clasificador. Para ello, dividimos el conjunto de entrenamiento en dos partes, entrenamiento y test, teniendo en cuenta que:

  • Utilizamos aproximadamente un 70-75% de las muestras para entrenamiento y un 30-25% para el test.

Lo del 70 -75% es un poco canónico, ya que un 80-20% también está bien. Si el dataset es pequeño y consideramos que podemos tener mejores resultados, no pasa nada; la idea es acomodarse a estos rangos de porcentaje, ya sea al primero o al segundo.

Ambos conjuntos han de representar la población con la misma estadística.

entrenamiento y test en la evaluación de un modelo

Randomizar

O lo que es lo mismo: reordenar para evitar orden en las muestras.

En este proceso de entrenamiento y test en la evaluación de un modelo hay que tener cuidado con las series temporales. Evidentemente no se va a poder aleatorizar, porque vamos a generar errores con la temporalidad y con un montón de cosas que no es conveniente mover.

Así pues, solo se randomiza cuando no hay series temporales, para evitar que haya problemas o que, por ejemplo, agarremos en el test porcentajes que no queríamos coger.

Para entender mejor este aspecto del entrenamiento y test en la evaluación de un modelo, veamos un ejemplo. Imaginemos que estamos hablando de ventas a lo largo del tiempo. Aun así, no nos interesa la temporalidad, solo queremos saber el número de ventas. De modo que tenemos el número de ventas anuales de 2017, 2018, 2019, 2020, 2021…

Lo que haremos es coger conjuntos de entrenamiento para cada uno de esos años, pero como no hemos randomizado esos datos de entrenamiento, el conjunto de test solo contiene muestras de 2020, que coincide con la pandemia del covid.

¿Por qué mencionamos el covid? Porque ese conjunto de test va a estar claramente sesgado por una eventualidad ajena a nuestro control y no va a respetar la distribución del resto de datos que tenemos que no están influenciados por dicho evento.

Estratificar

Este proceso de entrenamiento y test en la evaluación de un modelo se hace con respecto a una variable (normalmente la variable target) para mantener la proporción de la variable target en los conjuntos train/test.

Por poner un ejemplo, supongamos que en este caso la variable target u objetivo es binaria, ya sea roja o azul. Si nosotros en nuestros datos tenemos, más o menos, un 50-50, podemos partir sin estratificar y no ocurrirá ningún problema debido a la división 50-50.

Ahora, si en lugar de eso tenemos un 70-30, lo que queremos cuando dividamos entre train y test es que tanto train como test mantengan ese 70-30. De lo contrario, lo que puede pasar es que de ese 30% de, por ejemplo, la clase rojo, nos llevemos todo a test.

Así, aunque en nuestro conjunto de datos entero tengamos un 70-30%, en test vamos a tener un 90-10. Esto, por tanto, podría hacer que el modelo colapsase y que quedara inservible.

¿Cómo hacer entrenamiento y test en la evaluación de un modelo de datos temporales?

Para hacer entrenamiento y test en la evaluación de un modelo temporal, scikit-learn nos proporciona una función para dividir nuestros datos.

Lo que hace scikit-learn es agarrar periodos de tiempo de cada uno de los grandes periodos de tiempo que se tengan, de forma que respeta un poco esa temporalidad y procura detectarla para que no se pierda al escoger datos de manera aleatoria.

¿Qué sigue?

¿Te interesa seguir aprendiendo sobre Big Data y entrenamiento y test en la evaluación de un modelo? Este es uno de los temas base en el machine learning y el Big Data en general; por ello, te invitamos a que sigas afianzando tus conocimientos por medio de nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva de 8 meses de duración en la que adquirirás todas las herramientas teóricas y prácticas para seguir tu camino al éxito y poder incursionar rápidamente en el mundo laboral. ¡Contáctanos y solicita más información ya!

Posts Relacionados

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado