• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

Selección de Características en Machine Learning: Métodos y Estrategias

En el desarrollo de modelos de Machine Learning, alcanzar el máximo desempeño posible depende directamente de la calidad y pertinencia de los datos suministrados.

Así que una fase crítica para lograr este objetivo es la selección de características (o feature selection), un conjunto de métodos diseñados para identificar las variables más relevantes de un conjunto de datos antes de realizar el entrenamiento del modelo.

Entonces, en este artículo exploraremos qué es la selección de características, por qué es una etapa esencial al momento de entrenar diferentes modelos de Machine Learning, en qué escenarios es aplicable y una introducción técnica a las principales familias de métodos disponibles.

¿Qué son las características en un conjunto de datos?

Para comprender la selección de características, primero debemos definir el concepto de «característica» en el contexto de datos tabulares o estructurados. En la siguiente figura vemos un ejemplo de un set de datos tabular:

Ejemplo de un set de datos tabular. Las filas o registros son cada uno de los datos, mientras que las columnas son las características
Ejemplo de un set de datos tabular. Las filas o registros son cada uno de los datos, mientras que las columnas son las características

En esta tabla:

  • Las filas representan los registros o datos individuales que se desean analizar.
  • Y las columnas son precisamente las características (que también se suelen llamar variables o covariables) y que que contienen la información más relevante de cada registro.

Por ejemplo, en un modelo predictivo para una entidad financiera, las características (columnas del dataset) podrían incluir la edad del cliente, nivel de ingresos, nivel de deuda y valor de la hipoteca.

Y la idea básica del proceso de selección de características es reducir esta cantidad de características, pasando de un set original con, por ejemplo, seis características (de la A a la F en la figura de abajo a la izquierda) a un subconjunto más pequeño que contenga únicamente aquellas con el mayor impacto en las predicciones (por ejemplo las características E, C y B en la parte derecha de la siguiente figura):

Idea básica de la selección de características en el Machine Learning
Idea básica de la selección de características en el Machine Learning

¿Por qué es necesaria la selección de características?

Existen tres razones fundamentales que justifican la necesidad de realizar la selección de características al momento de construir modelos de Machine Learning. Veamos cada una en detalle.

1. La Maldición de la Dimensionalidad

Existe la falsa percepción de que a mayor número de características, mejores serán las predicciones. Pero en la práctica, alimentar un modelo con demasiadas variables (posiblemente algunas de ellas irrelevantes) puede «confundirlo», impidiendo la detección adecuada de patrones durante el entrenamiento.

Por ejemplo, digamos que queremos construir un modelo que estime la probabilidad de que una persona tenga una enfermedad cardíaca usando variables como la edad, la altura, el peso, el nivel de glucosa y el nivel de deuda bancaria (???):

La selección de características y la maldición de la dimensionalidad
La selección de características y la maldición de la dimensionalidad: si presentamos al modelo sólo las características más relevantes, es probable que el modelo entrenado tenga un mejor desempeño

Es evidente que esta última características (el nivel de endeudamiento) no guarda relación con el problema de salud. Así que un proceso de selección de características adecuado permitiría identificar la variable «nivel de deuda» como irrelevante, permitiendo entrenar el modelo únicamente con las variables biológicas pertinentes.

2. Eficiencia Computacional

Un mayor número de características incrementa la complejidad del modelo, aumentando la cantidad de parámetros. Y esto se traduce en:

  • Mayor tiempo requerido para el entrenamiento.
  • Mayor tiempo de cómputo para generar predicciones en tiempo real.
La selección de características y los tiempos de cómputo
La selección de características y los tiempos de cómputo: un modelo entrenado con menos características tendrá menos parámetros y por tanto se podrá entrenar más rápido y generará predicciones en menos tiempo, comparado con un modelo entrenado con «muchas» características

Así que la selección de características permite en estos casos simplificar el modelo (es decir reducir su número de parámetros) reduciendo de esta forma tanto los tiempos de entrenamiento como los tiempos requeridos para inferencia (es decir para realizar predicciones).

3. Prevención del Overfitting (Sobreajuste)

El overfitting ocurre cuando un modelo genera predicciones excelentes con los datos de entrenamiento pero falla al generalizar con datos nuevos.

Un modelo excesivamente complejo, debido a un exceso de características, tiende a memorizar el set de entrenamiento.

Pero si logramos reducir la cantidad de características usadas para entrenar el modelo, tendremos un modelo más simple, con menos «overfitting» y por tanto con mayor capacidad de generalización (es decir con un mejor desempeño con datos nuevos).

La selección de características y el sobre-ajuste de un modelo
La selección de características y el sobre-ajuste de un modelo: usar menos características durante el entrenamiento da como resultado un modelo más simple (con menos parámetros) y por tanto con mayor capacidad de generalización

¿Cuándo utilizar la selección de características?

No todos los proyectos de Inteligencia Artificial requieren o permiten incorporar la selección de características en el proceso de construcción del modelo.

Así que el uso de técnicas de selección de características dependerá del tipo de datos y del modelo que estemos usando en nuestro proyecto:

  • Datos tabulares y modelos Clásicos: en estos casos podemos usar selección de características. Por ejemplo, si tenemos datos tabulares y usamos modelos de Machine Learning «clásicos» como regresión lineal, máquinas de soporte vectorial (SVM), árboles de decisión o bosques aleatorios (Random Forests).
  • Deep Learning y datos no estructurados: en aplicaciones que involucran audio, video, texto o imágenes (es decir, datos no estructurados), se suelen emplear redes neuronales profundas (como las redes convolucionales, las redes recurrentes, las redes LSTM o las redes transformer). Estos modelos de Deep Learning son capaces de procesar la información sin necesidad de implementar previamente alguna técnica de selección de características.

Principales Familias de Métodos de Selección de Características

Los métodos de selección de características más usados se dividen en tres grandes categorías según su principio de funcionamiento. Veamos estas tres familias en detalle.

1. Métodos de Filtrado

En estos métodos se evalúa cada característica de forma individual mediante pruebas estadísticas (como el cálculo de correlación o la varianza) sin considerar el modelo de Machine Learning que estemos usando.

Así, lo que se hace es asignar un puntaje a cada característica para luego definir un ranking y seleccionar las top-k características con mejor puntuación. Por ejemplo, en la figura de abajo el valor de k es igual a 3, lo cual quiere decir que el método de filtrado seleccionará las top-3 características para luego entrenar el modelo:

Los métodos de filtrado para la selección de características
Los métodos de filtrado para la selección de características. En la figura pasamos de las características iniciales (A a la F) a las características seleccionadas (E, C y B)

2. Métodos Wrapper

A diferencia del filtrado, estos métodos utilizan el desempeño de un modelo de Machine Learning específico para evaluar combinaciones de características. Se dividen principalmente en dos enfoques: selección hacia adelante y selección hacia atrás.

En la selección hacia adelante (Forward Selection) se inicia con un modelo vacío y se añade una característica a la vez. En cada iteración, se evalúa el desempeño y se conserva la variable que más aporte al desempeño del modelo. Y el proceso continúa hasta alcanzar un «criterio de parada» (como un número máximo de características) o el máximo desempeño posible.

Por ejemplo, supongamos que tenemos un total de 6 características (de la A a la F). Entonces, en la selección hacia adelante entrenamos inicialmente 6 modelos y escogemos aquella variable que genere el mejor desempeño. Supongamos que esta variable es la B:

Selección de características hacia adelante. En la primera iteración seleccionamos la característica B
Selección de características hacia adelante. En la primera iteración seleccionamos la característica B

En la siguiente iteración combinamos esa variable ganadora con cada una de las restantes, entrenando en cada caso nuevos modelos (B+A, B+C, B+D, etc.) y seleccionando nuevamente la mejor combinación (aquella que mejore el desempeño obtenido en la iteración anterior):

Selección de características hacia adelante. En la segunda iteración seleccionamos las características B y D
Selección de características hacia adelante. En la segunda iteración seleccionamos las características B y D

En la tercera iteración repetimos el procedimiento: tomamos la selección ganadora en la iteración anterior (B+D) y combinamos estas variables con cada una de las restantes (B+D+A, B+D+C, etc.) y seleccionamos la mejor combinación (aquella que mejore el desempeño obtenido en la iteración anterior):

Selección de características hacia adelante. En la tercera iteración seleccionamos las características B, D y F
Selección de características hacia adelante. En la tercera iteración seleccionamos las características B, D y F

Y repetimos el proceso hasta alcanzar un criterio de parada (que puede ser el número máximo de características o hasta que el desempeño deje de mejorar significativamente. Por ejemplo, si en este caso asumimos un máximo número de características igual a 3, la opción B+D+F sería la ganadora.

Por otra parte, la selección hacia atrás es el proceso inverso al anterior. Es decir que primero entrenamos el modelo con todas las características disponibles y luego en cada iteración se descarta la variable cuya eliminación mejore o mantenga el desempeño del modelo, repitiendo el ciclo de forma iterativa hasta hallar la combinación óptima (o hasta alcanzar un criterio de parada, que puede ser el número mínimo de características).

Por ejemplo, si tenemos nuestras seis variables (de la A a la F), en la primera iteración entrenamos el modelo con todas estas variables y evaluamos su desempeño:

Selección de características hacia atrás. En la primera iteración usamos todas las características para entrenar y validar el modelo
Selección de características hacia atrás. En la primera iteración usamos todas las características para entrenar y validar el modelo

Luego, en la segunda iteración, entrenamos un modelo con todas las posibles combinaciones de 5 variables (B+C+D+E+F, A+C+D+E+F, A+B+D+E+F, etc.) y escogemos aquel que tenga el mejor desempeño, siempre y cuando este desempeño sea mejor que el de la iteración anterior. Supondremos que la combinación ganadora en esta iteración es la A+B+C+E+F:

Selección de características hacia atrás. En la segunda iteración seleccionamos 5 de las 6 características siempre y cuando encontremos una combinación que mejore el desempeño obtenido en la iteración anterior
Selección de características hacia atrás. En la segunda iteración seleccionamos 5 de las 6 características siempre y cuando encontremos una combinación que mejore el desempeño obtenido en la iteración anterior

Así que en la tercera iteración partimos de la última combinación ganadora (A+B+C+E+F) y entrenamos el modelo con todas las posibles combinaciones de 4 de esas variables (B+C+E+F, A+C+E+F, A+B+E+F, etc.) y seleccionamos aquellas variables que correspondan al modelo con el mejor desempeño, siempre y cuando este desempeño sea mejor que el de la iteración anterior:

Selección de características hacia atrás. En la tercera iteración seleccionamos 4 de las 5 características restantes siempre y cuando encontremos una combinación que mejore el desempeño obtenido en la iteración anterior
Selección de características hacia atrás. En la tercera iteración seleccionamos 4 de las 5 características restantes siempre y cuando encontremos una combinación que mejore el desempeño obtenido en la iteración anterior

En la cuarta iteración repetimos el procedimiento: partimos de la última combinación ganadora (B+C+E+F) y probamos todas las posibles combinaciones de 3 de esas variables y seleccionamos aquella combinación con el mejor desempeño, siempre y cuando este desempeño sea mejor que el de la iteración anterior:

Selección de características hacia atrás. En la cuarta iteración seleccionamos 3 de las 4 características restantes siempre y cuando encontremos una combinación que mejore el desempeño obtenido en la iteración anterior
Selección de características hacia atrás. En la cuarta iteración seleccionamos 3 de las 4 características restantes siempre y cuando encontremos una combinación que mejore el desempeño obtenido en la iteración anterior

Y si el criterio de parada es un número mínimo de 3 características, en este punto detenemos el proceso de selección y tenemos las 3 características seleccionadas (por ejemplo B+C+E).

3. Métodos Embebidos

En esta familia, la selección de características es una parte integral del proceso de entrenamiento del modelo. Es decir que el modelo mismo ya tiene incorporada alguna métrica que cuantifica el impacto de cada característica en las predicciones (de allí el término «embebidos»).

Por ejemplo, los modelos como los árboles de decisión o los bosques aleatorios permiten calcular la importancia de las características directamente al momento de entrenar estos modelos.

Así, si para este tipo de modelos conocemos esta importancia de las características, podemos simplemente definir un umbral sobre este nivel de importancia y preservar sólo aquellas características más relevantes.

Conclusión

Como acabamos de ver, la selección de características no es solo un paso opcional al momento de construir un modelo de Machine Learning.

En realidad, es una técnica fundamental que nos permite muchas veces obtener modelos de Machine Learning más robustos, más simples (es decir con menos parámetros) y por tanto más rápidos (en términos de entrenamiento y de inferencia) así como capaces de generalizar mejor (es decir de generar predicciones adecuadas sobre datos totalmente nuevos).

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }