File size: 2,615 Bytes
cdcce9b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0bdf561
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cdcce9b
 
 
 
 
 
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
59
60
61
62
import gradio as gr
import pandas as pd
import numpy as np
import xgboost as xgb
import joblib
from sklearn.preprocessing import MinMaxScaler

def execute(FONTE, IDADE, RH, ANDAR, X,  Y, ATOTAL, ANO_2019, ANO_2020 , ANO_2021, ANO_2022):
    df = pd.DataFrame.from_dict({'FONTE': [FONTE],
                                 'IDADE': [IDADE],
                                 'RH': np.log([RH]),
                                 'ANDAR': [ANDAR],
                                 '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/apartamentos/input_scaler_ape_DEZ2022.save")
    df = input_scaler.transform(df)
    cols = ['FONTE', 'IDADE', 'RH', 'ANDAR', '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/apartamentos/APARTAMENTO_2020_2021_2022_2023.model")
    pred = loaded_model.predict(df)
    output_scaler = joblib.load("dados/apartamentos/output_scaler_ape_DEZ2022.save")
    pred = output_scaler.inverse_transform(np.array(pred).reshape(-1,1))
    pred = np.exp(pred).tolist()
    return f"""Valor do imóvel: R${round(pred[0][0]* ATOTAL, -2)}"""



def load_inputs():
    # Substituindo gr.inputs.Number por gr.Number e default por value
    FONTE = gr.Number(value=0, label='Fonte: 0 - Transação | 1 - Oferta')
    IDADE = gr.Number(value=1, label='Idade do imóvel (Ano Base: 2022)')
    RH = gr.Number(value=45, label='Região Homogênea')
    ANDAR = gr.Number(value=1, label='Andar, conforme Cadastro Imobiliário')
    X = gr.Number(value=282122, label='Longitude (SIRGAS 2000)')
    Y = gr.Number(value=1672718, label='Latitude (SIRGAS 2000)')  
    ATOTAL = gr.Number(value=60.0, label='Área Total')
    
    # Campos de Ano
    ANO_2019 = gr.Number(value=0, label='Ano 2019')
    ANO_2020 = gr.Number(value=0, label='Ano 2020')
    ANO_2021 = gr.Number(value=0, label='Ano 2021')
    ANO_2022 = gr.Number(value=1, label='Ano 2022')
    
    return [FONTE, IDADE, RH, ANDAR, X, Y, ATOTAL, ANO_2019, ANO_2020, ANO_2021, ANO_2022]

output_label = "Valor do imóvel (R$)"

title = 'Venda - Apartamentos'

description = '27.132 dados de Janeiro de 2019 a Dezembro de 2022'