Selección de variables relevantes para modelos predictivos

Clase 9 de 20Curso de Fundamentos de Machine Learning

Resumen

Optimizar modelos predictivos no siempre implica utilizar más variables, sino seleccionar correctamente aquellas que realmente aportan valor a tu análisis. Este método, conocido como selección de características, ayuda a reducir ruido, simplificar modelos y prevenir sobreajustes, resultando en predicciones más acertadas.

¿Qué es la selección de características en modelado predictivo?

La selección de características consiste en identificar y retener únicamente aquellas variables que presenten mayor relevancia estadística con el objetivo a predecir. Al aplicar esta práctica:

  • Se simplifica el modelo, haciendo su interpretación más sencilla.
  • Se eliminan variables irrelevantes que actúan como ruido.
  • Mejora la capacidad de generalización y precisión del modelo.

¿Cómo realizar una selección univariada con SelectKBest?

Utilizando herramientas del paquete scikit-learn, puedes aplicar SelectKBest para seleccionar aquellas variables con mejor rendimiento individual:

  • Importa SelectKBest y f_regression.
  • Usa f_regression para calcular la puntuación F, evaluando qué tanto influye cada variable en tu objetivo.
  • Define tu matriz de características X y tu vector objetivo Y.
  • Selecciona las variables con mejores puntajes individuales y visualiza en orden decreciente cuales aportan más:
from sklearn.feature_selection import SelectKBest, f_regression
selector = SelectKBest(score_func=f_regression, k=2)
selector.fit(X, y)

¿Por qué utilizar árboles de decisión para evaluar importancia de variables?

Los árboles de decisión te permiten evaluar no solo correlaciones lineales, sino también posibles interacciones o relaciones no lineales. Siguiendo estos pasos puedes beneficiarte de esta técnica:

  • Importa DecisionTreeRegressor.
  • Instancia el modelo, define una semilla (random_state) para resultados reproducibles.
  • Ajusta el modelo usando tus datos X e Y.
  • Evalúa la importancia relativa de cada variable mediante la reducción total del error:
from sklearn.tree import DecisionTreeRegressor
modelo_arbol = DecisionTreeRegressor(random_state=0)
modelo_arbol.fit(X, y)

¿Qué aporta la visualización comparativa de técnicas?

Una comparación visual, mediante gráficas de barras con seaborn y matplotlib, aclara la diferencia en aportaciones que cada variable tiene según distintos métodos utilizados. Esto te permite validar conclusiones rápidamente y detectar variables consistentemente relevantes:

  • Las técnicas utilizadas fueron claramente comparadas:
  • SelectKBest analiza correlaciones lineales.
  • DecisionTreeRegressor evalúa relaciones complejas, incluyendo no lineales.

Aunque ambas técnicas generaron valores específicos diferentes, hubo coherencia en variables destacadas como posesión local y ratio tiros sobre posesión.

¿Realmente se necesitan todas las variables?

Este ejercicio práctico evidenció que menos variables pueden conseguir resultados equivalentes o superiores cuando están correctamente elegidas:

  • Ratio de tiros sobre posesión.
  • Porcentaje de posesión local.

Estas variables han demostrado ser cruciales en la predicción eficaz de partidos.