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()