File size: 1,577 Bytes
334c7ed 737c907 45b9eeb 6a1e3c5 334c7ed 93e6c4d 334c7ed adb02a9 133a471 79843b0 adb02a9 8fe669b adb02a9 133a471 adb02a9 2968831 a902fd0 adb02a9 6a1e3c5 | 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 | from statsmodels.regression.linear_model import OLSResults
import statsmodels.api as sm
from sklearn.preprocessing import PolynomialFeatures
import pandas as pd
import gradio as gr
import tempfile
def procesar_csv(archivo):
if archivo is None:
return "No se subió ningún archivo", None
try:
df = pd.read_csv(archivo.name)
modelo_cargado = OLSResults.load('modelo_ols_guardado.pkl')
considered_features_ols = ['feature_2','feature_9','feature_13','feature_11','feature_18']
X_blind = df[considered_features_ols]
blind_poly_features = PolynomialFeatures(degree = 3, include_bias=False).set_output(transform="pandas")
X_blind_poly = blind_poly_features.fit_transform(X_blind)
df_procesado = modelo_cargado.predict( sm.add_constant(X_blind_poly) ).to_frame(name="target_pred")
# Guardar temporalmente para descarga
temp = tempfile.NamedTemporaryFile(delete=False, suffix=".csv", prefix="Resultados_")
df_procesado.to_csv(temp.name, index=False)
return df_procesado, temp.name
except Exception as e:
return f"Error al leer el CSV: {e}", None
# Interfaz
interface = gr.Interface(
fn=procesar_csv,
inputs=gr.File(file_types=[".csv"], label="Sube el archivo CSV"),
outputs=[gr.Dataframe(label="Resultado de regresion lineal"), gr.File(label="Descargar datos procesados")],
title="Problema de regresión multivariante",
description="Sube los datos de entrada (.CSV) y te mostraré el resultado."
)
interface.launch() |