Calculadoras_DDA / boxes.py
gui-sparim's picture
Upload 6 files
204827e
raw
history blame
2.47 kB
import gradio as gr
import pandas as pd
import numpy as np
import xgboost as xgb
import joblib
def execute(FONTE, IDADE, DF, X, Y, ATOTAL, ANO_2019, ANO_2020, ANO_2021, ANO_2022):
df = pd.DataFrame.from_dict({'FONTE': [FONTE],
'IDADE': [IDADE],
'DF': [DF],
'X': [X],
'Y': [Y],
'ATOTAL': np.log([ATOTAL]),
'ANO_2019': [ANO_2019],
'ANO_2020': [ANO_2020],
'ANO_2021': [ANO_2021],
'ANO_2022': [ANO_2022],
})
input_scaler = joblib.load("dados/boxes/input_scaler_boxes_2022.save")
df = input_scaler.transform(df)
cols = ['FONTE', 'IDADE', 'DF', 'X', 'Y', 'ATOTAL', 'ANO_2019', 'ANO_2020', 'ANO_2021', 'ANO_2022']
aval = pd.DataFrame(df, columns = cols)
df = xgb.DMatrix(aval)
loaded_model = xgb.Booster()
loaded_model.load_model("dados/boxes/boxes_2020_2021_2022_2023_lean.model")
pred = loaded_model.predict(df)
output_scaler = joblib.load("dados/boxes/output_scaler_boxes_2022.save")
pred = output_scaler.inverse_transform(np.array(pred).reshape(-1,1))
pred = np.exp(pred).tolist()
return f"""R${round(pred[0][0], -2)}"""
def load_inputs():
FONTE = gr.inputs.Number(default = 0, label='Fonte: 0 - Transa莽茫o | 1 - Oferta')
ATOTAL = gr.inputs.Number(default = 15., label='脕rea Total')
DF = gr.inputs.Number(default = 1, label='Divis茫o Fiscal (1, 2 ou 3)')
IDADE = gr.inputs.Number(default = 1, label='Idade do im贸vel (Ano Base: 2022)')
ANO_2019 = gr.inputs.Number(default = 0, label='Ano 2019')
ANO_2020 = gr.inputs.Number(default = 0, label='Ano 2020')
ANO_2021 = gr.inputs.Number(default = 0, label='Ano 2021')
ANO_2022 = gr.inputs.Number(default = 1, label='Ano 2022')
# gr.Dropdown(["ran", "swam", "ate", "slept"], value=["swam", "slept"], multiselect=True)
Y = gr.inputs.Number(default = 1.672718e+06, label='Latitude (SIRGAS 2000)')
X = gr.inputs.Number(default = 282122.159663, label='Longitude (SIRGAS 2000)')
return [FONTE, IDADE, DF, X, Y, ATOTAL, ANO_2019, ANO_2020, ANO_2021, ANO_2022]
output_label = "Valor do im贸vel (R$)"
title = 'Venda - Boxes de estacionamento'
description = '7.173 dados de Janeiro de 2019 a Outubro de 2022'