ScikitLearn: Regresión

Aprende ScikitLearn GRATIS y certifícate

Las técnicas de regresión permiten predecir valores continuos y resultan adecuadas para casos como el pronóstico de ventas, el cálculo de precios de viviendas o la estimación de la demanda energética. En Scikit Learn, estos métodos están reunidos en varios submódulos, principalmente sklearn.linear_model y sklearn.ensemble, aunque existen otros enfoques distribuidos en la librería. La facilidad para intercambiar modelos y probar diferentes algoritmos con la misma interfaz facilita la experimentación y la comparación de resultados.

Un punto de partida habitual es la regresión lineal clásica, implementada en LinearRegression. Este modelo asume una relación lineal entre las características y la variable objetivo. Se ajusta resolviendo sistemas de ecuaciones que minimizan la suma de los errores cuadráticos. Su implementación en Scikit Learn es directa:

from sklearn.linear_model import LinearRegression

lr = LinearRegression()
lr.fit(X_train, y_train)
predictions = lr.predict(X_test)

La sencillez del método lo hace apto para estudios iniciales o problemas donde la relación entre variables sea clara y estable.

Para regularizar el ajuste y controlar la magnitud de los coeficientes, Scikit Learn dispone de Ridge y Lasso en sklearn.linear_model. Ridge introduce un parámetro de penalización L2 que limita el crecimiento de los pesos, mientras que Lasso aplica una penalización L1 que puede llegar a forzar coeficientes a cero, promoviendo la selección de características relevantes. Esta estrategia mitiga el sobreajuste en situaciones con alto número de variables y reduce la complejidad del modelo.

Otro enfoque basado en conjuntos se encuentra en el submódulo sklearn.ensemble. Modelos como RandomForestRegressor o GradientBoostingRegressor combinan múltiples árboles de decisión para equilibrar la varianza y el sesgo, lo que proporciona resultados robustos ante datos ruidosos. Su flexibilidad permite capturar relaciones no lineales, beneficiando a problemas con interacciones complejas en las variables predictoras.

En escenarios con datos muy extensos, HistGradientBoostingRegressor aprovecha histogramas para acelerar el entrenamiento y manejar mejor la escala de los valores. Este modelo puede procesar grandes volúmenes de datos de forma más eficiente, lo que lo hace conveniente para tareas de análisis a gran escala. Además, Scikit Learn continúa optimizando sus algoritmos para mantener la compatibilidad con nuevas versiones de Python y ofrecer mejoras en rendimiento.

Cuando las relaciones en los datos no son completamente lineales, las características polinómicas se aplican para capturar patrones más complejos. Con PolynomialFeatures, es posible crear combinaciones de potencias e interacciones de las variables originales. Esto incrementa la expresividad del modelo, aunque exige mayor poder computacional y un adecuado control de la dimensionalidad para no incurrir en sobreajuste.

Al examinar algoritmos más recientes, MLPRegressor de sklearn.neural_network adopta la estructura de una red neuronal multicapa para la predicción de valores continuos. Configurar el número de capas y neuronas, junto con la función de activación, permite capturar relaciones no lineales con cierto grado de complejidad. Su rendimiento depende de una sintonía cuidada de los hiperparámetros, incluyendo la tasa de aprendizaje y las funciones de regularización.

La evaluación de modelos de regresión se realiza a través de métricas como el error cuadrático medio (mean_squared_error), la raíz del error cuadrático medio (RMSE), el error absoluto medio (mean_absolute_error) y el coeficiente de determinación (r2_score). Cada métrica ofrece una perspectiva diferente: por ejemplo, el RMSE penaliza con más fuerza las desviaciones grandes, mientras que el R² indica qué tanto varía la variable objetivo explicada por el modelo.

Para optimizar hiperparámetros y verificar la capacidad de generalización, se suele recurrir a la validación cruzada y a la búsqueda en rejilla o aleatoria. Mediante GridSearchCV o RandomizedSearchCV, se exploran combinaciones de parámetros como la tasa de regularización, la profundidad de los árboles o el número de neuronas en una red. De este modo, se identifican configuraciones que brindan un mejor equilibrio entre sesgo y varianza.

En flujos de trabajo complejos, resulta útil combinar transformaciones y modelos en un solo objeto Pipeline, lo que otorga coherencia y simplicidad. Se enlazan etapas como escalado de variables, imputación de valores perdidos o generación de características, y luego se concluye con el regressor elegido. Esto asegura que cada paso se aplique consistentemente y evita aplicar transformaciones con información del conjunto de prueba.

Cada uno de estos métodos de regresión atiende situaciones distintas y se adapta a diversas distribuciones de datos. La disponibilidad de interfaces unificadas para entrenar, predecir y evaluar facilita la incorporación de nuevos algoritmos en proyectos existentes. La integración con pandas y NumPy, junto con la posibilidad de orquestar cada etapa con Pipeline, genera un entorno de experimentación ágil, fiable y escalable para el desarrollo de sistemas de predicción.

Empezar curso de ScikitLearn

Lecciones de este módulo de ScikitLearn

Lecciones de programación del módulo Regresión del curso de ScikitLearn.

Ejercicios de programación en este módulo de ScikitLearn

Evalúa tus conocimientos en Regresión con ejercicios de programación Regresión de tipo Test, Puzzle, Código y Proyecto con VSCode.