Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import pandas as pd | |
| import numpy as np | |
| import joblib | |
| import os | |
| # Carica il modello | |
| model = joblib.load('house_price_model.joblib') | |
| # Carica i nomi delle feature | |
| with open('feature_names.txt', 'r') as f: | |
| feature_names = [line.strip() for line in f.readlines()] | |
| def predict_prices(csv_file): | |
| # Leggi il file CSV | |
| df = pd.read_csv(csv_file.name) | |
| # Verifica che il file contenga le colonne necessarie | |
| missing_cols = [col for col in feature_names if col not in df.columns] | |
| if missing_cols: | |
| return f"Errore: Il file CSV manca delle seguenti colonne: {', '.join(missing_cols)}" | |
| # Seleziona solo le colonne necessarie nell'ordine corretto | |
| input_data = df[feature_names] | |
| # Fai la previsione | |
| predictions = model.predict(input_data) | |
| # Aggiungi le previsioni al DataFrame originale | |
| df['predicted_price'] = predictions | |
| # Salva il risultato in un nuovo file CSV | |
| result_path = "predictions_result.csv" | |
| df.to_csv(result_path, index=False) | |
| return result_path | |
| # Crea l'interfaccia Gradio | |
| iface = gr.Interface( | |
| fn=predict_prices, | |
| inputs=gr.File(label="Carica un file CSV con le caratteristiche delle case"), | |
| outputs=gr.File(label="Scarica i risultati"), | |
| title="Previsione Prezzi Case", | |
| description=f"Carica un file CSV contenente le seguenti colonne: {', '.join(feature_names)}. " | |
| "Il modello prevederà il prezzo per ogni casa e restituirà un nuovo file CSV con i risultati." | |
| ) | |
| # Avvia l'app | |
| iface.launch() |