File size: 2,138 Bytes
9bd7106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43273f2
 
ed25afd
7282ba3
 
43273f2
7282ba3
9bd7106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
53
54
55
56
57
58
import joblib
import gradio as gr
import pandas as pd

# Cargar el modelo guardado
model = joblib.load('gradient_boosting_model.pkl')

# Definir la funci贸n de predicci贸n
def predict_rent(condado, estado, valor_venta, total_housing_units, median_rooms, fuel_oil, tasa_desempleo):
    # Crear un DataFrame con los datos ingresados
    input_data = pd.DataFrame({
        'condado': [condado],
        'estado': [estado],
        'valor_venta': [valor_venta],
        'total_housing_units': [total_housing_units],
        'median_rooms': [median_rooms],
        'fuel_oil,_kerosene,_etc.': [fuel_oil],
        'tasa_desempleo': [tasa_desempleo]
    })

    # Aplicar el encoding de 'estado'
    input_data = pd.get_dummies(input_data, columns=['estado'], drop_first=True)

    # Asegurarse de que las columnas encajen con las del modelo
    missing_cols = set(model.feature_names_in_) - set(input_data.columns)
    for col in missing_cols:
        input_data[col] = 0
    input_data = input_data[model.feature_names_in_]

    # Hacer la predicci贸n
    prediction = model.predict(input_data)
    return prediction[0]

# Crear la interfaz de Gradio
inputs = [
    gr.Textbox(label="Estado", interactive=True),
    gr.Textbox(label="Condado", interactive=True),
    gr.Slider(label="Valor de Venta ($)", value=100000, minimum=50000, maximum=5000000, step=10000),
    gr.Slider(label="# de habitaciones", value=3, minimum=1, maximum=10, step=1),
    gr.Slider(label="Tasa de Desempleo (%)", value=0.05, minimum=0.0, maximum=0.2, step=0.01),
    gr.Number(label="Total de propiedades para rentar", interactive=True),
    gr.Number(label="Propiedades con uso de Gasolina y Keroseno", interactive=True)
]
output = gr.Textbox(label="Predicci贸n de la Renta Mensual")

# Inicializar la interfaz
app = gr.Interface(
    fn=predict_rent,
    inputs=inputs,
    outputs=output,
    title="Predicci贸n de Renta Mensual",
    description="Ingrese las caracter铆sticas de la vivienda para predecir el valor mensual de la renta.",
    theme="compact",  # Opcional: Cambia el dise帽o
)

# Iniciar la aplicaci贸n
if __name__ == "__main__":
    app.launch()