Spaces:
Sleeping
Sleeping
Commit ·
091a7e7
1
Parent(s): 8a5c0d6
resolved model 3 scale issues
Browse files- streamlit_app.py +21 -10
streamlit_app.py
CHANGED
|
@@ -172,11 +172,12 @@ def load_all():
|
|
| 172 |
country_features = None
|
| 173 |
|
| 174 |
return {
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
|
|
|
| 180 |
|
| 181 |
|
| 182 |
def forecast_model1(model, scaler, recent_values):
|
|
@@ -198,15 +199,25 @@ def predict_model2(model, scalerX, scalerY, feature_array):
|
|
| 198 |
|
| 199 |
def forecast_model3(model, scaler, recent_series, country_vec):
|
| 200 |
window = len(recent_series)
|
| 201 |
-
co2_scaled = scaler.transform(np.array(recent_series).reshape(-1, 1)).flatten()
|
| 202 |
-
co2_col =
|
| 203 |
country_mat = np.tile(country_vec.reshape(1, -1), (window, 1))
|
|
|
|
|
|
|
| 204 |
seq = np.concatenate([co2_col, country_mat], axis=1)
|
|
|
|
|
|
|
| 205 |
inp = seq.reshape(1, window, seq.shape[1])
|
| 206 |
-
ypred_scaled = model.predict(inp, verbose=0).flatten()
|
| 207 |
-
ypred = scaler.inverse_transform(ypred_scaled.reshape(-1, 1)).flatten()
|
| 208 |
-
return ypred
|
| 209 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 210 |
|
| 211 |
def create_animated_metric(label, value, icon="🎯"):
|
| 212 |
st.markdown(f"""
|
|
|
|
| 172 |
country_features = None
|
| 173 |
|
| 174 |
return {
|
| 175 |
+
"model1": model1, "model2": model2, "model3": model3,
|
| 176 |
+
"scaler1": scaler1, "scalerX2": scalerX2, "scalerY2": scalerY2, "scaler3": scaler3, # <--- Ensure scaler3 is returned
|
| 177 |
+
"feature_cols2": feature_cols2, "df_agri": df_agri, "df_co2": df_co2,
|
| 178 |
+
"country_features": country_features,
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
|
| 182 |
|
| 183 |
def forecast_model1(model, scaler, recent_values):
|
|
|
|
| 199 |
|
| 200 |
def forecast_model3(model, scaler, recent_series, country_vec):
|
| 201 |
window = len(recent_series)
|
| 202 |
+
# co2_scaled = scaler.transform(np.array(recent_series).reshape(-1, 1)).flatten()
|
| 203 |
+
co2_col = np.array(recent_series).reshape(window, 1)
|
| 204 |
country_mat = np.tile(country_vec.reshape(1, -1), (window, 1))
|
| 205 |
+
|
| 206 |
+
# Concatenate raw CO2 values with country vector
|
| 207 |
seq = np.concatenate([co2_col, country_mat], axis=1)
|
| 208 |
+
|
| 209 |
+
# Reshape input for LSTM
|
| 210 |
inp = seq.reshape(1, window, seq.shape[1])
|
|
|
|
|
|
|
|
|
|
| 211 |
|
| 212 |
+
# Make prediction - model outputs raw, unscaled values
|
| 213 |
+
ypred_raw_output = model.predict(inp, verbose=0).flatten()
|
| 214 |
+
|
| 215 |
+
# --- PREVIOUSLY INCORRECT INVERSE TRANSFORM REMOVED ---
|
| 216 |
+
# ypred = scaler.inverse_transform(ypred_scaled.reshape(-1, 1)).flatten()
|
| 217 |
+
# The model's output is already the final, unscaled prediction
|
| 218 |
+
ypred = ypred_raw_output
|
| 219 |
+
|
| 220 |
+
return ypred
|
| 221 |
|
| 222 |
def create_animated_metric(label, value, icon="🎯"):
|
| 223 |
st.markdown(f"""
|