Regresi贸n lineal con Keras: precio de una casa

Descripci贸n del modelo

Este modelo es un ejemplo pedag贸gico del Seminario de Actualizaci贸n (IFTS N.潞 18). Muestra c贸mo se entrena una regresi贸n lineal con Keras y c贸mo se exporta en el formato nativo .keras.

Predice el precio de una casa, en miles de US$, a partir de su superficie y de si tiene balc贸n y ascensor. Resuelve el mismo problema que los ejemplos de scikit-learn y PyTorch.

Objetivo

Predecir una variable num茅rica continua: el precio estimado de una casa.

Datos de entrenamiento

  • Dataset: sint茅tico, generado en train.py. Es el mismo de la Clase 10, con la misma semilla, y no son casas reales.
  • Cantidad de registros: 200. Se usan 160 para entrenar y 40 para evaluar.
  • Variables de entrada (X): m2 (de 35 a 120), balcon (0 o 1), ascensor (0 o 1).
  • Variable objetivo (y): precio, en miles de US$.

Entrenamiento

  • Tipo de aprendizaje: supervisado.
  • Problema: regresi贸n.
  • Arquitectura: Sequential con una capa Normalization y una capa Dense(1), es decir, tres pesos y un bias.
  • Funci贸n de p茅rdida: error cuadr谩tico medio (mse).
  • Optimizador: SGD, con tasa de aprendizaje 0,1.
  • 脡pocas: 200.
  • Biblioteca: Keras 3, con backend PyTorch. Tambi茅n funciona con TensorFlow.

La capa Normalization aprende la media y el desv铆o de los datos de entrenamiento con adapt(). Como es una capa del modelo, se guarda adentro de model.keras y no hace falta normalizar a mano al predecir. En el ejemplo de PyTorch, en cambio, la normalizaci贸n se guarda aparte.

Evaluaci贸n

Se evalu贸 sobre 40 casas que el modelo no vio durante el entrenamiento.

M茅trica Resultado
MAE 3,10 miles de US$
R虏 0,989

Archivos

Archivo Qu茅 es
model.keras arquitectura, pesos, normalizaci贸n y configuraci贸n de entrenamiento, en un solo archivo
train.py el c贸digo que lo entren贸
predict.py c贸mo cargarlo y usarlo
requirements.txt las dependencias
README.md esta Model Card

C贸mo utilizar el modelo

import os
os.environ["KERAS_BACKEND"] = "torch"   # o "tensorflow"

import keras
import numpy as np

modelo = keras.saving.load_model("model.keras")
print(modelo.predict(np.array([[80, 1, 0]], dtype="float32")))  # [[148.6]]

Limitaciones

  • Tiene fines exclusivamente educativos. Los datos son sint茅ticos y no representan precios reales.
  • Solo conoce casas de 35 a 120 m虏.
  • Las columnas tienen que ir en este orden: m2, balcon, ascensor. El modelo recibe un arreglo, no una tabla con nombres de columnas.
  • Necesita Keras 3. El formato .keras no se abre con versiones viejas de TensorFlow/Keras 2.

Autor铆a

Modelo desarrollado con fines educativos para el IFTS N.潞 18. Docente: Cynthia M. Villagra.

Downloads last month
19
Inference Providers NEW
This model isn't deployed by any Inference Provider. 馃檵 Ask for provider support