File size: 1,965 Bytes
5e7578c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# app.py
import gradio as gr
import pandas as pd
import numpy as np
import joblib

# Cargar modelo y codificador
modelo = joblib.load("modelo.pkl")
le_barrio = joblib.load("barrios_encoder.pkl")

# Obtener lista de barrios únicos (para el desplegable)
barrios_unicos = le_barrio.classes_.tolist()

def predecir_valor(barrio, estrato, area):
    try:
        # Codificar barrio
        if barrio in barrios_unicos:
            barrio_cod = le_barrio.transform([barrio])[0]
        else:
            # Si no está, usar el barrio más común (moda)
            barrio_cod = 0  # o np.median(le_barrio.transform(barrios_unicos))
        
        # Preparar entrada
        entrada = np.array([[barrio_cod, estrato, area]])
        prediccion = modelo.predict(entrada)[0]
        
        valor_formateado = f"${prediccion:,.0f} COP"
        return valor_formateado
    except Exception as e:
        return f"Error: {str(e)}"

# Interfaz Gradio
with gr.Blocks(title="🏡 Predice tu vivienda en Bucaramanga") as demo:
    gr.Markdown("# 🏠 ¿Cuánto vale tu vivienda en Bucaramanga?")
    gr.Markdown("Modelo de predicción basado en datos catastrales públicos del municipio.")
    
    with gr.Row():
        barrio = gr.Dropdown(choices=barrios_unicos, label="Barrio", value="Girardot")
        estrato = gr.Slider(1, 6, value=3, step=1, label="Estrato socioeconómico")
        area = gr.Number(value=70, label="Área privada (m²)", minimum=20, maximum=500)
    
    output = gr.Textbox(label="Valor predicho (catastral estimado)")
    btn = gr.Button("Predecir valor")
    btn.click(predecir_valor, inputs=[barrio, estrato, area], outputs=output)
    
    gr.Markdown("""

    > ℹ️ Este modelo usa **valor catastral** como proxy del valor comercial.  

    > Datos: Alcaldía de Bucaramanga - [datos.gov.co](https://www.datos.gov.co)  

    > Proyecto educativo y de código abierto.

    """)

demo.launch()