usa-housing-lr

Modelo de regresión lineal (OLS) entrenado sobre el dataset gusdelact/USA_Housing para predecir el precio medio de una vivienda.

Información del modelo

  • Estimador: LinearRegression
  • Framework: scikit-learn
  • Autor: gusdelact
  • Fecha de entrenamiento: 2026-05-17T22:39:54.567662
  • Random state: 42
  • Serialización: joblib

Datos

  • Fuente: gusdelact/USA_Housing
  • Dataset curado: gusdelact/usa-housing-curated
  • Train: 3750 filas, 5 features
  • Target: Price (log1p: False)

"Balanceo" para regresión

SMOTE/oversampling no aplica. Se usó split estratificado por bins del target (n_bins=10) para garantizar que train y test cubran todos los rangos de precio.

Métricas en test

Métrica Valor
rmse 102511.2872
mae 82246.1838
r2 0.9146
mape 0.0742

Benchmarking (justifica la elección de OLS)

Modelo RMSE test R² test CV-RMSE
linear_regression 102511.29 0.9146 101315.61
ridge 102508.10 0.9147 101316.35
lasso 102511.19 0.9146 101315.15
elastic_net 102511.19 0.9146 101315.50

Las cuatro variantes (OLS, Ridge, Lasso, ElasticNet) dan resultados prácticamente idénticos sobre este dataset, lo que indica que la señal es lineal y no hay multicolinealidad fuerte. OLS es la elección por ser el más interpretable y no requerir hiperparámetros.

Cross-Validation (5-fold sobre train)

  • RMSE: 101315.6121 ± 2092.6228
  • : 0.9177 ± 0.0048

Fundamento Teórico

Las decisiones de modelado se respaldan con citas verificables a ESL e ISLP:

Por qué OLS sobre regularización

El benchmarking muestra que OLS, Ridge, Lasso y ElasticNet convergen al mismo RMSE en este dataset. ISLP §6.2 (Linear Model Selection and Regularization) muestra que cuando el rango de λ óptimo es pequeño y la caída de la curva de validación es poco pronunciada, "we might simply use the least squares solution" [ISLP §6.2]. Es exactamente nuestro caso: el shrinkage no aporta valor cuando todas las features contribuyen a la señal y no hay multicolinealidad fuerte.

Estandarización antes de regularización

ISLP §6.2 explicita que "it is good practice to standardize the columns of X in these applications, if the variables are measured in different units" [ISLP §6.2]. Por eso aplicamos StandardScaler en feature_engineering.py aunque OLS sea el modelo final: garantiza que el benchmarking contra Ridge/Lasso/ElasticNet sea justo y que los coeficientes sean comparables entre features.

Cross-Validation con K=5

ISLP §5.1.4 (Bias-Variance Trade-Off for k-Fold Cross-Validation) argumenta que "one performs k-fold cross-validation using k = 5 or k = 10, as these values have been shown empirically to yield test error rate estimates that suffer neither from excessively high bias nor from very high variance" [ISLP §5.1.4]. K=5 es nuestro default razonable.

Limitaciones inherentes al modelo lineal

ISLP §3.3.2 advierte que el modelo lineal "makes several highly restrictive assumptions that are often violated in practice" — en particular linealidad y aditividad [ISLP §3.3.2]. El R²=0.91 sobre este dataset indica que esas asunciones se cumplen razonablemente, pero en otros datasets con relaciones no lineales o interacciones se debe considerar Random Forest o XGBoost.

Cómo usar

import joblib
import pandas as pd
from huggingface_hub import hf_hub_download

model_path = hf_hub_download("gusdelact/usa-housing-linear-regression", "model.joblib")
preproc_path = hf_hub_download("gusdelact/usa-housing-linear-regression", "preprocessor.joblib")

model = joblib.load(model_path)
preprocessor = joblib.load(preproc_path)

X = pd.DataFrame([{
    "Avg. Area Income": 68583.0,
    "Avg. Area House Age": 5.98,
    "Avg. Area Number of Rooms": 6.99,
    "Avg. Area Number of Bedrooms": 4.0,
    "Area Population": 36163.0,
}])

X_proc = preprocessor.transform(X)
price_pred = model.predict(X_proc)[0]
print(f"Precio estimado: ${price_pred:,.2f}")

Limitaciones

  • El dataset original es sintético/educativo (gusdelact/USA_Housing), no representa el mercado inmobiliario real de USA.
  • El modelo asume relaciones lineales y aditivas entre las features y el precio [ISLP §3.3.2]. Para datos del mundo real con interacciones o no linealidades, considera modelos basados en árboles (Random Forest, XGBoost) y features adicionales (ubicación, condición, año exacto).
  • Predicciones fuera del rango de entrenamiento (extrapolación) pueden dar valores físicamente inválidos (ej. precios negativos), porque OLS no tiene cota natural en su salida.

Referencias

  • ISLP — An Introduction to Statistical Learning with Python, James, Witten, Hastie, Tibshirani (2nd Ed.).
  • ESL — The Elements of Statistical Learning, Hastie, Tibshirani, Friedman (2nd Ed.).
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Space using gusdelact/usa-housing-linear-regression 1