Spaces:
Sleeping
Sleeping
import gradio as gr | |
import pandas as pd | |
import statsmodels.api as sm | |
import numpy as np | |
import io | |
df = pd.read_excel('MOD_VC.xlsx', 'DF') | |
# Separar as variáveis independentes (X) e dependente (y) | |
X = df[['AREA', 'TEST', 'PAV', 'POS', 'RB']] | |
y = df['VU'] | |
X_with_constant = sm.add_constant(X) | |
model = sm.OLS(y, X_with_constant) | |
results = model.fit() | |
def predict(file): | |
# Lendo o arquivo de input | |
input_df = pd.read_excel(file) | |
# Processamento da planilha de input | |
input_df[['AREA', 'TEST']] = np.log(input_df[['AREA', 'TEST']]) | |
input_df['RB'] = 1/input_df['RB'] | |
# Preparar dados para predição | |
X_new = np.array(input_df) | |
X_new_with_constant = np.insert(X_new, 0, 1, axis=1) | |
# Fazer previsões | |
y_pred = results.predict(X_new_with_constant) | |
ci = results.get_prediction(X_new_with_constant).conf_int() | |
inter_conf = np.exp(ci) | |
# Adicionar previsões e intervalos de confiança à planilha | |
input_df['Prev'] = np.exp(y_pred) | |
input_df['LI_IC'] = inter_conf[:, 0] | |
input_df['LS_IC'] = inter_conf[:, 1] | |
# Convertendo o DataFrame de volta para um arquivo Excel | |
output = io.BytesIO() | |
with pd.ExcelWriter(output, engine='xlsxwriter') as writer: | |
input_df.to_excel(writer, index=False) | |
output.seek(0) | |
return output | |
iface = gr.Interface( | |
fn=predict, | |
inputs=gr.inputs.File(type="file", label="Carregue seu arquivo XLS/XLSX"), | |
outputs=gr.outputs.File(file_name="avaliacao_massa.xlsx"), | |
title="Vera Cruz - Avaliação em massa", | |
description="Faça o upload de um arquivo XLS/XLSX para previsão em massa. Download de planilha de exemplo [aqui]('teste.xlsx')." | |
) | |
iface.launch() | |