Selección de variables relevantes para modelos predictivos
Clase 9 de 20 • Curso 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
yf_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.