Spaces:
Runtime error
Runtime error
| import pandas as pd | |
| from sklearn.linear_model import LinearRegression | |
| from sklearn.metrics import mean_squared_error, r2_score | |
| from sklearn.model_selection import train_test_split | |
| import numpy as np | |
| import joblib, os | |
| df = pd.read_csv("results/summary.csv") | |
| # Create lagged feature: today's temp → tomorrow's temp | |
| df["tomorrow"] = df["temp_max_c"].shift(-1) | |
| df = df.dropna() | |
| X = df[["temp_max_c"]].values | |
| y = df["tomorrow"].values | |
| # --- Train-test split --- | |
| X_train, X_test, y_train, y_test = train_test_split( | |
| X, y, test_size=0.3, shuffle=False | |
| ) | |
| # Train model | |
| model = LinearRegression() | |
| model.fit(X_train, y_train) | |
| # Predict on test data | |
| y_pred = model.predict(X_test) | |
| # Metrics | |
| mse = mean_squared_error(y_test, y_pred) | |
| rmse = mse ** 0.5 | |
| r2 = r2_score(y_test, y_pred) | |
| # Baseline: "tomorrow = today" | |
| baseline_pred = X_test.flatten() # naive baseline | |
| baseline_mse = mean_squared_error(y_test, baseline_pred) | |
| baseline_rmse = baseline_mse ** 0.5 | |
| print("📊 MODEL PERFORMANCE") | |
| print(f"RMSE: {rmse:.3f}") | |
| print(f"R²: {r2:.3f}") | |
| print("") | |
| print("🧠 BASELINE (naive 'tomorrow = today')") | |
| print(f"RMSE: {baseline_rmse:.3f}") | |
| print("") | |
| print("✅ Better than baseline?" , "YES ✅" if rmse < baseline_rmse else "NO ❌") | |
| os.makedirs("models", exist_ok=True) | |
| joblib.dump(model, "models/temp_regressor.joblib") | |
| print("\n💾 Model saved to models/temp_regressor.joblib") | |