diff --git a/.dvc/config b/.dvc/config
index e69de29..ae5faaa 100644
--- a/.dvc/config
+++ b/.dvc/config
@@ -0,0 +1,6 @@
+[core]
+ autostage = true
+ remote = storage
+['remote "storage"']
+ url = s3://olive-oil-dataset
+ region = eu-west-1
diff --git a/.idea/.gitignore b/.idea/.gitignore
old mode 100644
new mode 100755
diff --git a/.idea/.name b/.idea/.name
old mode 100644
new mode 100755
index 365adbf..de4f641
--- a/.idea/.name
+++ b/.idea/.name
@@ -1 +1 @@
-weather_data.parquet
\ No newline at end of file
+Tesi Pegaso
\ No newline at end of file
diff --git a/.idea/TesiPegaso.iml b/.idea/TesiPegaso.iml
old mode 100644
new mode 100755
diff --git a/.idea/csv-editor.xml b/.idea/csv-editor.xml
new file mode 100644
index 0000000..00bb426
--- /dev/null
+++ b/.idea/csv-editor.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
old mode 100644
new mode 100755
diff --git a/.idea/misc.xml b/.idea/misc.xml
old mode 100644
new mode 100755
diff --git a/.idea/modules.xml b/.idea/modules.xml
old mode 100644
new mode 100755
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
old mode 100644
new mode 100755
diff --git a/elaborato_tesi_1_6.pdf b/elaborato_tesi_1_6.pdf
old mode 100644
new mode 100755
diff --git a/src/.gitignore b/src/.gitignore
new file mode 100644
index 0000000..f848d91
--- /dev/null
+++ b/src/.gitignore
@@ -0,0 +1 @@
+/sources
diff --git a/src/README.md b/src/README.md
old mode 100644
new mode 100755
index 6040964..ec863e6
--- a/src/README.md
+++ b/src/README.md
@@ -1 +1,4 @@
python -m olive_oil_train_dataset.create_train_dataset --random-seed 42 --num-simulations 100000 --batch-size 10000 --max-workers 7
+
+
+python -m weather.uv_index.uv_index_model.py
diff --git a/src/__init__.py b/src/__init__.py
old mode 100644
new mode 100755
diff --git a/src/__pycache__/__init__.cpython-39.pyc b/src/__pycache__/__init__.cpython-39.pyc
old mode 100644
new mode 100755
diff --git a/src/dashboard/__pycache__/environmental_simulator.cpython-39.pyc b/src/dashboard/__pycache__/environmental_simulator.cpython-39.pyc
old mode 100644
new mode 100755
diff --git a/src/dashboard/environmental_simulator.py b/src/dashboard/environmental_simulator.py
old mode 100644
new mode 100755
diff --git a/src/models/olive_oli/olive_oil.ipynb b/src/models/olive_oli/olive_oil.ipynb
index f75fec7..fd89e32 100644
--- a/src/models/olive_oli/olive_oil.ipynb
+++ b/src/models/olive_oli/olive_oil.ipynb
@@ -315,36 +315,19 @@
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
- "import seaborn as sns\n",
- "from sklearn.model_selection import train_test_split\n",
- "from sklearn.preprocessing import MinMaxScaler, StandardScaler\n",
- "from tensorflow.keras.layers import Input, Dense, Dropout, Bidirectional, LSTM, LayerNormalization, Add, Activation, BatchNormalization, MultiHeadAttention, MaxPooling1D, Conv1D, GlobalMaxPooling1D, GlobalAveragePooling1D, \\\n",
- " Concatenate, ZeroPadding1D, Lambda, AveragePooling1D, concatenate\n",
- "from tensorflow.keras.layers import Dense, LSTM, Conv1D, Input, concatenate, Dropout, BatchNormalization, GlobalAveragePooling1D, Bidirectional, TimeDistributed, Attention, MultiHeadAttention\n",
+ "from sklearn.preprocessing import StandardScaler\n",
"import tensorflow_addons as tfa\n",
- "from tensorflow.keras.models import Model\n",
- "from tensorflow.keras.regularizers import l2\n",
- "from tensorflow.keras.optimizers import Adam\n",
- "from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau, ModelCheckpoint\n",
"from datetime import datetime\n",
"import os\n",
- "import json\n",
"import joblib\n",
"import re\n",
- "import pyarrow as pa\n",
- "import pyarrow.parquet as pq\n",
- "from tqdm import tqdm\n",
- "from concurrent.futures import ProcessPoolExecutor, as_completed\n",
- "from functools import partial\n",
- "import psutil\n",
- "import multiprocessing\n",
- "from typing import List, Dict\n",
+ "from typing import List\n",
"\n",
- "random_state_value = 42\n",
+ "random_state_value = None\n",
"execute_name = datetime.now().strftime(\"%Y-%m-%d_%H-%M\")\n",
"\n",
"base_project_dir = './'\n",
- "data_dir = '../sources/'\n",
+ "data_dir = '../../sources/'\n",
"models_project_dir = base_project_dir\n",
"\n",
"os.makedirs(base_project_dir, exist_ok=True)\n",
@@ -823,16 +806,18 @@
"\n",
" # Split dei dati (usando indici casuali per una migliore distribuzione)\n",
" indices = np.random.permutation(len(X_temporal))\n",
- " #train_idx = int(len(indices) * 0.7)\n",
- " #val_idx = int(len(indices) * 0.85)\n",
"\n",
- " train_idx = int(len(indices) * 0.65) # 65% training\n",
- " val_idx = int(len(indices) * 0.85) # 20% validation\n",
+ " #train_idx = int(len(indices) * 0.7) # 70% training\n",
+ " #val_idx = int(len(indices) * 0.85) # 15% validation\n",
" # Il resto rimane 15% test\n",
"\n",
- " # Oppure versione con 25% validation:\n",
- " #train_idx = int(len(indices) * 0.60) # 60% training\n",
- " #val_idx = int(len(indices) * 0.85) # 25% validation\n",
+ " train_idx = int(len(indices) * 0.65) # 65% training\n",
+ " val_idx = int(len(indices) * 0.85) # 20% validation\n",
+ " # Il resto rimane 15% test\n",
+ "\n",
+ " #train_idx = int(len(indices) * 0.60) # 60% training\n",
+ " #val_idx = int(len(indices) * 0.85) # 25% validation\n",
+ " # Il resto rimane 15% test\n",
"\n",
" train_indices = indices[:train_idx]\n",
" val_indices = indices[train_idx:val_idx]\n",
diff --git a/src/models/solarenergy/solarenergy_model.ipynb b/src/models/solarenergy/solarenergy_model.ipynb
index b91baef..5545abb 100755
--- a/src/models/solarenergy/solarenergy_model.ipynb
+++ b/src/models/solarenergy/solarenergy_model.ipynb
@@ -5,7 +5,6 @@
"id": "8adcbe0819b88578",
"metadata": {},
"source": [
- "'''\n",
"from opt_einsum.paths import branch_1\n",
"!apt-get update\n",
"!apt-get install graphviz -y\n",
@@ -25,8 +24,7 @@
"!pip install tqdm\n",
"!pip install pydot\n",
"!pip install tensorflow-io\n",
- "!pip install tensorflow-addons\n",
- "'''"
+ "!pip install tensorflow-addons\n"
],
"outputs": [],
"execution_count": null
@@ -43,14 +41,12 @@
"import pandas as pd\n",
"import numpy as np\n",
"from sklearn.model_selection import train_test_split\n",
- "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n",
- "from sklearn.preprocessing import StandardScaler\n",
+ "from sklearn.preprocessing import RobustScaler\n",
"from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau\n",
"from tensorflow.keras.optimizers import AdamW\n",
"import json\n",
"from datetime import datetime\n",
"import matplotlib.pyplot as plt\n",
- "from sklearn.metrics import confusion_matrix\n",
"from tensorflow.keras.utils import plot_model\n",
"import tensorflow_addons as tfa\n",
"\n",
@@ -119,200 +115,148 @@
"\n",
"\n",
"def add_solar_features(df):\n",
- " # Calcolo dell'angolo solare\n",
- " df['solar_angle'] = np.sin(df['day_of_year'] * (2 * np.pi / 365.25)) * np.sin(df['hour'] * (2 * np.pi / 24))\n",
+ " # Features based only on radiation and other available variables\n",
+ " df['solar_elevation'] = np.sin(df['day_of_year'] * (2 * np.pi / 365.25)) * np.sin(df['hour'] * (2 * np.pi / 24))\n",
"\n",
- " # Interazioni tra features rilevanti\n",
- " df['cloud_temp_interaction'] = df['cloudcover'] * df['temp']\n",
- " df['visibility_cloud_interaction'] = df['visibility'] * (100 - df['cloudcover'])\n",
+ " # Radiation-specific features\n",
+ " df['radiation_clearsky'] = df['solarradiation'] * (100 - df['cloudcover']) / 100\n",
"\n",
- " # Feature derivate\n",
+ " # Temperature impact on theoretical efficiency\n",
+ " df['temp_efficiency_factor'] = 1 - 0.004 * (df['temp'] - 25) # Typical temperature coefficient\n",
+ "\n",
+ " # Combined features\n",
+ " df['cloud_impact'] = df['cloudcover'] * df['solarradiation']\n",
+ " df['visibility_radiation'] = df['visibility'] * df['solarradiation']\n",
" df['clear_sky_index'] = (100 - df['cloudcover']) / 100\n",
- " df['temp_gradient'] = df['temp'] - df['tempmin']\n",
+ " df['temp_effect'] = df['temp'] - df['tempmin']\n",
"\n",
" return df\n",
"\n",
- "\n",
"def add_solar_specific_features(df):\n",
- " # Angolo solare e durata del giorno\n",
+ " # Solar position and theoretical calculations\n",
" df['day_length'] = 12 + 3 * np.sin(2 * np.pi * (df['day_of_year'] - 81) / 365.25)\n",
- " df['solar_noon'] = 12 - df['hour']\n",
- " df['solar_elevation'] = np.sin(2 * np.pi * df['day_of_year'] / 365.25) * np.cos(2 * np.pi * df['solar_noon'] / 24)\n",
+ " df['solar_noon_distance'] = np.abs(12 - df['hour'])\n",
+ " df['solar_potential'] = df['clear_sky_index'] * np.cos(df['solar_noon_distance'] * np.pi / 12)\n",
"\n",
- " # Interazioni\n",
- " df['cloud_elevation'] = df['cloudcover'] * df['solar_elevation']\n",
- " df['visibility_elevation'] = df['visibility'] * df['solar_elevation']\n",
+ " # Rolling features for radiation\n",
+ " windows = [3, 6, 12]\n",
+ " for w in windows:\n",
+ " df[f'radiation_rolling_{w}h'] = df['solarradiation'].rolling(window=w).mean()\n",
"\n",
- " # Rolling features con finestre più ampie\n",
- " df['cloud_rolling_12h'] = df['cloudcover'].rolling(window=12).mean()\n",
- " df['temp_rolling_12h'] = df['temp'].rolling(window=12).mean()\n",
+ " # Theoretical radiation features\n",
+ " df['theoretical_radiation'] = df['solarradiation'] / (df['clear_sky_index'] + 1e-6)\n",
"\n",
" return df\n",
"\n",
- "\n",
"def add_radiation_energy_features(df):\n",
- " \"\"\"Aggiunge feature specifiche basate su solarenergy e uvindex\"\"\"\n",
- "\n",
- " # Rapporto tra energia solare e UV (indipendente da solarradiation)\n",
- " df['energy_uv_ratio'] = df['solarenergy'] / (df['uvindex'] + 1e-6)\n",
- "\n",
- " # Aggregazioni temporali\n",
- " # Medie mobili\n",
- " windows = [3, 6, 12, 24] # ore\n",
+ " # Features based only on radiation\n",
+ " windows = [3, 6, 12]\n",
" for w in windows:\n",
- " df[f'energy_rolling_mean_{w}h'] = df['solarenergy'].rolling(window=w).mean()\n",
- " df[f'uv_rolling_mean_{w}h'] = df['uvindex'].rolling(window=w).mean()\n",
+ " # Radiation features\n",
+ " df[f'radiation_rolling_mean_{w}h'] = df['solarradiation'].rolling(window=w).mean()\n",
+ " df[f'radiation_rolling_std_{w}h'] = df['solarradiation'].rolling(window=w).std()\n",
"\n",
- " # Aggregazioni giornaliere\n",
- " df['energy_daily_sum'] = df.groupby(df.index.date)['solarenergy'].transform('sum')\n",
- " df['uv_daily_max'] = df.groupby(df.index.date)['uvindex'].transform('max')\n",
+ " # Daily aggregations for radiation\n",
+ " df['radiation_daily_sum'] = df.groupby(df.index.date)['solarradiation'].transform('sum')\n",
+ " df['radiation_daily_max'] = df.groupby(df.index.date)['solarradiation'].transform('max')\n",
"\n",
- " # Variazioni\n",
- " df['energy_change'] = df['solarenergy'].diff()\n",
- " df['uv_change'] = df['uvindex'].diff()\n",
- "\n",
- " # Lag features\n",
- " lags = [1, 2, 3, 6, 12, 24] # ore\n",
+ " # Lag features for radiation\n",
+ " lags = [1, 2, 3, 6]\n",
" for lag in lags:\n",
- " df[f'energy_lag_{lag}h'] = df['solarenergy'].shift(lag)\n",
- " df[f'uv_lag_{lag}h'] = df['uvindex'].shift(lag)\n",
- "\n",
- " # Indicatori di picco\n",
- " df['is_energy_peak'] = (df['solarenergy'] > df['energy_rolling_mean_6h'] * 1.2).astype(int)\n",
- " df['is_uv_peak'] = (df['uvindex'] > df['uv_rolling_mean_6h'] * 1.2).astype(int)\n",
+ " df[f'radiation_lag_{lag}h'] = df['solarradiation'].shift(lag)\n",
"\n",
" return df\n",
"\n",
- "\n",
"def add_advanced_features(df):\n",
- " # Features esistenti\n",
" df = add_time_features(df)\n",
" df = add_solar_features(df)\n",
" df = add_solar_specific_features(df)\n",
" df = add_radiation_energy_features(df)\n",
"\n",
- " if not isinstance(df.index, pd.DatetimeIndex):\n",
- " df.index = pd.to_datetime(df.index)\n",
- "\n",
- " # One-hot encoding per le feature categoriche\n",
" df = pd.get_dummies(df, columns=['season', 'time_period'])\n",
"\n",
- " # Interazioni tra variabili meteorologiche\n",
- " df['temp_humidity'] = df['temp'] * df['humidity']\n",
- " df['temp_cloudcover'] = df['temp'] * df['cloudcover']\n",
- " df['visibility_cloudcover'] = df['visibility'] * df['cloudcover']\n",
- "\n",
- " # Features derivate per la radiazione solare\n",
- " df['clear_sky_factor'] = (100 - df['cloudcover']) / 100\n",
- " df['day_length'] = np.sin(df['day_of_year_sin']) * 12 + 12 # approssimazione della durata del giorno\n",
- "\n",
- " # Lag features\n",
- " df['temp_1h_lag'] = df['temp'].shift(1)\n",
- " df['cloudcover_1h_lag'] = df['cloudcover'].shift(1)\n",
- " df['humidity_1h_lag'] = df['humidity'].shift(1)\n",
- "\n",
- " # Rolling means\n",
- " df['temp_rolling_mean_6h'] = df['temp'].rolling(window=6).mean()\n",
- " df['cloudcover_rolling_mean_6h'] = df['cloudcover'].rolling(window=6).mean()\n",
- "\n",
" df['temp_humidity_interaction'] = df['temp'] * df['humidity'] / 100\n",
+ " df['radiation_temp_interaction'] = df['solarradiation'] * df['temp_efficiency_factor']\n",
+ " df['radiation_cloud_interaction'] = df['solarradiation'] * (1 - df['cloudcover']/100)\n",
"\n",
- " # Indicatore di condizioni estreme\n",
- " df['extreme_conditions'] = ((df['temp'] > df['temp'].quantile(0.75)) & (df['humidity'] < df['humidity'].quantile(0.25))).astype(int)\n",
- "\n",
- " # Feature composite per la trasparenza atmosferica\n",
- " df['atmospheric_transparency'] = (100 - df['cloudcover']) * (df['visibility'] / 10)\n",
- "\n",
- " # Indicatori temporali più granulari per mezze stagioni\n",
- " df['is_transition_season'] = ((df['season_Spring'] | df['season_Autumn'])).astype(int)\n",
- "\n",
- " # Interazione tra angolo solare e copertura nuvolosa normalizzata\n",
- " df['solar_cloud_effect'] = df['solar_elevation'] * (100 - df['cloudcover']) / 100\n",
- "\n",
- " # Indicatore di stabilità atmosferica\n",
- " df['pressure_stability'] = df.groupby(df.index.date if isinstance(df.index, pd.DatetimeIndex)\n",
- " else df.index.to_series().dt.date)['pressure'].transform(\n",
- " lambda x: x.std()\n",
- " ).fillna(0)\n",
+ " # Theoretical maximum based on clear sky conditions\n",
+ " df['theoretical_max_radiation'] = df['solarradiation'] / (df['clear_sky_index'] + 1e-6)\n",
"\n",
" return df\n",
"\n",
"\n",
"def prepare_advanced_data(df):\n",
- " # Applicazione delle funzioni di feature engineering\n",
+ " # Apply feature engineering functions\n",
" df = add_advanced_features(df)\n",
"\n",
" target_variables = ['solarradiation', 'solarenergy', 'uvindex']\n",
"\n",
- " # Feature selection aggiornata (senza dipendenze da solarradiation)\n",
" selected_features = [\n",
- " # Features meteorologiche base\n",
- " 'temp', 'humidity', 'cloudcover', 'visibility', 'pressure',\n",
+ " # Weather features\n",
+ " 'temp', 'humidity', 'cloudcover', 'visibility',\n",
+ " 'temp_effect',\n",
"\n",
- " # Features solari\n",
- " 'zenith_angle', 'air_mass', 'atmospheric_transmission',\n",
- " 'cloud_transmission', 'theoretical_radiation',\n",
+ " # Solar radiation features\n",
+ " 'solarradiation',\n",
+ " 'radiation_clearsky',\n",
+ " 'radiation_rolling_mean_3h',\n",
+ " 'radiation_rolling_mean_6h',\n",
+ " 'radiation_daily_sum',\n",
+ " 'radiation_daily_max',\n",
+ " 'radiation_lag_1h',\n",
+ " 'radiation_lag_3h',\n",
"\n",
- " # Features temporali\n",
- " 'hour_sin', 'hour_cos', 'month_sin', 'month_cos',\n",
+ " # Temperature efficiency\n",
+ " 'temp_efficiency_factor',\n",
+ "\n",
+ " # Time features\n",
+ " 'hour_sin', 'hour_cos',\n",
+ " 'month_sin', 'month_cos',\n",
" 'day_of_year_sin', 'day_of_year_cos',\n",
"\n",
- " # Features atmosferiche\n",
- " 'clear_sky_index', 'humidity_factor', 'atmospheric_clarity',\n",
- " 'vapor_pressure',\n",
+ " # Solar position and potential\n",
+ " 'solar_elevation',\n",
+ " 'solar_potential',\n",
+ " 'day_length',\n",
+ " 'solar_noon_distance',\n",
"\n",
- " # Feature energia solare e UV\n",
- " 'energy_uv_ratio',\n",
+ " # Clear sky and theoretical features\n",
+ " 'clear_sky_index',\n",
+ " 'theoretical_max_radiation',\n",
"\n",
- " # Medie mobili\n",
- " 'energy_rolling_mean_3h', 'energy_rolling_mean_6h',\n",
- " 'uv_rolling_mean_3h', 'uv_rolling_mean_6h',\n",
- "\n",
- " # Aggregazioni giornaliere\n",
- " 'energy_daily_sum', 'uv_daily_max',\n",
- "\n",
- " # Lag features principali\n",
- " 'energy_lag_1h', 'energy_lag_3h', 'energy_lag_6h',\n",
- " 'uv_lag_1h', 'uv_lag_3h',\n",
- "\n",
- " # Indicatori di picco e volatilità\n",
- " 'is_energy_peak', 'is_uv_peak',\n",
- " 'energy_volatility', 'uv_volatility',\n",
- "\n",
- " # Indici compositi\n",
- " 'solar_intensity_index',\n",
- "\n",
- " # Interazioni\n",
- " 'uv_cloud_interaction',\n",
- " 'energy_temp_interaction'\n",
+ " # Interaction features\n",
+ " 'radiation_temp_interaction',\n",
+ " 'radiation_cloud_interaction',\n",
+ " 'temp_humidity_interaction',\n",
+ " 'visibility_radiation'\n",
" ]\n",
"\n",
- " # Aggiungi colonne one-hot\n",
+ " # Add one-hot columns\n",
" categorical_columns = [col for col in df.columns if col.startswith(('season_', 'time_period_'))]\n",
" final_features = selected_features + categorical_columns\n",
"\n",
- " # Preparazione del dataset\n",
+ " # Dataset preparation\n",
" df = df.sort_values('datetime')\n",
" df.set_index('datetime', inplace=True)\n",
"\n",
- " # Gestione valori mancanti\n",
+ " # Handle missing values\n",
" for column in final_features + target_variables:\n",
" df[column] = df[column].interpolate(method='time')\n",
" df.fillna(0, inplace=True)\n",
"\n",
- " # Split temporale\n",
+ " # Temporal split\n",
" data_after_2010 = df[df['year'] >= 2010].copy()\n",
" data_before_2010 = df[df['year'] < 2010].copy()\n",
"\n",
" X = data_after_2010[final_features]\n",
- " y = data_after_2010['solarradiation']\n",
+ " y = data_after_2010['solarenergy']\n",
" X_to_predict = data_before_2010[final_features]\n",
"\n",
" # Train-test split\n",
" X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=random_state_value)\n",
"\n",
" # Scaling\n",
- " scaler = StandardScaler()\n",
+ " scaler = RobustScaler()\n",
" X_train_scaled = scaler.fit_transform(X_train)\n",
" X_test_scaled = scaler.transform(X_test)\n",
" X_to_predict_scaled = scaler.transform(X_to_predict)\n",
@@ -322,8 +266,8 @@
"\n",
"def create_sequence_data(X, sequence_length=24):\n",
" \"\"\"\n",
- " Converte i dati in sequenze per l'input LSTM\n",
- " sequence_length rappresenta quante ore precedenti considerare\n",
+ " Converts data into sequences for LSTM input\n",
+ " sequence_length represents how many previous hours to consider\n",
" \"\"\"\n",
" sequences = []\n",
" for i in range(len(X) - sequence_length + 1):\n",
@@ -334,13 +278,13 @@
"def prepare_hybrid_data(df):\n",
" X_train_scaled, X_test_scaled, y_train, y_test, scaler, features, X_to_predict_scaled = prepare_advanced_data(df)\n",
"\n",
- " # Convertiamo i dati in sequenze\n",
- " sequence_length = 24 # 24 ore di dati storici\n",
+ " # Convert data into sequences\n",
+ " sequence_length = 24 # 24 hours of historical data\n",
"\n",
" X_train_seq = create_sequence_data(X_train_scaled, sequence_length)\n",
" X_test_seq = create_sequence_data(X_test_scaled, sequence_length)\n",
"\n",
- " # Adattiamo le y rimuovendo i primi (sequence_length-1) elementi\n",
+ " # Adjust y by removing the first (sequence_length-1) elements\n",
" y_train = y_train[sequence_length - 1:]\n",
" y_test = y_test[sequence_length - 1:]\n",
"\n",
@@ -357,42 +301,63 @@
"metadata": {},
"source": [
"def create_residual_lstm_layer(x, units, dropout_rate, l2_reg=0.01, return_sequences=True, survival_probability=0.8):\n",
+ " \"\"\"\n",
+ " Creates a residual LSTM layer with bidirectional processing, normalization, and dropout\n",
+ " Parameters:\n",
+ " x: input tensor\n",
+ " units: number of LSTM units\n",
+ " dropout_rate: dropout probability\n",
+ " l2_reg: L2 regularization factor\n",
+ " return_sequences: whether to return sequences or just the final output\n",
+ " survival_probability: probability of layer survival for stochastic depth\n",
+ " \"\"\"\n",
" residual = x\n",
" x = Bidirectional(LSTM(units, return_sequences=return_sequences, kernel_regularizer=regularizers.l2(l2_reg)))(x)\n",
" x = LayerNormalization()(x)\n",
" x = Dropout(dropout_rate)(x)\n",
"\n",
" if return_sequences:\n",
+ " # Adjust residual dimensions if needed\n",
" if int(residual.shape[-1]) != 2 * units:\n",
" residual = Dense(2 * units, activation='linear')(residual)\n",
" x = tfa.layers.StochasticDepth(survival_probability)([x, residual])\n",
" return x\n",
"\n",
"def attention_block(x, units, num_heads=8, survival_probability=0.8):\n",
+ " \"\"\"\n",
+ " Creates an attention block with multi-head attention and layer normalization\n",
+ " Parameters:\n",
+ " x: input tensor\n",
+ " units: dimensionality of the attention layer\n",
+ " num_heads: number of attention heads\n",
+ " survival_probability: probability of layer survival for stochastic depth\n",
+ " \"\"\"\n",
" attention = MultiHeadAttention(num_heads=num_heads, key_dim=units)(x, x)\n",
" x = tfa.layers.StochasticDepth(survival_probability)([x, attention])\n",
" x = LayerNormalization()(x)\n",
" return x\n",
"\n",
"def create_solarradiation_model(input_shape, folder_name, l2_lambda=0.005):\n",
+ " \"\"\"\n",
+ " Creates a deep learning model for solar radiation prediction\n",
+ " Parameters:\n",
+ " input_shape: shape of input data\n",
+ " folder_name: directory to save model architecture visualization\n",
+ " l2_lambda: L2 regularization factor\n",
+ " \"\"\"\n",
" inputs = Input(shape=input_shape)\n",
"\n",
- " # Progressive survival probabilities\n",
- " survival_probs = [0.9, 0.8, 0.7]\n",
- " attention_survival_probs = [0.85, 0.75, 0.65]\n",
+ " # Define progressive hyperparameters for model depth\n",
+ " survival_probs = [0.9, 0.8, 0.7] # Decreasing survival probabilities\n",
+ " attention_survival_probs = [0.85, 0.75, 0.65] # Decreasing attention survival probabilities\n",
+ " lstm_units = [256, 128, 64] # Decreasing LSTM units\n",
+ " dropout_rates = [0.4, 0.3, 0.2] # Decreasing dropout rates\n",
+ " attention_heads = [32, 24, 16] # Decreasing attention heads\n",
"\n",
- " # Progressive units for LSTM layers\n",
- " lstm_units = [256, 128, 64]\n",
- "\n",
- " # Progressive dropout rates\n",
- " dropout_rates = [0.4, 0.3, 0.2]\n",
- "\n",
- " # Number of attention heads for each block\n",
- " attention_heads = [32, 24, 16]\n",
- "\n",
- " # LSTM layers with attention blocks\n",
+ " # Build LSTM layers with attention blocks\n",
" x = inputs\n",
" for i in range(3):\n",
+ " # Add residual LSTM layer\n",
" x = create_residual_lstm_layer(\n",
" x,\n",
" units=lstm_units[i],\n",
@@ -401,6 +366,7 @@
" return_sequences=True,\n",
" survival_probability=survival_probs[i]\n",
" )\n",
+ " # Add attention block\n",
" x = attention_block(\n",
" x,\n",
" units=lstm_units[i],\n",
@@ -410,17 +376,17 @@
" if i < 2: # No pooling after last LSTM layer\n",
" x = MaxPooling1D()(x)\n",
"\n",
- " # Final LSTM layer without return sequences\n",
+ " # Final LSTM layer for sequence aggregation\n",
" x = create_residual_lstm_layer(\n",
" x,\n",
" units=32,\n",
" dropout_rate=0.1,\n",
" l2_reg=l2_lambda,\n",
" return_sequences=False,\n",
- " survival_probability=0.6 # Lowest survival probability for final layer\n",
+ " survival_probability=0.6\n",
" )\n",
"\n",
- " # Dense layers with progressive narrowing\n",
+ " # Dense layers for final prediction\n",
" dense_units = [64, 32]\n",
" dense_dropout = [0.2, 0.1]\n",
"\n",
@@ -430,12 +396,13 @@
" x = Activation('swish')(x)\n",
" x = Dropout(dropout)(x)\n",
"\n",
- " # Output layer\n",
+ " # Output layer with value clipping\n",
" outputs = Dense(1)(x)\n",
" outputs = Lambda(lambda x: tf.clip_by_value(x, 0, 1500))(outputs)\n",
"\n",
" model = Model(inputs=inputs, outputs=outputs, name=\"SolarRadiationModel\")\n",
"\n",
+ " # Configure optimizer with weight decay\n",
" optimizer = AdamW(\n",
" learning_rate=0.0003,\n",
" beta_1=0.9,\n",
@@ -444,20 +411,24 @@
" weight_decay=0.001\n",
" )\n",
"\n",
- " # Custom metrics\n",
+ " # Custom evaluation metrics\n",
" def rmse(y_true, y_pred):\n",
+ " \"\"\"Root Mean Square Error\"\"\"\n",
" return tf.sqrt(tf.reduce_mean(tf.square(y_true - y_pred)))\n",
"\n",
" def mape(y_true, y_pred):\n",
+ " \"\"\"Mean Absolute Percentage Error\"\"\"\n",
" epsilon = 1e-7\n",
" return tf.reduce_mean(tf.abs((y_true - y_pred) / (y_true + epsilon))) * 100\n",
"\n",
- " # Hybrid loss combining MSE and MAE\n",
+ " # Combined loss function\n",
" def hybrid_loss(y_true, y_pred):\n",
+ " \"\"\"Weighted combination of MSE and MAE\"\"\"\n",
" mse = tf.reduce_mean(tf.square(y_true - y_pred))\n",
" mae = tf.reduce_mean(tf.abs(y_true - y_pred))\n",
" return 0.7 * mse + 0.3 * mae\n",
"\n",
+ " # Compile model with custom loss and metrics\n",
" model.compile(\n",
" optimizer=optimizer,\n",
" loss=hybrid_loss,\n",
@@ -469,6 +440,7 @@
" )\n",
" model.summary()\n",
"\n",
+ " # Save model architecture visualization\n",
" plot_model(model,\n",
" to_file=f'{folder_name}_model_architecture.png',\n",
" show_shapes=True,\n",
@@ -479,92 +451,98 @@
" return model\n",
"\n",
"\n",
- "def evaluate_solarradiation_predictions(y_true, y_pred, folder_name=None):\n",
+ "def evaluate_solarenergy_predictions(y_true, y_pred, hour=None, folder_name=None):\n",
" \"\"\"\n",
- " Valutazione specifica per la radiazione solare con metriche appropriate\n",
+ " Comprehensive evaluation of solar energy predictions with detailed analysis and visualizations\n",
"\n",
" Parameters:\n",
" -----------\n",
" y_true : array-like\n",
- " Valori reali della radiazione solare (W/m²)\n",
+ " Actual solar energy values (kWh)\n",
" y_pred : array-like\n",
- " Valori predetti della radiazione solare (W/m²)\n",
+ " Predicted solar energy values (kWh)\n",
+ " hour : array-like, optional\n",
+ " Array of hours corresponding to predictions, for temporal analysis\n",
" folder_name : str, optional\n",
- " Cartella dove salvare eventuali plot di analisi\n",
+ " Folder to save analysis plots\n",
"\n",
" Returns:\n",
" --------\n",
" dict\n",
- " Dizionario contenente tutte le metriche calcolate\n",
+ " Dictionary containing all calculated metrics\n",
" \"\"\"\n",
" import os\n",
" from datetime import datetime\n",
" import numpy as np\n",
" import pandas as pd\n",
" import matplotlib.pyplot as plt\n",
- " from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
+ " import seaborn as sns\n",
+ " from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score, confusion_matrix\n",
"\n",
+ " # Data conversion and preparation\n",
" y_true = np.array(y_true).ravel()\n",
" y_pred = np.array(y_pred).ravel()\n",
+ " errors = y_pred - y_true\n",
"\n",
- " # Calcolo metriche sui valori raw\n",
+ " # Basic metrics\n",
" mae_raw = mean_absolute_error(y_true, y_pred)\n",
" rmse_raw = np.sqrt(mean_squared_error(y_true, y_pred))\n",
" r2_raw = r2_score(y_true, y_pred)\n",
- "\n",
- " # Calcolo MAPE (Mean Absolute Percentage Error)\n",
" mape = np.mean(np.abs((y_true - y_pred) / (y_true + 1e-7))) * 100\n",
"\n",
- " # Calcolo accuratezza per diversi margini di errore percentuale\n",
+ " # Accuracy for error margins\n",
" within_5_percent = np.mean(np.abs((y_pred - y_true) / (y_true + 1e-7)) <= 0.05)\n",
" within_10_percent = np.mean(np.abs((y_pred - y_true) / (y_true + 1e-7)) <= 0.10)\n",
" within_20_percent = np.mean(np.abs((y_pred - y_true) / (y_true + 1e-7)) <= 0.20)\n",
"\n",
- " # Definizione dei livelli di radiazione solare (W/m²)\n",
- " def get_radiation_level(value):\n",
- " if value <= 200:\n",
+ " # Define solar energy levels\n",
+ " def get_energy_level(value):\n",
+ " if value <= 0.5:\n",
" return 'Very Low'\n",
- " elif value <= 400:\n",
+ " elif value <= 2.0:\n",
" return 'Low'\n",
- " elif value <= 600:\n",
+ " elif value <= 4.0:\n",
" return 'Moderate'\n",
- " elif value <= 800:\n",
+ " elif value <= 6.0:\n",
" return 'High'\n",
- " elif value <= 1000:\n",
+ " elif value <= 8.0:\n",
" return 'Very High'\n",
" else:\n",
" return 'Extreme'\n",
"\n",
- " # Calcola livelli di radiazione\n",
- " y_true_levels = [get_radiation_level(v) for v in y_true]\n",
- " y_pred_levels = [get_radiation_level(v) for v in y_pred]\n",
- "\n",
- " # Calcola accuracy dei livelli\n",
+ " # Calculate levels\n",
+ " y_true_levels = [get_energy_level(v) for v in y_true]\n",
+ " y_pred_levels = [get_energy_level(v) for v in y_pred]\n",
" level_accuracy = np.mean([t == p for t, p in zip(y_true_levels, y_pred_levels)])\n",
"\n",
- " print(\"\\nSolar Radiation Prediction Metrics:\")\n",
+ " # Print main metrics\n",
+ " print(\"\\nSolar Energy Prediction Metrics:\")\n",
" print(\"\\nAbsolute Metrics:\")\n",
- " print(f\"MAE: {mae_raw:.2f} W/m²\")\n",
- " print(f\"RMSE: {rmse_raw:.2f} W/m²\")\n",
+ " print(f\"MAE: {mae_raw:.4f} kWh\")\n",
+ " print(f\"RMSE: {rmse_raw:.4f} kWh\")\n",
" print(f\"R² Score: {r2_raw:.3f}\")\n",
" print(f\"MAPE: {mape:.2f}%\")\n",
"\n",
- " print(\"\\nPercentage-based Accuracy:\")\n",
- " print(f\"Within ±5%: {within_5_percent:.3f}\")\n",
- " print(f\"Within ±10%: {within_10_percent:.3f}\")\n",
- " print(f\"Within ±20%: {within_20_percent:.3f}\")\n",
+ " print(\"\\nPercentage Accuracy:\")\n",
+ " print(f\"Within ±5%: {within_5_percent*100:.1f}%\")\n",
+ " print(f\"Within ±10%: {within_10_percent*100:.1f}%\")\n",
+ " print(f\"Within ±20%: {within_20_percent*100:.1f}%\")\n",
"\n",
- " print(\"\\nRadiation Level Accuracy:\")\n",
- " print(f\"Level Accuracy: {level_accuracy:.3f}\")\n",
+ " print(\"\\nLevel Accuracy:\")\n",
+ " print(f\"Level Accuracy: {level_accuracy*100:.1f}%\")\n",
"\n",
- " print(\"\\nRadiation Level Confusion Matrix:\")\n",
- " print(pd.crosstab(\n",
- " pd.Series(y_true_levels, name='Actual'),\n",
- " pd.Series(y_pred_levels, name='Predicted')\n",
- " ))\n",
+ " # Confusion matrix for levels\n",
+ " cm = confusion_matrix(y_true_levels, y_pred_levels)\n",
+ " print(\"\\nConfusion Matrix for Levels:\")\n",
+ " cm_df = pd.DataFrame(\n",
+ " cm,\n",
+ " columns=['Very Low', 'Low', 'Moderate', 'High', 'Very High', 'Extreme'],\n",
+ " index=['Very Low', 'Low', 'Moderate', 'High', 'Very High', 'Extreme']\n",
+ " )\n",
+ " print(cm_df)\n",
"\n",
- " # Analisi degli errori per diverse fasce orarie\n",
- " if 'hour' in locals():\n",
+ " # Analysis by time periods\n",
+ " if hour is not None:\n",
" day_periods = {\n",
" 'Morning (5-11)': (5, 11),\n",
" 'Noon (11-13)': (11, 13),\n",
@@ -573,81 +551,118 @@
" 'Night (21-5)': (21, 5)\n",
" }\n",
"\n",
- " print(\"\\nError Analysis by Time of Day:\")\n",
+ " print(\"\\nAnalysis by Time Period:\")\n",
" for period, (start, end) in day_periods.items():\n",
" if start < end:\n",
" mask = (hour >= start) & (hour < end)\n",
- " else: # Per gestire il periodo notturno\n",
+ " else:\n",
" mask = (hour >= start) | (hour < end)\n",
"\n",
- " period_mae = mean_absolute_error(y_true[mask], y_pred[mask])\n",
- " period_mape = np.mean(np.abs((y_true[mask] - y_pred[mask]) / (y_true[mask] + 1e-7))) * 100\n",
- " print(f\"\\n{period}:\")\n",
- " print(f\"MAE: {period_mae:.2f} W/m²\")\n",
- " print(f\"MAPE: {period_mape:.2f}%\")\n",
+ " if np.any(mask):\n",
+ " period_mae = mean_absolute_error(y_true[mask], y_pred[mask])\n",
+ " period_mape = np.mean(np.abs((y_true[mask] - y_pred[mask]) / (y_true[mask] + 1e-7))) * 100\n",
+ " period_mean = np.mean(y_true[mask])\n",
+ " print(f\"\\n{period}:\")\n",
+ " print(f\"MAE: {period_mae:.4f} kWh\")\n",
+ " print(f\"MAPE: {period_mape:.2f}%\")\n",
+ " print(f\"Mean Energy: {period_mean:.4f} kWh\")\n",
"\n",
- " # Se specificata una cartella, salva i plot di analisi\n",
+ " # Visualizations\n",
" if folder_name is not None:\n",
" try:\n",
" os.makedirs(folder_name, exist_ok=True)\n",
" timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
"\n",
- " plt.figure(figsize=(15, 10))\n",
+ " # Figure 1: Main analysis\n",
+ " plt.figure(figsize=(20, 15))\n",
"\n",
" # Plot 1: Scatter plot\n",
- " plt.subplot(2, 2, 1)\n",
+ " plt.subplot(3, 2, 1)\n",
" plt.scatter(y_true, y_pred, alpha=0.5)\n",
- " plt.plot([0, max(y_true.max(), y_pred.max())],\n",
- " [0, max(y_true.max(), y_pred.max())],\n",
- " 'r--', lw=2)\n",
- " plt.xlabel('Actual Solar Radiation (W/m²)')\n",
- " plt.ylabel('Predicted Solar Radiation (W/m²)')\n",
- " plt.title('Predicted vs Actual Values')\n",
+ " plt.plot([y_true.min(), y_true.max()], [y_true.min(), y_true.max()], 'r--', lw=2)\n",
+ " plt.xlabel('Actual Energy (kWh)')\n",
+ " plt.ylabel('Predicted Energy (kWh)')\n",
+ " plt.title('Actual vs Predicted Values')\n",
" plt.grid(True)\n",
"\n",
- " # Plot 2: Distribuzione errori assoluti\n",
- " plt.subplot(2, 2, 2)\n",
- " plt.hist(y_pred - y_true, bins=50, alpha=0.7)\n",
- " plt.xlabel('Prediction Error (W/m²)')\n",
+ " # Plot 2: Absolute errors distribution\n",
+ " plt.subplot(3, 2, 2)\n",
+ " plt.hist(errors, bins=50, alpha=0.7)\n",
+ " plt.xlabel('Prediction Error (kWh)')\n",
" plt.ylabel('Frequency')\n",
- " plt.title('Distribution of Absolute Errors')\n",
+ " plt.title('Error Distribution')\n",
" plt.grid(True)\n",
"\n",
- " # Plot 3: Distribuzione errori percentuali\n",
- " plt.subplot(2, 2, 3)\n",
+ " # Plot 3: Percentage errors distribution\n",
+ " plt.subplot(3, 2, 3)\n",
" percentage_errors = ((y_pred - y_true) / (y_true + 1e-7)) * 100\n",
" plt.hist(np.clip(percentage_errors, -100, 100), bins=50, alpha=0.7)\n",
" plt.xlabel('Percentage Error (%)')\n",
" plt.ylabel('Frequency')\n",
- " plt.title('Distribution of Percentage Errors')\n",
+ " plt.title('Percentage Error Distribution')\n",
" plt.grid(True)\n",
"\n",
- " # Plot 4: Box plot degli errori per livello di radiazione\n",
- " plt.subplot(2, 2, 4)\n",
- " errors_by_level = pd.DataFrame({\n",
- " 'Level': y_true_levels,\n",
- " 'Error': y_pred - y_true\n",
- " })\n",
- " errors_by_level.boxplot(column='Error', by='Level', figsize=(10, 6))\n",
- " plt.xlabel('Actual Radiation Level')\n",
- " plt.ylabel('Prediction Error (W/m²)')\n",
- " plt.title('Error Distribution by Radiation Level')\n",
- " plt.xticks(rotation=45)\n",
+ " # Plot 4: Errors vs Actual Values\n",
+ " plt.subplot(3, 2, 4)\n",
+ " plt.scatter(y_true, errors, alpha=0.5)\n",
+ " plt.axhline(y=0, color='r', linestyle='--')\n",
+ " plt.xlabel('Actual Energy (kWh)')\n",
+ " plt.ylabel('Error (kWh)')\n",
+ " plt.title('Errors vs Actual Values')\n",
" plt.grid(True)\n",
"\n",
+ " # Plot 5: Box plot errors by level\n",
+ " plt.subplot(3, 2, 5)\n",
+ " sns.boxplot(x=[get_energy_level(v) for v in y_true], y=errors)\n",
+ " plt.xticks(rotation=45)\n",
+ " plt.xlabel('Energy Level')\n",
+ " plt.ylabel('Error (kWh)')\n",
+ " plt.title('Error Distribution by Level')\n",
+ "\n",
+ " # Plot 6: Confusion matrix\n",
+ " plt.subplot(3, 2, 6)\n",
+ " sns.heatmap(cm_df, annot=True, fmt='d', cmap='Blues')\n",
+ " plt.title('Confusion Matrix')\n",
+ " plt.xticks(rotation=45)\n",
+ " plt.yticks(rotation=45)\n",
+ "\n",
" plt.tight_layout()\n",
- "\n",
- " # Salva il plot\n",
- " filename = os.path.join(folder_name, f'solar_radiation_analysis_{timestamp}.png')\n",
+ " filename = os.path.join(folder_name, f'solar_energy_analysis_{timestamp}.png')\n",
" plt.savefig(filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"\\nPlot di analisi salvato come: {filename}\")\n",
+ " print(f\"\\nPlot saved as: {filename}\")\n",
+ " plt.close()\n",
"\n",
- " plt.show()\n",
+ " # Additional plot for temporal analysis if hour is available\n",
+ " if hour is not None:\n",
+ " plt.figure(figsize=(15, 8))\n",
+ " plt.scatter(hour, errors, alpha=0.5)\n",
+ " plt.axhline(y=0, color='r', linestyle='--')\n",
+ " plt.xlabel('Hour of Day')\n",
+ " plt.ylabel('Error (kWh)')\n",
+ " plt.title('Error Distribution by Hour of Day')\n",
+ " plt.grid(True)\n",
+ "\n",
+ " filename = os.path.join(folder_name, f'hourly_error_analysis_{timestamp}.png')\n",
+ " plt.savefig(filename, dpi=300, bbox_inches='tight')\n",
+ " plt.close()\n",
"\n",
" except Exception as e:\n",
- " print(f\"\\nErrore nel salvare i plot: {str(e)}\")\n",
+ " print(f\"\\nError saving plots: {str(e)}\")\n",
"\n",
- " # Restituisci tutte le metriche in un dizionario\n",
+ " # Additional metrics\n",
+ " print(\"\\nError Statistics:\")\n",
+ " print(f\"Mean errors: {np.mean(errors):.4f} kWh\")\n",
+ " print(f\"Standard deviation of errors: {np.std(errors):.4f} kWh\")\n",
+ " print(f\"Median error: {np.median(errors):.4f} kWh\")\n",
+ " print(f\"95th percentile absolute error: {np.percentile(np.abs(errors), 95):.4f} kWh\")\n",
+ "\n",
+ " print(\"\\nProduction Statistics:\")\n",
+ " print(f\"Mean actual energy: {np.mean(y_true):.4f} kWh\")\n",
+ " print(f\"Mean predicted energy: {np.mean(y_pred):.4f} kWh\")\n",
+ " print(f\"Maximum actual energy: {np.max(y_true):.4f} kWh\")\n",
+ " print(f\"Maximum predicted energy: {np.max(y_pred):.4f} kWh\")\n",
+ "\n",
+ " # Return metrics in structured format\n",
" metrics = {\n",
" 'absolute': {\n",
" 'mae': mae_raw,\n",
@@ -662,6 +677,18 @@
" },\n",
" 'categorical': {\n",
" 'level_accuracy': level_accuracy\n",
+ " },\n",
+ " 'error_stats': {\n",
+ " 'mean': float(np.mean(errors)),\n",
+ " 'std': float(np.std(errors)),\n",
+ " 'median': float(np.median(errors)),\n",
+ " 'p95_abs': float(np.percentile(np.abs(errors), 95))\n",
+ " },\n",
+ " 'production_stats': {\n",
+ " 'mean_true': float(np.mean(y_true)),\n",
+ " 'mean_pred': float(np.mean(y_pred)),\n",
+ " 'max_true': float(np.max(y_true)),\n",
+ " 'max_pred': float(np.max(y_pred))\n",
" }\n",
" }\n",
"\n",
@@ -670,22 +697,22 @@
"\n",
"def plot_training_history(history, folder_name=None):\n",
" \"\"\"\n",
- " Visualizza e salva i plot della loss e delle metriche durante il training\n",
+ " Display and save loss and metrics plots during training\n",
"\n",
" Parameters:\n",
" -----------\n",
" history : tensorflow.keras.callbacks.History\n",
- " L'oggetto history restituito dal training del modello\n",
+ " History object returned by model training\n",
" folder_name : str\n",
- " Cartella dove salvare il plot\n",
+ " Folder to save the plot\n",
" \"\"\"\n",
" import os\n",
"\n",
" try:\n",
- " # Crea la figura\n",
+ " # Create figure\n",
" plt.figure(figsize=(12, 4))\n",
"\n",
- " # Plot della Loss\n",
+ " # Loss Plot\n",
" plt.subplot(1, 2, 1)\n",
" plt.plot(history.history['loss'], label='Training Loss')\n",
" plt.plot(history.history['val_loss'], label='Validation Loss')\n",
@@ -695,7 +722,7 @@
" plt.legend()\n",
" plt.grid(True)\n",
"\n",
- " # Plot del MAE\n",
+ " # MAE Plot\n",
" plt.subplot(1, 2, 2)\n",
" plt.plot(history.history['mae'], label='Training MAE')\n",
" plt.plot(history.history['val_mae'], label='Validation MAE')\n",
@@ -709,14 +736,14 @@
"\n",
" if folder_name is not None:\n",
" os.makedirs(folder_name, exist_ok=True)\n",
- " # Genera il nome del file con timestamp\n",
+ " # Generate filename with timestamp\n",
" filename = os.path.join(folder_name, 'training_history.png')\n",
"\n",
- " # Salva la figura\n",
+ " # Save figure\n",
" plt.savefig(filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"\\nPlot della training history salvato come: {filename}\")\n",
+ " print(f\"\\nTraining history plot saved as: {filename}\")\n",
"\n",
- " # Salva anche i dati numerici in formato CSV\n",
+ " # Save numerical data in CSV format\n",
" history_df = pd.DataFrame({\n",
" 'epoch': range(1, len(history.history['loss']) + 1),\n",
" 'training_loss': history.history['loss'],\n",
@@ -728,9 +755,9 @@
" if folder_name is not None:\n",
" csv_filename = os.path.join(folder_name, 'training_history.csv')\n",
" history_df.to_csv(csv_filename, index=False)\n",
- " print(f\"Dati della training history salvati come: {csv_filename}\")\n",
+ " print(f\"Training history data saved as: {csv_filename}\")\n",
"\n",
- " # Calcola e salva le statistiche finali\n",
+ " # Calculate and save final statistics\n",
" final_stats = {\n",
" 'final_training_loss': history.history['loss'][-1],\n",
" 'final_validation_loss': history.history['val_loss'][-1],\n",
@@ -742,54 +769,54 @@
" }\n",
"\n",
" if folder_name is not None:\n",
- " # Salva le statistiche in formato JSON\n",
+ " # Save statistics in JSON format\n",
" stats_filename = os.path.join(folder_name, 'training_stats.json')\n",
" with open(stats_filename, 'w') as f:\n",
" json.dump(final_stats, f, indent=4)\n",
- " print(f\"Statistiche finali salvate come: {stats_filename}\")\n",
+ " print(f\"Final statistics saved as: {stats_filename}\")\n",
"\n",
- " # Stampa le statistiche principali\n",
- " print(\"\\nStatistiche finali del training:\")\n",
- " print(f\"Loss finale (train/val): {final_stats['final_training_loss']:.4f}/{final_stats['final_validation_loss']:.4f}\")\n",
- " print(f\"MAE finale (train/val): {final_stats['final_training_mae']:.4f}/{final_stats['final_validation_mae']:.4f}\")\n",
- " print(f\"Miglior validation loss: {final_stats['best_validation_loss']:.4f}\")\n",
- " print(f\"Miglior validation MAE: {final_stats['best_validation_mae']:.4f}\")\n",
+ " # Print main statistics\n",
+ " print(\"\\nFinal Training Statistics:\")\n",
+ " print(f\"Final Loss (train/val): {final_stats['final_training_loss']:.4f}/{final_stats['final_validation_loss']:.4f}\")\n",
+ " print(f\"Final MAE (train/val): {final_stats['final_training_mae']:.4f}/{final_stats['final_validation_mae']:.4f}\")\n",
+ " print(f\"Best validation loss: {final_stats['best_validation_loss']:.4f}\")\n",
+ " print(f\"Best validation MAE: {final_stats['best_validation_mae']:.4f}\")\n",
"\n",
" plt.show()\n",
"\n",
" except Exception as e:\n",
- " print(f\"\\nErrore durante la creazione o il salvataggio dei plot: {str(e)}\")\n",
+ " print(f\"\\nError creating or saving plots: {str(e)}\")\n",
"\n",
"\n",
"def train_hybrid_model(model, X_train, y_train, X_test, y_test, epochs=100, batch_size=32, folder_name='solarradiation_index'):\n",
" \"\"\"\n",
- " Funzione di training avanzata per il modello ibrido UV index con monitoraggio dettagliato\n",
- " e gestione del training.\n",
+ " Advanced training function for the hybrid solar energy index model with detailed monitoring\n",
+ " and training management.\n",
"\n",
" Parameters:\n",
" -----------\n",
" model : keras.Model\n",
- " Il modello ibrido compilato\n",
+ " The compiled hybrid model\n",
" X_train : numpy.ndarray\n",
- " Dati di training\n",
+ " Training data\n",
" y_train : numpy.ndarray\n",
- " Target di training\n",
+ " Training targets\n",
" X_test : numpy.ndarray\n",
- " Dati di validation\n",
+ " Validation data\n",
" y_test : numpy.ndarray\n",
- " Target di validation\n",
+ " Validation targets\n",
" epochs : int, optional\n",
- " Numero massimo di epoche di training\n",
+ " Maximum number of training epochs\n",
" batch_size : int, optional\n",
- " Dimensione del batch\n",
+ " Batch size\n",
"\n",
" Returns:\n",
" --------\n",
" history : keras.callbacks.History\n",
- " Storia del training con tutte le metriche\n",
+ " Training history with all metrics\n",
" \"\"\"\n",
"\n",
- " # Callbacks avanzati per il training\n",
+ " # Advanced training callbacks\n",
" callbacks = [\n",
" # Early Stopping\n",
" EarlyStopping(\n",
@@ -800,7 +827,7 @@
" verbose=1,\n",
" min_delta=1e-4\n",
" ),\n",
- " # ReduceLROnPlateau per MAE\n",
+ " # ReduceLROnPlateau for MAE\n",
" ReduceLROnPlateau(\n",
" monitor='mae',\n",
" factor=0.2,\n",
@@ -811,7 +838,7 @@
" cooldown=3,\n",
" min_lr=1e-7\n",
" ),\n",
- " # ReduceLROnPlateau per loss\n",
+ " # ReduceLROnPlateau for loss\n",
" ReduceLROnPlateau(\n",
" monitor='val_loss',\n",
" factor=0.2,\n",
@@ -838,15 +865,15 @@
" update_freq='epoch',\n",
" profile_batch=0\n",
" ),\n",
- " # Lambda Callback per monitoraggio radiazione solare\n",
+ " # Lambda Callback for solar radiation monitoring\n",
" tf.keras.callbacks.LambdaCallback(\n",
" on_epoch_end=lambda epoch, logs: (\n",
" lambda y_pred: print(\n",
" f\"\\nEpoch {epoch + 1}:\"\n",
- " f\"\\nPredizioni fuori range (0-1500 W/m²): \"\n",
+ " f\"\\nPredictions out of range (0-1500 W/m²): \"\n",
" f\"{np.sum((y_pred < 0) | (y_pred > 1500))}\"\n",
" f\"\\nMAPE: {np.mean(np.abs((y_test - y_pred) / (y_test + 1e-7))) * 100:.2f}%\"\n",
- " f\"\\nPredizioni entro ±10%: \"\n",
+ " f\"\\nPredictions within ±10%: \"\n",
" f\"{np.mean(np.abs((y_pred - y_test) / (y_test + 1e-7)) <= 0.10) * 100:.2f}%\"\n",
" )\n",
" )(model.predict(X_test)) if epoch % 20 == 0 else None\n",
@@ -865,142 +892,104 @@
" validation_freq=1,\n",
" )\n",
"\n",
- " # Analisi post-training\n",
- " print(\"\\nTraining completato con successo!\")\n",
+ " # Post-training analysis\n",
+ " print(\"\\nTraining completed successfully!\")\n",
"\n",
- " # Valutazione finale sul test set\n",
+ " # Final evaluation on test set\n",
" test_loss, test_mae, test_mse = model.evaluate(X_test, y_test, verbose=0)\n",
- " print(f\"\\nMetriche finali sul test set:\")\n",
+ " print(f\"\\nFinal metrics on test set:\")\n",
" print(f\"Loss: {test_loss:.4f}\")\n",
" print(f\"MAE: {test_mae:.4f}\")\n",
" print(f\"MSE: {test_mse:.4f}\")\n",
"\n",
- " # Analisi delle predizioni\n",
+ " # Prediction analysis\n",
" predictions = model.predict(X_test)\n",
" out_of_range = np.sum((predictions < 0) | (predictions > 11))\n",
- " print(f\"\\nPredizioni fuori range: {out_of_range} ({out_of_range / len(predictions) * 100:.2f}%)\")\n",
+ " print(f\"\\nPredictions out of range: {out_of_range} ({out_of_range / len(predictions) * 100:.2f}%)\")\n",
"\n",
" plot_training_history(history, folder_name=folder_name)\n",
"\n",
" return history\n",
"\n",
" except Exception as e:\n",
- " print(f\"\\nErrore durante il training: {str(e)}\")\n",
+ " print(f\"\\nError during training: {str(e)}\")\n",
" raise\n",
"\n",
" finally:\n",
- " # Pulizia della memoria\n",
+ " # Memory cleanup\n",
" tf.keras.backend.clear_session()\n",
"\n",
"\n",
- "def calculate_class_weights(y_train, n_classes=12):\n",
- " \"\"\"\n",
- " Calcola i pesi delle classi per bilanciare il dataset UV index.\n",
- " \n",
- " Parameters:\n",
- " -----------\n",
- " y_train : numpy.ndarray\n",
- " Array dei valori UV di training\n",
- " n_classes : int, optional\n",
- " Numero di classi possibili (0-11 per UV index, quindi 12 classi)\n",
- " \n",
- " Returns:\n",
- " --------\n",
- " dict:\n",
- " Dizionario con i pesi per ogni classe\n",
- " \"\"\"\n",
- " # Arrotonda i valori UV al più vicino intero e converti in intero\n",
- " y_discrete = np.clip(np.round(y_train), 0, 11).astype(int)\n",
- "\n",
- " # Calcola la frequenza di ogni classe\n",
- " unique, counts = np.unique(y_discrete, return_counts=True)\n",
- " total_samples = len(y_discrete)\n",
- "\n",
- " # Calcola i pesi inversamente proporzionali alla frequenza\n",
- " weights = {}\n",
- " for i in range(n_classes):\n",
- " if i in unique:\n",
- " # Se la classe è presente, calcola il peso\n",
- " weight = total_samples / (len(unique) * counts[unique == i][0])\n",
- " else:\n",
- " # Se la classe non è presente, assegna un peso neutro\n",
- " weight = 1.0\n",
- " weights[i] = weight\n",
- "\n",
- " return weights\n",
- "\n",
- "\n",
"def integrate_predictions(df, predictions, sequence_length=24):\n",
" \"\"\"\n",
- " Integra le predizioni dell'UV index nel dataset originale per i dati precedenti al 2010.\n",
- " \n",
+ " Integrates solar energy index predictions into the original dataset for data before 2010.\n",
+ "\n",
" Parameters:\n",
" -----------\n",
" df : pandas.DataFrame\n",
- " Dataset originale\n",
+ " Original dataset\n",
" predictions : numpy.ndarray\n",
- " Array delle predizioni UV index\n",
+ " Array of solar energy index predictions\n",
" sequence_length : int\n",
- " Lunghezza della sequenza usata per le predizioni\n",
- " \n",
+ " Sequence length used for predictions\n",
+ "\n",
" Returns:\n",
" --------\n",
" pandas.DataFrame\n",
- " Dataset aggiornato con le predizioni UV index\n",
+ " Updated dataset with solar energy index predictions\n",
" \"\"\"\n",
- " # Converti datetime in formato datetime se non lo è già\n",
+ " # Convert datetime to datetime format if not already\n",
" df['datetime'] = pd.to_datetime(df['datetime'])\n",
"\n",
- " # Identifica le righe precedenti al 2010\n",
+ " # Identify rows before 2010\n",
" mask_pre_2010 = df['datetime'].dt.year < 2010\n",
"\n",
- " # Crea un DataFrame temporaneo con le predizioni\n",
+ " # Create temporary DataFrame with predictions\n",
" dates_pre_2010 = df[mask_pre_2010]['datetime'].iloc[sequence_length - 1:]\n",
" predictions_df = pd.DataFrame({\n",
" 'datetime': dates_pre_2010,\n",
- " 'uvindex_predicted': predictions.flatten()\n",
+ " 'solarenergy_predicted': predictions.flatten()\n",
" })\n",
"\n",
- " # Merge con il dataset originale\n",
+ " # Merge with original dataset\n",
" df = df.merge(predictions_df, on='datetime', how='left')\n",
"\n",
- " # Aggiorna la colonna uvindex dove manca\n",
- " df['uvindex'] = df['uvindex'].fillna(df['uvindex_predicted'])\n",
+ " # Update solarenergy column where missing\n",
+ " df['solarenergy'] = df['solarenergy'].fillna(df['solarenergy_predicted'])\n",
"\n",
- " # Rimuovi la colonna temporanea\n",
- " df = df.drop('uvindex_predicted', axis=1)\n",
+ " # Remove temporary column\n",
+ " df = df.drop('solarenergy_predicted', axis=1)\n",
"\n",
- " print(f\"Aggiunte {len(predictions)} predizioni al dataset\")\n",
- " print(f\"Righe con UV index dopo l'integrazione: {df['uvindex'].notna().sum()}\")\n",
+ " print(f\"Added {len(predictions)} predictions to dataset\")\n",
+ " print(f\"Rows with solar energy index after integration: {df['solarenergy'].notna().sum()}\")\n",
"\n",
" return df\n",
"\n",
"\n",
- "def train_uvindex_bounded_model(df):\n",
+ "def train_solarenergy_bounded_model(df):\n",
" \"\"\"\n",
- " Training del modello con vincoli specifici per UV index\n",
+ " Training of model with specific constraints for solar energy index\n",
" \"\"\"\n",
- " print(\"Inizializzazione del training del modello UV index...\")\n",
+ " print(\"Initializing solar energy index model training...\")\n",
"\n",
" try:\n",
- "\n",
- " # Preparazione dei dati\n",
- " print(\"\\n1. Preparazione dei dati...\")\n",
+ " # Data preparation\n",
+ " print(\"\\n1. Preparing data...\")\n",
" X_train_seq, X_test_seq, y_train, y_test, scaler, features, X_to_predict_seq = prepare_hybrid_data(df)\n",
"\n",
- " print(f\"Shape dei dati di training: {X_train_seq.shape}\")\n",
- " print(f\"Shape dei dati di test: {X_test_seq.shape}\")\n",
+ " print(f\"Training data shape: {X_train_seq.shape}\")\n",
+ " print(f\"Test data shape: {X_test_seq.shape}\")\n",
"\n",
- " # Verifica della qualità dei dati\n",
+ " # Data quality verification\n",
" if np.isnan(X_train_seq).any() or np.isnan(y_train).any():\n",
- " raise ValueError(\"Trovati valori NaN nei dati di training\")\n",
+ " raise ValueError(\"Found NaN values in training data\")\n",
"\n",
- " # Creazione del modello\n",
- " print(\"\\n2. Creazione del modello...\")\n",
+ " # Model creation\n",
+ " print(\"\\n2. Creating model...\")\n",
" input_shape = (X_train_seq.shape[1], X_train_seq.shape[2])\n",
" model = create_solarradiation_model(input_shape, folder_name)\n",
"\n",
- " print(\"\\n4. Avvio del training...\")\n",
+ " print(\"\\n4. Starting training...\")\n",
" history = train_hybrid_model(\n",
" model=model,\n",
" X_train=X_train_seq,\n",
@@ -1012,14 +1001,14 @@
" folder_name=folder_name\n",
" )\n",
"\n",
- " print(\"\\n5. Generazione delle predizioni...\")\n",
+ " print(\"\\n5. Generating predictions...\")\n",
" predictions = model.predict(X_test_seq)\n",
" predictions = np.clip(predictions, 0, 11)\n",
"\n",
- " print(\"\\n6. Valutazione del modello...\")\n",
- " metrics = evaluate_solarradiation_predictions(y_test, predictions, folder_name=folder_name)\n",
+ " print(\"\\n6. Evaluating model...\")\n",
+ " metrics = evaluate_solarenergy_predictions(y_test, predictions, folder_name=folder_name)\n",
"\n",
- " # Creazione del dizionario dei risultati\n",
+ " # Create results dictionary\n",
" training_results = {\n",
" 'model_params': {\n",
" 'input_shape': input_shape,\n",
@@ -1030,7 +1019,6 @@
" 'batch_size': 32,\n",
" 'total_epochs': len(history.history['loss']),\n",
" 'best_epoch': np.argmin(history.history['val_loss']) + 1,\n",
- " #'class_weights': {str(k): float(v) for k, v in class_weights.items()}\n",
" },\n",
" 'performance_metrics': {\n",
" 'final_loss': float(history.history['val_loss'][-1]),\n",
@@ -1040,33 +1028,33 @@
" }\n",
" }\n",
"\n",
- " print(\"\\n7. Predizione dei dati mancanti risultati...\")\n",
+ " print(\"\\n7. Predicting missing data results...\")\n",
" to_predict_predictions = model.predict(X_to_predict_seq)\n",
" to_predict_predictions = np.clip(to_predict_predictions, 0, 11)\n",
"\n",
- " print(\"\\n8. Integrazione delle predizioni nel dataset originale...\")\n",
+ " print(\"\\n8. Integrating predictions into original dataset...\")\n",
" df_updated = integrate_predictions(df.copy(), to_predict_predictions)\n",
"\n",
- " df_updated.to_parquet('./data/weather_data_uvindex.parquet')\n",
+ " df_updated.to_parquet('../../sources/weather_data_complete.parquet')\n",
"\n",
- " # Aggiungi statistiche sulle predizioni al training_results\n",
+ " # Add prediction statistics to training_results\n",
" training_results['prediction_stats'] = {\n",
" 'n_predictions_added': len(to_predict_predictions),\n",
- " 'mean_predicted_uv': float(to_predict_predictions.mean()),\n",
- " 'min_predicted_uv': float(to_predict_predictions.min()),\n",
- " 'max_predicted_uv': float(to_predict_predictions.max()),\n",
+ " 'mean_predicted_solarenergy': float(to_predict_predictions.mean()),\n",
+ " 'min_predicted_solarenergy': float(to_predict_predictions.min()),\n",
+ " 'max_predicted_solarenergy': float(to_predict_predictions.max()),\n",
" }\n",
"\n",
- " print(\"\\nTraining completato con successo!\")\n",
+ " print(\"\\nTraining completed successfully!\")\n",
"\n",
" return model, scaler, features, history, predictions, y_test, metrics, training_results\n",
"\n",
" except Exception as e:\n",
- " print(f\"\\nErrore durante il training: {str(e)}\")\n",
+ " print(f\"\\nError during training: {str(e)}\")\n",
" raise\n",
"\n",
" finally:\n",
- " # Pulizia della memoria\n",
+ " # Memory cleanup\n",
" tf.keras.backend.clear_session()"
],
"outputs": [],
@@ -1077,93 +1065,9 @@
"id": "initial_id",
"metadata": {},
"source": [
- "df = pd.read_parquet('../data/weather_data.parquet')\n",
+ "df = pd.read_parquet('../../sources/weather_data_solarradiation.parquet')\n",
"\n",
- "# Esegui il training\n",
- "model, scaler, features, history, predictions, y_test, metrics, training_results = train_uvindex_bounded_model(df)"
- ],
- "outputs": [],
- "execution_count": null
- },
- {
- "cell_type": "code",
- "id": "637891db-8d55-4232-a56e-9759dbcc8c2f",
- "metadata": {},
- "source": [
- "def analyze_solarradiation_prediction_quality(y_true, y_pred):\n",
- " \"\"\"\n",
- " Analisi dettagliata della qualità delle predizioni UV\n",
- " \"\"\"\n",
- " # Converti in numpy array e appiattisci\n",
- " y_true = np.array(y_true).ravel()\n",
- " y_pred = np.array(y_pred).ravel()\n",
- "\n",
- " # Arrotonda le predizioni al più vicino 0.5\n",
- " y_pred_rounded = np.round(y_pred * 2) / 2\n",
- "\n",
- " # Calcola diverse metriche di accuratezza usando array numpy\n",
- " exact_match = np.mean(np.abs(y_pred_rounded - y_true) < 1e-6) * 100 # uso di tolleranza per confronti float\n",
- " within_half = np.mean(np.abs(y_pred_rounded - y_true) <= 0.5) * 100\n",
- " within_one = np.mean(np.abs(y_pred_rounded - y_true) <= 1.0) * 100\n",
- "\n",
- " # Analisi per livello di rischio UV\n",
- " def get_solarradiation_risk_level(values):\n",
- " # Vettorizzazione della funzione per array numpy\n",
- " levels = np.zeros_like(values, dtype=str)\n",
- " levels[values <= 2] = 'Basso'\n",
- " levels[(values > 2) & (values <= 5)] = 'Moderato'\n",
- " levels[(values > 5) & (values <= 7)] = 'Alto'\n",
- " levels[(values > 7) & (values <= 10)] = 'Molto Alto'\n",
- " levels[values > 10] = 'Estremo'\n",
- " return levels\n",
- "\n",
- " y_true_risk = get_solarradiation_risk_level(y_true)\n",
- " y_pred_risk = get_solarradiation_risk_level(y_pred_rounded)\n",
- "\n",
- " risk_accuracy = np.mean(y_true_risk == y_pred_risk) * 100\n",
- "\n",
- " print(\"Analisi Precisione Predizioni UV Index:\")\n",
- " print(f\"Precisione esatta: {exact_match:.1f}%\")\n",
- " print(f\"Precisione entro 0.5 punti: {within_half:.1f}%\")\n",
- " print(f\"Precisione entro 1.0 punti: {within_one:.1f}%\")\n",
- " print(f\"Precisione livello di rischio: {risk_accuracy:.1f}%\")\n",
- "\n",
- " # Distribuzione degli errori per livello UV\n",
- " solarradiation_ranges = [(0, 2), (2, 5), (5, 7), (7, 10), (10, 11)]\n",
- " labels = ['Basso', 'Moderato', 'Alto', 'Molto Alto', 'Estremo']\n",
- "\n",
- " print(\"\\nAnalisi errori per livello UV:\")\n",
- " for (low, high), label in zip(solarradiation_ranges, labels):\n",
- " mask = (y_true >= low) & (y_true < high)\n",
- " if np.sum(mask) > 0:\n",
- " mae_range = np.mean(np.abs(y_pred[mask] - y_true[mask]))\n",
- " n_samples = np.sum(mask)\n",
- " print(f\"MAE per UV {label} ({low}-{high}): {mae_range:.3f} (n={n_samples})\")\n",
- "\n",
- " # Analisi aggiuntiva della distribuzione degli errori\n",
- " errors = y_pred - y_true\n",
- " print(\"\\nStatistiche degli errori:\")\n",
- " print(f\"Media errori: {np.mean(errors):.3f}\")\n",
- " print(f\"Deviazione standard errori: {np.std(errors):.3f}\")\n",
- " print(f\"Errore mediano: {np.median(errors):.3f}\")\n",
- " print(f\"95° percentile errore assoluto: {np.percentile(np.abs(errors), 95):.3f}\")\n",
- "\n",
- " return {\n",
- " 'exact_match': exact_match,\n",
- " 'within_half': within_half,\n",
- " 'within_one': within_one,\n",
- " 'risk_accuracy': risk_accuracy,\n",
- " 'error_stats': {\n",
- " 'mean': float(np.mean(errors)),\n",
- " 'std': float(np.std(errors)),\n",
- " 'median': float(np.median(errors)),\n",
- " 'p95_abs': float(np.percentile(np.abs(errors), 95))\n",
- " }\n",
- " }\n",
- "\n",
- "\n",
- "# Per utilizzare l'analisi:\n",
- "metrics = analyze_solarradiation_prediction_quality(y_test, predictions)"
+ "model, scaler, features, history, predictions, y_test, metrics, training_results = train_solarenergy_bounded_model(df)"
],
"outputs": [],
"execution_count": null
@@ -1175,21 +1079,21 @@
"source": [
"def plot_error_analysis(y_true, y_pred, folder_name=None):\n",
" \"\"\"\n",
- " Funzione per visualizzare l'analisi degli errori di predizione\n",
+ " Function to visualize prediction error analysis\n",
"\n",
" Parameters:\n",
" -----------\n",
" y_true : array-like\n",
- " Valori reali\n",
+ " Actual values\n",
" y_pred : array-like\n",
- " Valori predetti\n",
+ " Predicted values\n",
" folder_name : str, optional\n",
- " Cartella dove salvare i plot. Se None, i plot non vengono salvati.\n",
+ " Folder to save plots. If None, plots won't be saved.\n",
" \"\"\"\n",
" import os\n",
" from datetime import datetime\n",
"\n",
- " # Converti in array numpy 1D se necessario\n",
+ " # Convert to 1D numpy arrays if necessary\n",
" if isinstance(y_true, pd.Series):\n",
" y_true = y_true.values\n",
" if isinstance(y_pred, pd.Series):\n",
@@ -1198,282 +1102,74 @@
" y_true = y_true.ravel()\n",
" y_pred = y_pred.ravel()\n",
"\n",
- " # Calcola gli errori\n",
+ " # Calculate errors\n",
" errors = y_pred - y_true\n",
"\n",
- " # Crea la figura principale\n",
+ " # Create main figure\n",
" fig = plt.figure(figsize=(15, 5))\n",
"\n",
- " # Plot 1: Distribuzione degli errori\n",
+ " # Plot 1: Error Distribution\n",
" plt.subplot(1, 3, 1)\n",
" plt.hist(errors, bins=50, alpha=0.7)\n",
- " plt.title('Distribuzione degli Errori di Predizione')\n",
- " plt.xlabel('Errore')\n",
- " plt.ylabel('Frequenza')\n",
+ " plt.title('Prediction Error Distribution')\n",
+ " plt.xlabel('Error')\n",
+ " plt.ylabel('Frequency')\n",
"\n",
" # Plot 2: Actual vs Predicted\n",
" plt.subplot(1, 3, 2)\n",
" plt.scatter(y_true, y_pred, alpha=0.5)\n",
" plt.plot([y_true.min(), y_true.max()], [y_true.min(), y_true.max()], 'r--', lw=2)\n",
- " plt.title('Valori Reali vs Predetti')\n",
- " plt.xlabel('Valori Reali')\n",
- " plt.ylabel('Valori Predetti')\n",
+ " plt.title('Actual vs Predicted Values')\n",
+ " plt.xlabel('Actual Values')\n",
+ " plt.ylabel('Predicted Values')\n",
"\n",
- " # Plot 3: Errori vs Valori Reali\n",
+ " # Plot 3: Errors vs Actual Values\n",
" plt.subplot(1, 3, 3)\n",
" plt.scatter(y_true, errors, alpha=0.5)\n",
" plt.axhline(y=0, color='r', linestyle='--')\n",
- " plt.title('Errori vs Valori Reali')\n",
- " plt.xlabel('Valori Reali')\n",
- " plt.ylabel('Errore')\n",
+ " plt.title('Errors vs Actual Values')\n",
+ " plt.xlabel('Actual Values')\n",
+ " plt.ylabel('Error')\n",
"\n",
" plt.tight_layout()\n",
"\n",
- " # Salva il plot se è specificata una cartella\n",
+ " # Save plot if folder is specified\n",
" if folder_name is not None:\n",
" try:\n",
- " # Crea la cartella se non esiste\n",
+ " # Create folder if it doesn't exist\n",
" os.makedirs(folder_name, exist_ok=True)\n",
"\n",
- " # Genera il nome del file con timestamp\n",
+ " # Generate filename with timestamp\n",
" timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
" filename = os.path.join(folder_name, f'error_analysis_{timestamp}.png')\n",
"\n",
- " # Salva la figura\n",
+ " # Save figure\n",
" plt.savefig(filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"\\nPlot salvato come: {filename}\")\n",
+ " print(f\"\\nPlot saved as: {filename}\")\n",
" except Exception as e:\n",
- " print(f\"\\nErrore nel salvare il plot: {str(e)}\")\n",
+ " print(f\"\\nError saving plot: {str(e)}\")\n",
"\n",
" plt.show()\n",
"\n",
- " # Stampa statistiche degli errori\n",
- " print(\"\\nStatistiche degli errori:\")\n",
+ " # Print error statistics\n",
+ " print(\"\\nError Statistics:\")\n",
" print(f\"MAE: {np.mean(np.abs(errors)):.4f}\")\n",
" print(f\"MSE: {np.mean(errors ** 2):.4f}\")\n",
" print(f\"RMSE: {np.sqrt(np.mean(errors ** 2)):.4f}\")\n",
- " print(f\"Media errori: {np.mean(errors):.4f}\")\n",
- " print(f\"Std errori: {np.std(errors):.4f}\")\n",
+ " print(f\"Mean errors: {np.mean(errors):.4f}\")\n",
+ " print(f\"Std errors: {np.std(errors):.4f}\")\n",
"\n",
- " # Calcola percentuali di errori entro certe soglie\n",
+ " # Calculate percentage of errors within thresholds\n",
" thresholds = [0.5, 1.0, 1.5, 2.0]\n",
" for threshold in thresholds:\n",
" within_threshold = np.mean(np.abs(errors) <= threshold) * 100\n",
- " print(f\"Predizioni entro ±{threshold}: {within_threshold:.1f}%\")\n",
+ " print(f\"Predictions within ±{threshold}: {within_threshold:.1f}%\")\n",
"\n",
"\n",
"plot_error_analysis(y_test, predictions, folder_name=folder_name)"
],
"outputs": [],
"execution_count": null
- },
- {
- "cell_type": "code",
- "id": "03bb9564-e518-4662-b3ee-4cfa96cdf696",
- "metadata": {},
- "source": [
- "def plot_advanced_prediction_analysis(y_true, y_pred, folder_name=None):\n",
- " \"\"\"\n",
- " Funzione per visualizzare l'analisi degli errori di predizione e la precisione\n",
- "\n",
- " Parameters:\n",
- " -----------\n",
- " y_true : array-like\n",
- " Valori reali\n",
- " y_pred : array-like\n",
- " Valori predetti\n",
- " folder_name : str, optional\n",
- " Cartella dove salvare i plot. Se None, i plot non vengono salvati.\n",
- " \"\"\"\n",
- " import os\n",
- " from datetime import datetime\n",
- " import seaborn as sns\n",
- "\n",
- " # Converti in array numpy 1D se necessario\n",
- " if isinstance(y_true, pd.Series):\n",
- " y_true = y_true.values\n",
- " if isinstance(y_pred, pd.Series):\n",
- " y_pred = y_pred.values\n",
- "\n",
- " y_true = y_true.ravel()\n",
- " y_pred = y_pred.ravel()\n",
- "\n",
- " # Calcola gli errori\n",
- " errors = y_pred - y_true\n",
- "\n",
- " # Calcola accuracy per diversi livelli di tolleranza\n",
- " exact_accuracy = np.mean(np.abs(errors) < 0.1) * 100\n",
- " accuracy_05 = np.mean(np.abs(errors) <= 0.5) * 100\n",
- " accuracy_10 = np.mean(np.abs(errors) <= 1.0) * 100\n",
- "\n",
- " def get_risk_level(uv):\n",
- " if uv < 2:\n",
- " return 'Basso'\n",
- " elif uv < 5:\n",
- " return 'Moderato'\n",
- " elif uv < 7:\n",
- " return 'Alto'\n",
- " elif uv < 10:\n",
- " return 'Molto Alto'\n",
- " else:\n",
- " return 'Estremo'\n",
- "\n",
- " y_true_risk = [get_risk_level(x) for x in y_true]\n",
- " y_pred_risk = [get_risk_level(x) for x in y_pred]\n",
- " risk_accuracy = np.mean(np.array(y_true_risk) == np.array(y_pred_risk)) * 100\n",
- "\n",
- " # Crea la figura principale\n",
- " fig = plt.figure(figsize=(20, 10))\n",
- "\n",
- " # Plot 1: Distribuzione degli errori\n",
- " plt.subplot(2, 2, 1)\n",
- " plt.hist(errors, bins=50, alpha=0.7)\n",
- " plt.title('Distribuzione degli Errori di Predizione')\n",
- " plt.xlabel('Errore')\n",
- " plt.ylabel('Frequenza')\n",
- "\n",
- " # Plot 2: Actual vs Predicted\n",
- " plt.subplot(2, 2, 2)\n",
- " plt.scatter(y_true, y_pred, alpha=0.5)\n",
- " plt.plot([y_true.min(), y_true.max()], [y_true.min(), y_true.max()], 'r--', lw=2)\n",
- " plt.title('Valori Reali vs Predetti')\n",
- " plt.xlabel('Valori Reali')\n",
- " plt.ylabel('Valori Predetti')\n",
- "\n",
- " # Plot 3: Errori vs Valori Reali\n",
- " plt.subplot(2, 2, 3)\n",
- " plt.scatter(y_true, errors, alpha=0.5)\n",
- " plt.axhline(y=0, color='r', linestyle='--')\n",
- " plt.title('Errori vs Valori Reali')\n",
- " plt.xlabel('Valori Reali')\n",
- " plt.ylabel('Errore')\n",
- "\n",
- " # Plot 4: Precisione per intervallo di UV\n",
- " plt.subplot(2, 2, 4)\n",
- "\n",
- " solarradiation_ranges = [(0, 2), (2, 5), (5, 7), (7, 10), (10, 11)]\n",
- " range_labels = ['Basso\\n(0-2)', 'Moderato\\n(2-5)', 'Alto\\n(5-7)', 'Molto Alto\\n(7-10)', 'Estremo\\n(10-11)']\n",
- "\n",
- " accuracies = []\n",
- " counts = []\n",
- " mae_per_range = []\n",
- "\n",
- " for (low, high) in solarradiation_ranges:\n",
- " mask = (y_true >= low) & (y_true < high)\n",
- " if mask.any():\n",
- " mae = np.mean(np.abs(y_pred[mask] - y_true[mask]))\n",
- " mae_per_range.append(mae)\n",
- " count = np.sum(mask)\n",
- " counts.append(count)\n",
- " accuracy = np.mean(np.abs(y_pred[mask] - y_true[mask]) <= 0.5) * 100\n",
- " accuracies.append(accuracy)\n",
- "\n",
- " # Crea il grafico a barre con doppio asse y\n",
- " ax = plt.gca()\n",
- " bars = plt.bar(range_labels, accuracies, alpha=0.6, color='skyblue')\n",
- " plt.ylabel('Precisione (%)')\n",
- " plt.title('Precisione e MAE per Range UV')\n",
- "\n",
- " for bar in bars:\n",
- " height = bar.get_height()\n",
- " plt.text(bar.get_x() + bar.get_width() / 2., height,\n",
- " f'{height:.1f}%\\n(n={counts[bars.index(bar)]})',\n",
- " ha='center', va='bottom')\n",
- "\n",
- " ax2 = ax.twinx()\n",
- " line = ax2.plot(range_labels, mae_per_range, 'r-', marker='o', label='MAE')\n",
- " ax2.set_ylabel('MAE', color='red')\n",
- "\n",
- " for i, mae in enumerate(mae_per_range):\n",
- " ax2.text(i, mae, f'MAE: {mae:.3f}', color='red', ha='center', va='bottom')\n",
- "\n",
- " plt.xticks(rotation=45)\n",
- " plt.tight_layout()\n",
- "\n",
- " # Salva la figura principale se è specificata una cartella\n",
- " if folder_name is not None:\n",
- " try:\n",
- " # Crea la cartella se non esiste\n",
- " os.makedirs(folder_name, exist_ok=True)\n",
- "\n",
- " # Genera il timestamp\n",
- " timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
- "\n",
- " # Salva la figura principale\n",
- " main_plot_filename = os.path.join(folder_name, f'advanced_analysis_{timestamp}.png')\n",
- " plt.savefig(main_plot_filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"\\nPlot principale salvato come: {main_plot_filename}\")\n",
- "\n",
- " # Crea e salva la matrice di confusione come plot separato\n",
- " plt.figure(figsize=(10, 8))\n",
- " cm = confusion_matrix(y_true_risk, y_pred_risk)\n",
- " risk_levels = ['Basso', 'Moderato', 'Alto', 'Molto Alto', 'Estremo']\n",
- " cm_df = pd.DataFrame(cm, columns=risk_levels, index=risk_levels)\n",
- "\n",
- " sns.heatmap(cm_df, annot=True, fmt='d', cmap='Blues')\n",
- " plt.title('Matrice di Confusione per Livelli di Rischio UV')\n",
- " plt.tight_layout()\n",
- "\n",
- " conf_matrix_filename = os.path.join(folder_name, f'confusion_matrix_{timestamp}.png')\n",
- " plt.savefig(conf_matrix_filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"Matrice di confusione salvata come: {conf_matrix_filename}\")\n",
- "\n",
- " except Exception as e:\n",
- " print(f\"\\nErrore nel salvare i plot: {str(e)}\")\n",
- "\n",
- " plt.show()\n",
- "\n",
- " # Stampa delle statistiche e analisi\n",
- " cm = confusion_matrix(y_true_risk, y_pred_risk)\n",
- " risk_levels = ['Basso', 'Moderato', 'Alto', 'Molto Alto', 'Estremo']\n",
- " cm_df = pd.DataFrame(cm, columns=risk_levels, index=risk_levels)\n",
- "\n",
- " print(\"\\nMatrice di Confusione per Livelli di Rischio UV:\")\n",
- " print(cm_df)\n",
- "\n",
- " print(\"\\nAnalisi Precisione Predizioni UV Index:\")\n",
- " print(f\"Precisione esatta (±0.1): {exact_accuracy:.1f}%\")\n",
- " print(f\"Precisione entro 0.5 punti: {accuracy_05:.1f}%\")\n",
- " print(f\"Precisione entro 1.0 punti: {accuracy_10:.1f}%\")\n",
- " print(f\"Precisione livello di rischio: {risk_accuracy:.1f}%\")\n",
- "\n",
- " print(\"\\nAnalisi errori per livello UV:\")\n",
- " solarradiation_ranges = [(0, 2, 'Basso'), (2, 5, 'Moderato'), (5, 7, 'Alto'),\n",
- " (7, 10, 'Molto Alto'), (10, 11, 'Estremo')]\n",
- "\n",
- " for low, high, label in solarradiation_ranges:\n",
- " mask = (y_true >= low) & (y_true < high)\n",
- " if mask.any():\n",
- " mae = np.mean(np.abs(errors[mask]))\n",
- " n_samples = np.sum(mask)\n",
- " print(f\"MAE per UV {label} ({low}-{high}): {mae:.3f} (n={n_samples})\")\n",
- "\n",
- " print(\"\\nStatistiche degli errori:\")\n",
- " print(f\"Media errori: {np.mean(errors):.3f}\")\n",
- " print(f\"Deviazione standard errori: {np.std(errors):.3f}\")\n",
- " print(f\"Errore mediano: {np.median(errors):.3f}\")\n",
- " print(f\"95° percentile errore assoluto: {np.percentile(np.abs(errors), 95):.3f}\")\n",
- "\n",
- " print(\"\\nDistribuzione degli errori:\")\n",
- " thresholds = [0.5, 1.0, 1.5, 2.0]\n",
- " for threshold in thresholds:\n",
- " within_threshold = np.mean(np.abs(errors) <= threshold) * 100\n",
- " print(f\"Predizioni entro ±{threshold}: {within_threshold:.1f}%\")\n",
- "\n",
- "\n",
- "# Usa la funzione\n",
- "plot_advanced_prediction_analysis(y_test, predictions, folder_name=folder_name)"
- ],
- "outputs": [],
- "execution_count": null
- },
- {
- "cell_type": "code",
- "id": "fe898941-2338-4157-b624-680bc2c517d8",
- "metadata": {},
- "source": [],
- "outputs": [],
- "execution_count": null
}
],
"metadata": {
diff --git a/src/models/solarradiation/solarradiation_model.ipynb b/src/models/solarradiation/solarradiation_model.ipynb
index 00ed9bc..bbf91d7 100755
--- a/src/models/solarradiation/solarradiation_model.ipynb
+++ b/src/models/solarradiation/solarradiation_model.ipynb
@@ -2,23 +2,9 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 1,
"id": "8adcbe0819b88578",
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'\\nfrom opt_einsum.paths import branch_1\\n!apt-get update\\n!apt-get install graphviz -y\\n\\n!pip install tensorflow\\n!pip install numpy\\n!pip install pandas\\n\\n!pip install keras\\n!pip install scikit-learn\\n!pip install matplotlib\\n!pip install joblib\\n!pip install pyarrow\\n!pip install fastparquet\\n!pip install scipy\\n!pip install seaborn\\n!pip install tqdm\\n!pip install pydot\\n!pip install tensorflow-io\\n'"
- ]
- },
- "execution_count": 1,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
"source": [
- "'''\n",
"from opt_einsum.paths import branch_1\n",
"!apt-get update\n",
"!apt-get install graphviz -y\n",
@@ -38,27 +24,15 @@
"!pip install tqdm\n",
"!pip install pydot\n",
"!pip install tensorflow-io\n",
- "'''"
- ]
+ "!pip install tensorflow-addons"
+ ],
+ "outputs": [],
+ "execution_count": null
},
{
"cell_type": "code",
- "execution_count": 2,
"id": "7a813e3cbca057b7",
"metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2024-11-10 22:44:08.491015: E tensorflow/compiler/xla/stream_executor/cuda/cuda_dnn.cc:9342] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "2024-11-10 22:44:08.491086: E tensorflow/compiler/xla/stream_executor/cuda/cuda_fft.cc:609] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "2024-11-10 22:44:08.491139: E tensorflow/compiler/xla/stream_executor/cuda/cuda_blas.cc:1518] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "2024-11-10 22:44:08.502469: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
- "To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
- ]
- }
- ],
"source": [
"import tensorflow as tf\n",
"from tensorflow.keras.layers import Dense, LSTM, MultiHeadAttention, Dropout, BatchNormalization, LayerNormalization, Input, Activation, Lambda, Bidirectional, Add, MaxPooling1D\n",
@@ -67,25 +41,26 @@
"import pandas as pd\n",
"import numpy as np\n",
"from sklearn.model_selection import train_test_split\n",
- "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n",
- "from sklearn.preprocessing import StandardScaler\n",
+ "from sklearn.preprocessing import RobustScaler\n",
"from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau\n",
"from tensorflow.keras.optimizers import AdamW\n",
"import json\n",
"from datetime import datetime\n",
"import matplotlib.pyplot as plt\n",
- "from sklearn.metrics import confusion_matrix\n",
"from tensorflow.keras.utils import plot_model\n",
+ "import tensorflow_addons as tfa\n",
"\n",
- "folder_name = datetime.now().strftime(\"%Y-%m-%d_%H-%M\")"
- ]
+ "folder_name = datetime.now().strftime(\"%Y-%m-%d_%H-%M\")\n",
+ "\n",
+ "random_state_value = None"
+ ],
+ "outputs": [],
+ "execution_count": null
},
{
"cell_type": "code",
- "execution_count": 3,
"id": "b3f525e19f78a1da",
"metadata": {},
- "outputs": [],
"source": [
"def get_season(date):\n",
" month = date.month\n",
@@ -140,14 +115,14 @@
"\n",
"\n",
"def add_solar_features(df):\n",
- " # Calcolo dell'angolo solare\n",
+ " # Solar angle calculation\n",
" df['solar_angle'] = np.sin(df['day_of_year'] * (2 * np.pi / 365.25)) * np.sin(df['hour'] * (2 * np.pi / 24))\n",
"\n",
- " # Interazioni tra features rilevanti\n",
+ " # Interactions between relevant features\n",
" df['cloud_temp_interaction'] = df['cloudcover'] * df['temp']\n",
" df['visibility_cloud_interaction'] = df['visibility'] * (100 - df['cloudcover'])\n",
"\n",
- " # Feature derivate\n",
+ " # Derived features\n",
" df['clear_sky_index'] = (100 - df['cloudcover']) / 100\n",
" df['temp_gradient'] = df['temp'] - df['tempmin']\n",
"\n",
@@ -155,42 +130,77 @@
"\n",
"\n",
"def add_solar_specific_features(df):\n",
- " # Angolo solare e durata del giorno\n",
+ " # Solar angle and day length\n",
" df['day_length'] = 12 + 3 * np.sin(2 * np.pi * (df['day_of_year'] - 81) / 365.25)\n",
" df['solar_noon'] = 12 - df['hour']\n",
" df['solar_elevation'] = np.sin(2 * np.pi * df['day_of_year'] / 365.25) * np.cos(2 * np.pi * df['solar_noon'] / 24)\n",
"\n",
- " # Interazioni\n",
+ " # Interactions\n",
" df['cloud_elevation'] = df['cloudcover'] * df['solar_elevation']\n",
" df['visibility_elevation'] = df['visibility'] * df['solar_elevation']\n",
"\n",
- " # Rolling features con finestre più ampie\n",
+ " # Rolling features with wider windows\n",
" df['cloud_rolling_12h'] = df['cloudcover'].rolling(window=12).mean()\n",
" df['temp_rolling_12h'] = df['temp'].rolling(window=12).mean()\n",
"\n",
" return df\n",
"\n",
"\n",
+ "def add_radiation_energy_features(df):\n",
+ " \"\"\"Adds specific features based on solarenergy and uvindex\"\"\"\n",
+ "\n",
+ " # Solar energy to UV ratio (independent from solarradiation)\n",
+ " df['energy_uv_ratio'] = df['solarenergy'] / (df['uvindex'] + 1e-6)\n",
+ "\n",
+ " # Time aggregations\n",
+ " # Moving averages\n",
+ " windows = [3, 6, 12, 24] # hours\n",
+ " for w in windows:\n",
+ " df[f'energy_rolling_mean_{w}h'] = df['solarenergy'].rolling(window=w).mean()\n",
+ " df[f'uv_rolling_mean_{w}h'] = df['uvindex'].rolling(window=w).mean()\n",
+ "\n",
+ " # Daily aggregations\n",
+ " df['energy_daily_sum'] = df.groupby(df.index.date)['solarenergy'].transform('sum')\n",
+ " df['uv_daily_max'] = df.groupby(df.index.date)['uvindex'].transform('max')\n",
+ "\n",
+ " # Changes\n",
+ " df['energy_change'] = df['solarenergy'].diff()\n",
+ " df['uv_change'] = df['uvindex'].diff()\n",
+ "\n",
+ " # Lag features\n",
+ " lags = [1, 2, 3, 6, 12, 24] # hours\n",
+ " for lag in lags:\n",
+ " df[f'energy_lag_{lag}h'] = df['solarenergy'].shift(lag)\n",
+ " df[f'uv_lag_{lag}h'] = df['uvindex'].shift(lag)\n",
+ "\n",
+ " # Peak indicators\n",
+ " df['is_energy_peak'] = (df['solarenergy'] > df['energy_rolling_mean_6h'] * 1.2).astype(int)\n",
+ " df['is_uv_peak'] = (df['uvindex'] > df['uv_rolling_mean_6h'] * 1.2).astype(int)\n",
+ "\n",
+ " return df\n",
+ "\n",
+ "\n",
"def add_advanced_features(df):\n",
- " # Features esistenti\n",
+ " # Existing features\n",
" df = add_time_features(df)\n",
" df = add_solar_features(df)\n",
" df = add_solar_specific_features(df)\n",
+ " df = add_radiation_energy_features(df)\n",
"\n",
" if not isinstance(df.index, pd.DatetimeIndex):\n",
" df.index = pd.to_datetime(df.index)\n",
"\n",
- " # One-hot encoding per le feature categoriche\n",
+ " # One-hot encoding for categorical features\n",
" df = pd.get_dummies(df, columns=['season', 'time_period'])\n",
"\n",
- " # Interazioni tra variabili meteorologiche\n",
+ " # Weather variable interactions\n",
" df['temp_humidity'] = df['temp'] * df['humidity']\n",
" df['temp_cloudcover'] = df['temp'] * df['cloudcover']\n",
" df['visibility_cloudcover'] = df['visibility'] * df['cloudcover']\n",
"\n",
- " # Features derivate per la radiazione solare\n",
+ " # Derived features for solar radiation\n",
" df['clear_sky_factor'] = (100 - df['cloudcover']) / 100\n",
- " df['day_length'] = np.sin(df['day_of_year_sin']) * 12 + 12 # approssimazione della durata del giorno\n",
+ " df['day_length'] = np.sin(df['day_of_year_sin']) * 12 + 12 # day length approximation\n",
"\n",
" # Lag features\n",
" df['temp_1h_lag'] = df['temp'].shift(1)\n",
@@ -203,19 +213,19 @@
"\n",
" df['temp_humidity_interaction'] = df['temp'] * df['humidity'] / 100\n",
"\n",
- " # Indicatore di condizioni estreme\n",
+ " # Extreme conditions indicator\n",
" df['extreme_conditions'] = ((df['temp'] > df['temp'].quantile(0.75)) & (df['humidity'] < df['humidity'].quantile(0.25))).astype(int)\n",
"\n",
- " # Feature composite per la trasparenza atmosferica\n",
+ " # Composite feature for atmospheric transparency\n",
" df['atmospheric_transparency'] = (100 - df['cloudcover']) * (df['visibility'] / 10)\n",
"\n",
- " # Indicatori temporali più granulari per mezze stagioni\n",
+ " # More granular temporal indicators for mid-seasons\n",
" df['is_transition_season'] = ((df['season_Spring'] | df['season_Autumn'])).astype(int)\n",
"\n",
- " # Interazione tra angolo solare e copertura nuvolosa normalizzata\n",
+ " # Interaction between solar angle and normalized cloud cover\n",
" df['solar_cloud_effect'] = df['solar_elevation'] * (100 - df['cloudcover']) / 100\n",
"\n",
- " # Indicatore di stabilità atmosferica\n",
+ " # Atmospheric stability indicator\n",
" df['pressure_stability'] = df.groupby(df.index.date if isinstance(df.index, pd.DatetimeIndex)\n",
" else df.index.to_series().dt.date)['pressure'].transform(\n",
" lambda x: x.std()\n",
@@ -225,70 +235,82 @@
"\n",
"\n",
"def prepare_advanced_data(df):\n",
- " # Applicazione delle funzioni di feature engineering\n",
+ " # Apply feature engineering functions\n",
" df = add_advanced_features(df)\n",
"\n",
" target_variables = ['solarradiation', 'solarenergy', 'uvindex']\n",
"\n",
- " # Selezione delle feature più rilevanti per solarradiation\n",
+ " # Updated feature selection (without solarradiation dependencies)\n",
" selected_features = [\n",
- " # Features meteorologiche base\n",
+ " # Base meteorological features\n",
" 'temp', 'humidity', 'cloudcover', 'visibility', 'pressure',\n",
"\n",
- " # Features temporali cicliche\n",
+ " # Solar features\n",
+ " 'zenith_angle', 'air_mass', 'atmospheric_transmission',\n",
+ " 'cloud_transmission', 'theoretical_radiation',\n",
+ "\n",
+ " # Time features\n",
" 'hour_sin', 'hour_cos', 'month_sin', 'month_cos',\n",
" 'day_of_year_sin', 'day_of_year_cos',\n",
"\n",
- " # Features solari\n",
- " 'solar_angle', 'solar_elevation', 'day_length',\n",
- " 'clear_sky_index', 'solar_noon',\n",
+ " # Atmospheric features\n",
+ " 'clear_sky_index', 'humidity_factor', 'atmospheric_clarity',\n",
+ " 'vapor_pressure',\n",
"\n",
- " # Interazioni\n",
- " 'cloud_temp_interaction', 'visibility_cloud_interaction',\n",
- " 'cloud_elevation', 'visibility_elevation',\n",
+ " # Solar energy and UV features\n",
+ " 'energy_uv_ratio',\n",
"\n",
- " # Rolling features\n",
- " 'cloud_rolling_12h', 'temp_rolling_12h',\n",
- " 'temp_rolling_mean_6h', 'cloudcover_rolling_mean_6h',\n",
+ " # Moving averages\n",
+ " 'energy_rolling_mean_3h', 'energy_rolling_mean_6h',\n",
+ " 'uv_rolling_mean_3h', 'uv_rolling_mean_6h',\n",
"\n",
- " # Features categoriche\n",
- " 'season', 'time_period'\n",
+ " # Daily aggregations\n",
+ " 'energy_daily_sum', 'uv_daily_max',\n",
+ "\n",
+ " # Main lag features\n",
+ " 'energy_lag_1h', 'energy_lag_3h', 'energy_lag_6h',\n",
+ " 'uv_lag_1h', 'uv_lag_3h',\n",
+ "\n",
+ " # Peak and volatility indicators\n",
+ " 'is_energy_peak', 'is_uv_peak',\n",
+ " 'energy_volatility', 'uv_volatility',\n",
+ "\n",
+ " # Composite indices\n",
+ " 'solar_intensity_index',\n",
+ "\n",
+ " # Interactions\n",
+ " 'uv_cloud_interaction',\n",
+ " 'energy_temp_interaction'\n",
" ]\n",
"\n",
- " # Aggiorna la lista delle feature con le colonne one-hot\n",
+ " # Add one-hot columns\n",
" categorical_columns = [col for col in df.columns if col.startswith(('season_', 'time_period_'))]\n",
- " final_features = [f for f in selected_features if f not in ['season', 'time_period']] + categorical_columns\n",
+ " final_features = selected_features + categorical_columns\n",
"\n",
+ " # Dataset preparation\n",
" df = df.sort_values('datetime')\n",
" df.set_index('datetime', inplace=True)\n",
"\n",
- " columns_to_interpolate = final_features + target_variables\n",
- " for column in columns_to_interpolate:\n",
+ " # Handle missing values\n",
+ " for column in final_features + target_variables:\n",
" df[column] = df[column].interpolate(method='time')\n",
- "\n",
- " # Rimuovi eventuali valori mancanti residui\n",
" df.fillna(0, inplace=True)\n",
"\n",
+ " # Temporal split\n",
" data_after_2010 = df[df['year'] >= 2010].copy()\n",
" data_before_2010 = df[df['year'] < 2010].copy()\n",
"\n",
- " print(\"\\nNumero di record dopo 2010:\", len(data_after_2010))\n",
- " print(\"Numero di record prima 2010:\", len(data_before_2010))\n",
- "\n",
" X = data_after_2010[final_features]\n",
- "\n",
- " y = data_after_2010['uvindex']\n",
- "\n",
+ " y = data_after_2010['solarradiation']\n",
" X_to_predict = data_before_2010[final_features]\n",
"\n",
- " # Split dei dati\n",
- " X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)\n",
+ " # Train-test split\n",
+ " X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=random_state_value)\n",
"\n",
- " # Scaling delle feature\n",
- " scaler = StandardScaler()\n",
+ " # Scaling\n",
+ " scaler = RobustScaler()\n",
" X_train_scaled = scaler.fit_transform(X_train)\n",
" X_test_scaled = scaler.transform(X_test)\n",
- "\n",
" X_to_predict_scaled = scaler.transform(X_to_predict)\n",
"\n",
" return X_train_scaled, X_test_scaled, y_train, y_test, scaler, final_features, X_to_predict_scaled\n",
@@ -296,8 +318,8 @@
"\n",
"def create_sequence_data(X, sequence_length=24):\n",
" \"\"\"\n",
- " Converte i dati in sequenze per l'input LSTM\n",
- " sequence_length rappresenta quante ore precedenti considerare\n",
+ " Converts data into sequences for LSTM input\n",
+ " sequence_length represents how many previous hours to consider\n",
" \"\"\"\n",
" sequences = []\n",
" for i in range(len(X) - sequence_length + 1):\n",
@@ -306,300 +328,417 @@
"\n",
"\n",
"def prepare_hybrid_data(df):\n",
- "\n",
" X_train_scaled, X_test_scaled, y_train, y_test, scaler, features, X_to_predict_scaled = prepare_advanced_data(df)\n",
"\n",
- " # Convertiamo i dati in sequenze\n",
- " sequence_length = 24 # 24 ore di dati storici\n",
+ " # Convert data into sequences\n",
+ " sequence_length = 24 # 24 hours of historical data\n",
"\n",
" X_train_seq = create_sequence_data(X_train_scaled, sequence_length)\n",
" X_test_seq = create_sequence_data(X_test_scaled, sequence_length)\n",
"\n",
- " # Adattiamo le y rimuovendo i primi (sequence_length-1) elementi\n",
+ " # Adjust y by removing the first (sequence_length-1) elements\n",
" y_train = y_train[sequence_length - 1:]\n",
" y_test = y_test[sequence_length - 1:]\n",
"\n",
" X_to_predict_seq = create_sequence_data(X_to_predict_scaled, sequence_length)\n",
"\n",
" return X_train_seq, X_test_seq, y_train, y_test, scaler, features, X_to_predict_seq"
- ]
+ ],
+ "outputs": [],
+ "execution_count": null
},
{
"cell_type": "code",
- "execution_count": 8,
"id": "9dff3259-b376-4cfc-89d8-ab2ea18aaa5e",
"metadata": {},
- "outputs": [],
"source": [
- "def create_residual_lstm_layer(x, units, dropout_rate, l2_reg=0.01, return_sequences=True):\n",
+ "def create_residual_lstm_layer(x, units, dropout_rate, l2_reg=0.01, return_sequences=True, survival_probability=0.8):\n",
+ " \"\"\"\n",
+ " Creates a bidirectional LSTM layer with residual connections and regularization.\n",
+ "\n",
+ " Parameters:\n",
+ " x: Input tensor\n",
+ " units: Number of LSTM units\n",
+ " dropout_rate: Dropout rate for regularization\n",
+ " l2_reg: L2 regularization factor\n",
+ " return_sequences: Whether to return sequences or just the last output\n",
+ " survival_probability: Probability of layer survival for stochastic depth\n",
+ " \"\"\"\n",
" residual = x\n",
" x = Bidirectional(LSTM(units, return_sequences=return_sequences, kernel_regularizer=regularizers.l2(l2_reg)))(x)\n",
" x = LayerNormalization()(x)\n",
" x = Dropout(dropout_rate)(x)\n",
- " # Adjust residual dimension and handle return_sequences\n",
+ "\n",
" if return_sequences:\n",
" if int(residual.shape[-1]) != 2 * units:\n",
" residual = Dense(2 * units, activation='linear')(residual)\n",
- " x = Add()([x, residual])\n",
+ " x = tfa.layers.StochasticDepth(survival_probability)([x, residual])\n",
" return x\n",
"\n",
+ "def attention_block(x, units, num_heads=8, survival_probability=0.8):\n",
+ " \"\"\"\n",
+ " Creates a multi-head attention block with residual connections.\n",
"\n",
- "def attention_block(x, units, num_heads=8):\n",
+ " Parameters:\n",
+ " x: Input tensor\n",
+ " units: Dimension of the key space\n",
+ " num_heads: Number of attention heads\n",
+ " survival_probability: Probability of layer survival for stochastic depth\n",
+ " \"\"\"\n",
" attention = MultiHeadAttention(num_heads=num_heads, key_dim=units)(x, x)\n",
- " x = Add()([x, attention])\n",
+ " x = tfa.layers.StochasticDepth(survival_probability)([x, attention])\n",
" x = LayerNormalization()(x)\n",
" return x\n",
"\n",
+ "def create_solarradiation_model(input_shape, folder_name, l2_lambda=0.005):\n",
+ " \"\"\"\n",
+ " Creates a deep learning model for solar radiation prediction using LSTM and attention mechanisms.\n",
"\n",
- "def create_solarradiation_index_model(input_shape, folder_name, l2_lambda=0.005):\n",
+ " Parameters:\n",
+ " input_shape: Shape of input data\n",
+ " folder_name: Directory to save model architecture visualization\n",
+ " l2_lambda: L2 regularization factor\n",
+ " \"\"\"\n",
" inputs = Input(shape=input_shape)\n",
"\n",
- " # Primi due layer LSTM con sequenze\n",
- " x = create_residual_lstm_layer(inputs, 128, 0.4, l2_lambda, return_sequences=True)\n",
- " x = create_residual_lstm_layer(x, 64, 0.3, l2_lambda, return_sequences=True)\n",
- " x = create_residual_lstm_layer(x, 32, 0.2, l2_lambda, return_sequences=True)\n",
+ " # Progressive hyperparameters for model architecture\n",
+ " survival_probs = [0.9, 0.8, 0.7] # Decreasing survival probabilities for deeper layers\n",
+ " attention_survival_probs = [0.85, 0.75, 0.65] # Survival probabilities for attention blocks\n",
+ " lstm_units = [256, 128, 64] # Decreasing number of units for LSTM layers\n",
+ " dropout_rates = [0.4, 0.3, 0.2] # Decreasing dropout rates\n",
+ " attention_heads = [32, 24, 16] # Decreasing number of attention heads\n",
"\n",
- " # Attention e MaxPooling mentre abbiamo ancora la sequenza\n",
- " x = attention_block(x, 32, num_heads=16)\n",
- " x = MaxPooling1D()(x)\n",
+ " # Main network architecture\n",
+ " x = inputs\n",
+ " for i in range(3):\n",
+ " # LSTM layer with residual connections\n",
+ " x = create_residual_lstm_layer(\n",
+ " x,\n",
+ " units=lstm_units[i],\n",
+ " dropout_rate=dropout_rates[i],\n",
+ " l2_reg=l2_lambda,\n",
+ " return_sequences=True,\n",
+ " survival_probability=survival_probs[i]\n",
+ " )\n",
+ " # Attention block\n",
+ " x = attention_block(\n",
+ " x,\n",
+ " units=lstm_units[i],\n",
+ " num_heads=attention_heads[i],\n",
+ " survival_probability=attention_survival_probs[i]\n",
+ " )\n",
+ " if i < 2: # No pooling after last LSTM layer\n",
+ " x = MaxPooling1D()(x)\n",
"\n",
- " # Ultimo layer LSTM senza sequenze\n",
- " x = create_residual_lstm_layer(x, 32, 0.1, l2_lambda, return_sequences=False)\n",
- "\n",
- " # Dense layers\n",
- " x = Dense(32, kernel_regularizer=regularizers.l2(l2_lambda))(x)\n",
- " x = BatchNormalization()(x)\n",
- " x = Activation('swish')(x)\n",
- " x = Dropout(0.1)(x)\n",
- "\n",
- " x = Dense(16, kernel_regularizer=regularizers.l2(l2_lambda))(x)\n",
- " x = BatchNormalization()(x)\n",
- " x = Activation('swish')(x)\n",
- " x = Dropout(0.1)(x)\n",
- "\n",
- " outputs = Dense(1)(x)\n",
- " outputs = Lambda(lambda x: tf.clip_by_value(x, 0, 11))(outputs)\n",
- "\n",
- " model = Model(inputs=inputs, outputs=outputs, name=\"UvModel\")\n",
- "\n",
- " optimizer = AdamW(\n",
- " learning_rate=0.0005,\n",
- " beta_1=0.9,\n",
- " beta_2=0.999,\n",
- " epsilon=1e-07\n",
+ " # Final LSTM layer for sequence aggregation\n",
+ " x = create_residual_lstm_layer(\n",
+ " x,\n",
+ " units=32,\n",
+ " dropout_rate=0.1,\n",
+ " l2_reg=l2_lambda,\n",
+ " return_sequences=False,\n",
+ " survival_probability=0.6\n",
" )\n",
"\n",
+ " # Dense layers for final prediction\n",
+ " dense_units = [64, 32]\n",
+ " dense_dropout = [0.2, 0.1]\n",
+ "\n",
+ " for units, dropout in zip(dense_units, dense_dropout):\n",
+ " x = Dense(units, kernel_regularizer=regularizers.l2(l2_lambda))(x)\n",
+ " x = BatchNormalization()(x)\n",
+ " x = Activation('swish')(x)\n",
+ " x = Dropout(dropout)(x)\n",
+ "\n",
+ " # Output layer with value clipping\n",
+ " outputs = Dense(1)(x)\n",
+ " outputs = Lambda(lambda x: tf.clip_by_value(x, 0, 1500))(outputs)\n",
+ "\n",
+ " # Model compilation\n",
+ " model = Model(inputs=inputs, outputs=outputs, name=\"SolarRadiationModel\")\n",
+ "\n",
+ " # Optimizer configuration\n",
+ " optimizer = AdamW(\n",
+ " learning_rate=0.0003,\n",
+ " beta_1=0.9,\n",
+ " beta_2=0.999,\n",
+ " epsilon=1e-07,\n",
+ " weight_decay=0.001\n",
+ " )\n",
+ "\n",
+ " # Custom evaluation metrics\n",
+ " def rmse(y_true, y_pred):\n",
+ " \"\"\"Root Mean Squared Error\"\"\"\n",
+ " return tf.sqrt(tf.reduce_mean(tf.square(y_true - y_pred)))\n",
+ "\n",
+ " def mape(y_true, y_pred):\n",
+ " \"\"\"Mean Absolute Percentage Error\"\"\"\n",
+ " epsilon = 1e-7\n",
+ " return tf.reduce_mean(tf.abs((y_true - y_pred) / (y_true + epsilon))) * 100\n",
+ "\n",
+ " def hybrid_loss(y_true, y_pred):\n",
+ " \"\"\"Combined loss function: 70% MSE + 30% MAE\"\"\"\n",
+ " mse = tf.reduce_mean(tf.square(y_true - y_pred))\n",
+ " mae = tf.reduce_mean(tf.abs(y_true - y_pred))\n",
+ " return 0.7 * mse + 0.3 * mae\n",
+ "\n",
+ " # Model compilation with custom metrics\n",
" model.compile(\n",
" optimizer=optimizer,\n",
- " loss='huber',\n",
- " metrics=['mae', 'mse']\n",
+ " loss=hybrid_loss,\n",
+ " metrics=[\n",
+ " 'mae',\n",
+ " rmse,\n",
+ " mape\n",
+ " ]\n",
" )\n",
" model.summary()\n",
"\n",
+ " # Save model architecture visualization\n",
" plot_model(model,\n",
" to_file=f'{folder_name}_model_architecture.png',\n",
- " show_shapes=True, # Mostra le dimensioni dei tensori\n",
- " show_layer_names=True, # Mostra i nomi dei layer\n",
- " dpi=96, # Risoluzione dell'immagine\n",
+ " show_shapes=True,\n",
+ " show_layer_names=True,\n",
+ " dpi=150,\n",
" show_layer_activations=True)\n",
"\n",
" return model\n",
"\n",
"\n",
- "def evaluate_solarradiation_predictions(y_true, y_pred, folder_name=None):\n",
+ "def evaluate_solarradiation_predictions(y_true, y_pred, hour=None, folder_name=None):\n",
" \"\"\"\n",
- " Valutazione specifica per UV index con metriche sia raw che categoriche\n",
+ " Comprehensive evaluation of solar radiation predictions with detailed analysis and visualizations.\n",
"\n",
" Parameters:\n",
" -----------\n",
" y_true : array-like\n",
- " Valori reali dell'UV index\n",
+ " Actual solar radiation values (W/m²)\n",
" y_pred : array-like\n",
- " Valori predetti dell'UV index\n",
+ " Predicted solar radiation values (W/m²)\n",
+ " hour : array-like, optional\n",
+ " Array of hours corresponding to predictions, for temporal analysis\n",
" folder_name : str, optional\n",
- " Cartella dove salvare eventuali plot di analisi\n",
+ " Directory to save analysis plots\n",
"\n",
" Returns:\n",
" --------\n",
" dict\n",
- " Dizionario contenente tutte le metriche calcolate\n",
+ " Dictionary containing all calculated metrics\n",
" \"\"\"\n",
" import os\n",
" from datetime import datetime\n",
+ " import numpy as np\n",
+ " import pandas as pd\n",
+ " import matplotlib.pyplot as plt\n",
+ " import seaborn as sns\n",
+ " from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score, confusion_matrix\n",
"\n",
+ " # Data preparation\n",
" y_true = np.array(y_true).ravel()\n",
" y_pred = np.array(y_pred).ravel()\n",
+ " errors = y_pred - y_true\n",
"\n",
- " # Calcolo metriche sui valori raw\n",
+ " # Basic metrics calculation\n",
" mae_raw = mean_absolute_error(y_true, y_pred)\n",
" rmse_raw = np.sqrt(mean_squared_error(y_true, y_pred))\n",
" r2_raw = r2_score(y_true, y_pred)\n",
+ " mape = np.mean(np.abs((y_true - y_pred) / (y_true + 1e-7))) * 100\n",
"\n",
- " # Arrotonda le predizioni al più vicino intero\n",
- " y_pred_rounded = np.round(y_pred)\n",
- " y_pred_clipped = np.clip(y_pred_rounded, 0, 11)\n",
+ " # Error margin accuracy\n",
+ " within_5_percent = np.mean(np.abs((y_pred - y_true) / (y_true + 1e-7)) <= 0.05)\n",
+ " within_10_percent = np.mean(np.abs((y_pred - y_true) / (y_true + 1e-7)) <= 0.10)\n",
+ " within_20_percent = np.mean(np.abs((y_pred - y_true) / (y_true + 1e-7)) <= 0.20)\n",
"\n",
- " # Calcolo metriche sui valori arrotondati\n",
- " mae_rounded = mean_absolute_error(y_true, y_pred_clipped)\n",
- " rmse_rounded = np.sqrt(mean_squared_error(y_true, y_pred_clipped))\n",
- " r2_rounded = r2_score(y_true, y_pred_clipped)\n",
- "\n",
- " # Calcolo accuratezza per diversi margini di errore (sia raw che rounded)\n",
- " # Raw\n",
- " within_05_raw = np.mean(np.abs(y_pred - y_true) <= 0.5)\n",
- " within_1_raw = np.mean(np.abs(y_pred - y_true) <= 1.0)\n",
- " within_2_raw = np.mean(np.abs(y_pred - y_true) <= 2.0)\n",
- "\n",
- " # Rounded\n",
- " exact_accuracy = np.mean(y_pred_clipped == y_true)\n",
- " one_off_accuracy = np.mean(np.abs(y_pred_clipped - y_true) <= 1)\n",
- " two_off_accuracy = np.mean(np.abs(y_pred_clipped - y_true) <= 2)\n",
- "\n",
- " print(\"\\nUV Index Prediction Metrics:\")\n",
- " print(\"\\nRaw Predictions:\")\n",
- " print(f\"MAE: {mae_raw:.3f}\")\n",
- " print(f\"RMSE: {rmse_raw:.3f}\")\n",
- " print(f\"R² Score: {r2_raw:.3f}\")\n",
- " print(f\"Within ±0.5: {within_05_raw:.3f}\")\n",
- " print(f\"Within ±1.0: {within_1_raw:.3f}\")\n",
- " print(f\"Within ±2.0: {within_2_raw:.3f}\")\n",
- "\n",
- " print(\"\\nRounded Predictions:\")\n",
- " print(f\"MAE: {mae_rounded:.3f}\")\n",
- " print(f\"RMSE: {rmse_rounded:.3f}\")\n",
- " print(f\"R² Score: {r2_rounded:.3f}\")\n",
- " print(f\"Exact Match: {exact_accuracy:.3f}\")\n",
- " print(f\"±1 Accuracy: {one_off_accuracy:.3f}\")\n",
- " print(f\"±2 Accuracy: {two_off_accuracy:.3f}\")\n",
- "\n",
- " # Analisi dei livelli UV\n",
- " def get_solarradiation_level(value):\n",
- " if value <= 2:\n",
+ " # Radiation level classification\n",
+ " def get_radiation_level(value):\n",
+ " if value <= 200:\n",
+ " return 'Very Low'\n",
+ " elif value <= 400:\n",
" return 'Low'\n",
- " elif value <= 5:\n",
+ " elif value <= 600:\n",
" return 'Moderate'\n",
- " elif value <= 7:\n",
+ " elif value <= 800:\n",
" return 'High'\n",
- " elif value <= 10:\n",
+ " elif value <= 1000:\n",
" return 'Very High'\n",
" else:\n",
" return 'Extreme'\n",
"\n",
- " # Calcola livelli UV sia per raw che rounded\n",
- " y_true_levels = [get_solarradiation_level(v) for v in y_true]\n",
- " y_pred_levels_raw = [get_solarradiation_level(v) for v in y_pred]\n",
- " y_pred_levels_rounded = [get_solarradiation_level(v) for v in y_pred_clipped]\n",
+ " # Calculate radiation levels\n",
+ " y_true_levels = [get_radiation_level(v) for v in y_true]\n",
+ " y_pred_levels = [get_radiation_level(v) for v in y_pred]\n",
+ " level_accuracy = np.mean([t == p for t, p in zip(y_true_levels, y_pred_levels)])\n",
"\n",
- " # Calcola accuracy dei livelli\n",
- " level_accuracy_raw = np.mean([t == p for t, p in zip(y_true_levels, y_pred_levels_raw)])\n",
- " level_accuracy_rounded = np.mean([t == p for t, p in zip(y_true_levels, y_pred_levels_rounded)])\n",
+ " # Print main metrics\n",
+ " print(\"\\nSolar Radiation Prediction Metrics:\")\n",
+ " print(\"\\nAbsolute Metrics:\")\n",
+ " print(f\"MAE: {mae_raw:.2f} W/m²\")\n",
+ " print(f\"RMSE: {rmse_raw:.2f} W/m²\")\n",
+ " print(f\"R² Score: {r2_raw:.3f}\")\n",
+ " print(f\"MAPE: {mape:.2f}%\")\n",
"\n",
- " print(\"\\nUV Level Accuracy:\")\n",
- " print(f\"Raw predictions: {level_accuracy_raw:.3f}\")\n",
- " print(f\"Rounded predictions: {level_accuracy_rounded:.3f}\")\n",
+ " print(\"\\nPercentage Accuracy:\")\n",
+ " print(f\"Within ±5%: {within_5_percent*100:.1f}%\")\n",
+ " print(f\"Within ±10%: {within_10_percent*100:.1f}%\")\n",
+ " print(f\"Within ±20%: {within_20_percent*100:.1f}%\")\n",
"\n",
- " print(\"\\nUV Level Confusion Matrix (Raw Predictions):\")\n",
- " print(pd.crosstab(\n",
- " pd.Series(y_true_levels, name='Actual'),\n",
- " pd.Series(y_pred_levels_raw, name='Predicted')\n",
- " ))\n",
+ " print(\"\\nLevel Accuracy:\")\n",
+ " print(f\"Level Accuracy: {level_accuracy*100:.1f}%\")\n",
"\n",
- " print(\"\\nUV Level Confusion Matrix (Rounded Predictions):\")\n",
- " print(pd.crosstab(\n",
- " pd.Series(y_true_levels, name='Actual'),\n",
- " pd.Series(y_pred_levels_rounded, name='Predicted')\n",
- " ))\n",
+ " # Confusion matrix for radiation levels\n",
+ " cm = confusion_matrix(y_true_levels, y_pred_levels)\n",
+ " print(\"\\nConfusion Matrix for Radiation Levels:\")\n",
+ " cm_df = pd.DataFrame(\n",
+ " cm,\n",
+ " columns=['Very Low', 'Low', 'Moderate', 'High', 'Very High', 'Extreme'],\n",
+ " index=['Very Low', 'Low', 'Moderate', 'High', 'Very High', 'Extreme']\n",
+ " )\n",
+ " print(cm_df)\n",
"\n",
- " # Se specificata una cartella, salva i plot di analisi\n",
+ " # Time period analysis\n",
+ " if hour is not None:\n",
+ " day_periods = {\n",
+ " 'Morning (5-11)': (5, 11),\n",
+ " 'Noon (11-13)': (11, 13),\n",
+ " 'Afternoon (13-17)': (13, 17),\n",
+ " 'Evening (17-21)': (17, 21),\n",
+ " 'Night (21-5)': (21, 5)\n",
+ " }\n",
+ "\n",
+ " print(\"\\nAnalysis by Time Period:\")\n",
+ " for period, (start, end) in day_periods.items():\n",
+ " if start < end:\n",
+ " mask = (hour >= start) & (hour < end)\n",
+ " else:\n",
+ " mask = (hour >= start) | (hour < end)\n",
+ "\n",
+ " if np.any(mask):\n",
+ " period_mae = mean_absolute_error(y_true[mask], y_pred[mask])\n",
+ " period_mape = np.mean(np.abs((y_true[mask] - y_pred[mask]) / (y_true[mask] + 1e-7))) * 100\n",
+ " print(f\"\\n{period}:\")\n",
+ " print(f\"MAE: {period_mae:.2f} W/m²\")\n",
+ " print(f\"MAPE: {period_mape:.2f}%\")\n",
+ "\n",
+ " # Visualizations\n",
" if folder_name is not None:\n",
" try:\n",
" os.makedirs(folder_name, exist_ok=True)\n",
" timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
"\n",
- " # Plot di confronto tra raw e rounded predictions\n",
- " plt.figure(figsize=(15, 5))\n",
+ " # Figure 1: Main analysis plots\n",
+ " plt.figure(figsize=(20, 15))\n",
"\n",
- " # Plot 1: Scatter plot confronto\n",
- " plt.subplot(1, 3, 1)\n",
- " plt.scatter(y_true, y_pred, alpha=0.5, label='Raw')\n",
- " plt.scatter(y_true, y_pred_clipped, alpha=0.5, label='Rounded')\n",
- " plt.plot([0, 11], [0, 11], 'r--', lw=2)\n",
- " plt.xlabel('Actual UV Index')\n",
- " plt.ylabel('Predicted UV Index')\n",
- " plt.title('Raw vs Rounded Predictions')\n",
- " plt.legend()\n",
+ " # Plot 1: Scatter plot of actual vs predicted values\n",
+ " plt.subplot(3, 2, 1)\n",
+ " plt.scatter(y_true, y_pred, alpha=0.5)\n",
+ " plt.plot([y_true.min(), y_true.max()], [y_true.min(), y_true.max()], 'r--', lw=2)\n",
+ " plt.xlabel('Actual Radiation (W/m²)')\n",
+ " plt.ylabel('Predicted Radiation (W/m²)')\n",
+ " plt.title('Actual vs Predicted Values')\n",
" plt.grid(True)\n",
"\n",
- " # Plot 2: Distribuzione errori raw\n",
- " plt.subplot(1, 3, 2)\n",
- " plt.hist(y_pred - y_true, bins=50, alpha=0.7)\n",
- " plt.xlabel('Prediction Error (Raw)')\n",
+ " # Plot 2: Absolute error distribution\n",
+ " plt.subplot(3, 2, 2)\n",
+ " plt.hist(errors, bins=50, alpha=0.7)\n",
+ " plt.xlabel('Prediction Error (W/m²)')\n",
" plt.ylabel('Frequency')\n",
- " plt.title('Distribution of Raw Errors')\n",
+ " plt.title('Error Distribution')\n",
" plt.grid(True)\n",
"\n",
- " # Plot 3: Distribuzione errori rounded\n",
- " plt.subplot(1, 3, 3)\n",
- " plt.hist(y_pred_clipped - y_true, bins=50, alpha=0.7)\n",
- " plt.xlabel('Prediction Error (Rounded)')\n",
+ " # Plot 3: Percentage error distribution\n",
+ " plt.subplot(3, 2, 3)\n",
+ " percentage_errors = ((y_pred - y_true) / (y_true + 1e-7)) * 100\n",
+ " plt.hist(np.clip(percentage_errors, -100, 100), bins=50, alpha=0.7)\n",
+ " plt.xlabel('Percentage Error (%)')\n",
" plt.ylabel('Frequency')\n",
- " plt.title('Distribution of Rounded Errors')\n",
+ " plt.title('Percentage Error Distribution')\n",
" plt.grid(True)\n",
"\n",
+ " # Plot 4: Errors vs actual values\n",
+ " plt.subplot(3, 2, 4)\n",
+ " plt.scatter(y_true, errors, alpha=0.5)\n",
+ " plt.axhline(y=0, color='r', linestyle='--')\n",
+ " plt.xlabel('Actual Radiation (W/m²)')\n",
+ " plt.ylabel('Error (W/m²)')\n",
+ " plt.title('Errors vs Actual Values')\n",
+ " plt.grid(True)\n",
+ "\n",
+ " # Plot 5: Error boxplot by radiation level\n",
+ " plt.subplot(3, 2, 5)\n",
+ " sns.boxplot(x=[get_radiation_level(v) for v in y_true], y=errors)\n",
+ " plt.xticks(rotation=45)\n",
+ " plt.xlabel('Radiation Level')\n",
+ " plt.ylabel('Error (W/m²)')\n",
+ " plt.title('Error Distribution by Level')\n",
+ "\n",
+ " # Plot 6: Confusion matrix heatmap\n",
+ " plt.subplot(3, 2, 6)\n",
+ " sns.heatmap(cm_df, annot=True, fmt='d', cmap='Blues')\n",
+ " plt.title('Confusion Matrix')\n",
+ " plt.xticks(rotation=45)\n",
+ " plt.yticks(rotation=45)\n",
+ "\n",
" plt.tight_layout()\n",
- "\n",
- " # Salva il plot\n",
- " filename = os.path.join(folder_name, f'solarradiation_prediction_analysis_{timestamp}.png')\n",
+ " filename = os.path.join(folder_name, f'radiation_analysis_{timestamp}.png')\n",
" plt.savefig(filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"\\nPlot di analisi salvato come: {filename}\")\n",
- "\n",
- " plt.show()\n",
+ " print(f\"\\nPlot saved as: {filename}\")\n",
+ " plt.close()\n",
"\n",
" except Exception as e:\n",
- " print(f\"\\nErrore nel salvare i plot: {str(e)}\")\n",
+ " print(f\"\\nError saving plots: {str(e)}\")\n",
"\n",
- " # Restituisci tutte le metriche in un dizionario\n",
+ " # Additional error statistics\n",
+ " print(\"\\nError Statistics:\")\n",
+ " print(f\"Mean error: {np.mean(errors):.3f}\")\n",
+ " print(f\"Error standard deviation: {np.std(errors):.3f}\")\n",
+ " print(f\"Median error: {np.median(errors):.3f}\")\n",
+ " print(f\"95th percentile absolute error: {np.percentile(np.abs(errors), 95):.3f}\")\n",
+ "\n",
+ " # Return structured metrics\n",
" metrics = {\n",
- " 'raw': {\n",
+ " 'absolute': {\n",
" 'mae': mae_raw,\n",
" 'rmse': rmse_raw,\n",
" 'r2': r2_raw,\n",
- " 'within_05': within_05_raw,\n",
- " 'within_1': within_1_raw,\n",
- " 'within_2': within_2_raw,\n",
- " 'level_accuracy': level_accuracy_raw\n",
+ " 'mape': mape\n",
" },\n",
- " 'rounded': {\n",
- " 'mae': mae_rounded,\n",
- " 'rmse': rmse_rounded,\n",
- " 'r2': r2_rounded,\n",
- " 'exact_match': exact_accuracy,\n",
- " 'one_off': one_off_accuracy,\n",
- " 'two_off': two_off_accuracy,\n",
- " 'level_accuracy': level_accuracy_rounded\n",
+ " 'percentage_accuracy': {\n",
+ " 'within_5_percent': within_5_percent,\n",
+ " 'within_10_percent': within_10_percent,\n",
+ " 'within_20_percent': within_20_percent\n",
+ " },\n",
+ " 'categorical': {\n",
+ " 'level_accuracy': level_accuracy\n",
+ " },\n",
+ " 'error_stats': {\n",
+ " 'mean': float(np.mean(errors)),\n",
+ " 'std': float(np.std(errors)),\n",
+ " 'median': float(np.median(errors)),\n",
+ " 'p95_abs': float(np.percentile(np.abs(errors), 95))\n",
" }\n",
" }\n",
"\n",
" return metrics\n",
"\n",
+ "\n",
"def plot_training_history(history, folder_name=None):\n",
" \"\"\"\n",
- " Visualizza e salva i plot della loss e delle metriche durante il training\n",
+ " Visualize and save training loss and metrics plots\n",
"\n",
" Parameters:\n",
" -----------\n",
" history : tensorflow.keras.callbacks.History\n",
- " L'oggetto history restituito dal training del modello\n",
+ " History object returned by model training\n",
" folder_name : str\n",
- " Cartella dove salvare il plot\n",
+ " Directory to save the plots and metrics\n",
" \"\"\"\n",
" import os\n",
"\n",
" try:\n",
- " # Crea la figura\n",
+ " # Create figure\n",
" plt.figure(figsize=(12, 4))\n",
"\n",
- " # Plot della Loss\n",
+ " # Loss plot\n",
" plt.subplot(1, 2, 1)\n",
" plt.plot(history.history['loss'], label='Training Loss')\n",
" plt.plot(history.history['val_loss'], label='Validation Loss')\n",
@@ -609,7 +748,7 @@
" plt.legend()\n",
" plt.grid(True)\n",
"\n",
- " # Plot del MAE\n",
+ " # MAE plot\n",
" plt.subplot(1, 2, 2)\n",
" plt.plot(history.history['mae'], label='Training MAE')\n",
" plt.plot(history.history['val_mae'], label='Validation MAE')\n",
@@ -623,14 +762,14 @@
"\n",
" if folder_name is not None:\n",
" os.makedirs(folder_name, exist_ok=True)\n",
- " # Genera il nome del file con timestamp\n",
+ " # Generate filename with timestamp\n",
" filename = os.path.join(folder_name, 'training_history.png')\n",
"\n",
- " # Salva la figura\n",
+ " # Save figure\n",
" plt.savefig(filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"\\nPlot della training history salvato come: {filename}\")\n",
+ " print(f\"\\nTraining history plot saved as: {filename}\")\n",
"\n",
- " # Salva anche i dati numerici in formato CSV\n",
+ " # Save numerical data in CSV format\n",
" history_df = pd.DataFrame({\n",
" 'epoch': range(1, len(history.history['loss']) + 1),\n",
" 'training_loss': history.history['loss'],\n",
@@ -642,9 +781,9 @@
" if folder_name is not None:\n",
" csv_filename = os.path.join(folder_name, 'training_history.csv')\n",
" history_df.to_csv(csv_filename, index=False)\n",
- " print(f\"Dati della training history salvati come: {csv_filename}\")\n",
+ " print(f\"Training history data saved as: {csv_filename}\")\n",
"\n",
- " # Calcola e salva le statistiche finali\n",
+ " # Calculate and save final statistics\n",
" final_stats = {\n",
" 'final_training_loss': history.history['loss'][-1],\n",
" 'final_validation_loss': history.history['val_loss'][-1],\n",
@@ -656,101 +795,116 @@
" }\n",
"\n",
" if folder_name is not None:\n",
- " # Salva le statistiche in formato JSON\n",
+ " # Save statistics in JSON format\n",
" stats_filename = os.path.join(folder_name, 'training_stats.json')\n",
" with open(stats_filename, 'w') as f:\n",
" json.dump(final_stats, f, indent=4)\n",
- " print(f\"Statistiche finali salvate come: {stats_filename}\")\n",
+ " print(f\"Final statistics saved as: {stats_filename}\")\n",
"\n",
- " # Stampa le statistiche principali\n",
- " print(\"\\nStatistiche finali del training:\")\n",
- " print(f\"Loss finale (train/val): {final_stats['final_training_loss']:.4f}/{final_stats['final_validation_loss']:.4f}\")\n",
- " print(f\"MAE finale (train/val): {final_stats['final_training_mae']:.4f}/{final_stats['final_validation_mae']:.4f}\")\n",
- " print(f\"Miglior validation loss: {final_stats['best_validation_loss']:.4f}\")\n",
- " print(f\"Miglior validation MAE: {final_stats['best_validation_mae']:.4f}\")\n",
+ " # Print main statistics\n",
+ " print(\"\\nFinal Training Statistics:\")\n",
+ " print(f\"Final Loss (train/val): {final_stats['final_training_loss']:.4f}/{final_stats['final_validation_loss']:.4f}\")\n",
+ " print(f\"Final MAE (train/val): {final_stats['final_training_mae']:.4f}/{final_stats['final_validation_mae']:.4f}\")\n",
+ " print(f\"Best validation loss: {final_stats['best_validation_loss']:.4f}\")\n",
+ " print(f\"Best validation MAE: {final_stats['best_validation_mae']:.4f}\")\n",
"\n",
" plt.show()\n",
"\n",
" except Exception as e:\n",
- " print(f\"\\nErrore durante la creazione o il salvataggio dei plot: {str(e)}\")\n",
+ " print(f\"\\nError during plot creation or saving: {str(e)}\")\n",
"\n",
"\n",
- "def train_hybrid_model(model, X_train, y_train, X_test, y_test, epochs=100, batch_size=32, folder_name='solarradiation_index'):\n",
+ "def train_hybrid_model(model, X_train, y_train, X_test, y_test, epochs=100, batch_size=32, folder_name='solarradiation'):\n",
" \"\"\"\n",
- " Funzione di training avanzata per il modello ibrido UV index con monitoraggio dettagliato\n",
- " e gestione del training.\n",
+ " Advanced training function for the hybrid solar radiation model with detailed monitoring\n",
+ " and training management.\n",
"\n",
" Parameters:\n",
" -----------\n",
" model : keras.Model\n",
- " Il modello ibrido compilato\n",
+ " Compiled hybrid model\n",
" X_train : numpy.ndarray\n",
- " Dati di training\n",
+ " Training data\n",
" y_train : numpy.ndarray\n",
- " Target di training\n",
+ " Training targets\n",
" X_test : numpy.ndarray\n",
- " Dati di validation\n",
+ " Validation data\n",
" y_test : numpy.ndarray\n",
- " Target di validation\n",
+ " Validation targets\n",
" epochs : int, optional\n",
- " Numero massimo di epoche di training\n",
+ " Maximum number of training epochs\n",
" batch_size : int, optional\n",
- " Dimensione del batch\n",
+ " Batch size\n",
+ " folder_name : str, optional\n",
+ " Directory for saving model artifacts\n",
"\n",
" Returns:\n",
" --------\n",
" history : keras.callbacks.History\n",
- " Storia del training con tutte le metriche\n",
+ " Training history with all metrics\n",
" \"\"\"\n",
"\n",
- " # Callbacks avanzati per il training\n",
+ " # Advanced training callbacks\n",
" callbacks = [\n",
- " # Early Stopping avanzato\n",
+ " # Early Stopping\n",
" EarlyStopping(\n",
- " monitor='mae',\n",
+ " monitor='val_loss',\n",
" patience=15,\n",
" restore_best_weights=True,\n",
" mode='min',\n",
" verbose=1,\n",
- " min_delta=1e-6\n",
+ " min_delta=1e-4\n",
" ),\n",
+ " # ReduceLROnPlateau for MAE\n",
" ReduceLROnPlateau(\n",
" monitor='mae',\n",
- " factor=0.05,\n",
- " patience=3,\n",
+ " factor=0.2,\n",
+ " patience=5,\n",
" verbose=1,\n",
" mode='min',\n",
- " min_delta=1e-6,\n",
- " cooldown=2,\n",
+ " min_delta=1e-4,\n",
+ " cooldown=3,\n",
" min_lr=1e-7\n",
" ),\n",
+ " # ReduceLROnPlateau for loss\n",
" ReduceLROnPlateau(\n",
" monitor='val_loss',\n",
" factor=0.2,\n",
- " patience=2,\n",
+ " patience=3,\n",
" verbose=1,\n",
" mode='min',\n",
- " min_delta=1e-6,\n",
- " cooldown=1,\n",
+ " min_delta=1e-4,\n",
+ " cooldown=2,\n",
" min_lr=1e-7\n",
" ),\n",
+ " # Model Checkpoint\n",
" tf.keras.callbacks.ModelCheckpoint(\n",
- " filepath=f'{folder_name}_best_solarradiation_model.h5',\n",
- " monitor='mae',\n",
+ " filepath=f'{folder_name}_best_model.h5',\n",
+ " monitor='val_loss',\n",
" save_best_only=True,\n",
- " mode='min'\n",
+ " mode='min',\n",
+ " save_weights_only=False\n",
" ),\n",
+ " # TensorBoard\n",
" tf.keras.callbacks.TensorBoard(\n",
" log_dir=f'./logs_{folder_name}',\n",
" histogram_freq=1,\n",
" write_graph=True,\n",
- " update_freq='epoch'\n",
+ " update_freq='epoch',\n",
+ " profile_batch=0\n",
" ),\n",
+ " # Lambda Callback for solar radiation monitoring\n",
" tf.keras.callbacks.LambdaCallback(\n",
- " on_epoch_end=lambda epoch, logs: print(\n",
- " f\"\\nEpoch {epoch + 1}: Predizioni fuori range: \"\n",
- " f\"{np.sum((model.predict(X_test) < 0) | (model.predict(X_test) > 11))}\"\n",
- " ) if epoch % 20 == 0 else None\n",
+ " on_epoch_end=lambda epoch, logs: (\n",
+ " lambda y_pred: print(\n",
+ " f\"\\nEpoch {epoch + 1}:\"\n",
+ " f\"\\nPredictions out of range (0-1500 W/m²): \"\n",
+ " f\"{np.sum((y_pred < 0) | (y_pred > 1500))}\"\n",
+ " f\"\\nMAPE: {np.mean(np.abs((y_test - y_pred) / (y_test + 1e-7))) * 100:.2f}%\"\n",
+ " f\"\\nPredictions within ±10%: \"\n",
+ " f\"{np.mean(np.abs((y_pred - y_test) / (y_test + 1e-7)) <= 0.10) * 100:.2f}%\"\n",
+ " )\n",
+ " )(model.predict(X_test)) if epoch % 20 == 0 else None\n",
" )\n",
" ]\n",
"\n",
@@ -766,142 +920,104 @@
" validation_freq=1,\n",
" )\n",
"\n",
- " # Analisi post-training\n",
- " print(\"\\nTraining completato con successo!\")\n",
+ " # Post-training analysis\n",
+ " print(\"\\nTraining completed successfully!\")\n",
"\n",
- " # Valutazione finale sul test set\n",
+ " # Final evaluation on test set\n",
" test_loss, test_mae, test_mse = model.evaluate(X_test, y_test, verbose=0)\n",
- " print(f\"\\nMetriche finali sul test set:\")\n",
+ " print(f\"\\nFinal metrics on test set:\")\n",
" print(f\"Loss: {test_loss:.4f}\")\n",
" print(f\"MAE: {test_mae:.4f}\")\n",
" print(f\"MSE: {test_mse:.4f}\")\n",
"\n",
- " # Analisi delle predizioni\n",
+ " # Prediction analysis\n",
" predictions = model.predict(X_test)\n",
" out_of_range = np.sum((predictions < 0) | (predictions > 11))\n",
- " print(f\"\\nPredizioni fuori range: {out_of_range} ({out_of_range / len(predictions) * 100:.2f}%)\")\n",
+ " print(f\"\\nOut of range predictions: {out_of_range} ({out_of_range / len(predictions) * 100:.2f}%)\")\n",
"\n",
" plot_training_history(history, folder_name=folder_name)\n",
"\n",
" return history\n",
"\n",
" except Exception as e:\n",
- " print(f\"\\nErrore durante il training: {str(e)}\")\n",
+ " print(f\"\\nError during training: {str(e)}\")\n",
" raise\n",
"\n",
" finally:\n",
- " # Pulizia della memoria\n",
+ " # Memory cleanup\n",
" tf.keras.backend.clear_session()\n",
"\n",
"\n",
- "def calculate_class_weights(y_train, n_classes=12):\n",
- " \"\"\"\n",
- " Calcola i pesi delle classi per bilanciare il dataset UV index.\n",
- " \n",
- " Parameters:\n",
- " -----------\n",
- " y_train : numpy.ndarray\n",
- " Array dei valori UV di training\n",
- " n_classes : int, optional\n",
- " Numero di classi possibili (0-11 per UV index, quindi 12 classi)\n",
- " \n",
- " Returns:\n",
- " --------\n",
- " dict:\n",
- " Dizionario con i pesi per ogni classe\n",
- " \"\"\"\n",
- " # Arrotonda i valori UV al più vicino intero e converti in intero\n",
- " y_discrete = np.clip(np.round(y_train), 0, 11).astype(int)\n",
- "\n",
- " # Calcola la frequenza di ogni classe\n",
- " unique, counts = np.unique(y_discrete, return_counts=True)\n",
- " total_samples = len(y_discrete)\n",
- "\n",
- " # Calcola i pesi inversamente proporzionali alla frequenza\n",
- " weights = {}\n",
- " for i in range(n_classes):\n",
- " if i in unique:\n",
- " # Se la classe è presente, calcola il peso\n",
- " weight = total_samples / (len(unique) * counts[unique == i][0])\n",
- " else:\n",
- " # Se la classe non è presente, assegna un peso neutro\n",
- " weight = 1.0\n",
- " weights[i] = weight\n",
- "\n",
- " return weights\n",
- "\n",
- "\n",
"def integrate_predictions(df, predictions, sequence_length=24):\n",
" \"\"\"\n",
- " Integra le predizioni dell'UV index nel dataset originale per i dati precedenti al 2010.\n",
- " \n",
+ " Integrates solar radiation predictions into the original dataset for pre-2010 data.\n",
+ "\n",
" Parameters:\n",
" -----------\n",
" df : pandas.DataFrame\n",
- " Dataset originale\n",
+ " Original dataset\n",
" predictions : numpy.ndarray\n",
- " Array delle predizioni UV index\n",
+ " Array of solar radiation predictions\n",
" sequence_length : int\n",
- " Lunghezza della sequenza usata per le predizioni\n",
- " \n",
+ " Sequence length used for predictions\n",
+ "\n",
" Returns:\n",
" --------\n",
" pandas.DataFrame\n",
- " Dataset aggiornato con le predizioni UV index\n",
+ " Updated dataset with solar radiation predictions\n",
" \"\"\"\n",
- " # Converti datetime in formato datetime se non lo è già\n",
+ " # Convert datetime to datetime format if not already\n",
" df['datetime'] = pd.to_datetime(df['datetime'])\n",
"\n",
- " # Identifica le righe precedenti al 2010\n",
+ " # Identify pre-2010 rows\n",
" mask_pre_2010 = df['datetime'].dt.year < 2010\n",
"\n",
- " # Crea un DataFrame temporaneo con le predizioni\n",
+ " # Create temporary DataFrame with predictions\n",
" dates_pre_2010 = df[mask_pre_2010]['datetime'].iloc[sequence_length - 1:]\n",
" predictions_df = pd.DataFrame({\n",
" 'datetime': dates_pre_2010,\n",
- " 'uvindex_predicted': predictions.flatten()\n",
+ " 'solarradiation_predicted': predictions.flatten()\n",
" })\n",
"\n",
- " # Merge con il dataset originale\n",
+ " # Merge with original dataset\n",
" df = df.merge(predictions_df, on='datetime', how='left')\n",
"\n",
- " # Aggiorna la colonna uvindex dove manca\n",
- " df['uvindex'] = df['uvindex'].fillna(df['uvindex_predicted'])\n",
+ " # Update solar radiation column where missing\n",
+ " df['solarradiation'] = df['solarradiation'].fillna(df['solarradiation_predicted'])\n",
"\n",
- " # Rimuovi la colonna temporanea\n",
- " df = df.drop('uvindex_predicted', axis=1)\n",
+ " # Remove temporary column\n",
+ " df = df.drop('solarradiation_predicted', axis=1)\n",
"\n",
- " print(f\"Aggiunte {len(predictions)} predizioni al dataset\")\n",
- " print(f\"Righe con UV index dopo l'integrazione: {df['uvindex'].notna().sum()}\")\n",
+ " print(f\"Added {len(predictions)} predictions to dataset\")\n",
+ " print(f\"Rows with solar radiation after integration: {df['solarradiation'].notna().sum()}\")\n",
"\n",
" return df\n",
"\n",
"\n",
- "def train_uvindex_bounded_model(df):\n",
+ "def train_solarradiation_bounded_model(df):\n",
" \"\"\"\n",
- " Training del modello con vincoli specifici per UV index\n",
+ " Training of the model with specific constraints for solar radiation\n",
" \"\"\"\n",
- " print(\"Inizializzazione del training del modello UV index...\")\n",
+ " print(\"Initializing solar radiation model training...\")\n",
"\n",
" try:\n",
- "\n",
- " # Preparazione dei dati\n",
- " print(\"\\n1. Preparazione dei dati...\")\n",
+ " # Data preparation\n",
+ " print(\"\\n1. Preparing data...\")\n",
" X_train_seq, X_test_seq, y_train, y_test, scaler, features, X_to_predict_seq = prepare_hybrid_data(df)\n",
"\n",
- " print(f\"Shape dei dati di training: {X_train_seq.shape}\")\n",
- " print(f\"Shape dei dati di test: {X_test_seq.shape}\")\n",
+ " print(f\"Training data shape: {X_train_seq.shape}\")\n",
+ " print(f\"Test data shape: {X_test_seq.shape}\")\n",
"\n",
- " # Verifica della qualità dei dati\n",
+ " # Data quality verification\n",
" if np.isnan(X_train_seq).any() or np.isnan(y_train).any():\n",
- " raise ValueError(\"Trovati valori NaN nei dati di training\")\n",
+ " raise ValueError(\"Found NaN values in training data\")\n",
"\n",
- " # Creazione del modello\n",
- " print(\"\\n2. Creazione del modello...\")\n",
+ " # Model creation\n",
+ " print(\"\\n2. Creating model...\")\n",
" input_shape = (X_train_seq.shape[1], X_train_seq.shape[2])\n",
- " model = create_solarradiation_index_model(input_shape, folder_name)\n",
+ " model = create_solarradiation_model(input_shape, folder_name)\n",
"\n",
- " print(\"\\n4. Avvio del training...\")\n",
+ " print(\"\\n4. Starting training...\")\n",
" history = train_hybrid_model(\n",
" model=model,\n",
" X_train=X_train_seq,\n",
@@ -913,14 +1029,14 @@
" folder_name=folder_name\n",
" )\n",
"\n",
- " print(\"\\n5. Generazione delle predizioni...\")\n",
+ " print(\"\\n5. Generating predictions...\")\n",
" predictions = model.predict(X_test_seq)\n",
" predictions = np.clip(predictions, 0, 11)\n",
"\n",
- " print(\"\\n6. Valutazione del modello...\")\n",
+ " print(\"\\n6. Evaluating model...\")\n",
" metrics = evaluate_solarradiation_predictions(y_test, predictions, folder_name=folder_name)\n",
"\n",
- " # Creazione del dizionario dei risultati\n",
+ " # Create results dictionary\n",
" training_results = {\n",
" 'model_params': {\n",
" 'input_shape': input_shape,\n",
@@ -930,8 +1046,7 @@
" 'training_params': {\n",
" 'batch_size': 32,\n",
" 'total_epochs': len(history.history['loss']),\n",
- " 'best_epoch': np.argmin(history.history['val_loss']) + 1,\n",
- " #'class_weights': {str(k): float(v) for k, v in class_weights.items()}\n",
+ " 'best_epoch': np.argmin(history.history['val_loss']) + 1\n",
" },\n",
" 'performance_metrics': {\n",
" 'final_loss': float(history.history['val_loss'][-1]),\n",
@@ -941,576 +1056,79 @@
" }\n",
" }\n",
"\n",
- " print(\"\\n7. Predizione dei dati mancanti risultati...\")\n",
+ " print(\"\\n7. Predicting missing data...\")\n",
" to_predict_predictions = model.predict(X_to_predict_seq)\n",
" to_predict_predictions = np.clip(to_predict_predictions, 0, 11)\n",
"\n",
- " print(\"\\n8. Integrazione delle predizioni nel dataset originale...\")\n",
+ " print(\"\\n8. Integrating predictions into original dataset...\")\n",
" df_updated = integrate_predictions(df.copy(), to_predict_predictions)\n",
"\n",
- " df_updated.to_parquet('./data/weather_data_uvindex.parquet')\n",
+ " df_updated.to_parquet('../../sources/weather_data_solarradiation.parquet')\n",
"\n",
- " # Aggiungi statistiche sulle predizioni al training_results\n",
+ " # Add prediction statistics to training_results\n",
" training_results['prediction_stats'] = {\n",
" 'n_predictions_added': len(to_predict_predictions),\n",
- " 'mean_predicted_uv': float(to_predict_predictions.mean()),\n",
- " 'min_predicted_uv': float(to_predict_predictions.min()),\n",
- " 'max_predicted_uv': float(to_predict_predictions.max()),\n",
+ " 'mean_predicted_solarradiation': float(to_predict_predictions.mean()),\n",
+ " 'min_predicted_solarradiation': float(to_predict_predictions.min()),\n",
+ " 'max_predicted_solarradiation': float(to_predict_predictions.max()),\n",
" }\n",
"\n",
- " print(\"\\nTraining completato con successo!\")\n",
+ " print(\"\\nTraining completed successfully!\")\n",
"\n",
" return model, scaler, features, history, predictions, y_test, metrics, training_results\n",
"\n",
" except Exception as e:\n",
- " print(f\"\\nErrore durante il training: {str(e)}\")\n",
+ " print(f\"\\nError during training: {str(e)}\")\n",
" raise\n",
"\n",
" finally:\n",
- " # Pulizia della memoria\n",
+ " # Memory cleanup\n",
" tf.keras.backend.clear_session()"
- ]
+ ],
+ "outputs": [],
+ "execution_count": null
},
{
"cell_type": "code",
- "execution_count": 9,
"id": "initial_id",
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Inizializzazione del training del modello UV index...\n",
- "\n",
- "1. Preparazione dei dati...\n",
- "\n",
- "Numero di record dopo 2010: 129777\n",
- "Numero di record prima 2010: 227902\n",
- "Shape dei dati di training: (64865, 24, 33)\n",
- "Shape dei dati di test: (64866, 24, 33)\n",
- "\n",
- "2. Creazione del modello...\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2024-11-10 22:48:30.467084: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1886] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 22456 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3090, pci bus id: 0000:e1:00.0, compute capability: 8.6\n",
- "2024-11-10 22:48:30.995563: I tensorflow/tsl/platform/default/subprocess.cc:304] Start cannot spawn child process: No such file or directory\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Model: \"UvModel\"\n",
- "__________________________________________________________________________________________________\n",
- " Layer (type) Output Shape Param # Connected to \n",
- "==================================================================================================\n",
- " input_1 (InputLayer) [(None, 24, 33)] 0 [] \n",
- " \n",
- " bidirectional (Bidirection (None, 24, 256) 165888 ['input_1[0][0]'] \n",
- " al) \n",
- " \n",
- " layer_normalization (Layer (None, 24, 256) 512 ['bidirectional[0][0]'] \n",
- " Normalization) \n",
- " \n",
- " dropout (Dropout) (None, 24, 256) 0 ['layer_normalization[0][0]'] \n",
- " \n",
- " dense (Dense) (None, 24, 256) 8704 ['input_1[0][0]'] \n",
- " \n",
- " add (Add) (None, 24, 256) 0 ['dropout[0][0]', \n",
- " 'dense[0][0]'] \n",
- " \n",
- " bidirectional_1 (Bidirecti (None, 24, 128) 164352 ['add[0][0]'] \n",
- " onal) \n",
- " \n",
- " layer_normalization_1 (Lay (None, 24, 128) 256 ['bidirectional_1[0][0]'] \n",
- " erNormalization) \n",
- " \n",
- " dropout_1 (Dropout) (None, 24, 128) 0 ['layer_normalization_1[0][0]'\n",
- " ] \n",
- " \n",
- " dense_1 (Dense) (None, 24, 128) 32896 ['add[0][0]'] \n",
- " \n",
- " add_1 (Add) (None, 24, 128) 0 ['dropout_1[0][0]', \n",
- " 'dense_1[0][0]'] \n",
- " \n",
- " bidirectional_2 (Bidirecti (None, 24, 64) 41216 ['add_1[0][0]'] \n",
- " onal) \n",
- " \n",
- " layer_normalization_2 (Lay (None, 24, 64) 128 ['bidirectional_2[0][0]'] \n",
- " erNormalization) \n",
- " \n",
- " dropout_2 (Dropout) (None, 24, 64) 0 ['layer_normalization_2[0][0]'\n",
- " ] \n",
- " \n",
- " dense_2 (Dense) (None, 24, 64) 8256 ['add_1[0][0]'] \n",
- " \n",
- " add_2 (Add) (None, 24, 64) 0 ['dropout_2[0][0]', \n",
- " 'dense_2[0][0]'] \n",
- " \n",
- " multi_head_attention (Mult (None, 24, 64) 132672 ['add_2[0][0]', \n",
- " iHeadAttention) 'add_2[0][0]'] \n",
- " \n",
- " add_3 (Add) (None, 24, 64) 0 ['add_2[0][0]', \n",
- " 'multi_head_attention[0][0]']\n",
- " \n",
- " layer_normalization_3 (Lay (None, 24, 64) 128 ['add_3[0][0]'] \n",
- " erNormalization) \n",
- " \n",
- " max_pooling1d (MaxPooling1 (None, 12, 64) 0 ['layer_normalization_3[0][0]'\n",
- " D) ] \n",
- " \n",
- " bidirectional_3 (Bidirecti (None, 64) 24832 ['max_pooling1d[0][0]'] \n",
- " onal) \n",
- " \n",
- " layer_normalization_4 (Lay (None, 64) 128 ['bidirectional_3[0][0]'] \n",
- " erNormalization) \n",
- " \n",
- " dropout_3 (Dropout) (None, 64) 0 ['layer_normalization_4[0][0]'\n",
- " ] \n",
- " \n",
- " dense_3 (Dense) (None, 32) 2080 ['dropout_3[0][0]'] \n",
- " \n",
- " batch_normalization (Batch (None, 32) 128 ['dense_3[0][0]'] \n",
- " Normalization) \n",
- " \n",
- " activation (Activation) (None, 32) 0 ['batch_normalization[0][0]'] \n",
- " \n",
- " dropout_4 (Dropout) (None, 32) 0 ['activation[0][0]'] \n",
- " \n",
- " dense_4 (Dense) (None, 16) 528 ['dropout_4[0][0]'] \n",
- " \n",
- " batch_normalization_1 (Bat (None, 16) 64 ['dense_4[0][0]'] \n",
- " chNormalization) \n",
- " \n",
- " activation_1 (Activation) (None, 16) 0 ['batch_normalization_1[0][0]'\n",
- " ] \n",
- " \n",
- " dropout_5 (Dropout) (None, 16) 0 ['activation_1[0][0]'] \n",
- " \n",
- " dense_5 (Dense) (None, 1) 17 ['dropout_5[0][0]'] \n",
- " \n",
- " lambda (Lambda) (None, 1) 0 ['dense_5[0][0]'] \n",
- " \n",
- "==================================================================================================\n",
- "Total params: 582785 (2.22 MB)\n",
- "Trainable params: 582689 (2.22 MB)\n",
- "Non-trainable params: 96 (384.00 Byte)\n",
- "__________________________________________________________________________________________________\n",
- "\n",
- "4. Avvio del training...\n",
- "Epoch 1/100\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2024-11-10 22:48:44.916189: I tensorflow/compiler/xla/stream_executor/cuda/cuda_dnn.cc:442] Loaded cuDNN version 8905\n",
- "2024-11-10 22:48:47.364274: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x7fb501567b00 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "2024-11-10 22:48:47.364334: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): NVIDIA GeForce RTX 3090, Compute Capability 8.6\n",
- "2024-11-10 22:48:47.375943: I tensorflow/compiler/mlir/tensorflow/utils/dump_mlir_util.cc:269] disabling MLIR crash reproducer, set env var `MLIR_CRASH_REPRODUCER_DIRECTORY` to enable.\n",
- "2024-11-10 22:48:47.576847: I ./tensorflow/compiler/jit/device_compiler.h:186] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "507/507 [==============================] - ETA: 0s - loss: 3.0211 - mae: 0.8732 - mse: 2.6901"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/usr/local/lib/python3.11/dist-packages/keras/src/engine/training.py:3079: UserWarning: You are saving your model as an HDF5 file via `model.save()`. This file format is considered legacy. We recommend using instead the native Keras format, e.g. `model.save('my_model.keras')`.\n",
- " saving_api.save_model(\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "2028/2028 [==============================] - 25s 11ms/step\n",
- "2028/2028 [==============================] - 22s 11ms/step\n",
- "\n",
- "Epoch 1: Predizioni fuori range: 0\n",
- "507/507 [==============================] - 95s 149ms/step - loss: 3.0211 - mae: 0.8732 - mse: 2.6901 - val_loss: 1.1114 - val_mae: 0.5132 - val_mse: 0.8839 - lr: 5.0000e-04\n",
- "Epoch 2/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.8217 - mae: 0.5744 - mse: 1.1119 - val_loss: 0.5794 - val_mae: 0.5285 - val_mse: 0.8990 - lr: 5.0000e-04\n",
- "Epoch 3/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.5241 - mae: 0.5406 - mse: 0.9968 - val_loss: 0.4411 - val_mae: 0.4995 - val_mse: 0.8515 - lr: 5.0000e-04\n",
- "Epoch 4/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.4490 - mae: 0.5363 - mse: 0.9738 - val_loss: 0.3752 - val_mae: 0.4606 - val_mse: 0.7784 - lr: 5.0000e-04\n",
- "Epoch 5/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.4127 - mae: 0.5218 - mse: 0.9290 - val_loss: 0.3470 - val_mae: 0.4698 - val_mse: 0.7271 - lr: 5.0000e-04\n",
- "Epoch 6/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3900 - mae: 0.5160 - mse: 0.9202 - val_loss: 0.3096 - val_mae: 0.4316 - val_mse: 0.6812 - lr: 5.0000e-04\n",
- "Epoch 7/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3934 - mae: 0.5173 - mse: 0.9176 - val_loss: 0.3931 - val_mae: 0.5097 - val_mse: 0.9083 - lr: 5.0000e-04\n",
- "Epoch 8/100\n",
- "507/507 [==============================] - ETA: 0s - loss: 0.3765 - mae: 0.5054 - mse: 0.8823\n",
- "Epoch 8: ReduceLROnPlateau reducing learning rate to 0.00010000000474974513.\n",
- "507/507 [==============================] - 22s 44ms/step - loss: 0.3765 - mae: 0.5054 - mse: 0.8823 - val_loss: 0.3501 - val_mae: 0.4814 - val_mse: 0.7773 - lr: 5.0000e-04\n",
- "Epoch 9/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3486 - mae: 0.4816 - mse: 0.8109 - val_loss: 0.2983 - val_mae: 0.4224 - val_mse: 0.6545 - lr: 1.0000e-04\n",
- "Epoch 10/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3425 - mae: 0.4789 - mse: 0.8051 - val_loss: 0.2930 - val_mae: 0.4210 - val_mse: 0.6593 - lr: 1.0000e-04\n",
- "Epoch 11/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3360 - mae: 0.4739 - mse: 0.7934 - val_loss: 0.2883 - val_mae: 0.4160 - val_mse: 0.6435 - lr: 1.0000e-04\n",
- "Epoch 12/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3341 - mae: 0.4755 - mse: 0.7938 - val_loss: 0.2981 - val_mae: 0.4305 - val_mse: 0.6719 - lr: 1.0000e-04\n",
- "Epoch 13/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3315 - mae: 0.4741 - mse: 0.7918 - val_loss: 0.2859 - val_mae: 0.4170 - val_mse: 0.6472 - lr: 1.0000e-04\n",
- "Epoch 14/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3280 - mae: 0.4706 - mse: 0.7851 - val_loss: 0.2841 - val_mae: 0.4196 - val_mse: 0.6415 - lr: 1.0000e-04\n",
- "Epoch 15/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3253 - mae: 0.4691 - mse: 0.7793 - val_loss: 0.2800 - val_mae: 0.4129 - val_mse: 0.6375 - lr: 1.0000e-04\n",
- "Epoch 16/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3238 - mae: 0.4697 - mse: 0.7778 - val_loss: 0.2866 - val_mae: 0.4247 - val_mse: 0.6558 - lr: 1.0000e-04\n",
- "Epoch 17/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3220 - mae: 0.4683 - mse: 0.7760 - val_loss: 0.2784 - val_mae: 0.4179 - val_mse: 0.6353 - lr: 1.0000e-04\n",
- "Epoch 18/100\n",
- "507/507 [==============================] - 23s 44ms/step - loss: 0.3181 - mae: 0.4659 - mse: 0.7723 - val_loss: 0.2793 - val_mae: 0.4205 - val_mse: 0.6472 - lr: 1.0000e-04\n",
- "Epoch 19/100\n",
- "506/507 [============================>.] - ETA: 0s - loss: 0.3162 - mae: 0.4650 - mse: 0.7704\n",
- "Epoch 19: ReduceLROnPlateau reducing learning rate to 2.0000000949949027e-05.\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3161 - mae: 0.4648 - mse: 0.7699 - val_loss: 0.2797 - val_mae: 0.4190 - val_mse: 0.6547 - lr: 1.0000e-04\n",
- "Epoch 20/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3123 - mae: 0.4613 - mse: 0.7628 - val_loss: 0.2668 - val_mae: 0.4065 - val_mse: 0.6173 - lr: 2.0000e-05\n",
- "Epoch 21/100\n",
- "2028/2028 [==============================] - 23s 11ms/step\n",
- "2028/2028 [==============================] - 22s 11ms/step\n",
- "\n",
- "Epoch 21: Predizioni fuori range: 0\n",
- "507/507 [==============================] - 70s 139ms/step - loss: 0.3098 - mae: 0.4588 - mse: 0.7522 - val_loss: 0.2658 - val_mae: 0.4054 - val_mse: 0.6173 - lr: 2.0000e-05\n",
- "Epoch 22/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3093 - mae: 0.4590 - mse: 0.7529 - val_loss: 0.2652 - val_mae: 0.4046 - val_mse: 0.6218 - lr: 2.0000e-05\n",
- "Epoch 23/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3086 - mae: 0.4580 - mse: 0.7535 - val_loss: 0.2653 - val_mae: 0.4047 - val_mse: 0.6177 - lr: 2.0000e-05\n",
- "Epoch 24/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3077 - mae: 0.4577 - mse: 0.7500 - val_loss: 0.2638 - val_mae: 0.4048 - val_mse: 0.6161 - lr: 2.0000e-05\n",
- "Epoch 25/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3056 - mae: 0.4556 - mse: 0.7444 - val_loss: 0.2637 - val_mae: 0.4049 - val_mse: 0.6151 - lr: 2.0000e-05\n",
- "Epoch 26/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3043 - mae: 0.4543 - mse: 0.7443 - val_loss: 0.2630 - val_mae: 0.4033 - val_mse: 0.6194 - lr: 2.0000e-05\n",
- "Epoch 27/100\n",
- "507/507 [==============================] - 22s 44ms/step - loss: 0.3055 - mae: 0.4561 - mse: 0.7485 - val_loss: 0.2623 - val_mae: 0.4022 - val_mse: 0.6164 - lr: 2.0000e-05\n",
- "Epoch 28/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3042 - mae: 0.4555 - mse: 0.7458 - val_loss: 0.2616 - val_mae: 0.4005 - val_mse: 0.6202 - lr: 2.0000e-05\n",
- "Epoch 29/100\n",
- "507/507 [==============================] - ETA: 0s - loss: 0.3047 - mae: 0.4561 - mse: 0.7492\n",
- "Epoch 29: ReduceLROnPlateau reducing learning rate to 1.0000000656873453e-06.\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3047 - mae: 0.4561 - mse: 0.7492 - val_loss: 0.2613 - val_mae: 0.4038 - val_mse: 0.6127 - lr: 1.0000e-06\n",
- "Epoch 30/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3041 - mae: 0.4560 - mse: 0.7475 - val_loss: 0.2610 - val_mae: 0.4028 - val_mse: 0.6124 - lr: 1.0000e-06\n",
- "Epoch 31/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3016 - mae: 0.4529 - mse: 0.7384 - val_loss: 0.2611 - val_mae: 0.4027 - val_mse: 0.6122 - lr: 1.0000e-06\n",
- "Epoch 32/100\n",
- "506/507 [============================>.] - ETA: 0s - loss: 0.3021 - mae: 0.4538 - mse: 0.7404\n",
- "Epoch 32: ReduceLROnPlateau reducing learning rate to 2.000000222324161e-07.\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3020 - mae: 0.4537 - mse: 0.7400 - val_loss: 0.2611 - val_mae: 0.4027 - val_mse: 0.6123 - lr: 1.0000e-06\n",
- "Epoch 33/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3004 - mae: 0.4514 - mse: 0.7353 - val_loss: 0.2610 - val_mae: 0.4024 - val_mse: 0.6128 - lr: 2.0000e-07\n",
- "Epoch 34/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3014 - mae: 0.4520 - mse: 0.7420 - val_loss: 0.2609 - val_mae: 0.4023 - val_mse: 0.6129 - lr: 2.0000e-07\n",
- "Epoch 35/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3020 - mae: 0.4532 - mse: 0.7402 - val_loss: 0.2609 - val_mae: 0.4022 - val_mse: 0.6132 - lr: 2.0000e-07\n",
- "Epoch 36/100\n",
- "507/507 [==============================] - ETA: 0s - loss: 0.3030 - mae: 0.4545 - mse: 0.7438\n",
- "Epoch 36: ReduceLROnPlateau reducing learning rate to 1e-07.\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3030 - mae: 0.4545 - mse: 0.7438 - val_loss: 0.2609 - val_mae: 0.4023 - val_mse: 0.6127 - lr: 1.0000e-07\n",
- "Epoch 37/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3020 - mae: 0.4538 - mse: 0.7388 - val_loss: 0.2609 - val_mae: 0.4022 - val_mse: 0.6129 - lr: 1.0000e-07\n",
- "Epoch 38/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3036 - mae: 0.4552 - mse: 0.7454 - val_loss: 0.2609 - val_mae: 0.4022 - val_mse: 0.6127 - lr: 1.0000e-07\n",
- "Epoch 39/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3005 - mae: 0.4514 - mse: 0.7366 - val_loss: 0.2608 - val_mae: 0.4021 - val_mse: 0.6128 - lr: 1.0000e-07\n",
- "Epoch 40/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3021 - mae: 0.4536 - mse: 0.7401 - val_loss: 0.2609 - val_mae: 0.4021 - val_mse: 0.6128 - lr: 1.0000e-07\n",
- "Epoch 41/100\n",
- "2028/2028 [==============================] - 22s 11ms/step\n",
- "2028/2028 [==============================] - 23s 11ms/step\n",
- "\n",
- "Epoch 41: Predizioni fuori range: 0\n",
- "507/507 [==============================] - 69s 137ms/step - loss: 0.3031 - mae: 0.4542 - mse: 0.7422 - val_loss: 0.2608 - val_mae: 0.4021 - val_mse: 0.6129 - lr: 1.0000e-07\n",
- "Epoch 42/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3007 - mae: 0.4519 - mse: 0.7347 - val_loss: 0.2609 - val_mae: 0.4022 - val_mse: 0.6128 - lr: 1.0000e-07\n",
- "Epoch 43/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3020 - mae: 0.4528 - mse: 0.7403 - val_loss: 0.2608 - val_mae: 0.4021 - val_mse: 0.6129 - lr: 1.0000e-07\n",
- "Epoch 44/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3017 - mae: 0.4527 - mse: 0.7425 - val_loss: 0.2609 - val_mae: 0.4020 - val_mse: 0.6128 - lr: 1.0000e-07\n",
- "Epoch 45/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3022 - mae: 0.4539 - mse: 0.7417 - val_loss: 0.2608 - val_mae: 0.4019 - val_mse: 0.6131 - lr: 1.0000e-07\n",
- "Epoch 46/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3028 - mae: 0.4541 - mse: 0.7424 - val_loss: 0.2608 - val_mae: 0.4019 - val_mse: 0.6131 - lr: 1.0000e-07\n",
- "Epoch 47/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3028 - mae: 0.4541 - mse: 0.7436 - val_loss: 0.2608 - val_mae: 0.4020 - val_mse: 0.6129 - lr: 1.0000e-07\n",
- "Epoch 48/100\n",
- "507/507 [==============================] - 22s 44ms/step - loss: 0.3014 - mae: 0.4533 - mse: 0.7365 - val_loss: 0.2608 - val_mae: 0.4019 - val_mse: 0.6128 - lr: 1.0000e-07\n",
- "Epoch 49/100\n",
- "507/507 [==============================] - 23s 46ms/step - loss: 0.3010 - mae: 0.4516 - mse: 0.7383 - val_loss: 0.2608 - val_mae: 0.4021 - val_mse: 0.6125 - lr: 1.0000e-07\n",
- "Epoch 50/100\n",
- "507/507 [==============================] - 22s 44ms/step - loss: 0.3035 - mae: 0.4550 - mse: 0.7466 - val_loss: 0.2607 - val_mae: 0.4019 - val_mse: 0.6128 - lr: 1.0000e-07\n",
- "Epoch 51/100\n",
- "507/507 [==============================] - 22s 44ms/step - loss: 0.3031 - mae: 0.4544 - mse: 0.7443 - val_loss: 0.2608 - val_mae: 0.4020 - val_mse: 0.6127 - lr: 1.0000e-07\n",
- "Epoch 52/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3030 - mae: 0.4540 - mse: 0.7462 - val_loss: 0.2609 - val_mae: 0.4021 - val_mse: 0.6124 - lr: 1.0000e-07\n",
- "Epoch 53/100\n",
- "507/507 [==============================] - 23s 45ms/step - loss: 0.3019 - mae: 0.4529 - mse: 0.7407 - val_loss: 0.2608 - val_mae: 0.4020 - val_mse: 0.6127 - lr: 1.0000e-07\n",
- "Epoch 54/100\n",
- "506/507 [============================>.] - ETA: 0s - loss: 0.3029 - mae: 0.4538 - mse: 0.7433Restoring model weights from the end of the best epoch: 39.\n",
- "507/507 [==============================] - 22s 44ms/step - loss: 0.3028 - mae: 0.4537 - mse: 0.7430 - val_loss: 0.2608 - val_mae: 0.4020 - val_mse: 0.6126 - lr: 1.0000e-07\n",
- "Epoch 54: early stopping\n",
- "\n",
- "Training completato con successo!\n",
- "\n",
- "Metriche finali sul test set:\n",
- "Loss: 0.2608\n",
- "MAE: 0.4021\n",
- "MSE: 0.6128\n",
- "2028/2028 [==============================] - 22s 11ms/step\n",
- "\n",
- "Predizioni fuori range: 0 (0.00%)\n"
- ]
- },
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAGGCAYAAACqvTJ0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACTaElEQVR4nOzdd3gUVdsG8Hu2Z9N7AoTeQocIGFABBWkiqCiCEJSiIqiIlVcFxVexIioqikD0UwRRQBSk5QWUjiBKV1oSJD2kZ/t8f8zuJksSSMKWZHP/rmuunZ2dcnYI5PDMc54jiKIogoiIiIiIiIiIyI1knm4AERERERERERE1PAxKERERERERERGR2zEoRUREREREREREbsegFBERERERERERuR2DUkRERERERERE5HYMShERERERERERkdsxKEVERERERERERG7HoBQREREREREREbkdg1JEREREREREROR2DEoRkVcSBAGvvPJKjY+7cOECBEFAYmKi09tEREREVJex/0RE7sagFBG5TGJiIgRBgCAI2LVrV4XPRVFETEwMBEHAHXfc4YEW1t6OHTsgCAK+//57TzeFiIiIvEhD6D8JgoCvv/660n369u0LQRDQqVOnSj83m81o1KgRBEHAL7/8Uuk+r7zyiv06lS3p6elO+05EdH0Unm4AEXk/jUaDFStW4KabbnLYvnPnTly8eBFqtdpDLSMiIiKqm7y5/2T7buPHj3fYfuHCBezZswcajabKY//3v/8hLS0NzZs3xzfffIOhQ4dWue+nn34KPz+/CtuDgoJq3XYici4GpYjI5YYNG4bVq1fjww8/hEJR9s/OihUrEBcXh+zsbA+2joiIiKju8eb+07Bhw7B+/XpkZ2cjLCzMvn3FihWIjIxEmzZtcPny5UqP/frrr9GjRw9MnDgR//nPf1BcXAxfX99K9x09erTD+Ymo7uHwPSJyubFjxyInJwdbt261bzMYDPj+++8xbty4So8pLi7G008/jZiYGKjVarRr1w7vvvsuRFF02E+v1+Opp55CeHg4/P39ceedd+LixYuVnvPff//FpEmTEBkZCbVajY4dO2LZsmXO+6KVOHfuHO69916EhIRAq9XixhtvxIYNGyrs99FHH6Fjx47QarUIDg7GDTfcgBUrVtg/LywsxMyZM9G8eXOo1WpERERg0KBBOHz4sEvbT0RE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UVFRNeqEebpDZSt0rmOmFBERETmBSqVCXFwckpKS7NssFguSkpIQHx9/1WNXr14NvV6P8ePHX/M6arUaAQEBDos7KeUyqBVSV7VQx6AUERGRN/JoUEoURcyYMQNr167F//73P7Ro0eKax8THxzt0wgBg69atVXbCPN2hsgWlShiUIiIiIieZNWsWlixZgi+//BInT57EtGnTUFxcjIceeggAkJCQgNmzZ1c4bunSpRg1ahRCQ0Pd3eRasRc7Z21OIiIir6S49i6uM336dKxYsQI//vgj/P397XWhAgMD4ePjA0DqVDVu3Bjz588HADz55JPo168f3nvvPQwfPhwrV67E77//js8//9xj3+NqOPseEREROduYMWOQlZWFOXPmID09Hd26dcOmTZvsdTdTUlIgkzk+ezx9+jR27dqFLVu2eKLJteKrViCn2MDhe0RERF7Ko0GpTz/9FADQv39/h+3Lly/Hgw8+CKBip6pPnz5YsWIFXnrpJfznP/9BmzZtsG7duqsWR/ckLQudExERkQvMmDEDM2bMqPSzHTt2VNjWrl07iKLo4lY5l62uVJGe/SgiIiJv5NGgVHU6RpV1qu69917ce++9LmiR8zFTioiIiKh2/NRSP4qZUkRERN6pThQ692Y+Kinux5pSRERERDVjqylVxELnREREXolBKRdjphQRERFR7ZQN32NQioiIyBsxKOVirClFREREVDv22fcYlCIiIvJKDEq5mIaZUkRERES1Ys+UMjAoRURE5I0YlHIxZkoRERER1Q5rShEREXk3BqVczEfFTCkiIiKi2uDwPSIiIu/GoJSL2QqdlzDtnIiIiKhGygqd8+EeERGRN2JQysVsmVI6owUWi+jh1hARERHVH75qqR/FTCkiIiLvxKCUi9lqSgGAzsSnfERERETVZR++x4xzIiIir8SglItpFGVBKRY7JyIiIqo+FjonIiLybgxKuZhMJkCjlG5zCYNSRERERNVWVlOKQSkiIiJvxKCUG9iKnes4Ax8RERFRtXH2PSIiIu/GoJQblM3Ax6AUERERUXX52mtKmTlhDBERkRdiUMoNbDPwlTJTioiIiKjabJlSAFDCfhQREZHXYVDKDRiUIiIiIqo5jVIGuUwAwGLnRERE3ohBKTfQKqWnfJx9j4iIiKj6BEGAr/XhHoudExEReR8GpdxAY8uUYlCKiIiIqEZY7JyIiMh7MSjlBlpboXMO3yMiIiKqEV8GpYiIiLxWrYJSqampuHjxov39gQMHMHPmTHz++edOa5g3sdWU0jFTioiIqEE6cOAAzOaq+wF6vR7fffedG1tUf/hppKAUh+8RERF5n1oFpcaNG4ft27cDANLT0zFo0CAcOHAAL774IubNm+fUBnoDW1CqhEEpIiKiBik+Ph45OTn29wEBATh37pz9fV5eHsaOHeuJptV5tuF7DEoRERF5n1oFpY4dO4ZevXoBAL777jt06tQJe/bswTfffIPExERnts8r+Cg5+x4REVFDJoriVd9XtY0AXxWH7xEREXmrWgWljEYj1Go1AGDbtm248847AQDt27dHWlqa81rnJbT2QufsTBEREVHlBEHwdBPqJF97phQf7hEREXmbWgWlOnbsiMWLF+O3337D1q1bMWTIEADApUuXEBoa6tQGegMNM6WIiIiIasVPLfWjmClFRETkfRS1Oeitt97CXXfdhXfeeQcTJ05E165dAQDr16+3D+ujMlrWlCIiImrwTpw4gfT0dADSUL1Tp06hqKgIAJCdne3JptVpLHRORETkvWoVlOrfvz+ys7NRUFCA4OBg+/aHH34YWq3WaY3zFraaUjpmShERETVYt912m0PdqDvuuAOANGxPFEUO36uCLwudExERea1aBaVKS0shiqI9IJWcnIy1a9ciNjYWgwcPdmoDvQFn3yMiImrYzp8/7+km1Fu22fc4fI+IiMj71CooNXLkSNx999149NFHkZeXh969e0OpVCI7OxsLFizAtGnTnN3Oeo2z7xERETVszZo1u+Y+x44dc0NL6h/b7HvMlCIiIvI+tSp0fvjwYdx8880AgO+//x6RkZFITk7GV199hQ8//NCpDfQGWmtnqpSZUkRERFROYWEhPv/8c/Tq1cteo5Mc+TJTioiIyGvVKihVUlICf39/AMCWLVtw9913QyaT4cYbb0RycrJTG+gNfFTSbWamFBEREQHAr7/+iokTJyI6Ohrvvvsubr31Vuzbt8/TzaqT/FnonIiIyGvVKijVunVrrFu3Dqmpqdi8eTNuv/12AEBmZiYCAgKc2kBv4KOUOlOsKUVERNRwpaen480330SbNm1w7733IiAgAHq9HuvWrcObb76Jnj17erqJdVJZphT7UURERN6mVkGpOXPm4JlnnkHz5s3Rq1cv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EVGNdGkSiK4xQTCYLPhqzwVPN4eIiIicgEEpN7LXlGKmFBEREVGNCIKAh29uCQD4al8yyyEQERF5AQal3Mg2fK+UmVJERERENTakUxSahmiRV2LE94cuero5REREdJ0YlHIjZkoRERER1Z5cJmDKzS0AAF/8dh5mi+jhFhEREdH1YFDKjXxU0qwxrClFREREVDuj45ogSKtESm4JNh1L93RziIiI6DowKOVGPkrpdjNTioiIiKh2tCoFEm5sBgD4/NezEEVmSxEREdVXDEq5kdaaKcWaUkRERES1l9CnOVQKGf68mI8D53M93RwiIiKqJQal3EjDQudERERE1y3MT417ejQBAHz+6zkPt4aIiIhqi0EpN9JaC52XcPgeERER0XWZenMLCAKQdCoTZzILPd0cIiIiqgUGpdzIx5oppWOmFBEREdF1aRnuh0GxkQCAJb+e93BriIiIqDYYlHIjW1CqxGjycEuIiIiI6r9H+rUEAKz9419kFug83BoiIiKqKQal3MhHaaspZfFwS4iIiIjqv7hmIejRNAgGswVf7r3g6eYQERFRDTEo5UZae6FzZkoREREROcPDt7QCAHy9LwXFevaxiIiI6hMGpdzInillNEMURQ+3hoiIiKj+G9QhEi3CfJFfasSqg6mebg4RERHVAINSziSKwPG1wPY3gNK8Ch/bakpZREBv4hA+IiIiousllwmYfFMLAMDSXedhMrOPRUREVF8wKOVMggBsfgnY+RaQebLCx7ZMKQDQGTkDHxEREZEzjI5rglBfFf7NK8XGY+mebg4RERFVE4NSzhYRK71mnqjwkUIug0ou3fISA4NSRERERM6gUcqREN8cAPD5r2dZJoGIiKieYFDK2SLaS69Zpyr9WKOUbnkpM6WIiIiInGZCfDNolDIc+7cAe8/leLo5REREVA0MSjlbuC1TquLwPQDQqhQAgFJmShERERE5TYivCvfGxQAApnz5OyYnHsSXey7gfHYxM6eIiIjqKIWnG+B1Iq4elLIVO2emFBEREZFzPTagFXafzca5rGIkncpE0qlMAEBMiA9uaROOW9qGo0+rUPhrlB5uKREREQEMSjlfeDvptSQbKM4GfMMcPrYVO2emFBEREZFzRQf6YNtT/XAyvQC//p2NX//Owu/JuUjNLcU3+1Pwzf4UKGQCejQNxuSbW2BwxyhPN5mIiKhB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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "5. Generazione delle predizioni...\n",
- "2028/2028 [==============================] - 23s 11ms/step\n",
- "\n",
- "6. Valutazione del modello...\n",
- "\n",
- "UV Index Prediction Metrics:\n",
- "MAE: 0.384\n",
- "RMSE: 0.809\n",
- "R² Score: 0.911\n",
- "Exact Match Accuracy: 0.331\n",
- "±1 Accuracy: 0.458\n",
- "±2 Accuracy: 0.566\n",
- "\n",
- "UV Level Confusion Matrix:\n",
- "Predicted High Low Moderate Very High\n",
- "Actual \n",
- "High 3134 11 1252 481\n",
- "Low 129 43324 1888 19\n",
- "Moderate 1208 1663 7320 152\n",
- "Very High 1188 1 78 3018\n",
- "\n",
- "7. Visualizzazione risultati...\n"
- ]
- },
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAHqCAYAAADrpwd3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hUZdrH8e/0SQ8thCahiSBtQUWsqEhU7FjXlaJYQRex4trAtrqvgAVEVwVXYRXruqICIuiqKIqCUiUIgkAKkF6mnvePIQMhhJxgkpmB3+e6oswzd2buc84kOXPPc+7HYhiGgYiIiIiIiIiIiIiIVGONdAIiIiIiIiIiIiIiItFKRXQRERERERERERERkRqoiC4iIiIiIiIiIiIiUgMV0UVEREREREREREREaqAiuoiIiIiIiIiIiIhIDVREFxERERERERERERGpgYroIiIiIiIiIiIiIiI1UBFdRERERERERERERKQGKqKLiIiIiIiIiIiIiNRARXQROWxZLBYeeuihSKcRcQMHDmTgwIHh25s2bcJisTBz5syI5bSvfXM81B1u2ysiIiKR9dBDD2GxWBrlufY9z1m8eDEWi4W33367UZ5/xIgRZGRkNMpzHaySkhJGjRpFeno6FouFsWPHRjqlGs2cOROLxcKmTZvCY/V9LtuYr08RkZqoiC4i9WLatGlYLBb69+9/0I+xbds2HnroIZYvX15/iUW5yjcNlV8Oh4OOHTsybNgwfv3110inVydff/01Dz30EAUFBRHLwWKxMGbMmP3e9/bbb2OxWFi8eDE+n4/mzZtz0kkn1fhYhmHQrl07+vbte9DPKSIiItLYKoualV9ut5vWrVuTmZnJM888Q3Fxcb08TzSfu0dzbmY89thjzJw5k5tuuonXXnuNq6++usbYjIyMKsc7LS2Nk08+mffee68RM/7jysrKeOihh1i8eHGkU6li732779eNN94Y6fREpBHZI52AiBwaZs2aRUZGBkuXLiUrK4vOnTvX+TG2bdvGhAkTyMjIoE+fPvWfZBS79dZbOfbYY/H5fPzwww+8+OKLzJ07l59//pnWrVs3ai7t27envLwch8NRp+/7+uuvmTBhAiNGjCA1NbVhkqsnDoeDSy+9lBdeeIHffvuN9u3bV4v54osv+P3337ntttsikKGIiIjIHzNx4kQ6dOiAz+cjOzubxYsXM3bsWCZNmsQHH3xAr169wrH33Xcf99xzT50e/2DP3efPn1+n5zkYB8rtn//8J8FgsMFz+CM+++wzjj/+eB588EFT8X369OH2228HQtv+wgsvcPHFF/P8889HpNB7MMe4rKyMCRMmAFSbxX4wr8/6dOaZZzJs2LBq40ceeWQEshGRSFERXUT+sI0bN/L111/z7rvvcsMNNzBr1izTJ3wScvLJJ3PJJZcAMHLkSI488khuvfVWXn31VcaPH7/f7yktLSUhIaHec6mcsXSou+qqq5g+fTr//ve/93tSPnv2bKxWK1dccUUEshMRERH5Y84++2yOOeaY8O3x48fz2Wefce6553L++eezZs0a4uLiALDb7djtDVseKCsrIz4+HqfT2aDPU5u6ThSJhNzcXLp37246vk2bNvzlL38J3x42bBidO3dm8uTJNRbR/X4/wWCwQY5HfT9mY7w+D+TII4+ssn/NqnzN76s+9n1DvRcUkZqpnYuI/GGzZs2iSZMmDBkyhEsuuYRZs2btN66goIDbbruNjIwMXC4Xbdu2ZdiwYezYsYPFixdz7LHHAqEicuUlcpV9uTMyMhgxYkS1x9y3357X6+WBBx6gX79+pKSkkJCQwMknn8yiRYvqvF05OTnY7fbwjIi9rVu3DovFwnPPPQeAz+djwoQJdOnSBbfbTbNmzTjppJNYsGBBnZ8X4PTTTwdCH1DAnj6Aq1ev5s9//jNNmjSp0ork9ddfp1+/fsTFxdG0aVOuuOIKtmzZUu1xX3zxRTp16kRcXBzHHXcc//vf/6rF1NQTfe3atVx22WW0aNGCuLg4unbtyt/+9rdwfnfeeScAHTp0CB+/vXsj1meO9eHEE08kIyOD2bNnV7vP5/Px9ttvc9ppp9X5SoDKFj1z5szh0UcfpW3btrjdbs444wyysrKqxZvdXo/Hw4MPPkjnzp1xuVy0a9eOu+66C4/HE44ZPnw4brebNWvWVPnezMxMmjRpwrZt2+q0LSIiInJoOf3007n//vv57bffeP3118Pj++s5vWDBAk466SRSU1NJTEyka9eu3HvvvQC1nrsPHDiQHj16sGzZMk455RTi4+PD31tTv+xAIMC9995Leno6CQkJnH/++dXOFc28J6gtt/31RC8tLeX222+nXbt2uFwuunbtyv/93/9hGEaVuMo2fu+//z49evTA5XJx9NFH88knn+x/h+8jNzeXa6+9lpYtW+J2u+nduzevvvpq+P7K88iNGzcyd+7c/Z5Tm5Genk63bt3C7yUqz+//7//+jylTptCpUydcLherV68GQuf5l1xyCU2bNsXtdnPMMcfwwQcfVHvcVatWcfrppxMXF0fbtm155JFH9jurf3/HuKKigoceeogjjzwSt9tNq1atuPjii9mwYQObNm2iRYsWAEyYMCG83ZXrV+3v9en3+3n44YfD25KRkcG9995b5dwYQq+Zc889ly+//JLjjjsOt9tNx44d+de//lWnfVqbml7zte37zz77jJNPPpmEhARSU1O54IILqp3LH+i9YHZ2NiNHjqRt27a4XC5atWrFBRdcUOfXjIjUTjPRReQPmzVrFhdffDFOp5Mrr7yS559/nu+++y588gqhxXFOPvlk1qxZwzXXXEPfvn3ZsWMHH3zwAb///jvdunVj4sSJPPDAA1x//fWcfPLJAJxwwgl1yqWoqIiXXnqJK6+8kuuuu47i4mJefvllMjMzWbp0aZ0uNW3ZsiWnnnoqc+bMqTaz/s0338Rms3HppZcCoRObxx9/nFGjRnHcccdRVFTE999/zw8//MCZZ55Zp20A2LBhAwDNmjWrMn7ppZfSpUsXHnvssfBJ/aOPPsr999/PZZddxqhRo8jLy+PZZ5/llFNO4ccffwy3Vnn55Ze54YYbOOGEExg7diy//vor559/Pk2bNqVdu3YHzOenn37i5JNPxuFwcP3115ORkcGGDRv473//y6OPPsrFF1/ML7/8wr///W8mT55M8+bNAcInw42RY11ZLBb+/Oc/89hjj7Fq1SqOPvro8H2ffPIJu3bt4qqrrjrox//73/+O1WrljjvuoLCwkCeffJKrrrqKb7/9NhxjdnuDwSDnn38+X375Jddffz3dunXj559/ZvLkyfzyyy+8//77ADz99NN89tlnDB8+nCVLlmCz2XjhhReYP38+r732WqO3BhIREZHoc/XVV3Pvvfcyf/58rrvuuv3GrFq1inPPPZdevXoxceJEXC4XWVlZfPXVVwCmzt137tzJ2WefzRVXXMFf/vIXWrZsecC8Hn30USwWC3fffTe5ublMmTKFQYMGsXz58vCMeTPq+r7CMAzOP/98Fi1axLXXXkufPn2YN28ed955J1u3bmXy5MlV4r/88kveffddbr75ZpKSknjmmWcYOnQomzdvrnbuvrfy8nIGDhxIVlYWY8aMoUOHDrz11luMGDGCgoIC/vrXv9KtWzdee+01brvtNtq2bRtu0VJ5Tm2Wz+djy5Yt1fKZMWMGFRUVXH/99bhcLpo2bcqqVas48cQTadOmDffccw8JCQnMmTOHCy+8kHfeeYeLLroICBVrTzvtNPx+fzjuxRdfNHVsAoEA5557LgsXLuSKK67gr3/9K8XFxSxYsICVK1cyaNAgnn/+eW666SYuuugiLr74YoAqLYf2NWrUKF599VUuueQSbr/9dr799lsef/xx1qxZU60ffFZWFpdccgnXXnstw4cP55VXXmHEiBH069evynuAmlRUVLBjx45q48nJyVVmkx/oNb+/ff/pp59y9tln07FjRx566CHKy8t59tlnOfHEE/nhhx+qfdizv/eCQ4cOZdWqVdxyyy1kZGSQm5vLggUL2Lx5c9QvoCsScwwRkT/g+++/NwBjwYIFhmEYRjAYNNq2bWv89a9/rRL3wAMPGIDx7rvvVnuMYDBoGIZhfPfddwZgzJgxo1pM+/btjeHDh1cbP/XUU41TTz01fNvv9xsej6dKTH5+vtGyZUvjmmuuqTIOGA8++OABt++FF14wAOPnn3+uMt69e3fj9NNPD9/u3bu3MWTIkAM+1v4sWrTIAIxXXnnFyMvLM7Zt22bMnTvXyMjIMCwWi/Hdd98ZhmEYDz74oAEYV155ZZXv37Rpk2Gz2YxHH320yvjPP/9s2O328LjX6zXS0tKMPn36VNk/L774ogFU2YcbN26sdhxOOeUUIykpyfjtt9+qPE/lsTMMw/jHP/5hAMbGjRsbPMeaAMbo0aP3e99bb71lAMaiRYvCY6tWrTIAY/z48VVir7jiCsPtdhuFhYV1fs7KY9qtW7cq2/H0009XeS3VZXtfe+01w2q1Gv/73/+qPPf06dMNwPjqq6/CY/PmzTMA45FHHjF+/fVXIzEx0bjwwgtr3Q4RERE5NMyYMcMAwueR+5OSkmL86U9/Ct+uPNesNHnyZAMw8vLyanyMA527n3rqqQZgTJ8+fb/37X2eU3nu1KZNG6OoqCg8PmfOHAMwnn766fCY2fcEB8pt+PDhRvv27cO333///fC5094uueQSw2KxGFlZWeExwHA6nVXGVqxYYQDGs88+W+259jZlyhQDMF5//fXwmNfrNQYMGGAkJiZW2fb27dubfm/Rvn17Y/DgwUZeXp6Rl5dnrFixwrjiiisMwLjlllsMw9hzfp+cnGzk5uZW+f4zzjjD6Nmzp1FRUREeCwaDxgknnGB06dIlPDZ27FgDML799tvwWG5urpGSklLtPcC+x+OVV14xAGPSpEnV8q98P5GXl1fj+7N9X5/Lly83AGPUqFFV4u644w4DMD777LMq+wcwvvjiiyp5u1wu4/bbb6/2XPsCavz697//XWWb9/eaP9C+79Onj5GWlmbs3LkzPLZixQrDarUaw4YNq7b9+74XzM/PNwDjH//4R63bISJ/nNq5iMgfMmvWLFq2bMlpp50GhGb3Xn755bzxxhsEAoFw3DvvvEPv3r3DMxn2tu+leX+EzWYLzwYIBoPs2rULv9/PMcccww8//FDnx7v44oux2+28+eab4bGVK1eyevVqLr/88vBYamoqq1atYv369QeV9zXXXEOLFi1o3bo1Q4YMobS0lFdffbVKH0ugWk/Dd999l2AwyGWXXcaOHTvCX+np6XTp0iXcxub7778nNzeXG2+8scpsiREjRpCSknLA3PLy8vjiiy+45pprOOKII6rcZ+bYNUaOB6t79+786U9/4o033giPlZaW8sEHH3DuueeSnJx80I89cuTIKttROQvq119/Beq2vW+99RbdunXjqKOOqrIPK9v+7N2uaPDgwdxwww1MnDiRiy++GLfbzQsvvHDQ2yEiIiKHnsTERIqLi2u8v/Iqwf/85z8HvQiny+Vi5MiRpuOHDRtGUlJS+PYll1xCq1at+Oijjw7q+c366KOPsNls3HrrrVXGb7/9dgzD4OOPP64yPmjQIDp16hS+3atXL5KTk8PneAd6nvT0dK688srwmMPh4NZbb6WkpITPP//8oLdh/vz5tGjRghYtWtC7d2/eeustrr76ap544okqcUOHDq0yq33Xrl189tlnXHbZZRQXF4fPMXfu3ElmZibr169n69at4fyPP/54jjvuuPD3t2jRwtSVm++88w7NmzfnlltuqXbfwbwXrHxNjBs3rsp45cz9uXPnVhnv3r17+Fy8Mu+uXbvWeswqXXDBBSxYsKDaV+V74EoHes3vu++3b9/O8uXLGTFiBE2bNg2P9+rVizPPPHO/r/t93wvGxcXhdDpZvHgx+fn5prZFRA6e2rmIyEELBAK88cYbnHbaaeF+ewD9+/fnqaeeYuHChQwePBgItScZOnRoo+T16quv8tRTT7F27Vp8Pl94vEOHDnV+rObNm3PGGWcwZ84cHn74YSDUysVut4cvMwSYOHEiF1xwAUceeSQ9evTgrLPO4uqrrz7gJYh7e+CBBzj55JOx2Ww0b96cbt267XfxnH23Yf369RiGQZcuXfb7uJULJ/32228A1eIcDgcdO3Y8YG6VJ5c9evQwtS37aowc62LfE/WrrrqKO+64g6+//poTTjiB999/n7Kysj/UygWo9oFDkyZNAMInuHXZ3vXr17NmzZoaL+XNzc2tcvv//u//+M9//sPy5cuZPXs2aWlpB78hIiIicsgpKSk54PnB5ZdfzksvvcSoUaO45557OOOMM7j44ou55JJLsFrNzcVr06ZNnRZO3PecyGKx0Llz5wbv7fzbb7/RunXrKgV8CLWFqbx/b/ue40HoPK+2IuZvv/1Gly5dqu2/mp6nLvr3788jjzyCxWIhPj6ebt26hT8I2du+7yWysrIwDIP777+f+++/f7+PnZubS5s2bfjtt9/o379/tfu7du1aa34bNmyga9eu9bY46G+//YbVaqVz585VxtPT00lNTa23Y1apbdu2DBo0qNa4A73m9933lTnub/9169aNefPmVVs8dN/HcLlcPPHEE9x+++20bNmS448/nnPPPZdhw4aRnp5ea74iUjcqoovIQfvss8/Yvn07b7zxRpWZvJVmzZoVLqL/UTXNUAgEAthstvDt119/nREjRnDhhRdy5513kpaWhs1m4/HHHw/3Ga+rK664gpEjR7J8+XL69OnDnDlzOOOMM8J9vwFOOeUUNmzYwH/+8x/mz5/PSy+9xOTJk5k+fTqjRo2q9Tl69uxp6sRs356DwWAQi8XCxx9/XGU/VEpMTDSxhQ2rMXN0uVyUl5fv976ysjIA3G53lfErr7ySu+66i9mzZ3PCCScwe/ZsmjRpwjnnnPOHctnftgLVFqgyIxgM0rNnTyZNmrTf+/ftF//jjz+GC+s///xzlRlPIiIicnj7/fffKSwsrFaA3FtcXBxffPEFixYtYu7cuXzyySe8+eabnH766cyfP7/G85x9H6O+mX1P0JDq8xyvvjRv3vyg30sA3HHHHWRmZu73ew70Ook0s7PYG+uYHeg1Xx8/D/t7jLFjx3Leeefx/vvvM2/ePO6//34ef/xxPvvsM/70pz/94ecUkT1URBeRgzZr1izS0tKYOnVqtfveffdd3nvvPaZPn05cXBydOnVi5cqVB3y8A50ENWnShIKCgmrjv/32W5VZu2+//TYdO3bk3XffrfJ4+y4MWhcXXnghN9xwQ7ilyy+//ML48eOrxTVt2pSRI0cycuRISkpKOOWUU3jooYdMFdEPVqdOnTAMgw4dOnDkkUfWGNe+fXsgNKO5sgUIhBYd2rhxI717967xeyv378Eev8bIce/HWLdu3X7vqxyvfJ5KrVu35rTTTuOtt97i/vvvZ8GCBYwYMaJOM6cORl22t1OnTqxYsYIzzjij1jcLpaWljBw5ku7du3PCCSfw5JNPctFFF1VZ6FdEREQOX6+99hpAjUXTSlarlTPOOIMzzjiDSZMm8dhjj/G3v/2NRYsWMWjQoHptyQhUa4toGAZZWVlVruw0+56gLrm1b9+eTz/9lOLi4iqz0deuXRu+vz60b9+en376iWAwWGU2en0/T11U7jOHw1FrEb59+/b7bV1Z07n33jp16sS3336Lz+cLX4W6r7oes2AwyPr168Mz+QFycnIoKCiIyL6sq8oc97f/1q5dS/PmzavMQj+QTp06cfvtt3P77bezfv16+vTpw1NPPcXrr79erzmLHO7UE11EDkp5eTnvvvsu5557Lpdcckm1rzFjxlBcXMwHH3wAhHrArVixotpK6bBnBkDlScL+Tow7derEN998g9frDY99+OGHbNmypUpc5SyDvWcVfPvttyxZsuSgtzU1NZXMzEzmzJnDG2+8gdPp5MILL6wSs3Pnziq3ExMT6dy5Mx6P56Cf14yLL74Ym83GhAkTqs2kMAwjnNcxxxxDixYtmD59epV9OHPmzP3u7721aNGCU045hVdeeYXNmzdXe45KNR2/xsix0jnnnMM333zDsmXLqowXFBQwa9Ys+vTps99LG6+66ipyc3O54YYb8Pl8f7iVixl12d7LLruMrVu38s9//rPa45SXl1NaWhq+fffdd7N582ZeffVVJk2aREZGBsOHD2/w16KIiIhEv88++4yHH36YDh06HPB8Z9euXdXG+vTpAxA+pzjQufvB+Ne//lWlT/vbb7/N9u3bOfvss8NjZt8T1CW3c845h0AgwHPPPVdlfPLkyVgslirP/0ecc845ZGdnV1lrye/38+yzz5KYmMipp55aL89TF2lpaQwcOJAXXniB7du3V7s/Ly8v/O/K8+ylS5dWuX/WrFm1Ps/QoUPZsWNHtX0Me95PxMfHA+aPGcCUKVOqjFdetTlkyJBaHyPSWrVqRZ8+fXj11VerbPPKlSuZP3++qatiy8rKqKioqDLWqVMnkpKSdO4v0gA0E11EDsoHH3xAcXEx559//n7vP/7442nRogWzZs3i8ssv58477+Ttt9/m0ksv5ZprrqFfv37s2rWLDz74gOnTp9O7d286depEamoq06dPJykpiYSEBPr370+HDh0YNWoUb7/9NmeddRaXXXYZGzZs4PXXX6+yqA/Aueeey7vvvstFF13EkCFD2LhxI9OnT6d79+6UlJQc9PZefvnl/OUvf2HatGlkZmZW6zHYvXt3Bg4cSL9+/WjatCnff/89b7/9NmPGjDno5zSjU6dOPPLII4wfP55NmzZx4YUXkpSUxMaNG3nvvfe4/vrrueOOO3A4HDzyyCPccMMNnH766Vx++eVs3LiRGTNmmOo3/swzz3DSSSfRt29frr/+ejp06MCmTZuYO3cuy5cvB6Bfv34A/O1vf+OKK67A4XBw3nnnNVqOAPfccw9vvfUWp5xyCjfccANHHXUU27ZtY+bMmWzfvp0ZM2bs9/uGDh3KzTffzH/+8x/atWvHKaecYu4A/AF12d6rr76aOXPmcOONN7Jo0SJOPPFEAoEAa9euZc6cOcybN49jjjmGzz77jGnTpvHggw/St29fAGbMmMHAgQO5//77efLJJxt8u0RERCQ6fPzxx6xduxa/309OTg6fffYZCxYsoH379nzwwQfVWtztbeLEiXzxxRcMGTKE9u3bk5uby7Rp02jbti0nnXQSwAHP3Q9G06ZNOemkkxg5ciQ5OTlMmTKFzp07c91114VjzL4nqEtu5513Hqeddhp/+9vf2LRpE71792b+/Pn85z//YezYsdUe+2Bdf/31vPDCC4wYMYJly5aRkZHB22+/zVdffcWUKVOq9WRvLFOnTuWkk06iZ8+eXHfddXTs2JGcnByWLFnC77//zooVKwC46667eO211zjrrLP461//SkJCAi+++GJ4hv2BDBs2jH/961+MGzeOpUuXcvLJJ1NaWsqnn37KzTffzAUXXEBcXBzdu3fnzTff5Mgjj6Rp06b06NFjv+sy9e7dm+HDh/Piiy9SUFDAqaeeytKlS3n11Ve58MILqy34+Uf98ssv+53V3bJlS84888yDftx//OMfnH322QwYMIBrr72W8vJynn32WVJSUnjooYdM5XXGGWdw2WWX0b17d+x2O++99x45OTlcccUVB52XiNTAEBE5COedd57hdruN0tLSGmNGjBhhOBwOY8eOHYZhGMbOnTuNMWPGGG3atDGcTqfRtm1bY/jw4eH7DcMw/vOf/xjdu3c37Ha7ARgzZswI3/fUU08Zbdq0MVwul3HiiSca33//vXHqqacap556ajgmGAwajz32mNG+fXvD5XIZf/rTn4wPP/zQGD58uNG+ffsq+QHGgw8+aGp7i4qKjLi4OAMwXn/99Wr3P/LII8Zxxx1npKamGnFxccZRRx1lPProo4bX6z3g4y5atMgAjLfeeuuAcQ8++KABGHl5efu9/5133jFOOukkIyEhwUhISDCOOuooY/To0ca6deuqxE2bNs3o0KGD4XK5jGOOOcb44osvqu3DjRs3Vtv3hmEYK1euNC666CIjNTXVcLvdRteuXY3777+/SszDDz9stGnTxrBarQZgbNy4sUFyPJDff//dGDVqlNGmTRvDbrcbTZs2Nc4991zjm2++OeD3XXrppQZg3HXXXaaepxJgjB49Ony7pmNa0341u71er9d44oknjKOPPtpwuVxGkyZNjH79+hkTJkwwCgsLjaKiIqN9+/ZG3759DZ/PV+V7b7vtNsNqtRpLliyp07aJiIhI7JkxY4YBhL+cTqeRnp5unHnmmcbTTz9tFBUVVfueynPNSgsXLjQuuOACo3Xr1obT6TRat25tXHnllcYvv/xS5ftqOnc/9dRTjaOPPnq/+e17nlN57vTvf//bGD9+vJGWlmbExcUZQ4YMMX777bdq32/mPcGBctvf+4Li4mLjtttuM1q3bm04HA6jS5cuxj/+8Q8jGAxWidv3vK9S+/btjeHDh+93e/eWk5NjjBw50mjevLnhdDqNnj17Vjs3rHy8IUOG1Pp4ZmMrz0P/8Y9/7Pf+DRs2GMOGDTPS09MNh8NhtGnTxjj33HONt99+u0rcTz/9ZJx66qmG2+022rRpYzz88MPGyy+/XO28f3/Ho6yszPjb3/5mdOjQwXA4HEZ6erpxySWXGBs2bAjHfP3110a/fv0Mp9NZ5b3avq9PwzAMn89nTJgwIfx47dq1M8aPH29UVFSY2j9m31/s/bO079fe31/Ta762ff/pp58aJ554ohEXF2ckJycb5513nrF69eoqMTW9F9yxY4cxevRo46ijjjISEhKMlJQUo3///sacOXNq3S4RqTuLYURw9QsRERERERERERERkSimnugiIiIiIiIiIiIiIjVQEV1EREREREREREREpAYqoouIiIiIiIiIiIiI1EBFdBERERERERERERGRGqiILiIiIiIiIiIiIiJSAxXRRURERERERERERERqYI90Ag0tGAyybds2kpKSsFgskU5HRERERA4hhmFQXFxM69atsVo1P6Uh6HxeRERERBqK2fP5Q76Ivm3bNtq1axfpNERERETkELZlyxbatm0b6TQOSTqfFxEREZGGVtv5/CFfRE9KSgJCOyI5ObnRntfn8zF//nwGDx6Mw+FotOeVP07HLjbpuMUmHbfYpWMXm3Tc6l9RURHt2rULn3NK/avr+bxe5w1L+7fhaN82LO3fhqN927C0fxuO9m3DiaV9a/Z8/pAvolde8pmcnNzoRfT4+HiSk5Oj/sUiVenYxSYdt9ik4xa7dOxik45bw1GbkYZT1/N5vc4blvZvw9G+bVjavw1H+7Zhaf82HO3bhhOL+7a283k1bhQRERERERERERERqYGK6CIiIiIiIiIiIiIiNVARXURERERERERERESkBiqii4iIiIiIiIiIiIjUQEV0EREREREREREREZEaqIguIiIiIiIiIiIiIlIDFdFFRERERERERERERGqgIrqIiIiIiIiIiIiISA1URBcRERERERERERERqYGK6CIiIiIiIiIiIiIiNVARXURERERERERERESkBiqii4iIiIiIiIiIiIjUQEV0EREREREREREREZEaqIguIiIiIiIiIiIiIlIDFdFFREREJLbl58Py5ZHOQkREREREDlEqoouIiIhIbDIMmDkTunaFiy6CsrJIZyQiIiIiIocgFdFFREREJDYZBrz0EuTlwaZN8OSTkc5IREREREQOQfZIJyAiIiIiclCsVpg2Dfr2haFD4brrIp2RiIhEoWtnfoedIOc0gTGzfsDfSPMJXx5xbKM8j4iINDwV0UVEREQk+hkGvPEGtG0LJ5+8Z7xXL1izBrp0iVxuIiIiIiJySFM7FxERERGJbmvWwBlnwJ//DDfcAF5v1ftVQBcRERERkQakIrqIiIiIRKfSUrjnHujdGxYtCo2tWQP/+U9k8xIRERERkcOK2rmIiIiISHQxDHjvPRg7FrZs2TOekQHPPgvnnhupzERERERE5DCkmegiIiIiEj02bIAhQ0ILhVYW0J1OuP9+WL1aBXQREREREWl0mokuIiIiItFh1iy49lrwePaMZWaGZp+r77mIiIiIiESIZqKLiIiISHTo2xeCwdC/27aFt9+Gjz9WAV1ERERERCJKM9FFREREJDICAbDZ9tzu1g3uvjs0E/2BByAxMXK5iYiIiIiI7KYiuoiIiIg0Lq8XnnoK3nwTvvkG3O499z38cOTyEhERERER2Q+1cxERERGRxrNwIfTqBffeCytWwD/+EemMREREREREDkhFdBERERFpeFu3whVXwKBBsG5daMxqhdLSyOYlIiIiIiJSC7VzEREREZGG4/PBs8/Cgw9CScme8QEDYNo06NMnYqmJiIiIiIiYoSK6iIiIiDSM//0Pbr4ZVq7cM9asGTz5JIwYEZqJLiIiIiIiEuVURBcRERGR+peXB4MHQ0VF6LbFAtddB489Fiqki4iIiIiIxAhN/xERERGR+teiBdx1V+jfffvCN9/ACy+ogB4Bf//737FYLIwdOzY8VlFRwejRo2nWrBmJiYkMHTqUnJycKt+3efNmhgwZQnx8PGlpadx55534/f4qMYsXL6Zv3764XC46d+7MzJkzqz3/1KlTycjIwO12079/f5YuXdoQmykiIiIi0mBURBcRERGRP+7776GsrOrYPffAyy/D0qVw3HGRyesw99133/HCCy/Qq1evKuO33XYb//3vf3nrrbf4/PPP2bZtGxdffHH4/kAgwJAhQ/B6vXz99de8+uqrzJw5kwceeCAcs3HjRoYMGcJpp53G8uXLGTt2LKNGjWLevHnhmDfffJNx48bx4IMP8sMPP9C7d28yMzPJzc1t+I0XEREREaknKqKLiIiIyMHbuRNuuCFUJH/ssar3xcXBNdeAzRaZ3A5zJSUlXHXVVfzzn/+kSZMm4fHCwkJefvllJk2axOmnn06/fv2YMWMGX3/9Nd988w0A8+fPZ/Xq1bz++uv06dOHs88+m4cffpipU6fi9XoBmD59Oh06dOCpp56iW7dujBkzhksuuYTJkyeHn2vSpElcd911jBw5ku7duzN9+nTi4+N55ZVXGndniIiIiIj8ASqii4iIiEjdBYOhWeZdu8KLL4JhhBYMXb8+0pnJbqNHj2bIkCEMGjSoyviyZcvw+XxVxo866iiOOOIIlixZAsCSJUvo2bMnLVu2DMdkZmZSVFTEqlWrwjH7PnZmZmb4MbxeL8uWLasSY7VaGTRoUDhGRERERCQWaGFREREREamb5cvh5pth70JoYiJMnAgZGZHKSvbyxhtv8MMPP/Ddd99Vuy87Oxun00lqamqV8ZYtW5KdnR2O2buAXnl/5X0HiikqKqK8vJz8/HwCgcB+Y9auXVtj7h6PB4/HE75dVFQEgM/nw+fzHWizw3F7/1/ql/Zvw9G+bTh2gtgJhv/dWA6XY6nXbsPS/m042rcNJ5b2rdkcVUQXEREREXMKC+H++2Hq1NBM9EqXXw5PPQVt2kQuNwnbsmULf/3rX1mwYAFutzvS6dTZ448/zoQJE6qNz58/n/j4eNOPs2DBgvpMS/ah/dtwtG/r3zl7OloxuEnjrcnw0UcfNdpzRQO9dhuW9m/D0b5tOLGwb8v2XdepBiqii4iIiEjt5syBW2+FnJw9Y127hgrqZ5wRubykmmXLlpGbm0vfvn3DY4FAgC+++ILnnnuOefPm4fV6KSgoqDIbPScnh/T0dADS09NZunRplcfN2X3s947J2fv1sDsmOTmZuLg4bDYbNpttvzGVj7E/48ePZ9y4ceHbRUVFtGvXjsGDB5OcnFzr9vt8PhYsWMCZZ56Jw+GoNV7qRvu34WjfNpwxs37ATpDBTXKZn5+Gv5E62z53Vd/agw4Beu02LO3fhqN923Biad9WXvVYGxXRRURERKR2GzbsKaDHxYVmpI8bBy5XZPOSas444wx+/vnnKmMjR47kqKOO4u6776Zdu3Y4HA4WLlzI0KFDAVi3bh2bN29mwIABAAwYMIBHH32U3Nxc0tLSgNBMouTkZLp37x6O2XeW5YIFC8KP4XQ66devHwsXLuTCCy8EIBgMsnDhQsaMGVNj/i6XC9d+XlcOh6NOb8LqGi91o/3bcLRv69/eRXM/1kYroh9ux1Gv3Yal/dtwtG8bTizsW7P5qYguIiIiIrUbNw5mzoTu3WHKFGjfPtIZSQ2SkpLo0aNHlbGEhASaNWsWHr/22msZN24cTZs2JTk5mVtuuYUBAwZw/PHHAzB48GC6d+/O1VdfzZNPPkl2djb33Xcfo0ePDhe4b7zxRp577jnuuusurrnmGj777DPmzJnD3Llzw887btw4hg8fzjHHHMNxxx3HlClTKC0tZeTIkY20N0RERERE/jgV0UVERERkD8OAd98NzTy/66494y4XfPMNNGlS8/dKzJg8eTJWq5WhQ4fi8XjIzMxk2rRp4fttNhsffvghN910EwMGDCAhIYHhw4czceLEcEyHDh2YO3cut912G08//TRt27blpZdeIjMzMxxz+eWXk5eXxwMPPEB2djZ9+vThk08+qbbYqIiIiIhINFMRXURERERC1q+HW26BefPAbochQ+Doo/fcrwJ6zFq8eHGV2263m6lTpzJ16tQav6d9+/a1Loo3cOBAfvzxxwPGjBkz5oDtW0REREREol3jNAITERERkehVXg4PPAA9eoQK6AB+P8yeHdm8REREREREooBmoouIiIgczv77X7j1Vti0ac9Yu3ahvucXXRSprERERERERKJGRGeif/HFF5x33nm0bt0ai8XC+++/X+V+wzB44IEHaNWqFXFxcQwaNIj169dHJlkRERGRQ8mmTXDBBXD++XsK6HY73H03rFkDF18MFkskMxQREREREYkKES2il5aW0rt37xp7MT755JM888wzTJ8+nW+//ZaEhAQyMzOpqKho5ExFREREDh2WpUuhe3f44IM9g6edBj/9BH//OyQkRC45ERERERGRKBPRdi5nn302Z5999n7vMwyDKVOmcN9993HBBRcA8K9//YuWLVvy/vvvc8UVVzRmqiIiIiKHDONPf4KOHWHVKkhPh6eegiuv1MxzERERERGR/YjanugbN24kOzubQYMGhcdSUlLo378/S5YsqbGI7vF48Hg84dtFRUUA+Hw+fD5fwya9l8rnasznlPqhYxebdNxik45b7NKxizElJZCYuOe4AZZnn8Xy3nsEH3gAUlJCC4lKnelnQERERETk0Be1RfTs7GwAWrZsWWW8ZcuW4fv25/HHH2fChAnVxufPn098fHz9JmnCggULGv05pX7o2MUmHbfYpOMWu3TsopvF76fjhx/Sdc4cvnrkEQo7dgT2Om5nnAFffRXBDGNfWVlZpFMQEREREZEGFrVF9IM1fvx4xo0bF75dVFREu3btGDx4MMnJyY2Wh8/nY8GCBZx55pk4HI5Ge17543TsYpOOW2zScYtdOnbRz/K//2G75RYsq1cDcMqbb1Lx6acsWLhQx60eVV71KCIiIiIih66oLaKnp6cDkJOTQ6tWrcLjOTk59OnTp8bvc7lcuFyuauMOhyMibxYj9bzyx+nYxSYdt9ik4xa7dOyiUE4O3HknvPbanjGLBeuf/oQjGAR03OqT9qOIiIiIyKHPGukEatKhQwfS09NZuHBheKyoqIhvv/2WAQMGRDAzERERkSgUCMBzz0HXrlUL6MccA99+C88/D3FxkctPREREREQkRkV0JnpJSQlZWVnh2xs3bmT58uU0bdqUI444grFjx/LII4/QpUsXOnTowP3330/r1q258MILI5e0iIiISLT55hu4+Wb48cc9Y02awGOPwXXXgc0WudxERERERERiXESL6N9//z2nnXZa+HZlL/Phw4czc+ZM7rrrLkpLS7n++uspKCjgpJNO4pNPPsHtdkcqZREREZHoYhhwyy1VC+gjR8ITT0CLFpHLS0RERERE5BAR0SL6wIEDMQyjxvstFgsTJ05k4sSJjZiViIiISAyxWEJtXAYMgJ49Ydo0OPHESGclIiIiIiJyyIjahUVFREREZD9+/BGsVujde89Y//4wfz4MHAh2nd6JiIiIiIjUp6hdWFRERERE9lJQEGrbcswxcM01oYVE9zZokAroIiIiIiIiDUBFdBEREZFoZhjw2mtw1FGhti3BIPzwA7z+eqQzExEREREROSxoupKIiIhItFq5EkaPhi++2DMWHw8PPABXXhm5vERERERERA4jKqKLiIiIRJviYpgwAaZMqdq25eKLYfJkOOKIiKUmIiIiIiJyuFERXURERCSafPopjBgBW7fuGevUKdTK5ayzIpaWiIiIiIjI4Uo90UVERESiSdOmsH176N8uV2hG+sqVKqCLiIiIiIhEiGaii4iIiESTvn3h5pth40Z45hno2DHSGYmIiIiIiBzWVEQXERERiZQPPoCXXoJ33gGHY8/4pElgt4PFErncREREREREBFA7FxEREZHGt3EjnHceXHAB/Pe/oX7ne3M4VEAXERERERGJEiqii4iIiDQWjwcefhi6d4cPP9wz/sUXYBiRy0tERERERERqpHYuIiIiIo1h3jwYMwaysvaMtWoFkyfDZZdp5rmIiIiIiEiU0kx0ERERkYb0++9w6aVw1ll7Cug2G9x2G6xdC5df3igF9GDQYGt+OQBb88sJBjXzXURERERExAzNRBcRERFpKIWF0LMnFBTsGTvpJJg2LTTeSLJy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AAAAAAAAwAOS6ADgxywWixYuXGh2GJfMX+4DAAAAV7bU1FT17NnTtd2tWzc98cQTl3TO6jgHAOD8SKIDQDVYvXq1bDab7rrrriofm5CQoIkTJ1Z/UJXg6YF79uzZioyMlCQNHjxYLVu2rPD43bt3y2azadGiRRXuP3eQAAAAANQ0qampslgsslgsstvtatq0qcaMGaPS0lKvX/vTTz/Viy++WKm6y5cvl8Vi0bFjxy76HBdr165drjY697VmzRqvXhsAagKS6ABQDTIzMzV48GCtXLlSv/76q9nhVKv09HTl5OTof//3f8vtmz17tqKiotSjRw8TIgMAAACqxx133KF9+/Zp+/btGjZsmEaNGqVx48ZVWLe4uLjarlunTh2FhYWZfo7K+vLLL7Vv3z63V/v27Sus66mdSkpKLuraF3scAFQHkugAcIlOnDihuXPnasCAAbrrrrs0e/bscnX++c9/6oYbblBgYKDq1aun++67T9KZmeA///yznnzySddMDkkaNWqU2rZt63aOiRMnKiEhwbW9fv163XbbbapXr54iIiJ08803Kzs7u9rvr23btmrXrp1mzpzpVm4YhmbPnq2UlBQFBARU6lzdunXTkCFD9PTTT6tOnTqKiYnRqFGj3Ops375dN910kwIDA3XNNddo2bJl5c6zZ88ePfDAA4qMjFSdOnV07733ateuXZKknJwcBQcH68MPP3TVnzdvnoKCgvTjjz9W7eYBAABwRXA4HIqJiVGjRo00YMAAJSUlub5tefbblWPHjlVcXJyaN28u6fzPpJJUVlamjIwMRUZGqm7dunr66adlGIbbdc/9ZmhRUZGeeeYZxcfHy+FwqGnTpsrMzNSuXbvUvXt3SVLt2rVlsViUmppa4TmOHj2qRx99VLVr11ZwcLDuvPNObd++3bX/7LdOly5dqpYtWyo0NNT1IcKF1K1bVzExMW6vWrVqSfptDPPOO+8oMTFRgYGBks4szTht2jT94Q9/UEhIiMaOHStJmjZtmpo0aSK73a7mzZtrzpw5btfydBwAmIEkOgBconnz5qlFixZq3ry5+vbtq5kzZ7o9HH/22We677771KNHD23cuFFZWVnq2LGjpDNfvbzqqqs0ZswY10yOyjp+/LhSUlL0zTffaM2aNWrWrJl69Oih48ePV/s9pqena968eSosLHSVLV++XDt37lS/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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "8. Predizione dei dati mancanti risultati...\n",
- "7122/7122 [==============================] - 78s 11ms/step\n",
- "\n",
- "9. Integrazione delle predizioni nel dataset originale...\n",
- "Aggiunte 227879 predizioni al dataset\n",
- "Righe con UV index dopo l'integrazione: 357615\n",
- "\n",
- "Training completato con successo!\n"
- ]
- }
- ],
"source": [
- "df = pd.read_parquet('../data/weather_data.parquet')\n",
+ "df = pd.read_parquet('../../sources/weather_data_uvindex.parquet')\n",
"\n",
- "# Esegui il training\n",
- "model, scaler, features, history, predictions, y_test, metrics, training_results = train_uvindex_bounded_model(df)"
- ]
+ "model, scaler, features, history, predictions, y_test, metrics, training_results = train_solarradiation_bounded_model(df)"
+ ],
+ "outputs": [],
+ "execution_count": null
},
{
"cell_type": "code",
- "execution_count": 10,
- "id": "637891db-8d55-4232-a56e-9759dbcc8c2f",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Analisi Precisione Predizioni UV Index:\n",
- "Precisione esatta: 61.3%\n",
- "Precisione entro 0.5 punti: 79.4%\n",
- "Precisione entro 1.0 punti: 90.4%\n",
- "Precisione livello di rischio: 88.0%\n",
- "\n",
- "Analisi errori per livello UV:\n",
- "MAE per UV Basso (0-2): 0.138 (n=41346)\n",
- "MAE per UV Moderato (2-5): 0.906 (n=11522)\n",
- "MAE per UV Alto (5-7): 0.877 (n=5468)\n",
- "MAE per UV Molto Alto (7-10): 0.758 (n=6278)\n",
- "MAE per UV Estremo (10-11): 1.528 (n=252)\n",
- "\n",
- "Statistiche degli errori:\n",
- "Media errori: 0.006\n",
- "Deviazione standard errori: 0.783\n",
- "Errore mediano: 0.000\n",
- "95° percentile errore assoluto: 1.723\n"
- ]
- }
- ],
- "source": [
- "def analyze_solarradiation_prediction_quality(y_true, y_pred):\n",
- " \"\"\"\n",
- " Analisi dettagliata della qualità delle predizioni UV\n",
- " \"\"\"\n",
- " # Converti in numpy array e appiattisci\n",
- " y_true = np.array(y_true).ravel()\n",
- " y_pred = np.array(y_pred).ravel()\n",
- "\n",
- " # Arrotonda le predizioni al più vicino 0.5\n",
- " y_pred_rounded = np.round(y_pred * 2) / 2\n",
- "\n",
- " # Calcola diverse metriche di accuratezza usando array numpy\n",
- " exact_match = np.mean(np.abs(y_pred_rounded - y_true) < 1e-6) * 100 # uso di tolleranza per confronti float\n",
- " within_half = np.mean(np.abs(y_pred_rounded - y_true) <= 0.5) * 100\n",
- " within_one = np.mean(np.abs(y_pred_rounded - y_true) <= 1.0) * 100\n",
- "\n",
- " # Analisi per livello di rischio UV\n",
- " def get_solarradiation_risk_level(values):\n",
- " # Vettorizzazione della funzione per array numpy\n",
- " levels = np.zeros_like(values, dtype=str)\n",
- " levels[values <= 2] = 'Basso'\n",
- " levels[(values > 2) & (values <= 5)] = 'Moderato'\n",
- " levels[(values > 5) & (values <= 7)] = 'Alto'\n",
- " levels[(values > 7) & (values <= 10)] = 'Molto Alto'\n",
- " levels[values > 10] = 'Estremo'\n",
- " return levels\n",
- "\n",
- " y_true_risk = get_solarradiation_risk_level(y_true)\n",
- " y_pred_risk = get_solarradiation_risk_level(y_pred_rounded)\n",
- "\n",
- " risk_accuracy = np.mean(y_true_risk == y_pred_risk) * 100\n",
- "\n",
- " print(\"Analisi Precisione Predizioni UV Index:\")\n",
- " print(f\"Precisione esatta: {exact_match:.1f}%\")\n",
- " print(f\"Precisione entro 0.5 punti: {within_half:.1f}%\")\n",
- " print(f\"Precisione entro 1.0 punti: {within_one:.1f}%\")\n",
- " print(f\"Precisione livello di rischio: {risk_accuracy:.1f}%\")\n",
- "\n",
- " # Distribuzione degli errori per livello UV\n",
- " solarradiation_ranges = [(0, 2), (2, 5), (5, 7), (7, 10), (10, 11)]\n",
- " labels = ['Basso', 'Moderato', 'Alto', 'Molto Alto', 'Estremo']\n",
- "\n",
- " print(\"\\nAnalisi errori per livello UV:\")\n",
- " for (low, high), label in zip(solarradiation_ranges, labels):\n",
- " mask = (y_true >= low) & (y_true < high)\n",
- " if np.sum(mask) > 0:\n",
- " mae_range = np.mean(np.abs(y_pred[mask] - y_true[mask]))\n",
- " n_samples = np.sum(mask)\n",
- " print(f\"MAE per UV {label} ({low}-{high}): {mae_range:.3f} (n={n_samples})\")\n",
- "\n",
- " # Analisi aggiuntiva della distribuzione degli errori\n",
- " errors = y_pred - y_true\n",
- " print(\"\\nStatistiche degli errori:\")\n",
- " print(f\"Media errori: {np.mean(errors):.3f}\")\n",
- " print(f\"Deviazione standard errori: {np.std(errors):.3f}\")\n",
- " print(f\"Errore mediano: {np.median(errors):.3f}\")\n",
- " print(f\"95° percentile errore assoluto: {np.percentile(np.abs(errors), 95):.3f}\")\n",
- "\n",
- " return {\n",
- " 'exact_match': exact_match,\n",
- " 'within_half': within_half,\n",
- " 'within_one': within_one,\n",
- " 'risk_accuracy': risk_accuracy,\n",
- " 'error_stats': {\n",
- " 'mean': float(np.mean(errors)),\n",
- " 'std': float(np.std(errors)),\n",
- " 'median': float(np.median(errors)),\n",
- " 'p95_abs': float(np.percentile(np.abs(errors), 95))\n",
- " }\n",
- " }\n",
- "\n",
- "\n",
- "# Per utilizzare l'analisi:\n",
- "metrics = analyze_solarradiation_prediction_quality(y_test, predictions)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
"id": "08fd4208-0afb-4bf1-bdef-b10b4065fe55",
"metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAHqCAYAAADrpwd3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd5wU5f3A8c/M9ru9wnF33HH0YqEoBhtiF0HEFitqFLG3+EOjURIblqDGKMZuYtAkYok9GgSxRmNXVFAQkHpwve1t35nn98feLbdcYYBl94Dv+/XaF+zs93aenb2bZ+Y7z3wfTSmlEEIIIYQQQgghhBBCCCFEO3qmGyCEEEIIIYQQQgghhBBCdFeSRBdCCCGEEEIIIYQQQgghOiFJdCGEEEIIIYQQQgghhBCiE5JEF0IIIYQQQgghhBBCCCE6IUl0IYQQQgghhBBCCCGEEKITkkQXQgghhBBCCCGEEEIIITohSXQhhBBCCCGEEEIIIYQQohOSRBdCCCGEEEIIIYQQQgghOiFJdCGEEEIIIYQQQgghhBCiE5JEF9vFrbfeiqZpaVnX4YcfzuGHH554/v7776NpGi+++GJa1t/qqaeeQtM0Vq1aldb1psKm23B76Gj7pGO96bCt3/15553HgAEDkpZpmsatt966zW3b3lLV9o7eRwgh0mnVqlVomsZTTz2V0vdN5zHR1tqZ++htle7vT/pDIYToPgYMGMB5552X6Wak3Pb4XK15mPfffz+l75tKHR3r7QjHaaL7kCS62KzWE6vWh9vtpnfv3kyYMIE///nP+Hy+lKxn/fr13HrrrSxcuDAl7yd2HgMGDEj6HWz7OOaYYzLdvIxpPQhofdhsNvr168cvf/lL+TsSQuzUTjjhBLKysro8Bjn77LNxOp3U1tamsWVb77zzzkvap7tcLnbbbTduvvlmQqFQppuXMW23ia7r9O7dm/Hjx3frk/RWc+bMYdasWe2WyzGvEEK0zzNs+vj0008z3cSMu++++9A0jQULFnQa85e//AVN03j99dfT2LKtt+n3brfbKSsr47zzzqO8vDzTzROiS/ZMN0DsOG677TYGDhxINBqloqKC999/n2nTpnHffffx+uuvs9deeyVib7zxRm644YYtev/169czY8YMBgwYwKhRoyz/3Pz587doPdvLOeecw+TJk3G5XJluyg5jS767UaNG8Zvf/Kbd8t69e6eySVtle3z3wWAQu93aLvrMM8/k2GOPxTAMfvzxRx599FHmzp3Lp59+ukV/S6myJW1v9Ze//AXTNLdTi4QQO5uzzz6bf//737zyyiuce+657V4PBAK89tprHHPMMfTs2TMDLdxoS46JXC4Xf/3rXwFobGzktdde4/bbb2fFihU888wz27OZ7XSX4yuAo48+mnPPPRelFCtXruSRRx7hyCOP5M0332TixImZbl6n5syZw6JFi5g2bVrS8q6OeaU/FELsalrzDJsaMmRIBlqTbOnSpeh65saeTp48meuuu445c+Ywbty4DmPmzJlDz549M94fHnrooQSDQZxOp6X41u89FArx6aef8tRTT/HRRx+xaNEi3G73dm7tRluTuxK7LkmiC8smTpzIvvvum3g+ffp03n33XY477jhOOOEEfvzxRzweDwB2u32Lk2hbKhAIkJWVZXknvb3ZbDZsNlumm7FD2ZLvrqysjF/96ldbvA6/3092dna75aZpEolEtqmDbn3v7fHdb0m7fvGLXyRtm7Fjx3LCCSfw6KOP8vjjj3f4M51tl1TYmm3qcDi2Q0uEEDurE044gZycHObMmdNhEv21117D7/dz9tlnZ6B1ca372S05JrLb7Un788svv5yDDjqIZ599lvvuu49evXptr+a2012OrwB22223pO3yy1/+kr322otZs2Z1mjQIhUI4nc6MJj+2hvSHQohdzaZ5BitisRimaXbYV23reY5SilAohMfjyfgAud69e3PEEUfw8ssv8+ijj7ZrT3l5OR9++CEXX3xxxvqPtv3tlpwHtv3eL7zwQgoLC7n77rt5/fXXOf3007dXc9tJR+5K7Dx2rKNK0e0ceeSR3HTTTaxevZp//vOfieUd1ZV6++23Ofjgg8nPz8fr9bL77rvzu9/9DojXz9pvv/0AmDp1auLWntZaVYcffjgjRozgq6++4tBDDyUrKyvxs53V7DQMg9/97neUlJSQnZ3NCSecwNq1a5NiOqsFtul7dlVOpPV24s7qYj/yyCMMHz4cl8tF7969ueKKK2hoaGi3vhEjRvDDDz9wxBFHkJWVRVlZGffcc0+7toXDYW655RaGDBmCy+Wib9++/Pa3vyUcDreL7cgTTzzB4MGD8Xg87L///vz3v//tMM7qeoLBIFdddRWFhYXk5ORwwgknUF5ebqkudqrrrZ533nl4vV5WrFjBscceS05OTiKBomkaV155Jc8880zi+3jrrbcA+Oabb5g4cSK5ubl4vV6OOuqodrcPtn6/H3zwAZdffjnFxcX06dMn6TUrNdFfffVVRowYgdvtZsSIEbzyyisdxm1LTfQjjzwSgJUrV2627QBz587lkEMOITs7m5ycHCZNmsTixYtT0vZNS85s+mjVUQ1Yv9/Pb37zG/r27YvL5WL33Xfn3nvvRSnVbn1XXnllon0ul4vhw4cnvt+2ysvLOf/88+nVq1ci7m9/+9vmN6oQolvxeDycfPLJvPPOO1RVVbV7fc6cOYk+qa6ujmuvvZaRI0fi9XrJzc1l4sSJfPvtt5bW9e677yb2kfn5+Zx44on8+OOPSTGtxz0//PADZ511Fj169ODggw9Oem1raJrGwQcfjFKKn3/+Oek1K/vu7777jvPOO49BgwbhdrspKSnh/PPPt1TixkofPWLECI444oh2y03TpKysjFNPPTWx7LnnnmP06NHk5OSQm5vLyJEjeeCBBzbbjo6MHDmSwsLCRD/XWof1ueee48Ybb6SsrIysrCyampoA+OyzzzjmmGPIy8sjKyuLww47jI8//rjd+3700Ufst99+uN1uBg8e3OmFaIB//vOfjB49Go/HQ0FBAZMnT046zjz88MN58803Wb16daLPGzBgwGaPeaUmuhBCJGs9n7j33nuZNWsWgwcPxuVy8cMPP3TZ/8ZiMW6//fZE/IABA/jd737X7nx2wIABHHfcccybN499990Xj8eT2P9vrnZ4NBqloKCAqVOntnutqakJt9vNtddem1j24IMPMnz4cLKysujRowf77rsvc+bM6fLz/+pXv6KxsZE333yz3WvPPfccpmkmznnvvfdeDjroIHr27InH42H06NGW54r7+eefOe200ygoKCArK4sDDzyw3Tq76m+3tSb6IYccAsCKFSuSli9ZsoRTTz2VgoIC3G43++67b7vSNdtyrCc10cWWkMstYpudc845/O53v2P+/PlcdNFFHcYsXryY4447jr322ovbbrsNl8vF8uXLEycwe+65J7fddhs333wzF198cWIHetBBByXeo7a2lokTJzJ58mR+9atfbXY01p133ommaVx//fVUVVUxa9Ysxo0bx8KFCxMj5q2aNWsWzc3NScvuv/9+Fi5c2OVt4rfeeiszZsxg3LhxXHbZZSxdupRHH32UL774go8//jjpanF9fT3HHHMMJ598Mqeffjovvvgi119/PSNHjkyMsjJNkxNOOIGPPvqIiy++mD333JPvv/+e+++/n59++olXX321y8/x5JNPcskll3DQQQcxbdo0fv75Z0444QQKCgro27dvIm5L1nPeeefxwgsvcM4553DggQfywQcfMGnSpC3YutZEo1FqamraLc/Ozk76PmOxGBMmTODggw/m3nvvJSsrK/Hau+++ywsvvMCVV15JYWEhAwYMYPHixRxyyCHk5uby29/+FofDweOPP87hhx/OBx98wAEHHJC0vssvv5yioiJuvvlm/H7/Fn2G+fPnc8oppzBs2DBmzpxJbW0tU6dOTUpop0Lrgcemv5sdtf0f//gHU6ZMYcKECdx9990EAgEeffRRDj74YL755pvEifzWtr2oqIh//OMfScui0ShXX311l6MclVKccMIJvPfee1xwwQWMGjWKefPmcd1111FeXs7999+fFP/RRx/x8ssvc/nll5OTk8Of//xnTjnlFNasWZPYDpWVlRx44IGJpHtRURFz587lggsuoKmpqd3t9kKI7u3ss8/m6aefTuzXW9XV1TFv3jzOPPNMPB4Pixcv5tVXX+W0005j4MCBVFZW8vjjj3PYYYfxww8/dFkWbMGCBUycOJFBgwZx6623EgwGefDBBxk7dixff/11u2TnaaedxtChQ/nDH/7Q7oLf1mq9QNujR4/EMqv77rfffpuff/6ZqVOnUlJSwuLFi3niiSdYvHgxn3766TafNJ5xxhnceuutVFRUUFJSklj+0UcfsX79eiZPnpxox5lnnslRRx3F3XffDcCPP/7Ixx9/zP/93/9t8Xrr6+upr69vd6v/7bffjtPp5NprryUcDuN0Onn33XeZOHEio0eP5pZbbkHXdWbPns2RRx7Jf//7X/bff38Avv/+e8aPH09RURG33norsViMW265pcPjzTvvvJObbrqJ008/nQsvvJDq6moefPBBDj30UL755hvy8/P5/e9/T2NjI+vWrUv0WV6v19IxrxBC7EoaGxvbnedpmtbuXGb27NmEQiEuvvhiXC4XBQUFidc66n8vvPBCnn76aU499VR+85vf8NlnnzFz5kx+/PHHdoOBli5dyplnnskll1zCRRddxO67726p7Q6Hg1/+8pe8/PLLPP7440nnN6+++irhcDjRF/7lL3/hqquu4tRTT+X//u//CIVCfPfdd3z22WecddZZna7j5JNP5rLLLmPOnDmcfPLJSa/NmTOH/v37M3bsWAAeeOABTjjhBM4++2wikQjPPfccp512Gm+88UaX5+iVlZUcdNBBBAIBrrrqKnr27MnTTz/NCSecwIsvvsgvf/nLpPiO+ttt1dHxzuLFixk7dixlZWXccMMNZGdn88ILL3DSSSfx0ksvJdr1888/b/WxnhBbRAmxGbNnz1aA+uKLLzqNycvLU/vss0/i+S233KLa/nrdf//9ClDV1dWdvscXX3yhADV79ux2rx122GEKUI899liHrx122GGJ5++9954CVFlZmWpqakosf+GFFxSgHnjggcSy/v37qylTpmz2PTfV+l633XZbYlnrdlq5cqVSSqmqqirldDrV+PHjlWEYibiHHnpIAepvf/tbu8/397//PbEsHA6rkpISdcoppySW/eMf/1C6rqv//ve/Se157LHHFKA+/vjjTtsciURUcXGxGjVqlAqHw4nlTzzxhAKSPq/V9Xz11VcKUNOmTUuKO++88xSgbrnllk63T+vn7mo7t+rfv78COnzMnDkzETdlyhQFqBtuuKHdewBK13W1ePHipOUnnXSScjqdasWKFYll69evVzk5OerQQw9t1/6DDz5YxWKxpPfo6LN1ZNSoUaq0tFQ1NDQkls2fP18Bqn///u3a23b7dWTlypUKUDNmzFDV1dWqoqJCvf/++2qfffZRgHrppZe6bLvP51P5+fnqoosuSnrfiooKlZeXl7Q8lW2//PLLlc1mU++++25i2ZQpU5Le59VXX1WAuuOOO5J+9tRTT1Wapqnly5cnrc/pdCYt+/bbbxWgHnzwwcSyCy64QJWWlqqampqk95w8ebLKy8tTgUCg0zYLIbqfWCymSktL1ZgxY5KWt/ZV8+bNU0opFQqFkvphpeL7T5fLldSPt+5T2x6HjBo1ShUXF6va2trEsm+//Vbpuq7OPffcxLLW454zzzyzXTs3PSbqzJQpU1R2draqrq5W1dXVavny5eree+9VmqapESNGKNM0lVJbtu/uaL/27LPPKkB9+OGHiWVb20cvXbq03b5Wqfh+3uv1Jtb/f//3fyo3N7dd/2kFoC644AJVXV2tqqqq1GeffaaOOuooBag//elPSqmNx36DBg1K+symaaqhQ4eqCRMmJLafUvHtMnDgQHX00Ucnlp100knK7Xar1atXJ5b98MMPymazJX1/q1atUjabTd15551J7fz++++V3W5PWj5p0qR2faRSXR/zbtofCiHEzqq17+no4XK5EnGt/XNubq6qqqpKeo/O+t+FCxcqQF144YVJy6+99loFJJ2HtJ5rvvXWW+3a2Fm+oK158+YpQP373/9OWn7ssceqQYMGJZ6feOKJavjw4V2+V2dOO+005Xa7VWNjY2LZkiVLFKCmT5+eWLZpvx+JRNSIESPUkUcembR80881bdo0BSSd//t8PjVw4EA1YMCAxHFUZ/1t29fee++9Lj9L6/e+YMECVV1drdauXatefPFFVVRUpFwul1q7dm0i9qijjlIjR45UoVAoscw0TXXQQQepoUOHJpZty7Ge1eM0IZRSSsq5iJTwer34fL5OX8/PzwfiNUq3drIkl8vV4W1SnTn33HPJyclJPD/11FMpLS3lP//5z1atv9UPP/zA+eefz4knnsiNN97YadyCBQuIRCJMmzYtqR7nRRddRG5ubrtbo7xeb1K9T6fTyf777590+/a//vUv9txzT/bYYw9qamoSj9byHe+9916n7fnyyy+pqqri0ksvTbpSfN5555GXl5cUa3U9reUyLr/88qSf//Wvf91pO7bWAQccwNtvv93uceaZZ7aLveyyyzp8j8MOO4xhw4YlnhuGwfz58znppJMYNGhQYnlpaSlnnXUWH330UeJW8FYXXXTRVtU/37BhAwsXLmTKlClJ2/voo49OatPWuOWWWygqKqKkpITDDz+cFStWcPfdd7cbqbBp299++20aGho488wzk75nm83GAQcckPieU9n2v//97zzyyCPcc889HZYAaPWf//wHm83GVVddlbT8N7/5DUop5s6dm7R83LhxDB48OPF8r732Ijc3N/H3o5TipZde4vjjj0cplfR5J0yYQGNjI19//fUWfRYhRGbZbDYmT57MJ598klROa86cOfTq1YujjjoKiB8/tPbDhmFQW1ubKCvX1d99677vvPPOSxrtttdee3H00Ud3eDxx6aWXbtNn8vv9FBUVUVRUxJAhQ7j22msZO3Ysr732WmLUuNV9N5B0p1YoFKKmpoYDDzwQICX7vN12241Ro0bx/PPPJ5YZhsGLL77I8ccfn1h/fn4+fr+ft99+e6vW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4VAlJSXqqKOOUk888UQXW1AI0d09/PDDClD7779/u9dCoZD6zW9+o0pLS5XH41Fjx45Vn3zySbs+qHWf2nrs0WrBggVq7NixyuPxqNzcXHX88cerH374ISmm9binurq63fo3PSbqTFd92IoVK5TNZkvap1nZd69bt0798pe/VPn5+SovL0+ddtppav369e36mG3po1uNHTtWAerCCy9s99qLL76oxo8fr4qLi5XT6VT9+vVTl1xyidqwYcNm37er/rtVa1/zr3/9q8PXv/nmG3XyySernj17KpfLpfr3769OP/109c477yTFffDBB2r06NHK6XSqQYMGqccee6zT7++ll15SBx98sMrOzlbZ2dlqjz32UFdccYVaunRpIqa5uVmdddZZKj8/v90xS2fHvB31h0IIsTPaNM+w6aN1v9jVOU9X/W80GlUzZsxQAwcOVA6HQ/Xt21dNnz5dhUKhpLj+/furSZMmddjGjs4nOmOapurbt68C1B133NHu9ccff1wdeuihib5o8ODB6rrrrrN0Dt9q8eLFClAul6tdTkEppZ588kk1dOhQ5XK51B577KFmz57dYT/W0edasWKFOvXUU1V+fr5yu91q//33V2+88UZSTFf9betrrfmRznR1bmoYhho8eLAaPHiwisViiXade+65qqSkRDkcDlVWVqaOO+449eKLLyZ+bluO9awepwmhlFKaUpvc8yCEENto4cKF7LPPPvzzn//sssyPEEIIIYQQQgghhBDdndREF0Jsk2Aw2G7ZrFmz0HWdQw89NAMtEkIIIYQQQgghhBAidaQmuhBim9xzzz189dVXHHHEEdjtdubOncvcuXO5+OKL6du3b6abJ4QQQgghhBBCCCHENpFyLkKIbfL2228zY8YMfvjhB5qbm+nXrx/nnHMOv//977Hb5TqdEEIIIYQQQgghhNixSRJdCCGEEEIIIYQQQgghhOiE1EQXQgghhBBCCCGEEEIIITohSXQhhBBCCCGEEEIIIYQQohNSsDhFTNNk/fr15OTkoGlappsjhBBCoJTC5/PRu3dvdH3Xu24ufbMQQojuZlfvm0H6ZyGEEN2L1b5Zkugpsn79evr27ZvpZgghhBDtrF27lj59+mS6GWknfbMQQojualftm0H6ZyGEEN3T5vpmSaKnSE5ODhDf4Lm5uRlujRBCCAFNTU307ds30Uft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qqqiuLgYgLfffpvc3NxESZgxY8bwn//8J+l93n777UTddafTyejRo3nnnXc46aSTEm145513uPLKK1P98YQQQgghhBBCbIsXXoCzzwaPJz556P77p/TtyxuCrKhuxuPQ+XJ1PVVNYaKGicOmU5zrojTPzfKqZsobglJOJEOk1I4QQoh0y2gSffr06UycOJF+/frh8/mYM2cO77//PvPmzWPFihXMmTOHY489lp49e/Ldd99x9dVXc+ihh7LXXnsBMH78eIYNG8Y555zDPffcQ0VFBTfeeCNXXHEFLpcLgEsvvZSHHnqI3/72t5x//vm8++67vPDCC7z55puJdlxzzTVMmTKFfffdl/33359Zs2bh9/uZOnVqRraLEEIIIYQQQuwqIhGD+UsqqGgMU5LnYvweJTidto6Dn34azj8fTBN8PnjqqZQn0f2RGDXNYdY3hKj1h4jFFIZS2DSNukCYal+Y3vke/JFYStcrrJFSO0IIITIho0n0qqoqzj33XDZs2EBeXh577bUX8+bN4+ijj2bt2rUsWLAgkdDu27cvp5xyCjfeeGPi5202G2+88QaXXXYZY8aMITs7mylTpnDbbbclYgYOHMibb77J1VdfzQMPPECfPn3461//yoQJExIxZ5xxBtXV1dx8881UVFQwatQo3nrrrXaTjQohhBBCCCGESJ1/fLKKv/53JdW+UCJR/cecn7jwkIGcM2ZAcvCjj8Lll298fuGF8OCDKW+Tx2GjvCFIeX2QSMzEbPOaHoFgxES1xIn0altqZ2ixF03TAMhxO/C67Cyramb+4koGFXrRdS3DrRVCCLEzyWgS/cknn+z0tb59+/LBBx9s9j369+/frlzLpg4//HC++eabLmOuvPJKKd8ihBBCCCGEEGnyj09W8cd5SwlHDZwOHScaBlDRGOSP85YCbEyk/+lPcO21G3/4qqviE4nqqZ/mS5mKGl+YUMxs95oJhGImNb4wSmpwp11rqZ3SPDcATcEoEcPEadPJcdul1I4QQojtptvVRBdCCCGEEEIIsXOLRAz++t+VBCMGSimaQwYK0ACbBsGIwZMfreSMX/TBefcf4JZbNv7w9Olw552gbZ+RxitqmvGFuy7V4gvHWFHTzIAi73Zpg+iYPxIjFDMIRW38sL6OKl+bevU5LgYWZROOGVJqRwghRMpJEl0IIYQQQgghRFrNX1LB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locffpgBAwbgdrs54IAD+Pzzz7fLZxZCCCGENYZhcNNNNzFw4EA8Hg+DBw/m9ttvR6n0JC1aJxYNRGJomkaux0Gh10Wux4GmaQQjhkws2kZtc5hwLJ6gdtjih5hmy3flsOnoQDhmUNuc3lrVAG67zopqP/5wDB2w23Qcdh17S7v84Rg/V/tx29N7aDy42GLdZYtxqRSJWivTYjUuVaIWy6FYjUsVq2vrTinX4378kMdeuTORQJ+720Hwyiu7fAIdIN9tbV9gNU7s/HyhKOsbQijApm286URrea6ADY0hfBm4kubSdZrDMRRg18Gma2ia1nLBO9625nAM165cwkkIISzI6F6yT58+3HXXXXz11Vd8+eWXHHnkkZx44oksXrwYiM/8/e9//5t//etffPDBB6xfv56TTz458fOGYTBp0iQikQj/+9//ePrpp3nqqae4+eabEzErV65k0qRJHHHEESxcuJBp06Zx4YUXMm/evETM888/zzXXXMMtt9zC119/zd57782ECROoqqpK38YQQgghRJK7776bRx99lIceeogff/yRu+++m3vuuYcHH3wwLesvy/cwuMjLhsYQpmnSFIxS0xymKRjFNE02NIYYUuyViUVbtF7bUEAoYhCKGoQiZsu/xsZReRnIIm5oDBEIGwDYbRqmUsQME1Mp7C0jqf0Rgw2NobS26/VvKlIal0r+sLXkuNW4VGmymICyGpcqRorjtrdTv1/AA/++F7uKf3+vDDucK0+8HpwZmvSwm7Fa6j/NUwKIbqwpFKXWHyZmKmy6htuhk+XQcTt0bLpGzFTxY4gMJNEXltfHa6ATH31uKtXmEU8KmaZiYXl92tsmhBA7kowOnTr++OOTnt955508+uijfPrpp/Tp04cnn3ySOXPmcOSRRwIwe/Zs9txzTz799FMOPPBA5s+fzw8//MCCBQvo1asXo0aN4vbbb+f666/n1ltvxel08thjjzFw4ED+9Kc/AbDnnnvy0Ucfcf/99zNhwgQA7rvvPi666CKmTp0KwGOPPcabb77J3/72N2644YY0bhEhhBBCtPrf//7HiSeeyKRJkwAYMGAAzz77bNruFtN1jQkjevFjRRPzfqjEaDOy1aZr7NYrh/HDe6V9ksy2TFNR3hDEH4mR7bRTlu/JWHuKclzYbTrhqJk82rbliabA7dApynGlvW3Lq5pRLXVp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wepvRr0Q45nfq/aJWDUnxrchFdFvuukmlixZwrx580ilUpx++uls2LCBiRMn8qc//Un59yxbtowHHniAf/7znxQVFXX1MC8pKSEYDFJSUsK5557L8uXLKS8vp7i4mAsvvJCFCxdyxBFHAPmC/rx58/j617/OT3/6U+rr67nqqqtYtmxZV5H7/PPP54477uB73/se55xzDk899RR//vOfefTRR7vGsnz5cs466ywOOeQQDjvsMG699Vbi8ThLly4dylMkhBBCjCm2bTN16lQymQx77703Hs/42HxnTkURSxfN6CowN3Sk8HsMFkwrYfF+hemVGsvkSGZNTDNffPLq+Rmbmg05C0wTklmLmGKvdqeWshcH1Hqwq+bEyPK595/jlkduwmvlV5w8vtdCLvr898h4xncbl0624gIL1ZyTigNeAl6DbLrv1UIBr0FxL22rhlM6Z2EYOpZtkrNB33Hxz8LGskHXwGPopAuwemW0aGxs5LTTTuOZZ57pWrnd1tbGMcccw4MPPsikcbxPgYqRuvfJYA00o/6xAo9PiEKKqWxYMoicGN+GdAa8xx578N///pcHH3yQt99+m1gsxrnnnssZZ5xBMKi+pPmXv/wlAEcffXSP+++9917OPvtsAG655RZ0XefUU08lnU6zZMkSfvGLX3RlDcPgkUce4Vvf+hYLFy4kHA5z1llncd1113VlZs6cyaOPPsqll17Kbbfdxh577MHdd9/NkiVLujJf+cpXaGpq4oc//CH19fUceOCBPP7447ttNiqEEEKMNx9++CEnn3wy7733HpD/HPC3v/2NQw45pMAjc8eciiJmHR35WK1OnBRNZomlTXQt31sys9Nnfp184SmWzhFNDtycxNGl7KoTbAuwWtZArQ+nlPd796W3V3Pj4z/H2FEB/vu8o/nuSZdi6vKMdVI99S7EKXoiY2IYOhpmr//8NMAwdBIu7/imoRHxGySwSeYs7J1aU+l6fnZ6yG/kZ6aLXl144YVEo1Heffdd9t13XwDee+89zjrrLC666KJBTXAbj0bq3ieDNdCMeiGGm47a+1sh1hUlFC+CqebE+DbkdwOPx8PXvva1j/XgKv3tAoEAd955J3feeWefmenTp+/WrmVXRx99NG+++Wa/mQsuuKDP9i1CCCHEeHXZZZeRy+X4wx/+QCAQ4P/+3//L//f//X+sWbOm0ENz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3m/YaC7t+PFZqLvxhT6vt1O+ruuJK2YiGE7gzpc+wxcdcYwqduHWM49kBToRERER0T7Gl/tRP9uHhq4YIsk0vIqMmkI3K9DzlKDrum73IoaDYDCIQCCA7u7unPRgpaGNSfTB+a/5x9q9BKJhYaTvTSP98RMRUf4ZDnvTCy+8gDvvvBOffPIJXC4XTj31VDz33HOGv384PAdERDR8GN2XWIlORERERERERAP6y1/+giuvvBL33nsvvvKVryCdTmPdunV2L4uIiCjnmEQnIiIiIiIiogNKp9O4/vrrcf/992PhwoXZ64888kgbV0VERGQNDhYlIiIiIiIiogP66KOP0NDQAFEUMXXqVFRVVeHMM89kJToREY0IrEQnMgF7nhMRERER0XC2bds2AMDtt9+On/3sZ6irq8NPf/pTzJ49G5s3b0ZxcXGf35dIJJBIJLKXg8GgJeslIiIyE5PoRJR3BjoowcGjRERERETmuPHGG3HfffcdMGbDhg3QNA0AcMstt+C8884DACxbtgyjRo3CM888g6uvvrrP7126dCnuuOMOcxdNRERkMSbRiYiIiIiIiEaoG264AfPnzz9gTH19PRobGwH07oHudDpRX1+PnTt39vu9N910E5YsWZK9HAwGUVtbe2iLJiIishiT6EQGsF1LfmGlOhERERGROcrKylBWVjZg3PTp0+F0OrFp0yacdNJJAIBUKoUdO3ZgzJgx/X6f0+mE0+k0bb1ERER24GDRL3nooYdQV1cHl8uFmTNn4v3337d7SURERERERES2KigowDXXXIPbbrsNy5cvx6ZNm3DttdcCAM4//3ybV0dERJRbrETfx1NPPYUlS5bgkUcewcyZM/GLX/wCc+fOxaZNm1BeXm738ijHWG0+fBzod8kqdSIiIiKig3P//fdDlmVceumliMVimDlzJl599VUUFRXZvTQiIqKcEnRd1+1eRL6YOXMmjj32WPz6178GAGiahtraWnznO9/BjTfeeMDvDQaDCAQC6O7uRkFBgRXLJZMxiU4Ak+w0vIz0vWmkP34iIso/3Jv4HBARUX4xui+xEn2PZDKJ1atX46abbspeJ4oi5syZg1WrVtm4MjKKSXAyQy7/HjFBT0REREREREQ09DCJvkdbWxtUVUVFRUWv6ysqKrBx48b94hOJBBKJRPZyd3c3gMzRCzp4i/642u4lEOXM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g8e9efC4Pw8e9+bB4/58aKzen5lEt1hBQQGuueYa3HbbbaitrcWYMWNw//33AwDOP/98m1d36EaPHt3rss/nAwCMGzduyB/pbmhowOzZszFmzBg88MADaG1tzd42FCselixZgssvvxwzZszAcccdh1/84heIRCJYsGCB3Us7JIsWLcKTTz6Jv/71r/D7/dk+WIFAAG632+bVHRq/379f30Kv14uSkpJh0c/we9/7Hk444QTce++9+OY3v4n3338fjz766JA942NfZ599Nu655x6MHj0akyZNwscff4yf/exnuOKKK+xeGhkwXF8vc2U4vw7nwnB/bc+V4bxn5AL3oYGFw2Fs3bo1e3n79u1Ys2YNiouLMXr0aCxevBh33303JkyYgLFjx+JHP/oRqqurs0lcshb35sHh3jx43J8Hj3vz4HF/Hlhe7c86WS6ZTOo33HCDXl5ervv9fn3OnDn6unXr7F5WTmzfvl0HoH/88cd2L+WQLVu2TAfQ59dQ9atf/UofPXq0riiKftxxx+nvvvuu3Us6ZP39jpYtW2b30nLi1FNP1a+//nq7l2Gav/3tb/rkyZN1p9OpT5w4UX/00UftXpIpgsGgfv311+ujR4/WXS6XXl9fr99yyy16IpGwe2lk0HB8vcyVkfY6nAvD7bU9V4brnpEL3IcG9s9//rPP167LL79c13Vd1zRN/9GPfqRXVFToTqdTP/300/VNmzbZu+gRjnuzcdybzcH9eWDcmweH+/PA8ml/FnRd181PzRMRERERERERERERDX1Ds6EzEREREREREREREZEFmEQnIiIiIiIiIiIiIuoHk+hERERERERERERERP1gEp2IiIiIiIiIiIiIqB9MohMRERERERERERER9YNJdCIiIiIiIiIiIiKifjCJTkRERERERERERETUDybRiYiIiIiIiIiIiIj6wSQ6EREREdEwM3v2bCxevPiQf878+fNx7rnnHvLPOVSvvfYaBEFAV1cXAODxxx9HYWGhrWsiIiIaDO7NREMbk+hEZIr58+dDEIT9vubNm2f30oiIiIaMs88+u9+9880334QgCPjkk08sW8+DDz6Ixx9/vN/bez5A93yVlZXha1/7Gj799NOcruuCCy7A5s2bc3ofREREAPdmo7g303DHJDoRmWbevHlobGzs9fWnP/2pz9hUKrXfdclk8qDu92C/j4iIKN8sXLgQK1aswBdffLHfbcuWLcOMGTNw1FFH5XwdqqpC0zQEAgFDVWWbNm1CY2MjXnnlFSQSCZx11lk53Z/dbjfKy8tz9vOJiIh6cG82hnszDXdMohORaZxOJyorK3t9FRUVAQAEQcDDDz+Mf//3f4fX68U999yD22+/Hccccwwee+wxjB07Fi6XCwCwc+dOnHPOOfD5fCgoKMA3v/lNNDc3Z++nv+/r6urCt7/9bZSVlaGgoABf+cpXsHbtWuufCCIiooP0b//2bygrK9uvwiwcDuOZZ57BwoUL0d7ejosuugg1NTXweDyYMmVKvwete3R2duKyyy5DUVERPB4PzjzzTGzZsiV7e88p2M8//zyOPPJIOJ1O7Ny50/Ap4+Xl5aisrMS0adOwePFi7Nq1Cxs3bsze/tZbb+Hkk0+G2+1GbW0tvvvd7yISiWRv/8Mf/oAZM2bA7/ejsrIS3/rWt9DS0tLv/fGUcSIisgr3Zu7NRACT6ERkodtvvx1f//rX8emnn+KKK64AAGzduhV/+ctf8H//939Ys2YNNE3DOeecg46ODrz++utYsWIFtm3bhgsuuKDXz/ry9wHA+eefj5aWFrz00ktYvXo1pk2bhtNPPx0dHR1WP1QiIqKDIssyLrvsMjz++OPQdT17/TPPPANVVXHRRRchHo9j+vTpeOGFF7Bu3TpcddVVuPTSS/H+++/3+3Pnz5+PDz/8EM8//zxWrVoFXdfxta99rdeZYdFoFPfddx8ee+wxrF+//qCqybq7u/HnP/8ZAKAoCgDg888/x7x583Deeefhk08+wVNPPYW33noL1113Xfb7UqkU7rrrLqxduxbPPfccduzYgfnz5w/6/omIiMzGvZl7MxEAQCciMsHll1+uS5Kke73eXl/33HOPruu6DkBfvHhxr++57bbbdIfDobe0tGSvW758uS5Jkr5z587sdevXr9cB6O+//36/3/fmm2/qBQUFejwe73Uf48aN03/729+a/niJiIhyZcOGDToA/Z///Gf2upNPPlm/5JJL+v2es846S7/hhhuyl0899VT9+uuv13Vd1zdv3qwD0N9+++3s7W1tbbrb7daffvppXdd1fdmyZToAfc2aNb1+7uWXX66fc845/d7vP//5Tx1Adt8HoAPQ//3f/z0bs3DhQv2qq67q9X1vvvmmLoqiHovF+vy5H3zwgQ5AD4VCve6ns7Mzu95AINDvuoiIiMzEvZl7M5FsddKeiIav0047DQ8//HCv64qLi7N/njFjxn7fM2bMGJSVlWUvb9iwAbW1taitrc1ed+SRR6KwsBAbNmzAscce2+f3rV27FuFwGCUlJb1+fiwWw+eff35oD4yIiMhCEydOxAknnIDf//73mD17NrZu3Yo333wTd955J4BMT9R7770XTz/9NBoaGpBMJpFIJODxePr8eRs2bIAsy5g5c2b2upKSEhx++OHYsGFD9jpFUQ66p+ubb74Jj8eDd999F/feey8eeeSR7G1r167FJ598gj/+8Y/Z63Rdh6Zp2L59O4444gisXr0at99+O9auXYvOzk5omgYg0+LtyCOPPKg1ERERmYV7M/dmIibRicg0Xq8X48ePP+DtRq4zel/7CofDqKqqwmuvvbZfLPuyERHRULNw4UJ85zvfwUMPPYRly5Zh3LhxOPXUUwEA999/Px588EH84he/wJQpU+D1erF48eJDHhbmdrshCMJBfe/YsWNRWFiIww8/HC0tLbjgggvwxhtvAMjs0VdffTW++93v7vd9o0ePRiQSwdy5czF37lz88Y9/RFlZGXbu3Im5c+dyeDgREeUN7s3cm2lkY090IsorRxxxBHbt2oVdu3Zlr/vss8/Q1dV1wKPd06ZNQ1NTE2RZxvjx43t9lZaWWrF0IiIi03zzm9+EKIp48skn8d///d+44oorsh+i3377bZxzzjm45JJLcPTRR6O+vh6bN2/u92cdccQRSKfTeO+997LXtbe3Y9OmTTmpJFu0aBHWrVuHZ599FkBmj/7ss8/225/Hjx8PRVGwceNGtLe348c//jFOPvlkTJw48YCDy4iIiOzAvZl7M41sTKITkWkSiQSampp6fbW1tQ3qZ8yZMwdTpkzBxRdfjI8++gjvv/8+LrvsMpx66ql9toPZ9/tmzZqFc889F8uXL8eOHTvwzjvv4JZbbsGHH354qA+NiIjIUj6fDxdccAFuuukmNDY29hrkNWHCBKxYsQLvvPMONmzYgKuvvhrNzc39/qwJEybgnHPOwZVXXom33noLa9euxSWXXIKamhqcc845pq/d4/HgyiuvxG233QZd1/GDH/wA77zzDq677jqsWbMGW7ZswV//+tfs8LLRo0dDURT86le/wrZt2/D888/jrrvuMn1dREREh4J7M/dmGtmYRCci07z88suoqqrq9XXSSScN6mcIgoC//vWvKCoqwimnnII5c+agvr4eTz311IDf9+KLL+KUU07BggULcNhhh+HCCy/Ev/71L1RUVBzKwyIiIrLFwoUL0dnZiblz56K6ujp7/Q9/+ENMmzYNc+fOxezZs1FZWYlzzz33gD9r2bJlmD59Ov7t3/4Ns2bNgq7rePHFF+FwOHKy9uuuuw4bNmzAM888g6OOOgqvv/46Nm/ejJNPPhlTp07Frbfemn1MZWVlePzxx/HMM8/gyCOPxI9//GM88MADOVkXERHRoeDeTDRyCbqu63YvgoiIiIiIiIiIiIgoH7ESnYiIiIiIiIiIiIioH0yiExERERERERERERH1g0l0IiIiIiIiIiIiIqJ+MIlORERERERERERERNQPJtGJiIiIiIiIiIiIiPrBJDoRERERERERERERUT+YRCciIiIiIiIiIiIi6geT6ERERERERERERERE/WASnYiIiIiIiIiIiIioH0yiExERERERERERERH1g0l0IiIiIiIiIiIiIqJ+MIlORERERERERERERNSP/x8mbQE5l6SkyQAAAABJRU5ErkJggg==",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "Statistiche degli errori:\n",
- "MAE: 0.4021\n",
- "MSE: 0.6128\n",
- "RMSE: 0.7828\n",
- "Media errori: 0.0062\n",
- "Std errori: 0.7828\n",
- "Predizioni entro ±0.5: 71.1%\n",
- "Predizioni entro ±1.0: 86.1%\n",
- "Predizioni entro ±1.5: 93.2%\n",
- "Predizioni entro ±2.0: 96.5%\n"
- ]
- }
- ],
"source": [
"def plot_error_analysis(y_true, y_pred, folder_name=None):\n",
" \"\"\"\n",
- " Funzione per visualizzare l'analisi degli errori di predizione\n",
+ " Function to visualize prediction error analysis\n",
"\n",
" Parameters:\n",
" -----------\n",
" y_true : array-like\n",
- " Valori reali\n",
+ " Actual values\n",
" y_pred : array-like\n",
- " Valori predetti\n",
+ " Predicted values\n",
" folder_name : str, optional\n",
- " Cartella dove salvare i plot. Se None, i plot non vengono salvati.\n",
+ " Directory to save plots. If None, plots are only displayed\n",
+ "\n",
+ " Generates:\n",
+ " ----------\n",
+ " - Error distribution histogram\n",
+ " - Actual vs Predicted scatter plot\n",
+ " - Errors vs Actual Values scatter plot\n",
+ " - Comprehensive error statistics\n",
" \"\"\"\n",
" import os\n",
" from datetime import datetime\n",
"\n",
- " # Converti in array numpy 1D se necessario\n",
+ " # Convert to 1D numpy arrays if needed\n",
" if isinstance(y_true, pd.Series):\n",
" y_true = y_true.values\n",
" if isinstance(y_pred, pd.Series):\n",
@@ -1519,330 +1137,75 @@
" y_true = y_true.ravel()\n",
" y_pred = y_pred.ravel()\n",
"\n",
- " # Calcola gli errori\n",
+ " # Calculate errors\n",
" errors = y_pred - y_true\n",
"\n",
- " # Crea la figura principale\n",
+ " # Create main figure\n",
" fig = plt.figure(figsize=(15, 5))\n",
"\n",
- " # Plot 1: Distribuzione degli errori\n",
+ " # Plot 1: Error Distribution\n",
" plt.subplot(1, 3, 1)\n",
" plt.hist(errors, bins=50, alpha=0.7)\n",
- " plt.title('Distribuzione degli Errori di Predizione')\n",
- " plt.xlabel('Errore')\n",
- " plt.ylabel('Frequenza')\n",
+ " plt.title('Prediction Error Distribution')\n",
+ " plt.xlabel('Error')\n",
+ " plt.ylabel('Frequency')\n",
"\n",
" # Plot 2: Actual vs Predicted\n",
" plt.subplot(1, 3, 2)\n",
" plt.scatter(y_true, y_pred, alpha=0.5)\n",
" plt.plot([y_true.min(), y_true.max()], [y_true.min(), y_true.max()], 'r--', lw=2)\n",
- " plt.title('Valori Reali vs Predetti')\n",
- " plt.xlabel('Valori Reali')\n",
- " plt.ylabel('Valori Predetti')\n",
+ " plt.title('Actual vs Predicted Values')\n",
+ " plt.xlabel('Actual Values')\n",
+ " plt.ylabel('Predicted Values')\n",
"\n",
- " # Plot 3: Errori vs Valori Reali\n",
+ " # Plot 3: Errors vs Actual Values\n",
" plt.subplot(1, 3, 3)\n",
" plt.scatter(y_true, errors, alpha=0.5)\n",
" plt.axhline(y=0, color='r', linestyle='--')\n",
- " plt.title('Errori vs Valori Reali')\n",
- " plt.xlabel('Valori Reali')\n",
- " plt.ylabel('Errore')\n",
+ " plt.title('Errors vs Actual Values')\n",
+ " plt.xlabel('Actual Values')\n",
+ " plt.ylabel('Error')\n",
"\n",
" plt.tight_layout()\n",
"\n",
- " # Salva il plot se è specificata una cartella\n",
+ " # Save plot if directory is specified\n",
" if folder_name is not None:\n",
" try:\n",
- " # Crea la cartella se non esiste\n",
+ " # Create directory if it doesn't exist\n",
" os.makedirs(folder_name, exist_ok=True)\n",
"\n",
- " # Genera il nome del file con timestamp\n",
+ " # Generate filename with timestamp\n",
" timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
" filename = os.path.join(folder_name, f'error_analysis_{timestamp}.png')\n",
"\n",
- " # Salva la figura\n",
+ " # Save figure\n",
" plt.savefig(filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"\\nPlot salvato come: {filename}\")\n",
+ " print(f\"\\nPlot saved as: {filename}\")\n",
" except Exception as e:\n",
- " print(f\"\\nErrore nel salvare il plot: {str(e)}\")\n",
+ " print(f\"\\nError saving plot: {str(e)}\")\n",
"\n",
" plt.show()\n",
"\n",
- " # Stampa statistiche degli errori\n",
- " print(\"\\nStatistiche degli errori:\")\n",
+ " # Print error statistics\n",
+ " print(\"\\nError Statistics:\")\n",
" print(f\"MAE: {np.mean(np.abs(errors)):.4f}\")\n",
" print(f\"MSE: {np.mean(errors ** 2):.4f}\")\n",
" print(f\"RMSE: {np.sqrt(np.mean(errors ** 2)):.4f}\")\n",
- " print(f\"Media errori: {np.mean(errors):.4f}\")\n",
- " print(f\"Std errori: {np.std(errors):.4f}\")\n",
+ " print(f\"Mean error: {np.mean(errors):.4f}\")\n",
+ " print(f\"Error std: {np.std(errors):.4f}\")\n",
"\n",
- " # Calcola percentuali di errori entro certe soglie\n",
+ " # Calculate percentage of errors within thresholds\n",
" thresholds = [0.5, 1.0, 1.5, 2.0]\n",
" for threshold in thresholds:\n",
" within_threshold = np.mean(np.abs(errors) <= threshold) * 100\n",
- " print(f\"Predizioni entro ±{threshold}: {within_threshold:.1f}%\")\n",
+ " print(f\"Predictions within ±{threshold}: {within_threshold:.1f}%\")\n",
"\n",
"\n",
+ "# Example usage\n",
"plot_error_analysis(y_test, predictions, folder_name=folder_name)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "id": "03bb9564-e518-4662-b3ee-4cfa96cdf696",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAB8YAAAPeCAYAAAB+zXC1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXwU9f3H8dfMnrnDkQQI96GIoLSoiFhFRSNSj6r1rCLeV/tD6tl6oW2taBXvo1qwKq23tloFPFutt6IgQgW55EgCIddm75nfH0sWFnIMmrAJ+34+HnnAzryz+8nknPnM9/s1bNu2ERERERERERERERERERER2UWZ6S5ARERERERERERERERERESkPakxLiIiIiIiIiIiIiIiIiIiuzQ1xkVEREREREREREREREREZJemxriIiIiIiIiIiIiIiIiIiOzS1BgXEREREREREREREREREZFdmhrjIiIiIiIiIiIiIiIiIiKyS1NjXEREREREREREREREREREdmlqjIuIiIiIiIiIiIiIiIiIyC5NjXEREREREREREREREREREdmlqTEuIpKhbrzxRgzD2CmvNW7cOMaNG5d8/Pbbb2MYBs8+++xOef1Gs2bNwjAMVqxYsVNfty1sewzbQ1PHZ2e87s7wQz/3Z511Fv3790/ZZhgGN9544w+urb21Ve1NPY+IiIiIiHQuK1aswDAMZs2a1abPuzOvMXxfu/I57w+1sz9/Or8UEZF0UWNcRGQX0Hhy1/jm9/vp1asXZWVl3H333dTV1bXJ66xdu5Ybb7yR+fPnt8nzya6jf//+KV+DW78deeSR6S4vbRovOjW+uVwu+vbty89+9jN9H4mIiIiISIuOOeYYsrOzWzynP/300/F6vWzcuHEnVvb9nXXWWSnnSD6fj912243rr7+eUCiU7vLSZutjYpomvXr14ogjjuDtt99Od2mtmj17NjNmzNhuu64hiYhIR+ROdwEiItJ2brrpJgYMGEA0GmX9+vW8/fbbTJkyhTvuuIN//OMf7LXXXsnstddey9VXX71Dz7927VqmTZtG//79GTlypOP3mzt37g69Tns544wzOOWUU/D5fOkupdPYkc/dyJEj+fWvf73d9l69erVlSd9Le3zug8EgbrezP6VOPfVUjjrqKOLxOF9//TUPPPAAr776Kh988MEOfS+1lR2pvdGf//xnLMtqp4pERERERGRbp59+Ov/85z954YUXOPPMM7fb39DQwEsvvcSRRx5Jt27d0lDhFjtyjcHn8/HII48AUFNTw0svvcTNN9/MsmXLePLJJ9uzzO10lOsVAIcffjhnnnkmtm2zfPly7r//fg499FBeeeUVJkyYkO7ymjV79mwWLlzIlClTUra3dA1J55ciIpIuaoyLiOxCJkyYwD777JN8fM011/Dmm2/y05/+lGOOOYavv/6arKwsANxu9w43xnZUQ0MD2dnZeL3edn0dp1wuFy6XK91ldCo78rkrLS3lF7/4xQ6/RiAQICcnZ7vtlmURiUTw+/07/JzbPnd7fO53pK4f//jHKcdm7NixHHPMMTzwwAM89NBDTb5Pc8elLXyfY+rxeNqhEhERERERac4xxxxDXl4es2fPbrIx/tJLLxEIBDj99NPTUF1C43nLjlxjcLvdKedHF198MQcccAB/+9vfuOOOOygpKWmvcrfTUa5XAOy2224px+VnP/sZe+21FzNmzGi2MR4KhfB6vZhm55oYVueXIiKSLp3rN6aIiOywQw89lOuuu46VK1fyxBNPJLc3tX7UvHnzOPDAAyksLCQ3N5fdd9+d3/zmN0BiXfB9990XgMmTJyen+Gpcl2zcuHEMHz6cTz/9lIMOOojs7Ozk+za3Zlc8Huc3v/kNPXr0ICcnh2OOOYbVq1enZPr3789ZZ5213ftu+5wtTeXdOPVYc+tM33///ey55574fD569erFJZdcQnV19XavN3z4cBYtWsQhhxxCdnY2paWlTJ8+fbvawuEwN9xwA4MHD8bn89GnTx+uvPJKwuHwdtmmPPzwwwwaNIisrCz2228//vOf/zSZc/o6wWCQX/3qV3Tv3p28vDyOOeYY1qxZ42id6bZeb+2ss84iNzeXZcuWcdRRR5GXl5e8iGMYBpdeeilPPvlk8vPx2muvAfD5558zYcIE8vPzyc3N5bDDDuODDz5Iee7Gz+8777zDxRdfTHFxMb17907Z52SN8RdffJHhw4fj9/sZPnw4L7zwQpO5H7LG+KGHHgrA8uXLW60d4NVXX+UnP/kJOTk55OXlMXHiRL766qs2qX3b6d63fWvU1BpwgUCAX//61/Tp0wefz8fuu+/O7bffjm3b273epZdemqzP5/Ox5557Jj+/W1uzZg1nn302JSUlydxf/vKX1g+qiIiIiMguJisri+OPP5433niDioqK7fbPnj07eY5XVVXF5ZdfzogRI8jNzSU/P58JEybwxRdfOHqtN998M3nOUVhYyLHHHsvXX3+dkmm8jrBo0SJOO+00unTpwoEHHpiy7/swDIMDDzwQ27b59ttvU/Y5ORf68ssvOeussxg4cCB+v58ePXpw9tlnO5pe3sk57/DhwznkkEO2225ZFqWlpZx44onJbX//+98ZNWoUeXl55OfnM2LECO66665W62jKiBEj6N69e/K88e2338YwDP7+979z7bXXUlpaSnZ2NrW1tQB8+OGHHHnkkRQUFJCdnc3BBx/Me++9t93zvvvuu+y77774/X4GDRrU7M3aAE888QSjRo0iKyuLrl27csopp6Rctxk3bhyvvPIKK1euTJ5D9u/fv9VrSFpjXERE0kUjxkVEMsAZZ5zBb37zG+bOnct5553XZOarr77ipz/9KXvttRc33XQTPp+PpUuXJk+i9thjD2666Sauv/56zj//fH7yk58AcMABBySfY+PGjUyYMIFTTjmFX/ziF63e5f373/8ewzC46qqrqKioYMaMGYwfP5758+cnR7Y7NWPGDOrr61O23XnnncyfP7/FKeVuvPFGpk2bxvjx47noootYsmQJDzzwAB9//DHvvfdeyl3MmzZt4sgjj+T444/npJNO4tlnn+Wqq65ixIgRybu3LcvimGOO4d133+X8889njz32YMGCBdx5553873//48UXX2zx43j00Ue54IILOOCAA5gyZQrffvstxxxzDF27dqVPnz7J3I68zllnncXTTz/NGWecwf77788777zDxIkTd+DoOhONRtmwYcN223NyclI+n7FYjLKyMg488EBuv/12srOzk/vefPNNnn76aS699FK6d+9O//79+eqrr/jJT35Cfn4+V155JR6Ph4ceeohx48bxzjvvMHr06JTXu/jiiykqKuL6668nEAjs0Mcwd+5cTjjhBIYNG8Ytt9zCxo0bmTx5ckqTui0sW7YMYLuvzaZqf/zxx5k0aRJlZWXceuutNDQ08MADD3DggQfy+eefJy8mfN/ai4qKePzxx1O2RaNRLrvsshZHT9i2zTHHHMNbb73FOeecw8iRI5kzZw5XXHEFa9as4c4770zJv/vuuzz//PNcfPHF5OXlcffdd3PCCSewatWq5HEoLy9n//33TzbSi4qKePXVVznnnHOora3dbmo+EREREZFd3emnn85jjz2WPE9qVFVVxZw5czj11FPJysriq6++4sUXX+TnP/85AwYMoLy8nIceeoiDDz6YRYsWtbjE1euvv86ECRMYOHAgN954I8FgkHvuuYexY8fy2WefbdfA/PnPf86QIUP4wx/+sN1Nsd9X403MXbp0SW5zei40b948vv32WyZPnkyPHj346quvePjhh/nqq6/44IMPvnfDvtHJJ5/MjTfeyPr16+nRo0dy+7vvvsvatWs55ZRTknWceuqpHHbYYdx6660AfP3117z33nv83//93w6/7qZNm9i0aRODBw9O2X7zzTfj9Xq5/PLLCYfDeL1e3nzzTSZMmMCoUaO44YYbME2TmTNncuihh/Kf//yH/fbbD4AFCxZwxBFHUFRUxI033kgsFuOGG25o8vrN73//e6677jpOOukkzj33XCorK7nnnns46KCD+PzzzyksLOS3v/0tNTU1fPfdd8lzwNzcXEfXkERERNLCFhGRTm/mzJk2YH/88cfNZgoKCuwf/ehHycc33HCDvfWvgTvvvNMG7MrKymaf4+OPP7YBe+bMmdvtO/jgg23AfvDBB5vcd/DBBycfv/XWWzZgl5aW2rW1tcntTz/9tA3Yd911V3Jbv3797EmTJrX6nNtqfK6bbropua3xOC1fvty2bduuqKiwvV6vfcQRR9jxeDyZu/fee23A/stf/rLdx/fXv/41uS0cDts9evSwTzjhhOS2xx9/3DZN0/7Pf/6TUs+DDz5oA/Z7773XbM2RSMQuLi62R44caYfD4eT2hx9+2AZSPl6nr/Ppp5/agD1lypSU3FlnnWUD9g033NDs8Wn8uFs6zo369etnA02+3XLLLcncpEmTbMC++uqrt3sOwDZN0/7qq69Sth933HG21+u1ly1blty2du1aOy8vzz7ooIO2q//AAw+0Y7FYynM09bE1ZeTIkXbPnj3t6urq5La5c+fagN2vX7/t6t36+DVl+fLlNmBPmzbNrqystNevX2+//fbb9o9+9CMbsJ977rkWa6+rq7MLCwvt8847L+V5169fbxcUFKRsb8vaL774YtvlctlvvvlmctukSZNSnufFF1+0Aft3v/tdyvueeOKJtmEY9tKlS1Nez+v1pmz74osvbMC+5557ktvOOeccu2fPnvaGDRtSnvOUU06xCwoK7IaGhmZrFhERERHZFcViMbtnz572mDFjUrY3nvvNmTPHtm3bDoVCKee1tp04H/H5fCnnxY3nKFuf148cOdIuLi62N27cmNz2xRdf2KZp2meeeWZyW+N1hFNPPXW7Ore9xtCcSZMm2Tk5OXZlZaVdWVlpL1261L799tttwzDs4cOH25Zl2ba9Y+dCTZ0n/O1vf7MB+9///ndy2/c9512yZMl25y62nThvys3NTb7+//3f/9n5+fnbnY86AdjnnHOOXVlZaVdUVNgffvihfdhhh9mA/ac//cm27S3XUgYOHJjyMVuWZQ8ZMsQuKytLHj/bThyXAQMG2Icffnhy23HHHWf7/X575cqVyW2LFi2yXS5XyudvxYoVtsvlsn//+9+n1LlgwQLb7XanbJ84ceJ255y23fI1pG3PL0VERHYWTaUuIpIhcnNzqaura3Z/YWEhkFijzLKs7/UaPp+PyZMnO86feeaZ5OXlJR+feOKJ9OzZk3/961/f6/UbLVq0iLPPPptjjz2Wa6+9ttnc66+/TiQSYcqUKSnrcZ133nnk5+fzyiuvpORzc3NT1vvyer3st99+KVO9PfPMM+yxxx4MHTqUDRs2JN8ap85+6623mq3nk08+oaKiggsvvDBlpO5ZZ51FQUFBStbp6zROVX3xxRenvP8vf/nLZuv4vkaPHs28efO2ezv11FO3y1500UVNPsfBBx/MsGHDko/j8Thz587luOOOY+DAgcntPXv25LTTTuPdd99NThvX6Lzzzvte64mvW7eO+fPnM2nSpJTjffjhh6fU9H3ccMMNFBUV0aNHD8aNG8eyZcu49dZbOf7441usfd68eVRXV3PqqaemfJ5dLhejR49Ofp7bsva//vWv3H///UyfPr3J6QIb/etf/8LlcvGrX/0qZfuvf/1rbNvm1VdfTdk+fvx4Bg0alHy81157kZ+fn/z+sW2b5557jqOPPhrbtlM+3rKyMmpqavjss8926GMREREREensXC4Xp5xyCu+//37K0lCzZ8+mpKSEww47DEicjzee18bjcTZu3JhcIq2lv6MbzyXOOussunbtmty+1157cfjhhzd5fn7hhRf+oI8pEAhQVFREUVERgwcP5vLLL2fs2LG89NJLydHdTs+FgJQZykKhEBs2bGD//fcHaJNziN12242RI0fy1FNPJbfF43GeffZZjj766OTrFxYWEggEmDdv3vd6nUcffZSioiKKi4sZPXo07733HlOnTt1u5qxJkyalfMzz58/nm2++4bTTTmPjxo3JYxUIBDjssMP497//jWVZxONx5syZw3HHHUffvn2T77/HHntQVlaW8hrPP/88lmVx0kknpRz/Hj16MGTIkBavbYiIiHRkmkpdRCRD1NfXU1xc3Oz+k08+mUceeYRzzz2Xq6++msMOO4zjjz+eE088MaVp3JLS0tIWp17e1pAhQ1IeG4bB4MGDHa0D3Zza2lqOP/54SktL+etf/9rilGkrV64EYPfdd0/Z7vV6GThwYHJ/o969e2/3fF26dOHLL79MPv7mm2/4+uuvKSoqavI1m1oXbtt6tj0uHo8npSm8I6+zcuVKTNNkwIABKfu3nYqtLXTv3p3x48e3mnO73c1O771tnZWVlTQ0NGz3OYLEybtlWaxevZo999yz2edwqrnjD7R6Mak1559/Pj//+c8xTZPCwsLkGurb2rb2b775BtiyJvm28vPz27T2+fPnc+GFF3LqqacyderUFrMrV66kV69eKTe3QOLzsnVNjba+8NKoS5cubNq0CUh8rqurq3n44Yd5+OGHm3zNlr5/RERERER2Vaeffjp33nkns2fP5je/+Q3fffcd//nPf/jVr36VvLHWsizuuusu7r//fpYvX048Hk++f0vLizV3XgyJv+3nzJlDIBAgJycnuf37nnM18vv9/POf/wTgu+++Y/r06VRUVKQ0e52eC0FiWvlp06bx97//fbtzhpqamh9Ua6OTTz6Z3/zmN6xZs4bS0lLefvttKioqOPnkk5OZiy++mKeffpoJEyZQWlrKEUccwUknncSRRx7p6DWOPfZYLr30UgzDIC8vjz333DPluDdq7rxx0qRJzT53TU0N4XCYYDDY7Hnj1jdBfPPNN9i23WQWSFl2TkREpDNRY1xEJAN899131NTUtNgMzcrK4t///jdvvfUWr7zyCq+99hpPPfUUhx56KHPnznU0AndH1wV3ornGdjweb7Kms846i7Vr1/LRRx+lnCi3heaOgb3VmmqWZTFixAjuuOOOJrNbrxP+Q+ys12kPW49k2FZbfA21x9fhDzVkyBBHNw1sW3vj7A2PP/54ylp2jdzutvtTbtOmTZxwwgnstttuPPLII232vI1a+/5p/Fh/8YtfNHtBZ6+99mrzukREREREOrpRo0YxdOhQ/va3v/Gb3/yGv/3tb9i2zemnn57M/OEPf+C6667j7LPP5uabb6Zr166YpsmUKVO+96xwzfmh51wulyvl/KisrIyhQ4dywQUX8I9//APYsXOhk046if/+979cccUVjBw5ktzcXCzL4sgjj2yzj/3kk0/mmmuu4ZlnnmHKlCk8/fTTFBQUpDS9i4uLmT9/PnPmzOHVV1/l1VdfZebMmZx55pk89thjrb5G7969f9B542233cbIkSObfJ/c3FzC4XCrz731cxqGwauvvtrkuVxubq7j5xIREelI1BgXEckAjz/+OMB2U2NtyzRNDjvsMA477DDuuOMO/vCHP/Db3/6Wt956i/Hjx7c4+vr7aLyruZFt2yxdujSl+dWlSxeqq6u3e9+VK1duN4r6j3/8Iy+++CLPP/88Q4cObfX1+/XrB8CSJUtSnisSibB8+XJHJ6TbGjRoEF988QWHHXbYDh+vxnq++eablLvio9Eoy5cvZ++9997h1+nXrx+WZbF8+fKUO72XLl26Q7WlS1FREdnZ2SxZsmS7fYsXL8Y0zTa7CWDr47+tpl5/Z2icery4uLjFr8cfWrtlWZx++ulUV1fz+uuvk52d3er79OvXj9dff526urqUUeOLFy9OqcmpoqIi8vLyiMfj3+t7T0RERERkV3b66adz3XXX8eWXXzJ79myGDBnCvvvum9z/7LPPcsghh/Doo4+mvF91dTXdu3dv9nm3Pi/e1uLFi+nevXuTo5bbUs+ePbnsssuYNm0aH3zwAfvvv7/jc6FNmzbxxhtvMG3aNK6//vrk9qbOjX6IAQMGsN9++/HUU09x6aWX8vzzz3PcccdtNxOY1+vl6KOP5uijj8ayLC6++GIeeughrrvuunaZuQ22nDfm5+e3eKyKiorIyspydN44aNAgbNtmwIAB7Lbbbi2+fnPXJNr6GpKIiEhb0BrjIiK7uDfffJObb76ZAQMGpNxNvq2qqqrttjXeadx4V3HjyXBTjerv469//WvKuufPPvss69atY8KECcltgwYN4oMPPiASiSS3vfzyy6xevTrluV5//XWuvfZafvvb33Lcccc5ev3x48fj9Xq5++67U0Z9P/roo9TU1DBx4sQd/phOOukk1qxZw5///Oft9gWDQQKBQLPvu88++1BUVMSDDz6Y8vHOmjVru2Pu9HUab4a4//77UzL33HOP448pnVwuF0cccQQvvfRSyhT75eXlzJ49mwMPPLDNZgbo2bMnI0eO5LHHHkuZbm/evHksWrSoTV5jR5WVlZGfn88f/vAHotHodvsrKyuBH177tGnTmDNnDn/7298cT4t41FFHEY/Huffee1O233nnnRiGkfJ97ITL5eKEE07gueeeY+HChdvtb/xYRUREREQyUeP5/PXXX8/8+fO3O793uVwp57UAzzzzDGvWrGnxebc+l9j6vHPhwoXMnTuXo446qm0+gFb88pe/JDs7mz/+8Y+A83OhxtHM237sM2bMaPMaTz75ZD744AP+8pe/sGHDhpRp1AE2btyY8tg0zeSN/zsyWntHjRo1ikGDBnH77bdTX1+/3f6tj1VZWRkvvvgiq1atSu7/+uuvmTNnTsr7HH/88bhcLqZNm7bdsbVtO+VjzcnJaXLK+ra+hiQiItIWNGJcRGQX8uqrr7J48WJisRjl5eW8+eabzJs3j379+vGPf/wDv9/f7PvedNNN/Pvf/2bixIn069ePiooK7r//fnr37s2BBx4IJJrUhYWFPPjgg+Tl5ZGTk8Po0aO/9/piXbt25cADD2Ty5MmUl5czY8YMBg8ezHnnnZfMnHvuuTz77LMceeSRnHTSSSxbtownnngieUd0o1NPPZWioiKGDBnCE088kbLv8MMPp6SkZLvXLyoq4pprrmHatGkceeSRHHPMMSxZsoT777+ffffdl1/84hc7/DGdccYZPP3001x44YW89dZbjB07lng8zuLFi3n66aeZM2cO++yzT5Pv6/F4+N3vfscFF1zAoYceysknn8zy5cuZOXPmdqPjnb7OqFGjOOGEE5gxYwYbN25k//3355133uF///sf0LZ3cK9Zs2a7Yw+JKdac3qzQlN/97nfMmzePAw88kIsvvhi3281DDz1EOBxm+vTpP6Di7d1yyy1MnDiRAw88kLPPPpuqqiruuece9txzzyYvMLS3/Px8HnjgAc444wx+/OMfc8opp1BUVMSqVat45ZVXGDt2bLIx/X1rX7BgATfffDMHHXQQFRUV230Om/s+OProoznkkEP47W9/y4oVK9h7772ZO3cuL730ElOmTNnue9SJP/7xj7z11luMHj2a8847j2HDhlFVVcVnn33G66+/3uQNPCIiIiIimWDAgAEccMABvPTSSwDbNcZ/+tOfctNNNzF58mQOOOAAFixYwJNPPrnduWRTbrvtNiZMmMCYMWM455xzCAaD3HPPPRQUFHDjjTe2x4eznW7dujF58mTuv/9+vv76a/bYYw9H50L5+fkcdNBBTJ8+nWg0SmlpKXPnzmX58uVtXuNJJ53E5ZdfzuWXX07Xrl23G5197rnnUlVVxaGHHkrv3r1ZuXIl99xzDyNHjmSPPfZo83oamabJI488woQJE9hzzz2ZPHkypaWlrFmzhrfeeov8/Pzkmu7Tpk3jtdde4yc/+QkXX3wxsVgsed745ZdfJp9z0KBB/O53v+Oaa65hxYoVHHfcceTl5bF8+XJeeOEFzj//fC6//HIg0Zh/6qmnmDp1Kvvuuy+5ubkcffTRbX4NSUREpE3YIiLS6c2cOdMGkm9er9fu0aOHffjhh9t33XWXXVtbu9373HDDDfbWvwbeeOMN+9hjj7V79eple71eu1evXvapp55q/+9//0t5v5deeskeNmyY7Xa7bcCeOXOmbdu2ffDBB9t77rlnk/UdfPDB9sEHH5x8/NZbb9mA/be//c2+5ppr7OLiYjsrK8ueOHGivXLlyu3e/09/+pNdWlpq+3w+e+zYsfYnn3yy3XNu/fFv+/bWW2+lHKfly5enPP+9995rDx061PZ4PHZJSYl90UUX2Zs2bdruY2jq45s0aZLdr1+/lG2RSMS+9dZb7T333NP2+Xx2ly5d7FGjRtnTpk2za2pqmjxGW7v//vvtAQMG2D6fz95nn33sf//739t9vDvyOoFAwL7kkkvsrl272rm5ufZxxx1nL1myxAbsP/7xj8lcU8enqddtSr9+/Zo9/lsfn0mTJtk5OTlNPgdgX3LJJU3u++yzz+yysjI7NzfXzs7Otg855BD7v//9b0qmsf6PP/54u/dv7nPflOeee87eY489bJ/PZw8bNsx+/vnnm/w8A/YNN9zQ4nMtX77cBuzbbrutxVxLtdt24numrKzMLigosP1+vz1o0CD7rLPOsj/55JMfXHvj92Nzb42aep66ujr7sssus3v16mV7PB57yJAh9m233WZblrXd6zX1ue3Xr589adKklG3l5eX2JZdcYvfp08f2eDx2jx497MMOO8x++OGHWziCIiIiIiK7vvvuu88G7P3222+7faFQyP71r39t9+zZ087KyrLHjh1rv//++9ud0zWeozSeyzd6/fXX7bFjx9pZWVl2fn6+ffTRR9uLFi1KyTReR6isrNzu9be9xtCcls4Jly1bZrtcrpRzBCfnQt999539s5/9zC4sLLQLCgrsn//85/batWu3O2f7Iee8jcaOHWsD9rnnnrvdvmeffdY+4ogj7OLiYtvr9dp9+/a1L7jgAnvdunWtPm9L58ONGs/dnnnmmSb3f/755/bxxx9vd+vWzfb5fHa/fv3sk046yX7jjTdScu+88449atQo2+v12gMHDrQffPDBZj9/zz33nH3ggQfaOTk5dk5Ojj106FD7kksusZcsWZLM1NfX26eddppdWFi43TWA5q4hNXV+KSIisjMYtr3NXCgiIiKyy5s/fz4/+tGPeOKJJ1qcYl9EREREREREREREZFegNcZFRER2ccFgcLttM2bMwDRNDjrooDRUJCIiIiIiIiIiIiKyc2mNcRERkV3c9OnT+fTTTznkkENwu928+uqrvPrqq5x//vn06dMn3eWJiIiIiIiIiIiIiLQ7TaUuIiKyi5s3bx7Tpk1j0aJF1NfX07dvX8444wx++9vf4nbrHjkRERERERERERER2fWpMS4iIiIiIiIiIiIiIiIiIrs0rTEuIiIiIiIiIiIiIiIiIiK7NDXGRURERERERERERERERERkl6aFRduIZVmsXbuWvLw8DMNIdzkiIiIiIiLSRmzbpq6ujl69emGamXN/uc5zRUREREREdk2Zep6rxngbWbt2LX369El3GSIiIiIiItJOVq9eTe/evdNdxk6j81wREREREZFdW6ad56ox3kby8vKAxBdQfn5+mqsRERERERGRtlJbW0ufPn2S532ZQue5IiIiIiIiu6ZMPc9VY7yNNE4rl5+frwsGIiIiIiIiu6BMm05c57kiIiIiIiK7tkw7z82cSeNFRERERERERERERERERCQjqTEuIiIiIiIiIiIiIiIiIiK7NDXGRURERERERERERERERERkl6bGuIiIiIiIiIiIiIiIiIiI7NLUGBcRERERERERERERERERkV2aGuMiIiIiIiIiIiIiIiIiIrJLU2NcRERERERERERERERERER2aWqMi4iIiIiIiIiIiIiIiIjILk2NcRERERERERERERERERER2aWpMS4iIiIiIiIiIiIiIiIiIrs0NcZFRERERERERERERERERGSXpsa4iIiIiIiIiIiIiIiIiIjs0tQYFxEREREREelk/v3vf3P00UfTq1cvDMPgxRdfTNlv2zbXX389PXv2JCsri/Hjx/PNN9+kp1gRERERERGRDkCNcREREREREZFOJhAIsPfee3Pfffc1uX/69OncfffdPPjgg3z44Yfk5ORQVlZGKBTayZWKiIiIiIiIdAzudBcgIiIiIiIiIjtmwoQJTJgwocl9tm0zY8YMrr32Wo499lgA/vrXv1JSUsKLL77IKaecsjNLFRERERERySw1NVBQkO4qpAkaMS4iIiIiIiKyC1m+fDnr169n/PjxyW0FBQWMHj2a999/v9n3C4fD1NbWpryJiIiIiIiIA7YN//kPHH00DBsG4XC6K5ImqDEuIiIiIiIisgtZv349ACUlJSnbS0pKkvuacsstt1BQUJB869OnT7vWKSIiIiIi0ulZFrzwAhxwABx0ELz8MqxdC088ke7KpAmaSl1ERDLSObM+/kHv/+hZ+7ZRJSIiIiIdwzXXXMPUqVOTj2tra9UcFxERERERaUoolGh+33Yb/O9/qfv69AG/Pz11SYvUGBcRERERERHZhfTo0QOA8vJyevbsmdxeXl7OyJEjm30/n8+Hz+dr7/JEREREREQ6r4YGuPtuuOsu2HZGrhEj4Mor4eSTweNJT33SIk2lLiIiIiIiIrILGTBgAD169OCNN95IbqutreXDDz9kzJgxaaxMRERERESkkzPN7Zvi48bBv/4FX3wBv/iFmuIdmBrjIiIiIiIiIp1MfX098+fPZ/78+QAsX76c+fPns2rVKgzDYMqUKfzud7/jH//4BwsWLODMM8+kV69eHHfccWmtW0REREREpFNZty71sd8P//d/YBhwwgnw4Yfw1lswYUJim3RomkpdREREREREpJP55JNPOOSQQ5KPG9cGnzRpErNmzeLKK68kEAhw/vnnU11dzYEHHshrr72GX+vciYiIiIiItMy24b334NZbYc4c+OYb6Ndvy/6LLko0xYcMSV+N8r2oMS4iIiIiIiLSyYwbNw7btpvdbxgGN910EzfddNNOrEpERERERKQTsyz4xz9g+nR4//0t2++8E2bM2PK4oCDxJp2OGuMiIiIiIiIiIiIiIiIikpnCYXjiCbjtNliyJHVf796w++7pqUvanBrjIiIiIiIiIiIiIiIiIpJZamrgoYcSo8G3XUt8+HC48ko45RTweNJSnrQ9NcZFREREREREREREREREJLO88AJcdVXqtoMPTjTEJ0wAw0hPXdJuzHQXICIiIiIiIiIiIiIiIiLSruLx1MennQalpYkG+PHHwwcfwNtvw1FHqSm+i9KIcRERERERERERERERERHZNf33vzB9OmRlwd/+tmW71wszZ0K/frDbbumrT3YaNcZFREREREREREREREREZNdhWfDyy4mG+HvvJbaZJvz+9zBw4Jbc4Yenpz5JC02lLiIiIiIiIiIiIiIiIiKdXzicGAU+fDgce+yWpjhAr16wfHn6apO004hxEREREREREREREREREem8amrg4YdhxgxYuzZ13557wpVXwimnJKZPl4ylxriIiIiIiIiIiIiIiIiIdF4//Sm8+27qtoMOSjTEJ0xITKMuGU9fBSIiIiIiIiIiIiIiIiLSeV1wQeJfw4Djj4f334d33oGJE9UUlyR9JYiIiIiIiIiIiIiIiIhIx/ff/8Jxx8FHH6VuP/lkuPxy+PpreO452H//tJQnHVtaG+MPPPAAe+21F/n5+eTn5zNmzBheffXV5P5x48ZhGEbK24UXXpjyHKtWrWLixIlkZ2dTXFzMFVdcQSwWS8m8/fbb/PjHP8bn8zF48GBmzZq1XS333Xcf/fv3x+/3M3r0aD7a9htKRERERERERERERERERHYuy4J//hMOPBDGjoWXXoLp01MzHg/cdhvsvnt6apROIa2N8d69e/PHP/6RTz/9lE8++YRDDz2UY489lq+++iqZOe+881i3bl3ybfpWX+jxeJyJEycSiUT473//y2OPPcasWbO4/vrrk5nly5czceJEDjnkEObPn8+UKVM499xzmTNnTjLz1FNPMXXqVG644QY+++wz9t57b8rKyqioqNg5B0JEREREREREREREREREtgiHYeZMGD4cjjkG3ntvy76PPoJAIH21Sadk2LZtp7uIrXXt2pXbbruNc845h3HjxjFy5EhmzJjRZPbVV1/lpz/9KWvXrqWkpASABx98kKuuuorKykq8Xi9XXXUVr7zyCgsXLky+3ymnnEJ1dTWvvfYaAKNHj2bffffl3nvvBcCyLPr06cMvf/lLrr76akd119bWUlBQQE1NDfn5+T/gCIiIyM5wzqyPf9D7P3rWvm1UiYiIiHR0mXq+l6kft4iIiIiIpFltLTz0EMyYAWvXpu4bNgyuvBJOPRW83rSUtyvI1PO9DrPGeDwe5+9//zuBQIAxY8Yktz/55JN0796d4cOHc80119DQ0JDc9/777zNixIhkUxygrKyM2tra5Kjz999/n/Hjx6e8VllZGe+//z4AkUiETz/9NCVjmibjx49PZpoSDoepra1NeRMRERERERERERERERGR7+nbb6FPn0Tze+um+E9+kphOfcECmDSpwzbFLctmdVUDi9fXsrqqAcvqUOOTM5473QUsWLCAMWPGEAqFyM3N5YUXXmDYsGEAnHbaafTr149evXrx5ZdfctVVV7FkyRKef/55ANavX5/SFAeSj9evX99ipra2lmAwyKZNm4jH401mFi9e3Gzdt9xyC9OmTfthH7yIiIiIiIiIiIiIiIiIJAwYAIMGweefg2HAsccmmuRbDartqJZW1DFnYTnLKusJxeL43S4GFeVSNryEwcV56S5P6ACN8d1335358+dTU1PDs88+y6RJk3jnnXcYNmwY559/fjI3YsQIevbsyWGHHcayZcsYNGhQGquGa665hqlTpyYf19bW0qdPnzRWJCIiIiIiIiIiIiIiItJJvP8+vPwy/P73W7YZBvzmNzBnDvz61zB0aPrq2wFLK+qY+d4KqgIRehb4yfZm0RCJsXBtDWtrgkwe21/N8Q4g7Y1xr9fL4MGDARg1ahQff/wxd911Fw899NB22dGjRwOwdOlSBg0aRI8ePfjoo49SMuXl5QD06NEj+W/jtq0z+fn5ZGVl4XK5cLlcTWYan6MpPp8Pn8+3gx+tiIiIiIiIiIiIiIiISIayLPjXv+DWW+HddxPbJk6EAw7YkjnxxMRbJ2FZNnMWllMViDCoezbra8Osrw2R7XExqHs2yzY0MPercgZ2z8U0jXSXm9E6zBrjjSzLIhwON7lv/vz5APTs2ROAMWPGsGDBAioqKpKZefPmkZ+fn5yOfcyYMbzxxhspzzNv3rzkOuZer5dRo0alZCzL4o033khZ61xEREREREREREREREREvodIBGbNghEj4OijtzTFAR5+OG1ltYU11UGWVdYTjcd56Yt1zF1UzjtLKpm7qJyXvlhHNB5naUU9a6qD6S4146V1xPg111zDhAkT6Nu3L3V1dcyePZu3336bOXPmsGzZMmbPns1RRx1Ft27d+PLLL7nssss46KCD2GuvvQA44ogjGDZsGGeccQbTp09n/fr1XHvttVxy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bi4nnHAC5eXlKc+xatUqJk6cSHZ2NsXFxVxxxRXEYql/NL/99tv8+Mc/xufzMXjwYGbNmrVdLffddx/9+/fH7/czevRoPvroo3b5mEVERERERETa26233soDDzzAvffey9dff82tt97K9OnTueeee9Jd2veW43Xjd7toaKZRFozE8bld5Hg1OZ60r/U1ISwLTAMiMYtwLE44mvg3ErMwDbCsRE6a5nUZLN8QIB638LvNxA0FpoHHZeJ3m8TiFis2BPC61ExrzupNDW2ay0SW7WwUs9NcJqoKOby5wGEuEzm9ZbHz3trYcQTdPnjpJQgGExtcLvjFL+CLL+DVV2HcuMTUJSLfQ3GOs9lFnOak/aS1Md67d2/++Mc/8umnn/LJJ59w6KGHcuyxx/LVV18BcNlll/HPf/6TZ555hnfeeYe1a9dy/PHHJ98/Ho8zceJEIpEI//3vf3nssceYNWsW119/fTKzfPlyJk6cyCGHHML8+fOZMmUK5557LnPmzElmnnrqKaZOncoNN9zAZ599xt57701ZWRkVFRU772CIiIiIiIiItJH//ve/HHvssUycOJH+/ftz4okncsQRR3Tqm8BLC7MYVJTLupoQlmVRG4yyoT5MbTCKZVmsqwkxuDiXUo2OdMyybFZXNbB4fS2rqxq0nrNDJfl+DAMiFkTjNmyeAhw78ThiJR6X5PvTXWqHtXBtbfImAsOAmGUTjVvELBvDAJcB4ZjFwrW16S61w1paHmjTXCaKxByu0+4wl4lqG5ytHe40l4mcDgTXgPEdZNsMrViesinmcsNll0F2Nvzf/8GyZfD447DXXmkqUnYlfp+zm3Od5qT9pPUzcPTRR6c8/v3vf88DDzzABx98QO/evXn00UeZPXs2hx56KAAzZ85kjz324IMPPmD//fdn7ty5LFq0iNdff52SkhJGjhzJzTffzFVXXcWNN96I1+vlwQcfZMCAAfzpT38CYI899uDdd9/lzjvvpKysDIA77riD8847j8mTJwPw4IMP8sorr/CXv/yFq6++eiceEREREREREZEf7oADDuDhhx/mf//7H7vtthtffPEF7777LnfccUe6S/veTNOgbHgJX6+vZc6icuJbNXFdpsFuJXkcsWcJpqmRPk4srahjzsJyllXWE4rF8btdDCrKpWx4CYOL89JdXoe2b/8ueNwGoaiNAcRtUoby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5n5VzsDuuZimblpLp7Q2xkVEREREREREZOfJ8brpnuuje66XddUhyuvCxCwLt2lSku+jZ4EfMMjx6pJRc7rkOLso7DSXiYoLsto0l4k2BCJtmhPpdGpr4eGH4c47Ye1auOACePDBLftzc+GLLxLriYtIi3rlO7uJymkuE62pDvL56k1U1IWIWza5fg8ev5to3KayLozLNPhs1SbWVAfp01XHMZ20QoqIiIiIiIiISIYoLcxiUFEuwajFqH5d+HG/QkaUFvDjfoWM6tuFYNRicHEupYVqSDanf/fcNs1lIr/H1aa5TNTgcH5vpzmRTmPdOrj6aujTB664ItEUB5g1CzZuTM2qKS7iyLINdW2ay0R14SirqhqIxW26ZHvAtglF42AnHsfiNqurGqgLR9NdasbT7b8iIiIiIiIiIhnCNA3Khpfw9fpa5i4qT0yljg0YuAyD3XrkccSeJZrisQVBh9PMO81lokjM2TTzTnOZyOvwngGnOZEOb8kSuP12+OtfE9OnNzIMOO64RJO8W7e0lSfSmS1a56zh7TSXiepDMYKROF63wbqaMMFoHMu2MQ2DLI8Ln8egIWJRr6V20k6NcRERERERERGRTGSweX1xY8tjadXyDQ1tmstEgYjdprlMZDr8hnWaE+mwNmxIrBH+0ktgb/UzweuFM8+Eyy+H3XdPX30iuwCnv231W7l5uT43LsOgojaM22XidZu4DJO4bROIxKgJWnTL9ZHrU1s23fQZEBERERERERHJEJZlM2dhOXHL5og9illfG6YhGifb46JHvo9lGxqY+1U5A7vnatR4MwqznF1Oc5rLRE6vCevacfPqQ85mJHCaE+mwCgsTa4U3NsULCuCii+BXv4KePdNamsiuoijb26a5TJTrc+NyGYmbB+xtbiGwbWzAZRpqjHcA+gyIiIiIiIiItJO7776b888/H7/fz913391i9le/+tVOqkoy2ZrqIMsq68nymHy2qoaqhggxy8Jtmqyt9tKjwMfSinrWVAfp0zW7xeeyLJs11UECkRg5XjelhVkZ0Uzfu08XYJXDnDRlzaZQm+YyUdThsD2nOZEOIRKBf/8bxo/fss3thl//Gv7wB7jsMjj/fMjPT1+NIruggixn6244zWUiG/C5XeT7PRhAKGYRtS0MwyDb58a2E/v1azn91BgXERERERERaSd33nknp59+On6/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exuR7jWuHPms4saVI2fwkO2KkxKKx+H3v4evfQ0CgS3HL720MEr9kkvgtNMgqC0uRPoST2WLGleOVnck6UhkOXB8Des607QnMsTTOSzTpKEqxJjKAB2JLKs7koyrrSh1uiIfyQ4Vxi+44ALuvPNOjj32WKZNm9bzw6iIiIiIiIiI9O9f//oX//Vf/8V7773Hn//8Z5qamvjv//5vJkyYwKc+9alSpzekre5Ismx9jMaq4Db3IQzDoLEqyNLWmG7YDcLd9NLlHchmnF7dPxlcTCiMztStnn61xbwtGvAaV46SHqfZeo0TGZZaW+EXv4BbboH29kJR/Gtf23J+v/3g7bfBNEuXo8gwkMl662X2GleO4pkcqVyeiXURxtZU0J3Kkck7+C2TaNAm77qs2BAnntEcksEsbe3mkTfW8cbqTuLZHGGfzfSmKo6aPkaTrYaIHSqM//GPf+RPf/oTxxxzTLHzERERERERERmR7r33Xr761a9y6qmn8vLLL5NOF4pmnZ2dXHXVVTz88MMlznBo23zDrsLf996GIb9FS1dKN+wGMToawDIN0s62N4ddIA8ETIPR0cA256XguWVtnuO+cdjknZzN8GR6HMjqNa4ceRtGr23ah6Rly+C66+COOyCV2nL8Zz+DuXN773GhorjIoByPk4K8xpWjsN8maFskMjkigW3LhslMnoBtEfbvUEmxbCxt7ebGfyzh3ZZu8ltday9vi/N2SzcXHjlZxfEhYIfeWf1+P83NzcXORURERERERGTE+vGPf8ytt97Kr3/9a3w+X8/xWbNm8fLLL5cws+Fh6xt2fdENO292r63A6aMovjXHcdldXff9aotnihpXjmzb2y1Jr3HlyOuSAS0tGEIWLoQvfhH23BN+9astRXHbLoxKv+ee3kVxKQte/4/rK6N/Qcvbvhte48pRU3WISaMjLGmN8eLydp57r43nl7fx3HttvLi8nSWtMZrrIzRV971AVQrXz3f/eyWvreog77hEgz5qw36iQR95x+W1VR384fmVg16Hy863Q1eX3/72t7nppptwXf0PFBEREREREfHinXfe4dBDD93meFVVFR0dHbs+oWFm8w27tZ0pHMehK5llQyxNVzKL4zis7Uzphp0H6zpT5Ae5nZN3C3HSt9Fh3+BB2xFXjlyPN4W9xokMaW++CUccATNmwJ/+BM6mnd/DYbjo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TZuUlpamSpUqeew/MzNTu3bturATAwAAAABcNurVq6c2bdro3XffVfv27bVz506tXLlSzz77rCTX+t/PP/+8Fi1apPj4eOXk5Cg7O1v+/v6F7m/Lli2yWq1q1aqVu6xSpUq68sortWXLFneZr6/vea9fvnLlSvn7+2vNmjV6/vnnNXPmTHfdpk2b9L///U/z5s1zlxmGIafTqT179qh+/fpav369nnnmGW3atEknT56U0+mU5FqqrEGDBucVEwAAODckxgEAKEcCAgJUp06dM9YXp6y4xzpdWlqaqlatqh9++KFAW9ZNAwAAAIDy5d5779W//vUvTZs2TbNnz1bt2rXVrl07SdJLL72k1157TVOnTlVsbKwCAgI0bNgw5eTkXNAx7Xa7TCbTeW0bExOj0NBQXXnllUpMTFSvXr30008/SXL1dwcPHqxHHnmkwHY1atRQenq64uLiFBcXp3nz5iksLEz79+9XXFzcBZ8TAAAoPtYYBwAA56R+/fo6cOCADhw44C7766+/lJSUdMa73Js2baojR47IarWqTp06Ho/KlStfitABAAAAAKVEz549ZTabNX/+fL333nsaNGiQO2m9evVqde3aVf369dPVV1+tWrVqafv27UXuq379+srLy9Ovv/7qLjt+/Li2bdt2UUZjP/zww9q8ebM++eQTSa7+7l9//VWgr1unTh35+vpq69atOn78uF544QVdd911qlevnhITE0s8LgAAcGYkxgEAKEeys7N15MgRj8exY8fOaR8dO3ZUbGys+vbtq99//11r167VPffco3bt2hU6Ffvp27Vu3VrdunXTN998o7179+rnn3/Wv//9b61bt+5CTw0AAAAAcBkJDAxUr169NHr0aB0+fFgDBgxw19WtW1fLly/Xzz//rC1btmjw4MFKSEgocl9169ZV165ddf/992vVqlXatGmT+vXrp8jISHXt2rXEY/f399f999+vcePGyTAMPfnkk/r55581dOhQbdy4UTt27NBnn32moUOHSnKNGvf19dUbb7yh3bt36/PPP9eECRNKPC4AAHBmJMYBAChHvv76a1WtWtXjce21157TPkwmkz777DNVqFBB119/vTp27KhatWrpww8/POt2X331la6//noNHDhQV1xxhe666y7t27dPERERF3JaAAAAAIDL0L333quTJ08qLi5O1apVc5c//fTTatq0qeLi4tS+fXtVqVJF3bp1O+O+Zs+erWbNmumWW25R69atZRiGvvrqK/n4+FyU2IcOHaotW7Zo8eLFuuqqq/Tjjz9q+/btuu6669SkSRONHTvWfU5hYWGaM2eOFi9erAYNGuiFF17Qyy+/fFHiAgAARTMZhmF4OwgAAAAAAAAAAAAAAC4WRowDAAAAAAAAAAAAAMo0EuMAAAAAAAAAAAAAgDKNxDgAAAAAAAAAAAAAoEwjMQ4AAAAAAAAAAAAAKNNIjAMAAAAAAAAAAAAAyjQS4wAAAAAAAAAAAACAMo3EOAAAAAAAAAAAAACgTCMxDgAAAAAAAAAAAAAo00iMAwAAAAAAAAAAAADKNBLjAAAAAAAAAAAAAIAyjcQ4AAAAAAAAAAAAAKBMIzEOAAAAAAAAAAAAACjTSIwDAAAAAAAAAAAAAMo0EuMAAAAAAAAAAAAAgDKNxDgAAAAAAAAAAAAAoEwjMQ4AAAAAAAAAAAAAKNNIjAMAAAAAAAAAAAAAyjQS4wAAlELR0dEaMGCAt8MocRfjvH744QeZTCb98MMPJbrfkrR3716ZTCbNmTPHXfbMM8/IZDJ5LygAAAAApdaAAQMUHR19TttcDn0jAAAAbyIxDgAod+bMmSOTyVTkY82aNd4O0eumTJkik8mkb7/9tsg2b7/9tkwmkz7//PNLGNn5++fnbrVaFRkZqQEDBig+Pt7b4QEAAADwon/2F/z8/HTFFVdo6NChSkhI8HZ4+Fv+53PfffcVWv/vf//b3ebYsWOFtunZs6dMJpOefPLJQuvzbzAo6rFw4cISO5+LpX379h4x2+12XXXVVZo6daqcTqe3wysxJpNJQ4cOLbTuo48+ct8okpubq8qVK+vaa68tcl+GYSgqKkpNmza9WOECAEoBq7cDAADAW5599lnFxMQUKK9Tp44XovG0bds2mc3eu3/trrvu0siRIzV//nx17Nix0Dbz589XpUqV1Llz50scnafrr79emZmZ8vX1LVb7/M89KytLa9as0Zw5c7Rq1Spt3rxZfn5+FznaU55++mmNGjXqkh0PAAAAwNmd3l9YtWqVZsyYoa+++kqbN2+Wv7//JYvj7bffPucE5rn2jS5Xfn5+WrJkiaZPn17gXBcsWCA/Pz9lZWUVum1KSor++9//Kjo6WgsWLNALL7xQ5ExejzzyiFq0aFGgvHXr1hd+EpdA9erVNWnSJEnSsWPHNH/+fD322GM6evSoJk6c6OXoLi0fHx/16NFDb731lvbt26eaNWsWaPPTTz/p4MGDeuyxx7wQIQDgUiExDgAotzp37qzmzZuf0zZ5eXlyOp2F/tCQnp6ugICA847HMAxlZWXJbrfLZrOd935KQrVq1dShQwd9/PHHmjFjRoF44uPj9dNPP+mBBx6Qj4+PV2LMysqSr6+vzGbzOSW0T//c77vvPlWuXFmTJ0/W559/rp49e16scAuwWq2yWrkUAwAAAEqTf/YXKlWqpClTpuizzz5T7969C93mQvuChTmffta59o0uVzfddJM+//xzLV26VF27dnWX//zzz9qzZ4+6d++uJUuWFLrtkiVL5HA49O677+qGG27QTz/9pHbt2hXa9rrrrtOdd955Uc7hQjmdTuXk5Jzx8w4JCVG/fv3cr4cMGaJ69erpjTfe0LPPPiuLxXIpQi01+vbtq5kzZ2rBggWF3qQ+f/58mc1m3XXXXV6IDgBwqTCVOgAARchfF/rll1/W1KlTVbt2bdlsNv3111/u9aH/+usv9enTRxUqVHBPyZWXl6cJEya420dHR+upp55Sdna2x/6jo6N1yy23aNmyZWrevLnsdrveeustd92Z1uLOzc1VxYoVNXDgwAJ1KSkp8vPz04gRI9xlb7zxhho2bCh/f39VqFBBzZs31/z58894/v369VNycrK+/PLLAnULFy6U0+lU3759JUkvv/yy2rRpo0qVKslut6tZs2b66KOPzrj/fLt371aPHj1UsWJF+fv765prrilwzPyp7BYuXKinn35akZGR8vf3V0pKygWvo3fddddJknbt2uVRvnXrVt15552qWLGi/Pz81Lx58wLTxp84cUIjRoxQbGysAgMDFRwcrM6dO2vTpk1nPS5rjAMAAACl3w033CBJ2rNnjyTX2t+BgYHatWuXbr75ZgUFBbn7RU6nU1OnTlXDhg3l5+eniIgIDR48WCdPniyw36VLl6pdu3YKCgpScHCwWrRo4dFHK2yN8YULF6pZs2bubWJjY/Xaa6+564vqGy1evFjNmjWT3W5X5cqV1a9fvwLLSeWfV3x8vLp166bAwECFhYVpxIgRcjgcHm3P5TwLU5y+1plERkbq+uuvL9CnnTdvnmJjY9WoUaMit503b57+7//+Tx06dFD9+vU1b968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Mvl0bdq0cd/Jfq6uvvpq9e/fX7NmzVJSUpLatWuntWvXau7cuerWrZs6dOhwoWEX0KtXL73xxhsaN26cYmNjPUaqS64fXqpUqaK2bdsqIiJCW7Zs0ZtvvqkuXbooKCjorPs3mUzq06ePnn/+eUnSs88+61HfpUsXTZkyRTfddJP69OmjxMRETZs2TXXq1NH//ve/M+571KhRWrBggTp37qxHHnlEFStW1Ny5c7Vnzx4tWbKkwPSEF8vIkSPVo0cPzZkzR0OGDNG0adN07bXXKjY2Vvfff79q1aqlhIQE/fLLLzp48KA2bdokSbrlllv07LPPauDAgWrTpo3++OMPzZs377y/PwAAAAAuT+3atdPgwYM1adIkbdy4UZ06dZKPj4927NihxYsX67XXXtOdd96p4OBgvfrqq7rvvvvUokUL9enTRxUqVNCmTZuUkZFR5LTo9913n06cOKEbbrhB1atX1759+/TGG2+ocePGBfqA+Xx8fDR58mQNHDhQ7dq1U+/evZWQkKDXXntN0dHRhU4pXlLnWZTi9rWK6+qrr/ZYSqww8+bNk8ViKfJGgNtuu03//ve/tXDhQg0fPtxdvnLlygI3L0iukddnm+K7WrVqmjx5svbu3asrrrhCH374oTZu3KhZs2bJx8dHknT33Xdr0aJFGjJkiL7//nu1bdtWDodDW7du1aJFi7Rs2bKzTut/rho0aKCbb75Z//nPfzRmzBhVqlRJ119/vV588UXl5uYqMjJS33zzjfbs2XPex2jWrJm6d++uqVOn6vjx47rmmmv0448/ukfMnz46/oUXXtD333+vVq1a6f7771eDBg104sQJ/f777/r222914sSJMx5r1KhRWrx4sa6//noNHjxY9erV06FDhzRnzhwdPny4yJnsunfvroceekifffaZoqKidP3115/3+QIALjMGAADlzOzZsw1JRT5mz55tGIZh7Nmzx5BkvPTSSwX2MW7cOEOScfTo0QJ1ubm5xvjx442YmBjDx8fHiIqKMkaPHm1kZWV5tKtZs6bRpUuXQmOsWbOm0b9//2Kdj9PpNKKiogxJxnPPPVeg/q233jKuv/56o1KlSobNZjNq165tjBw50khOTi7W/g3DMP78809DkmGz2YyTJ08WqH/nnXeMunXrGjabzahXr54xe/Zs93t0tvPatWuXceeddxqhoaGGn5+f0bJlS+OLL77waPP9998bkozFixcXOHZ+3ffff3/Gc8j/3H/77bcCdQ6Hw6hdu7ZRu3ZtIy8vzx3XPffcY1SpUsXw8fExIiMjjVtuucX46KOP3NtlZWUZjz/+uFG1alXDbrcbbdu2NX755RejXbt2Rrt27dzt8r9L+d8twzAKfX8AAED5kZeXZzz99NNGdHS04efnZ9SqVct49tlnDafT6W5z5MgRo3///u5rjbi4OGP79u1n3G9h17o2m82jzUsvvWSEhYUZYWFhxssvv+xRt2bNGqNp06ZGbm5uyZ0scBk4U3/hdP379zcCAgKKrJ81a5bRrFkzw263G0FBQUZsbKzxxBNPGIcOHfJo9/nnnxtt2rQx7Ha7ERwcbLRs2dJYsGCBx3Fq1qzpfv3RRx8ZnTp1MsLDww1fX1+jRo0axuDBg43Dhw+72xTVN/rwww+NJk2aGDabzahYsaLRt29f4+DBg8U6r6L6LcU9z8IUp69VFEnGww8/fMY2p/fXc3JyjEqVKhnXXXfdGbeJiYkxmjRpYhjGqfexqMe4cePOuK927doZDRs2NNatW2e0bt3a8PPzM2rWrGm8+eabBdrm5OQYkydPNho2bGjYbDajQoUKRrNmzYzx48d79NmLc96FxVCYH374weM8Dh48aNx+++1GaGioERISYvTo0cM4dOhQgXMt6neQ/L87e/bscZelp6cbDz/8sFGxYkUjMDDQ6Natm7Ft2zZDkvHCCy94bJ+QkGA8/PDDRlRUlOHj42NUqVLFuPHGG41Zs2YV61wPHjxo3HfffUZkZKRhtVqNihUrGrfccouxZs2aM27Xo0cPQ5LxxBNPFOs4AICywWQYZ5ijBwAAAAAAACXu+eef15QpUzR37lw1bNhQ69at08CBAzVx4kQ98sgjMgxDbdq0kY+Pj1555RUFBwdrypQp+vrrr/XXX395rFt7ujlz5ujRRx/1WHPVZDIpIiJCkvS///1P11xzjb744gsZhqFbbrlFa9euVWxsrPLy8tSiRQvNmjVLLVq0uCTvAwCUNe3bt9exY8cKnR68PNu4caOaNGmiDz74gKnLAQBew1TqAAAAAAAAl9jPP/+srl27uqf2jY6O1oIFC7R27VpJ0o4dO7RmzRpt3rxZDRs2lCTNmDFDVapU0YIFC3TfffcVuW+TyVTomqqStHXrVl111VW64YYbJLmmBN66datiY2P10ksv6frrrycpDgC4IJmZmbLb7R5lU6dOldlsZtpyAIBXkRgHAAAAAAC4xNq0aaNZs2Zp+/btuuKKK7Rp0yatWrVKU6ZMkSRlZ2dLkvz8/NzbmM1m2Ww2rVq16oyJ8bS0NNWsWVNOp1NNmzbV888/706ux8bGavv27dq/f78Mw9D27dvVqFEj7dq1S7Nnz9b69esv4lkDAMqDF198UevXr1eHDh1ktVq1dOlSLV26VA888ICioqK8HR4AoBwzezsAAAAAAACA8mbUqFG66667VK9ePfn4+KhJkyYaNmyYe3rZevXqqUaNGho9erROnjypnJwcTZ48WQcPHtThw4eL3O+VV16pd999V5999pk++OADOZ1OtWnTRgcPHpQk1a9fX88//7z+7//+T506ddKkSZNUv359DR48WC+++KKWLVumRo0aqUmTJvrpp58uyXsBAChb2rRpoxMnTmjChAl6/PHHtX37dj3zzDOaNm2at0MDAJRzrDEOAAAAAABwiS1cuFAjR47USy+9pIYNG2rjxo0aNmyYpkyZov79+0uS1q9fr3vvvVebNm2SxWJRx44dZTabZRiGli5dWqzj5Obmqn79+urdu7cmTJhQaJu5c+fq008/1cyZM3XllVfqt99+08GDB9W3b1/t2bNHNputxM4bAAAAALyFqdQBAAAAAAAusZEjR7pHjUuuKc737dunSZMmuRPjzZo108aNG5WcnKycnByFhYWpVatWat68ebGPkz8afefOnYXWHzt2TOPHj9dPP/2kX3/9VVdccYXq1q2runXrKjc3V9u3b1dsbOyFnzAAAAAAeBlTqQMAAAAAAFxiGRkZMps9f5axWCxyOp0F2oaEhCgsLEw7duzQunXr1LVr12Ifx+Fw6I8//lDVqlULrX/sscf02GOPqXr16nI4HMrNzXXX5eXlyeFwFPtYAAAAAFCaMWIcAAAAAADgErv11ls1ceJE1ahRQw0bNtSGDRs0ZcoUDRo0yN1m8eLFCgsLU40aNfTHH3/o0UcfVbdu3dSpUyd3m3vuuUeRkZGaNGmSJOnZZ5/VNddcozp16igpKUkvvfSS9u3bp/vuu69ADMuXL9f27ds1d+5cSVKLFi20detWLV26VAcOHJDFYtGVV155kd8JAAAAALg0SIyXEKfTqUOHDikoKEgmk8nb4QAAAAAASohh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dx4891wVHq2ISAj9/DOcfHL5HVsKCqwlV665psqnrpGF8cTERL766iu+//57fv31V3JycjjppJPo1atXuFM7qmhmmoiIhIrd5iJHoAnJUcvhCG1cJMrMsdes326ciMiRFggEmD59Ot988w1paWkEgyV/c/73v/8NU2YiIodp+3ZrHebCQrjyStDyEFJdnE6oU8faDtfChfZmguflWbEHzt6NioLOnUsWy7t2tVq0i+yTkJBA586dS+yLi4ujQYMGxfubNGlS6nYtW7akdevWxddPOOEEnn76aS4/YMBRVlYW77//Ps8//3yFOTzxxBNcfPHFdO/eHYCePXsyatQoBg8ezIQJE+jZs6cV6PfDgAGwZQu0bg2zZ2vwh4iET48esHPn/sF1derAypXQpo11PSMDrr22dhTGCwsLiYmJYeXKlfTs2XP/B7NUmWFzUV1Di+qKiEglNGP88AVMe7+YrTgpy/827rYdd9NZx1VzNiIiVTdy5EimT59O37596dy5M4b+MSYitUF+vjU7PDUVTjwRpk/XaE85Opx9NhxzDCQnl73OuGFA8+bWjLTffrO+kF+xwvqZlQXLllnbgfFt2+4vlBf9LKPwKVIVGzZsIPOgZQNmzZqFaZpce+215d5u9erVzJ49m5UrVxbvu+qqq1i4cCFnn3027du3Z+bMmdaBe++Fb76BuDjrNd+gQXU8FBERew7+vVzW7+lD7BhZ4wrjbrebli1blmzhIYckaPM1YTdOREREDp3D5rABu3GRqNBvryeB3TgRkSNt1qxZzJ49m4svvjjcqYiIhIZpws03W8XBhg2tYopmzMrRwumEl16Cq66yitoHfsFeNHjtpZfgpJOsrYhpWrNqiwrlRcXy5GTYuNHaZs/eH9+kSclCeffucNxxGkASoSpbN7yspcHK2nfbbbdx2223VXiuzp07s3HjxhL7HA4Hr776Kq+++ur+ndOmWa91gLffhi5dKjyviEiNcIgDzWtcYRzgX//6Fw8++CBvv/029evXD3c6Ry1/iONERETk0AVs1mrtxkWiGJe9P3jtxomIHGkej4e2bduGOw0RkdAZNw7efRdcLvjgA2jVKtwZiVTNFVdYr92RI+Gvv/bvP+YYGD/eOn4ww7BaubZpU/L4rl0lZ5WvWAEbNkBKCsyfb21F4uOt1usHFss7dbJatIscSUuWwNCh1uXH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0pinnnqKpyoYFGKWUWw8UFnrigN07tyZjRs3ltjncDh49dVXefXVVyvNS8QWp5P1j46j27AbMA2jRHHcNAwA1j86rsqf7yIikUyFcREREREREZEjoG3btsyfP5877rijxP4vvviCNm3ahCkrEal1TBOGD4cffoDERPj4Y+tnFVVH0XHQoEEMGjSo0vM2bty4zILkI488wiOPPFLp7UVEaovUPv1ZOfFtTvj3/cTsLF6FHG+TZqx/dBypffqHMTsRkaOPCuMiIiIiIiIiR8A999zDHXfcwa5duzjvvPMA+Oabb3j++efVRl1EQmfCBJgyBRwOeO89OP74cGckIiKHIbVPf1IvvIT6P/9AVFoKBUlNrPbpmikuIlJljnAnICIiIiIicjTy+QJ8+lsybyz6g09/S8bnC4Q7JanhhgwZwvPPP8+UKVM499xzOffcc3nnnXeYOHEit9566yGfd+zYsRiGwV133VW8z+v1Mnz4cBo0aEB8fDxXXnklqampIXgUIlKjffMN3H23dfmZZ6B37/DmIyIioeF0kt7jbHb2v5r0HmerKC4icog0Y1xERERERKSK3l7yJ28s2sKubC8B08RpGDyb8Du3nN2aG3q0Cnd6UoMNGzaMYcOGsWvXLmJiYoiPjz+s8/3yyy+89tprnHjiiSX233333Xz22We8//77JCYmcscdd3DFFVfw/fffH9b9iUgN9scfcM01EAjADTfAPfeEOyMRERERkRpFM8ZFRERERESq4O0lf/Lsgg2kZOYTCAYxgyaBYJCUzHyeXbCBt5f8Ge4UpQbz+/18/fXXzJ07t3jt3R07dpCTk1Plc+Xk5DBw4EBef/116tWrV7w/MzOTKVOm8MILL3Deeedx8sknM23aNH744Qd+/PHHkD0WEalBsrPh0kshPR1OOw0mTwbDCHdWIodkz549JCUllbnOfG3zwAMPcOedd4Y7DRERkYihwriIiIiIiIhNPl+ANxZtIbvAT0HApCAAviAUBKAgYJJd4GfK4i1qqy5l2rp1K126dKF///4MHz6cXbt2ATBu3DjuvffeKp9v+PDh9O3bl169epXYv2zZMgoLC0vsP+GEE2jZsiVLliwp93wFBQVkZWUVb9nZ2VXOSUTCIBi0ZoivWQNNm8KHH0J0dLizEjlkY8aMoX///rRq1apazj9o0CAMwyixXXTRRWXGFhQU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+FNPPYXHH38cn332WbVFcSAwQ7dPnz4Nkjedmx49eqBv3754++23cdttt9X74yuKgl9++QUrVqxAcXEx0tLSMGzYMDz66KPVn+utgSzL+O9//4s77rgDF1xwASwWCy6//HLMnz8/GDN+/HiUlZXhxRdfxD333IPY2FhccsklmDu38no7K1euxOyKJX+IiIioQfGb+CmmTZuGcePGoX///hg4cCAWLFgAh8OBCbWtrRjGDj45ApkzPtYUR0RUYX9+GZb9cBAnHB6kxpgQZTCj3OPD9mMlOFbixIQhmdUXx4mIiIioVhs3bsSaNWvw+eefo0ePHrCcNjDhvffeC1FmRBTW7HZg5Ejg+HGgXz/g1Vd/715Th6ysLMycORNFRUWIq2Ut8lOdaSv1EydO4PDhwzh27BgAYM+ePQCAlJQUpKSkAAByc3ORm5uL/fv3AwjMCrbZbGjVqhXi4+Oxfv16/PTTT7j44oths9mwfv16TJ06Fddff30w76+//hpXXnkl7rrrLowePRq5ubkAApNd4uPjAQBz587Fww8/jDfffBOZmZnBGKvVCqv195mF3333HYYNG6b5OVLjevjhh3Hfffdh4sSJuOiii3B6w9PevXtX2aaV2WzGZ599dkb3yczMrPb3paWl4d133631vnfccQfuuOOOGm//9NNPIcsyrr766jPKiYiIiM6OHOoEwsmYMWPw9NNP4+GHH0bv3r2xZcsWrF69ulFGwTaUuoreLIoT0alUVeCz7Xk44fCgQ5IVNpMeiizBZtKjQ5IVJxwefL4jD6rKVTiIiIiIzlRsbCxGjx6NrKwspKWlISYmptKFiKgKVQXGjQO2bQOSk4H33z+j7hmnzr5tKB9++CH69OmDESMC55iuvfZa9OnTBwsXLgzGLFy4EH369MHEiRMBABdccAH69OmDDz/8EECgM+PKlStx4YUXolu3bnj88ccxdepULFq0KPgYK1asQHl5OebMmYPU1NTg5c9//nMw5uWXX4bH48HVV19dKebpp58OxmRnZ2PdunVNdiJMJBgxYgRuvfVWZGdnhzqVBudwOLBs2TJ2kiEiImok/It7milTplTbOr0pq2nmOIviRHS67GInDhTYkRpjgnTaDARJkpAaY8L+fDuyi53IiD+DFqlEREREhGXLloU6BSJqah59FHjvvcCyKf/5D3AW6z825OxbINAuevz48bXGzJ49u9ZW0X379sWPP/5Y62MsX74cy5cvrzXm4MGDtd4OAM8//zzGjx8fUWtpNkV33313qFNoFJwpTkRE1LhYGI8QLIITkRYOjw8unx9RhupnIJgNCvJKXXB4fI2cGREREVHTpaoq5s2bhw8//BAejweXXnopZs2aBfOZrJlORJHnvfeAimLywoXA4MFn9TAjRozAvn37kJ2djYyMjPrLr4lKSkrCtGnTQp1G2Fh92B7qFChMDW9lrTuIiIioiWFhnIiIgiwGHUw6BeUeH2wmfZXbnR4/jDoFFgP/fBARERFp9fjjj2P27NkYOnQozGYznnvuOeTn52Pp0qWhTo2IGtjZFh2tu3fgDzfcCB2Agzf9DbsvvQY4hwJm5z/fgh0C2MEiKLpdcxt+duOcXs/6wKIjERERUePjGuNERBSUHmtGuxZW5JS4qrTSE0Igp8SF9klWpMdydhMRERGRVq+99hr++c9/4rPPPsP777+P//73v3jjjTegqmqoUyOiMKQ/UYi+N4+BrtyBwj9ejD0PPh7qlIiIiIiImgUWxomIKEiWJWR1T0a8xYB9+XaUubzwqSrKXF7sy7cj3mLAsG7JkGWp7gcjIiIiIgDA4cOHccUVVwSvDx06FJIk4dixYyHMiojCkeT1ovftNyLq6CE4WrfF1peWQ+jYsYuIiIiIqD6wME5ERJW0T7JhwpBMdE+LQXG5FwcLHSgu96JHegwmDMlE+yRbqFMkIiIialJ8Ph9MJlOlbXq9Hl6vN0QZEVG46vzIdCT8+B18Vht+fnUlvLHxoU6JiIiIiKjZ4JBTIiKqon2SDW0vsiK72AmHxweLQYf0WDNnihMRERGdBSEExo8fD6PRGNzmcrkwadIkWCyW4Lb33nsvFOkRUZho+eZStP7XYghJwtbnXoW9Y5dQp0RERERE1KywME5ERNWSZQkZ8VGhToOIiIioyRs3blyVbddff30IMiGicBW34Qd0fegeAMC+ex9CwdAr6rgHERERERGdKRbGiYiIiIiIiBrQsmXLQp0CEYUx09HD6D3pesg+H3KuGo1fJ98b6pSIiIiIiJolFsaJiIiIqF6oquASDER0RnjcIKJIp5Q70HfidTAeL0RJt17YNu+fgMTjIBERERFRQ2BhnIiIiIjO2f78Mny2PQ8HCuxw+fww6RS0a2FFVvdktE+yhTo9IgpDPG4QUcQTAt3vvR3RO3+BO7EFfl78FlQzl7MiIiIiImooLIwTERER0TnZn1+GZT8cxAmHB6kxJkQZzCj3+LD9WAmOlTgxYUgmi1xEVEnFcaOwzAVFlqAKwOX14ZejRTxuEFHEaPvi00j9+D9Q9Xr8vPB1uNIzQp0SEREREVGzxsI4EREREZ01VRX4bHseTjg86JBkhXSy9afNpIfVqMO+fDs+35GHtolWtkcmIgC/Hzd255Qir8SJE+Ve+IWAIkmIj9IjOcbD4wYRNXtJn3+Ejk//AwCw89H5KB5wXogzIiIiIiJq/lgYJyIiIqKzll3sxIECO1JjTMGieAVJkpAaY8L+fDuyi53IiGdrUCIKHDe+31+AXTllKPf6T7lFoLzEjRPlPhh0Mq7qlcbjBhE1S9Y9O9Hz7okAgEPjbsPR6yaEOCMiIiIiosgghzoBIiIiImq6HB4fXD4/ogzVj7c0GxS4fX44PL5GzoyIwlWJy4Pt2aWnFcV/V+71Y3t2KUpcnkbOjIio4emLjqPvLddC57Dj+OALsPuhOaFOiYiIiIgoYrAwTkRERERnzWLQwaRTUF5D4dvp8cOoU2CpoXBORJFnf74dZe7aB8uUuX3Yn29vpIyIiBqH5POh1+TxiDr8G8ozMrHl5dcg9PpQp0VEREREFDFYGCciIiKis5Yea0a7FlbklLgghKh0mxACOSUutE+yIj3WHKIMiSjc7M8prdc4IqKmotNjDyDxh7XwRVmw+dWV8MYlhDolIiIiIqKIwsI4EREREZ01WZaQ1T0Z8RYD9uXbUebywqeqKHN5sS/fjniLAcO6JUOWpbofjIgiwoaDJ+o1joioKUhf9Royl70MAPjl2UWwd+4W4oyIiIiIiM7MSy+9hMzMTJhMJgwaNAgbNmyoNb64uBiTJ09GamoqjEYjOnbsiE8++aSRsq0ee1oSERER0Tlpn2TDhCGZ+Gx7Hg4U2JFX6oJRp6BHegyGdUtG+yRbqFMkojCSW1Jer3FEROEuduN6dHvwbgDAvmkPIn/4n0KbEBERERHRGVq1ahWmTZuGhQsXYtCgQViwYAGysrKwZ88eJCUlVYn3eDy47LLLkJSUhHfeeQfp6ek4dOgQYmNjGz/5U7AwTkRERETnrH2SDW0vsiK72AmHxweLQYf0WDNnihNRFYVl3nqNIyIKZ6ZjR9Fn0ljIXi9yLx+JA3fcH+qUiIiIiIjO2DPPPIOJEydiwoQJAICFCxfi448/xtKlSzFjxowq8UuXLsWJEyewbt066PV6AEBmZmZjplwttlInIiIionohyxIy4qPQOSUaGfFRLIoTUbXK/fUbR0QUtsrL0WfidTAWFqC0aw9se+YVQOapOCIiIiJqWjweDzZt2oShQ4cGt8myjKFDh2L9+vXV3ufDDz/E4MGDMXnyZCQnJ6N79+544okn4PeH9ss+Z4wTERERERERERHVJyGAm29GzPYt8MQnYPPilfBHWUKdFRERERFRJWVlZSgtLQ1eNxqNMBqNlWIKCwvh9/uRnJxcaXtycjJ2795d7eP++uuv+OqrrzB27Fh88skn2L9/P/72t7/B6/Vi1qxZ9f9ENOIwVSIiIiIiIiIiovo0dy6wciVUnQ4/L3wdrpatQp0REREREVEVXbt2RUxMTPAyZ86cenlcVVWRlJSERYsWoV+/fhgzZgwefPBBLFy4sF4e/2xxxjgREREREREREVF9+egj4IEHAAC7HnkaRYP+GOKEiIiIiIiqt3PnTqSnpwevnz5bHAASExOhKAry8vIqbc/Ly0NKSkq1j5uamgq9Xg9FUYLbunTpgtzcXHg8HhgMhnp6BmeGM8aJiIiIiIiIiIjqw65dwF//GmilPmkSjlx/c6gzIiIiIiKqkc1mQ3R0dPBSXWHcYDCgX79+WLNmTXCbqqpYs2YNBg8eXO3jDhkyBPv374eqqsFte/fuRWpqasiK4gAL40S1OvjkiHqNIyIiIiIiIqJmqqgI+NOfgLIy4IILgOeeC3VGRERERET1Ytq0aVi8eDFWrFiBXbt24fbbb4fD4cCECRMAADfeeCNmzpwZjL/99ttx4sQJ3HXXXdi7dy8+/vhjPPHEE5g8eXKongIAtlInqtPBJ0cgc8bHtd5ORERERERERBHM5wPGjAH27wdatwbeeQcwGAB4Qp0ZEREREdE5GzNmDAoKCvDwww8jNzcXvXv3xurVq5GcnAwAOHz4MGT59/nYGRkZ+OyzzzB16lT07NkT6enpuOuuuzB9+vRQPQUALIwTaVJTcZxFcSIiIiIiIiLC/fcDX3wBREUBH3wAtGgR6oyIiIiIiOrVlClTMGXKlGpvW7t2bZVtgwcPxo8//tjAWZ0ZFsaJNGIRnIiIiIiIiIiqWLECePbZwM+vvQb06hXafIiIiIiIqFpcY5yIiIiIiIiIiOhs/PgjcOutgZ8ffhgYPTq0+RARERERUY1YGCciIiIiIiIiIjpT2dnA//0f4PEE/p81K9QZERERERFRLVgYJyIiIiIiIiIiOhNOZ6AYnpsLdO8eaKEu8zQbEREREVE44yd2IiIiIiIiIiIirYQItE/fuBGIjwc++ACwWkOdFRERERER1YGFcSIiIiIiImo0unqOIyJqdPPnA6+/DigK8O9/A23bhjojIiIiIiLSgIVxIiIiIiIiajRSPccRETWqTz8F7r8/8POCBcAll4Q0HSIiIiIi0o6FcSIiIiIiIiIiorrs2QNcd12glfrEicDkyaHOiIiIiIiIzgAL40RERERERNR4tH4L5bdVIgonxcXAn/4ElJQAf/wj8OKLgMTeFkRERERETQlPNRBRg4o31m8cERERETVtZo2Lh2uNIyJqcH5/YKb43r1ARgbw7ruAwRDqrIiIiIiI6AyxME5EDUrUcxwRERERNW0p0dpGRGqNIyJqcDNnAqtXA2Yz8MEHQFJSqDMiIiIiIqKzwMI4ETUon9DWWk5rHBERERE1ba0SLfUaR0TUoF5/HZg3L/DzsmVAnz6hzYeIiIiIiM4aC+NE1KBkjXPBtcYRERERhZLWoXwc8lczRVbqNY6IqMFs3Ajcckvg5wceAMaMCW0+RERERER0TlgYJ6IGpWg8ymiNIyIiIgols8bPLFrjIpHD7avXOCKiBpGTA4waBbjdwFVXAY8+GuqMiIiIiIjoHPF0DRE1KK+qbb6U1jgiIiKiUHKr9RsXiYTGRkFa44iI6p3LBfzf/wHHjgFduwbaqcs8hUZERERE1NTxUz0RNahos65e44iIiIhCyV/PcZEo0aqv1zgionolBDBpEvDTT0BcHPDBB0B0dKizIiIiIiKiesDCOICDBw/i5ptvRps2bWA2m9GuXTvMmjULHo8n1KkRNXntEqPqNY6IiIiImja/xtn0WuOIiOrVggXAihWAogBvvw20bx/qjIiIiIiIqJ5wiiaA3bt3Q1VVvPLKK2jfvj22b9+OiRMnwuFw4Omnnw51ekRNWnSUsV7jiIgockkAtHRW5uIcROHNrnHtcK1xRET15vPPgXvvDfw8fz4wdGho8yEiIiIionrFwjiA4cOHY/jw4cHrbdu2xZ49e/Dyyy+zME50jlShrTGF1rhIxEIQEVEAj4dEzYMQ2t6lWuOIiOrFvn3AmDGAqgITJgB33hnqjIiIiIiIqJ6xElWDkpISxMfHhzoNoiavVYy2tSG1xkUipZ7jiIiaKh4Pz53WUbEcPVsz7ofnLkHj2uFa44iIzllpKTByJFBcDAweDLz8MiBxcA4RERERUXPDc17V2L9/P1544YVaZ4u73W643e7g9dLS0sZIjajJ2ZnnqNe4SKRlduSZxBFRaMgAtCyXy1GLNZM1ThmXeR67Rv56jotEFqOEUnfdO6LFyB2xJtEmbQVvrXFEROfE7wf++ldg1y4gPR147z3AyKW+iIiIiIiao2Z97nXGjBmQJKnWy+7duyvdJzs7G8OHD8c111yDiRMn1vjYc+bMQUxMTPCSkZHR0E+HqEly+bSVa7XGRSK9xvPqWuOIiJoqrV2V2X25Zhxsde70sravUFrjIpFBr20+vdY4IqJz8ve/Ax9/DJhMwPvvAykpoc6IiIiIiIgaSLOeMX7PPfdg/Pjxtca0bds2+POxY8dw8cUX47zzzsOiRYtqvd/MmTMxbdq04PXS0lIWx4mq0SrBjA0HizTFUfVMRhkuV93zTE1GnoAnCmdaZoufSVwkYgtrCgdGRduwAa1xkchs1PYu1RpHRHTW3noLePLJwM9LlgD9+4c2HyIiIiIialDNujDeokULtGjRQlNsdnY2Lr74YvTr1w/Lli2DXMcMD6PRCCNbaxHV6eHLu+LdTcdqnXkmnYyj6qXEmFDsKtcUR0TUnEka+9FLHCdUI7MCODX0STezHlkjt19bSwKtcZHIqGjbwbTGERGdlU2bgJtuCvw8fXqgnToRERERETVrPG2IQFH8oosuQqtWrfD000+joKAAubm5yM3NDXVqRE1etNWICzom1hpzQcdERFs50KQmVoO2k8Ja44iImiqtnanZwbpm0WZt42K1xkUiVWibCa41LhIlaPzcpzWOiOiM5eYCo0YBLhcwYgTw+OOhzoiIiIiIiBoBz3gB+OKLL7B//37s378fLVu2rHSb4AktonO24qZBGLf0J3y7t7DSzHEJgaL4ipsGhSq1JkHROOFMa1wkMkqAW8Ph3MjXkCisaa13sy5es3K3r17jIpFep611QSCOqpMQZajXOCKiM+J2A6NHA0ePAp07A2+8AbBDBRERERFRRGBhHMD48ePrXIuciM7NipsGodTuxj8+3YmjJ1xoGW/Cw5d35UxxDcxGfb3GRSKjDnB7tcURNRQ9AA27IfhOrpmscbyi1rhIVKZlJzyDuEiktc0829HXrNTjqdc4IiLNhAAmTwbWrQNiYoAPPgj8T0REREREEYElACJqNNFWI56+pk+o02hyMuKjAJzQGEfV0dr8g01CqCEZdIBXwyRcAz+d1UjrHGbOdaaG5BPa2otojYtEh46X12scEZFmL74ILFkSWHdl1SqgY8dQZ0RERERERI2I/f2IiMJclMYqmda4SOSv57hIpHXv4l5YM5/GHUxrXCTSWmZkObJmfC+fO6db25tUa1wksru0vTZa44iINFmzBpg6NfDzU08BWVmhzYeIiIiIiBodC+NERGHOrLG/t9a4SKTTWCXTGheJtI674PiMmkka9y+tcZGI3R/OXesEbWs2a42LRB617vXFzyQuEnVKstVrHBFRnQ4cAK65BvD7gRtuAKZNC3VGREREREQUAiyMExGFufQYc52zH6WTcVQ9rbUJ1jBqZtE48EJrXCRSNK43rDUuEmntTM0O1jWzGrUVvLXGRSKdxtErWuMiUd/MWE2fbfpmxjZCNkTU7JWVASNHAkVFwMCBwKJFHIlIRERERBShWBgnIgpzvVvHQq7jvI0sBeKoelo7sbJja82sBm0nD7XGRSK9rK3irTUuEsWYtA280BoXiewebSOAtMZFopQYbYMGtMZFopwSF+pq7CBOxhERnRNVDcwQ37EDSE0F/vMfwGQKdVZERERERBQiLIwTEYW5wlKPpsJ4YamncRJqgrjG+Lnza5xOrzUuEulkbXuY1rhI1CZRW2cMrXGRyKyv37hI1DpRW3tvrXGR6KtdefUaR0RUo1mzgA8+AIxG4P33gbS0UGdEREREREQhxMI4EVGY219ghyRJ0Emo0nZUQmBdbEmSsL/AHor0mgStk5g52blmHlXbi6M1LhIpirZZzFrjIlFuqbde4yKRImn7+K81LhIlx2qbaag1LhLtz9P2mUVrHBFRdZI//g/w2GOBK4sXB9qoExERERFRROMZLyKiMGfSK1BkCVaTDhaDDIMiQScDBkWCxSDDYtJBkSWY9Gy/XJPUWG1TH7XGRSKvX9tMcK1xkchm0rZ/aY2LRC6vtv1La1wk8mh8j2qNi0RmjYNXtMZFIqNe2yAqrXFERKez7fgFPe6ZFLhyzz2BdupERERERBTxWBgnIgpz/TPjYDXq4fYJ2Ew6RJv1iDbpEW3Ww2bSweMTsJn06J8ZF+pUw1ZslLZZe1rjIpG/rsVgzzAuEkWbtH3s0hoXiVJjjPUaF4lKndpm02uNi0RujUtGaI2LRG1aWOs1jojoVIbCAvSdeC10znIgKwuYOzfUKRERERERUZjgmVciojDXOt6C89snABJQ6PCi1OmF3R34v9DhBSTg/PYJaB1vCXWqYUtRtM040xoXiWJM2mY+ao2LRHa3trXDtcZFokyNRTKtcZHI5/fVa1wk0voFil+0atYuQdv661rjiIgqSB4Pek8aC3P2ETjatAPeegtQ2FmLiIiIiIgCeL6GiCjMybKEEb3SEGsOtFdWhYAqAv8DQJxZjyt6pkGWWdStScs4c73GRaLu6bH1GheJSp3aCt5a4yIR24CfOxXaigNa4yKRTWNXB61xkSjRpq2rg9Y4IiIAgBDoOutexG9cD68tGptfXQXEsasWERERERH9jmdriIjCnKoK7M4pQ/sWVvTNiEFqjBkJViNSY8zomxGDdi2s2JNbBlVlD+uaDG6fUK9xkahnurYZuFrjIpHbq601tda4SKSXtX101RoXiQwaO2NojYtEO3Ic9RoXiewebcc5rXFERACQ8a9XkfHmMghJwtbnl8LRvlOoUyIiIiIiojDDfqdERGEuu9iJAwV2dEi2wmrUoczlg8evwqDIsJl0sLt92J9vR3axExnxUaFONyw5yrXNHtUaF4lW7yjQHHfbxV0aOBuKVEa9tlnMWuMikUFRANRdbDSw7WyN7G5tbea1xkWig4Xl9RpHRBS//jt0eeR+AMDeGY+g8JKsEGdEREREREThiNNpiIjCnMPjg8vnR5RBB0mSEG3WI9FqRLRZD0mSYDYocPv8cHh4Ar4mewrK6jUuEh0tdtVrXESSNBYatcZFIKtR25hOrXGRKD1OW2tqrXGRyKBxMr3WuEhU4vTUaxwRRTbz4YPoffv1kH0+HBs1Br/ddneoUyIiIiIiojDFwjgRUZizGHQw6RSU11D4dnr8MOoUWAwsBNXE5dW2ZrPWuEgUpddW4dEaF4ksRm2vjda4SOTU2FZZa1wkatciul7jIlGyTdvfW61xkaimzzRnG0dEkUtx2NF34rUwFJ1ASc++2D73BUDiZykiIiIiIqoeC+NERGEuPdaMdi2syClxQYjK64gLIZBT4kL7JCvSY80hyjD8pcdonCGpMS4S9UrXViTTGheJUqymeo2LRNkaOxJojYtELRO1LbmhNS4SFTi0LbuhNS4SuX3aXhutcUQUoVQVPabdBtvuHXC3SMLmRW9CNfE7ERERERER1YyFcSKiMCfLErK6JyPeYsC+fDvKXF74VBVlLi/25dsRbzFgWLdkyDJnRtTkaIm7XuMiUUqstV7jIpHVpLENuMa4SJRTqq3grTUuEp0o0zabXmtcJIqO0tdrXCRKsGgbAKQ1jogiU7vn5yJl9YdQDQb8/MqbcKemhzolIiIiIqJm7aWXXkJmZiZMJhMGDRqEDRs2aLrfypUrIUkSRo0a1bAJasDCOBFRE9A+yYYJQzLRPS0GxeVeHCx0oLjcix7pMZgwJBPtk2yhTjGseTS2YtUaF4nsXm2vjda4SJRTpm3ghda4SBRv1lZo1BoXiQw6bYOotMZFomSbtmKt1rhIdGnnJNQ1nk+WAnFERNVJ/uQDdHj2CQDAjscXoLjfoBBnRERERETUvK1atQrTpk3DrFmzsHnzZvTq1QtZWVnIz8+v9X4HDx7Evffei/PPP7+RMq0dC+NERE1E+yQbbr+oHaZe1hF3XNoBUy/riEkXtmNRXIM8jYVGrXGRKNGirc281rhI5NS4hr3WuEjUJT22XuMiUZRRW0cCrXGRKDpK22ujNS4SDWyTgCRb7X8vkmxGDGyT0EgZNU1z5szBgAEDYLPZkJSUhFGjRmHPnj2VYlwuFyZPnoyEhARYrVaMHj0aeXl5IcqYqH5Yd21Hj2m3AgAO3jwZ2X+5IcQZERERERE1f8888wwmTpyICRMmoGvXrli4cCGioqKwdOnSGu/j9/sxduxYPPLII2jbtm0jZlszFsaJiJoQWZaQER+FzinRyIiPYvt0jcpd2loCa42LRGadUq9xkSjGZKjXuEjUNtFSr3GRqE0Lba+N1rhI5Nc4dkVrXKSKtxhQ06cYCUCClcfCunzzzTeYPHkyfvzxR3zxxRfwer0YNmwYHA5HMGbq1Kn473//i3//+9/45ptvcOzYMfz5z38OYdZE50Z/ohB9b7kWOmc5Cs+/BHseeCzUKRERERERNWllZWUoLS0NXtzuqpPHPB4PNm3ahKFDhwa3ybKMoUOHYv369TU+9j/+8Q8kJSXh5ptvbpDczwanMRARUbOn12n7c6c1LiLJon7jIlBGYhS25dg1xVH1VKHWa1wkshjqPs5JGuMilVGvbWyx1rhItPlIEU44PDDrZbh8KtRT/nTIEmDSyThu92DzkSLOGq/F6tWrK11fvnw5kpKSsGnTJlxwwQUoKSnBkiVL8Oabb+KSSy4BACxbtgxdunTBjz/+iD/84Q+hSJvorEleL3rffiOijh6Co3VbbH1xGQQ/vxMRERERnZOuXbtWuj5r1izMnj270rbCwkL4/X4kJydX2p6cnIzdu3dX+7jff/89lixZgi1bttRnuueM3yCIiKjZG5AZhx25dRckB2TGNUI2TZNe0dadQGtcJGoVa67XuEi041hpvcZFoqMnyuuMERrjIlW0xjXstcZFooIyN+wuHxQZMOskeFUBVQSK4npZgiwDdrcPBVzi5IyUlJQAAOLj4wEAmzZtgtfrrTSiv3PnzmjVqhXWr19fbWHc7XZXmh1QVlbWwFkTadf5kelI+PE7+Kw2bH51Fbyx8aFOiYiIiIioydu5cyfS09OD143Gc18qs6ysDDfccAMWL16MxMTEc368+sTCOBERNXstE7S1BNYaF4kOH3fWa1wkirVpawusNS4SlTp99RoXiXJLXPUaF4nKNO5fWuMikYCATxVQhQpZkqFXZEgSIATgVwW8vsB2AXYh0UpVVdx9990YMmQIunfvDgDIzc2FwWBAbGxspdjk5GTk5uZW+zhz5szBI4880tDpEp2xlm8uRet/LYaQJGx97lU4OnYOdUpERERERM2CzWZDdHR0rTGJiYlQFAV5eXmVtufl5SElJaVK/IEDB3Dw4EFcddVVwW2qGujwqNPpsGfPHrRr164esj9z7O9HRETNnl9oO7GuNS4SHSnSVvDWGheJCku0rWGvNS4SRZu1jenUGheJnD5tC19rjYtEZoNSr3GRqFV8FCQJ8KuAIgVmiksI/K+c3C5LgTjSZvLkydi+fTtWrlx5To8zc+ZMlJSUBC87d+6spwyJzl7cT9+j60P3AAD23fsQCoZeEeKMiIiIiIgii8FgQL9+/bBmzZrgNlVVsWbNGgwePLhKfOfOnbFt2zZs2bIlePnTn/6Eiy++GFu2bEFGRkZjpl8JzxoSEVGzZ9LJkAHUtuqwfDKOqmeQtb02WuMi0bbs4nqNi0RpMdrazGuNi0RxFm3tvbXGRaK4KG1dHbTGRSKXV4XFoMAvAI9fQBYi+HdaVQFFkRFlUODy1vaXmypMmTIFH330Eb799lu0bNkyuD0lJQUejwfFxcWVZo3XNKIfCLTMO7VtXmkpl6ag0DIdPYw+k66H7PMh56rR+HXyvaFOiYiIiIgoIk2bNg3jxo1D//79MXDgQCxYsAAOhwMTJkwAANx4441IT0/HnDlzYDKZgt3MKlR8Lz19e2NjYZyIiJq9Pq3iYNTLcPtUyAD8p0wMV6TAiXiTTkafVlxjvCaXdGuBz3bla4qj6uWVaJtNrzUuEnlVbUUyrXGRKOeEtv1La1wk0mn8BqU1LhJZTTrEW42AcKPM7YPH9/sfZoMiwWZQkGA1wmrii1gbIQTuuOMO/Oc//8HatWvRpk2bSrf369cPer0ea9aswejRowEAe/bsweHDh6sd0U8UbpRyB/pOvBaGE8dR0q0Xts37JyBJoU6LiIiIiCgijRkzBgUFBXj44YeRm5uL3r17Y/Xq1UhOTgYAHD58GHITmDTFMw1ERNTsxUUZ0THZhl05pfCrAgZFCq5l6lMFdLKEDsk2xEUZ636wCJUera2drda4SCQ0Fmu1xkUij8Yu81rjIlFumade4yLRtiPaZtBuO1KKK7qnN3A2TZPNqEeCxYC8UhcUWYJNr0CWAFUAPr8KrwDiLQbYjOxcUJvJkyfjzTffxAcffACbzRZcNzwmJgZmsxkxMTG4+eabMW3aNMTHxyM6Ohp33HEHBg8ejD/84Q8hzp6oDkKg+723I3rnNrgTW+DnV1dCNfNzJhERERFRKE2ZMgVTpkyp9ra1a9fWet/ly5fXf0JngYVxIiJq9tJjzRjWNQVeVUX28XLYPX4IBNYztRoUpCdEIatbCtJj2X65Jr8dLw+s+1rLMuyKFIj7Y+Ol1aQkRptxSMP64YnR3A9rkhStrTW11rhIVK5x1IDWuIhUy3HwrOIiUGq0CTpZhk6WYY1S4PIJqEJAL0uwGQPX9YqM1GhTqFMNay+//DIA4KKLLqq0fdmyZRg/fjwA4Nlnn4Usyxg9ejTcbjeysrLwz3/+s5EzJTpzbV+Yh9SP/wNVr8fPC9+AK61l3XciIiIiIiKqAwvjRETU7MmyhKzuydiVWwq3xw+T2wevqkIvy7AadWibaMWwbsmQZbZmrIlJJ0OSAFlUv1a7jEBnS67TXrOLOydhk4aZphd3TmqEbJom4a/fuEik9T3K93LN2Er93OWUumDUy2hhM8DrF4iJkoOdXNw+FVaTBINORk6pCxnxnCFaEyHqHn1hMpnw0ksv4aWXXmqEjIjqR9LnH6Hj/EcBADsffQbFA9j6n4iIiIiI6gfPeBERUURRFBlWkx5xUUZYTXooCv8UapEeb4YiBVrQm3WBNWD1cuB/sy5QFFckCenxnO1ckyt6pEGpY+yFIgXiqHpHSsrrNS4SmQ3aqrVa4yKS1uUOuCxCjRweHww6GX1bxSHZZoIqAI9PhSqA5GgT+rWOg1Enw+HxhTpVImpk1j070fPuiQCAQ+Nuw9Hrxoc2ISIiIiIialZ4xouIiJo9VRX4bHse/KpAVtdk2N1+ePwqDIoMq1HB/gIHPt+Rh7aJVs4ar0FslAEJViPyy9xw+0VgWh8AQMAnAbIkIcFqRGwUW1jXJDPRigFt4vDjr0U1xgxsE4/MRGsjZtW0lJRra++tNS4SdUqxAVtztcVRtfLs2vYvrXGRyGLQwaRTYNIr6J8ZhzKXL/h32WbSwe72weVVYeEADaKIoi86jr63XAudw47jgy/A7ofmhDolIiIiIiJqZjhNjoiImr3sYicOFNiRGmOCLMuINuuRaDUi2qyHLMtIjTFhf74d2cXOUKcatmxGPVonRMFwcoa9OOUCAAadjNYJUbAZ9aFKsUnomhqD2Ch9lZnjigTERunRJTU6NIk1EUlWjWuMa4yLRF3TtO1jWuMiUWqMts4YWuMiUXqsGe1aWJFT4gKASn+XASCnxIX2SVakx/I1JIoUkteL3n8bh6jDv6E8IxNbXn4NQs/PlUREREREVL84BJ+IiJo9h8cHl8+PKEP1J9jNBgV5pS62bK1FarQJOlmGQSdDggq3T0CIQAt1o06CXpGhV2SkRptCnWrYyi52orjci0s6tcCxYicOnyiH26fCqJPRKj4KabFmFJd7kV3s5Jq6NWjVwlKvcZFoV45dc9xFnRo4mSaqncauDlrjIpEsS8jqnoxjJU7syw8MXDMbFDg9fuSUuBBvMWBYt2R2cSGKIJ0fewAJ676BL8qCza+uhDcuIdQpERERERFRM8TCOBERNXsVLVvLPT7YTFVnnjg9fhh1Clu21iKn1AWfqkIIASFJsJl1UGQJflXA7fNDCAGvX0VOqYtF3RpUDNBom2hFy7godEmNqdQ62C8EDhY6OECjFrKkrUimNS4S2d3a9i+tcZGobZIFNqOCMre/xphoo4K2SRygUZv2STZMGJKJ1dtysS27BOVeH6L0OvRsGYOs7ilon8R2/kSRIn3lCrRevhAA8MuCxbB37hbijIiIiIiIqLliK3UiImr2Tm3ZKoJrYwcIIdiyVYMylxfH7R5Em3WIO7mOuMenAgDiowyINutwwuFBmYtr6tbk1AEakiRVah0sSRIHaGhQrHHtcK1xkahDshV1DRuQTsZR9WLMBrRtYYWuhtnMOllCmxZWxJjZ0l8LAQGn1w+H2wen1w/1tL/TRNS8xW5cj25/nwoA2Dft78jPuirEGRERERERUXPGM69ERNTssWXrubOfLFgYdDLcXvX3xcVP/m/QySj3+DnLtBYVAzS2HyuBxaDA7vYHZ4xbjQpySlzokR7DARq1cHvVeo2LRD1TY2BQJLj9vxcfJfz+lgYAg05Cz9SYRs+tqUiNNiHapIfVqIPf74fTpwaXljDrZCiKghiznktL1GF/fhkWfLkPe/PK4FcDe2CJ04fcX1zYk2fH3UM7cNY4UTNnOnYUfSaNhez1IveKUThw5/2hTomIiIiIiJo5FsaJiCgiVLRs/Wx7Hg4U2JFX6oJRp6BHegyGdUvmyfc6WE2B1un5ZW4okgSjXoEiSfALAbvbhxKXQILFCKuJHy1qUjFAY1duKVbvyIPH64cfAgokGPQKOqXYOECjDmaDUq9xkcjlVxEdpUdBmSe47fT5uTFmPVx+Di6oSU6pC0a9jJQYI7w+AUkKvIYSACEAnSLBoJO5tEQtVFXgzR8PY+uRYhh0MmwmPfSKBK9foMzlxdYjxXjrp8N4cERXHhOJminZWY4+E6+DsbAApV17YNv8hYERRkRERERERA2IZ6+JiChitE+yoe1FVmQXO+Hw+GAx6JAea+ZJdw2sBh0UKVD0kYKvV6CcJkkShCqgkwJxVLsylxcnHJ6Ta7MHzgEbdQrb0GvQJkHbms1a4yKR3e2DIkkw6yW4vKJSUVwCYNJLkCWJ3R9q4fD4YNDJ6NsqDr8VOpBf5obXr0KvyEiONiEzMQolTi8cHr6GNTlSVI4ffzsBWZIQH6WH1y/g8qpQTl7PL/Ng/a8ncKSoHK35fiZqfoRAj/snI2b7FnjiE7B58Ur4o/heJyIiIiKihsez10REFFFkWeIMvrMgABj1OkSbVMgS4PSq8AoBSZJgMShQhQKDXldl5in9rmKG5K8FDsSYdTDqjZAlCaoQcHv9+LXAwRmSdXD6/PUaF4mijAq8fgFZkpFsU+D2C/hVAUWWYFQklLn98PkFooycdV8Ti0EHk06By3tyPxMnhwmJwHrZLq8fRp0CCwcK1ei3QgeKnR7YjDrklLiDa4vLkgSzXkGUUUGJ04PfCh0sjBM1Q21efgapH74DVafDzwtfh6tlq1CnREREREREEYJna4iIiKhOTq8fiVYDJAlweXywmfXBoq7H64fJoEOCxQCnlwXJmpw6QzLRaoR0SrtQYdQhr9TNGZJ1KCr31B10BnGRqNzth16RoAoZbr+AQSdDkQC/ANw+FQadDJ0iodzN93JN0mPNiI3S44udedArEkx6BSZJgRACeaUuHC1y4rKuyUiPNYc61bDm86soKHNBQDq5H8rwCwGHx4dyjxc6RQ51ikTUAFp8+Qk6PvUIAGDXI0+jaNAfQ5wRERERERFFEhbGiYiIqE4Wgw6JViMSrQbklLhRVO6B2++HTpaRHGNGSrQRgMQZkrWomCHZ4rSiOBBoRx8Tpcdxu5szJGvh9gpICLT8rm4FbOmUOKqe1ahDtEkPp8cHVQg4PGpwpq7FIEOWJEQZdbAa+V6ulQC8fgGH2we/3wMVAjIkKIoEg04Bez7ULjM+CkIEuo/ERemDx0SdJEHRyygq98KmyMhkhxeiZsWydzd63XULJCFw+PpbcOT6m0OdEhERERERRRie8SIiIqI6pcea0a6FFduPlaB/61jY3X54/CoMigyrUcH+Agd6pMdwhmQdpJOtloUQ8PhU+IWAIgVmS4KN6OvULskCvSLB5w8UyE9fH1sCoFMktEviwIKa2Ex6tEqIwoECO4rLvVBFYJ1xVQiUe1XEmPXIiI+CzaQPdaphK7vYicNF5VAkoNzrh9+vQhWALAE6VYZZr+DQiXJkFzu5dEcNJFlCtFkPl9ePco8fRr0CRZLgP7m0hCJLsJn0kLisBFGzoSspQt+J10JnL8OJP/wRu2Y/FeqUiIiIiIgoArEwTkRERHWSZQlZ3ZNxrMSJffl22Ew6KLIEu8+PnBInEqxGDOuWzLWxa9E20YKYKD0Ky9yQJQlOr3rKmroyVCEQF2VA20QWdWvSMcmG+CgD8srcVYYRVFxPsBjQMcnW2Kk1GemxZrSKi8L2Y6WQAMiSBAkCAlJgqQSfitbxURzkUosytxf78+0odnrh9wd6F1Q0gfD5VRQ7A7eXub0hzDK8Ob1+pMeaIQE4Ue6B26sG90NZlpBiMyItxszlOYiaCcnnQ+/J42E5eADOlq3w8z9fg9BzABYRERERETU+Ltx2Grfbjd69e0OSJGzZsiXU6RAREYWN9kk2XNI5CQ63Hz/+egJr9xTgx19PwOHx45LOSWjPYmStWsZFoXOKDSVOH4rKvZAkwKSTIUlAUbkXJU4fOqXY0DKOM0xrkhZjRrzVUOPcegEgzhIoqFEtJEAvS4gx65BoNSD+5DIJMSYd9LLE3gV1KHV6UWh3w+X1QxWAKgBx8n9VAC6vH4V2N0qdLIzXpGJ5jp4tY9AxyYpokw5GvYJokw6dkmzomR6DRKuRy3MQNROdnvg7Er/7Cj5zFDYvXglvQotQp0RERERERBGKhfHT3H///UhLSwt1GkRERGFnf34ZvtqdD4tRh8FtE3BRpyQMbpsAi0GHr3bnY39+WahTDHuxUQbYTDoYFAl+VcDl88OvChgUCTaTDrFRhlCnGNaOlThxwuGpcf1mCUCRw41jJc7GTKtJyS52orjci04pVvj8ArklLhwrdiK3xAWfKtApxYrici+yi/ka1qTc5YP7ZFEcCLRQr7gAgeK42+tHucsXuiTDXMXyHAVlHgCATpGhV2ToFBkCAgVlHrRPsrJzAVEzkPbOG8hc8hIAYNszi1DWtUeIMyIiIiIiokjGwvgpPv30U3z++ed4+umnQ50KERFRWFFVgc+25+GEw4OOyVakxpqRHG1CaqwZHZOtOOHw4PMdeVBVzjWtSUVB8rx2CeiUYoPNpINRp8Bm0qFzSjTOa5fAgmQd9uaXBQrjEqoUxyUE2lkfd3iwl4M0auTw+FBod+NgoRMOjx+oeC0lwOH242BhOQrtbjg8LOrWpMDhCRbFhQh0KgheTm5XRSCOqifLEjqn2pBT6sJvx8th0stIijbCpJfx2/Fy5JS60CnFxuU5iJq4mM0b0H3mnQCA/XfNQN4VI0OcERERERERRToWxk/Ky8vDxIkT8a9//QtRUWxhSkREdKrsYicOFNiRGmOCJFUuVEiShNQYE/bn21nUrYXD44PL54dJr4MkSdDLMgyKDL0sAxJg1Ctw+/wsSNbiQL4DPn+gEilLgE7+/SJLAATg8wscyHeEOtWwZdYryC524lixEw63Dx6fCp8q4PGpcLh9OFbsQnaxE2a9EupUw1bFIIyKmq1P/f0CBLZXN3iDfqeqArtzypAaY0LbBAtUEWhRrwqgbaIFqTEm7Mkt42AroibMmHsMfW79K2SPB7lZV2H/3TNDnRIRERERERG4aBsAIQTGjx+PSZMmoX///jh48GCd93G73XC73cHrpaWlDZghERFRaFUUdaMM1be1NRsU5JW6WNSthcWgg8enYtOhE/CrAjazHnpFgtcvUFDmxgmHBxnxUVxTtxZGvRycmas/Oc1ZQECCBEkS8IpAMdKo59jPmghVoMjhgcvrh1RN5dbr96PI4YFgQbJGiTYj9IoMl1eFBEA5WQSvmDHuF4BZJyPRZgxxpuGrYrBVhyQrrEYdylw+ePwqDIoMm0kHu9sXHGyVEc9By0RNjexyou/E62AqyENZp67Y9uwiQObfZiIiIiIiCr1m/c1kxowZkCSp1svu3bvxwgsvoKysDDNnah/BPGfOHMTExAQvGRkZDfhMiIiIQsti0MGkU1BeQ+Hb6fHDqFNY1K1FarQJbq+KYqcXcVF6GHUyZEmCUScjLkqPYqcXHp+K1GhTqFMNWwkWw2mzdEWl/4HAbN0EC9dqr8mvxx1wev1QEWj3LUmBttaSFLiuAnB6/fj1OGfd16RtggVmvRKcOQ4EiuI4eV1GYGZ+2wRLiDIMf78Ptgp00Ig265FoNSLarIckSTAb2EGDqMkSAt2n34GYXzbDExePza+ugt9iDXVWREREREREAJr5jPF77rkH48ePrzWmbdu2+Oqrr7B+/XoYjZVndfTv3x9jx47FihUrqtxv5syZmDZtWvB6aWkpi+NERNRspcea0a6FFduPlcBq1FVqpy6EQE6JCz3SY5AeW/2McgJySl0w6gNF8KJyL6wmHfSKDK9fhd3lQ6xZD4NORk6pizMka9Am0YIog4Iytx+nzmc+9WeLQUGbRBYka3K8zA2vX4XuZEFcFQKqKiBJgF6RoKoCXr+K42Xuuh8sQkmyhDiLAS6vCr/qhzilaboEAUVREGcxQOL62DU6dbCVzaSvcjsHWxE1XZmvPIe091dBVRRs+ee/4GyVGeqUiIiIiIiIgpr1mYYWLVqgRYsWdcY9//zzeOyxx4LXjx07hqysLKxatQqDBg2q9j5Go7FKIZ2IiKi5kmUJWd2TcazEiX35gbXGzQYFTo8fOSUuxFsMGNYtGTILQTVyeHww6GT0bRWH3wocyCtzw6eq0MkykqONaJNoQYnTyxmStYg26RFrNsDhdUJVq94uy0BslAHR1RTaKCA4s1mWoFckAHKwHT0g4EFgsAsbqdfM6fUjPdYMCRJOONzw+UXwNdTpJMRbDEiLMcPp9Yc61bDFwVZEzVPi15+j05MPAwB2z3oKJ867IMQZERERERERVdasC+NatWrVqtJ1qzXQ5qtdu3Zo2bJlKFIiIiIKO+2TbJgwJBOfbc/DgQI78kpdMOoU9EiPwbBuyWifZAt1imGtYoaky+sHTq5JjJNrYgOAy8sZknURAAw6GQZFhleoECKwraKltV6RoVdkFnVr0SLaCIMin2w/LyBLgVdLQARaq4vA69gimgNAa2Ix6JBoNSLRasCxYieOFbuC62Onx5qRGmsCIPG9XAsOtiJqfiwH9qLXnTdBEgJHrhuPwzdODHVKREREREREVfBsDREREWnWPsmGthdZkV3shMPjg8WgQ3qsmcULDdJjzYg16/HFrjwYdDJsZj30igSvXyC/zI2jRU4M65rMGZK1cHh88AsBvSLDqEiQJRkVpXFVqFAhwS8EZ93Xom2iFamxZmQXlcPrDxTDK8gn26mnxprRNpHrwdakYrbzj78eBwDoTg7GCPwvUFDmweB2CXwv16FisNXq7bnYll2Cco8fUQYFPdNjkdWdg62ImhJdSTH63jIG+tISnBgwGDv/MT8wYo2IiIiIiCjMsDBejczMTAjBuUZERETVkWWJa2CfrYpzxELg97nO4uR1cKZzHewuH/yqQJLNALdXwOn1QxWALEmwGAww6iR4fAJ2FwvjNcmIi0Kv9BhkFzmhntYyPVAkl9C7ZQwy4vger4ksS+icasN/tmSjzOVFgsWAOIseTo8fvx0vh82kR6cUGwcMaXXycCgC//B7GFFT4/ej1x03wfLrfjjTWmLLwjcgDIZQZ0VERERERFQtFsaJiIiIGkF2sRPF5V4MyIxDbokbJ8o9cLh9UGQZyTFmpEQbUVzuRXaxkwMPamA16mDWK/CrKtJiTfD4VPiFgCJJMOhkHLe7EWVQYDXyI25thARIkgRFCqw1fnJ4BoQqIEkSBFjQrY2qCuzOKUNqjAktLAYUOb0odXqhyDLaJlqgU2TsyS3DxZ2SWByvxf78Miz74SCO2z2IMesRZzFAVQW2HytFTqkLE4ZkctY4URPQ6cmH0eKbL+A3mbF58Up4EluEOiUiIiIiIqIa8awhERERUSNweHxw+fxom2hFy7golLl8wXWJbSYd/ELgYKGDbcBrYTPp0SohCkeLynHc7oZBr0CWJPhUFWUuL3SKjIz4KNhM+lCnGraOFpVjT24Z4qL0kCQ9HG4/VCECs+6NCoQQ2JNbiqNF5WiVYAl1umEpu9iJAwV2dEiywmrUVXkv290+7M+3c5BLLVRV4LPteTh8ohw+n4qDxx3wqSp0sow4sx4Ojw+f78hD20QrBxcQhbG0995Cm0XPAwC2zV+Isu69QpwRERERERFR7VgYJyIiImoEFoMOJp2Cco+v2hnNTo8fRp0Ci4Efz2qSHmtGn4w4FJV7kO9yIa/MDb8qoMgS4sx6xFoM6Nsqjms71+LXQgdKyr1ItBlg0ilVZt27fH4ct3vwa6GDhfEaVAxyiTKYIUkSos2VB2KYDQrySl0c5FKL7GInfj5ShIIyF3x+AatJB72ig9evosDuhiJL2Hy4iIMLiMJYzJb/oduMOwAAB6bch9wr/xzijIiIiIiIiOrGM69EREREjSA91ox2Laz48bfj8PlUFDm9lWZI6nQyBrdNYFG3FhVrO6/63xGccHohA1DkwErtJ5xeSLLMtZ01EBIgQYIkSTDqldNu5WtXl1MHuVTXnYCDXOpW5vLi8PFy+FUVCVYjJCmw3xl1CgyWwLIIR06Uo8zlDXGmRFQdY14u+tz6VyhuN/IuuwL77vl7qFMiIiIiIiLSRA51AkRERESRoKKom1Piwq/HHZAlIMashywBvx53ILfExaJuHVRV4If9hfD4/NDLgXWyZUmGJEnQy4DH58cP+wuhqiLUqYatNokWxJoNKC73QojKr5MQAiXlXsSYDWiTyNniNakY5JJT4qr2NcwpcaF9kpWDXGphd/vg9Pph1CvBoniFigEb5R4/7G7OuicKN7LLhT63XQdTXg7KOnTGL88uBmSeWiIiIiIioqaB316IiIiIGoGqCuzOKUNqtAltEqLg9qooKHPD7VXRNsGClGgT9uSWsahbi6NF5fjx1+OQJcBq1EM5WVBTJAlWY2CQwU+/HsfRovIQZxq+MuKi8Ic28VCFwHGHB25fYI1xt8+P4w4PVCEwuG08MuLYvromsiwhq3sy4i0G7Mu3o8zlDa5zvy/fjniLAcO6JXOQSy2sJh3MBgVur1rt4AK3V0WUQYHVxFn3RGFFCHR78C7E/vw/eGLisHnJKvht0aHOioiIiIiISDMWxomIiIgaQXaxEwcK7GhhM0CCBAEELwDQwmbA/nw7soudIcwyvP1a6EBhmRsunwqHxw+jXobVqMCol+Hw+OHyBdYn/rXQEepUw5YsS/jrH1qhV0YsFFlCmcuHEw4Pylw+KLKEXhmxuG5QKxZ169A+yYYJQzLRPS0GxeVeHCx0oLjcix7pMZgwJBPtk2yhTjGs2Yx6tIqPgk6RcOK0ARonHB7odDIy4qNgM1ZtVU9EodN6yUtIf+dNqIqCrf9cAWfrtqFOiYiIiIiI6IxwCD4RERFRI3B4fCi0u3HcEZglHm3WQa/I8PoDxdxStxcJFiMcHrYOrokqBJxePyRZgtXwewtmRQLMehl2jx8+nwpVcNZ9bdon2XD30A749JccbDxYBLvHC6tBj4Ft4jC8RyqLuhq1T7Kh7UVWZBc74fD4YDHokB5r5qACDdJjzeiTEQe3V4VPVVFU7oXd7YNOltHCZoROltG3VRzb0ROFkYRv16Dz4w8CAPb8/Qkc/+PFIc6IiIiIiIjozLEwTkRERNQIovQKCu1ulLt9SIo2BYu6Rp0Cg0VGXqkLEIE4ql7UyWK4ONlu3ucXEBCQIEGRAaEKSJKEKANfQy0kWYLZqEBIAmaDAkgs6J4pWZaQEc+282eqoh39sRInCkpdMOoCg4T0igyDIqNFtInt6InCSNRv+9F78nhIqoqj11yPQxNuD3VKREREREREZ4WFcSIiIqJGECjlShCoqdATuI1znWsWbdIjPsqA/DIXTpR7EZgYLgBIkKTAGkFJ0UZEm9h+uTb788uw7IeDOOHwID3WjCiDDuUeH3YcK0VOiYutwKlRtE+yoXOKDd/vK0RBmQt+IaBIElrYTDi/Ywvug0RhQldagr43j4G+tBhFfQdix+MLOJCKiIiIiIiaLBbGiYiIiBqB0+tHotUASQJOODywmn5vpW53+WA16ZBgMcDp9Yc61bBlM+mRGmtCocMNr1c95by8gKoCOr2M1BgTbCyM10hVBT7bnocTDg86JFmDnQtsJj2sRh325dvx+Y48tE20crYuNag1u/KwYv0huLx+pMeZoVNk+PwqSp0+rFh/CGmxZlzaJTnUaRJFNr8fPe+6GdYDe+FMTcfPr7wJYTSGOisiIiIiIqKzxsI4ERERUSOwGHRItBqRaDUgp8SNonJPcE3dpGgTUqKNACRYDPx4VpPUaBN0sgydLAM6AbdPQIhA+3SjToJOlqFXZKRGm0KdatjKLnbiQIEdqTG/t/OvIEkSUmNM2J9vR3axky3CqcH4fCqW/3AQZS4vWsWbIcty8LZYsx6Hi5xYse4gLuzQAjqdXMsjEVFD6vj0P5D01WfwG034efFb8CRxsAoRERERETVtPPNKRERE1AjSY81o18KK7cdK0L91LOxuPzx+FQZFhtWoYH+BAz3SY5Aeaw51qmErp9QFn6oCJ1cWt5oUKBLgF4DHp0JAwOtXkVPqYlG3Bg6PDy6fH1GG6vczs0FBXqkLDo+vkTOjSLL5SBEOHncgwWKoVBQHAFmWkWAx4LdCBzYfKcLANgkhypIosqV+8G+0/eczAIDt8/6J0h59QpwRERERERHRuePweyIiIqJGIMsSsronI95iwP4CByQJiI3SQ5KA/QUOxFsMGNYtme2ra1Hm8uK43QObUYe4KD1kSYIqAFmSEBelR7RRhxMOD8pc3lCnGrYsBh1MOgXlNRS+nR4/jDqFnQuoQR13eOD1qzAblGpvNxsUeP0qjjs8jZwZEQFA9Laf0f2+vwEAfr19KnJGXhPijIiIiIiIiOoHz3gRERERNZL2STZMGJKJz7bn4UCBHXmlLhh1Cnqkx2BYt2S0T7KFOsWwZnf74PT6YTMH1sP2+FT4hYAiSTDoZNjdPpS5fLC7Odu5Jqd2LrAadZXaqQshkFPiYucCanAJFgP0igynxw+bqepYbafHD70SmDlORI3LkJ+HPhOvg+J2If+SLOy9b1aoUyIiIiIiIqo3LIwTERERNaL2STa0vciK7GInHB4fLAYd0mPNnCmugdWkg9mgwO1VYTUCRv3vs02FEHB7VUQZFFhN/Ihbk4rOBcdKnNiXH1hr3GxQ4PT4kVPiYueCM6Sqgu/ls9A3Iw6ZCRbszS+DxaBUaqeuqoGZ4p2SbeibERfCLIkij+R2o89tf4U5Jxv2dh3xy3NLAKX6zg5ERERERERNEVupExERETUyWZaQER+FzinRyIiPYiFNI5tRj1bxUdApEk44PHD7/FCFgNvnxwmHBzqdjIz4KNiM+lCnGtYqOhd0T4tBcbkXBwsdKC73okd6DCYMyWTnAo3255fh5bUH8OwXe/H8mn149ou9eHntAezPLwt1amFPp5MxfkgmbCY9Dhc5UebywqeqKHN5cbjIiWiTHuPOy4ROx6+rRI1GCHT7+1TEbd4Ab3QMNr+6Er7omFBnRUREREREYeSll15CZmYmTCYTBg0ahA0bNtQYu3jxYpx//vmIi4tDXFwchg4dWmt8Y+F0GiIiIiJqEtJjzeiTEQe3V4VPVVFU7oXd7YNOltHCZoROltG3VRzbgGvAzgXnZn9+GZb9cBAnHB6kxpgQZTCj3OPD9mMlOFbi5AADDS7tkgwAWP7DQRw87sAJhwd6RUanZBvGnZcZvJ2IGkfr5QvR8u1/Qcgytr64HOVtO4Q6JSIiIiIiCiOrVq3CtGnTsHDhQgwaNAgLFixAVlYW9uzZg6SkpCrxa9euxXXXXYfzzjsPJpMJc+fOxbBhw7Bjxw6kp6eH4BkEsDBORERERE3CqW3Aj9vdaBlnhiJL8KsCZS4fEqxGtgE/AxWdC+jMqKrAZ9vzcMLhQYcka3CddptJD6tRh335dny+Iw9tE63cF+twaZdkXNihBTYfKcJxhwcJFgP6ZsRxpjhRI4v/fi06PToTALDngcdQeOHQEGdERERERETh5plnnsHEiRMxYcIEAMDChQvx8ccfY+nSpZgxY0aV+DfeeKPS9VdffRXvvvsu1qxZgxtvvLFRcq4OC+NERERE1GRUtAH/bHseDhTYUe7xwahT0LNlLIZ1S+Ys3TPA9bHPTnaxEwcKAuuzVxTFK0iShNQYE/bn25Fd7OTAAw10OhkD2ySEOg2iiGU+9Ct6/+1GyH4/skdfh4O3TAl1SkRERERE1IjKyspQWloavG40GmE0GivFeDwebNq0CTNnzgxuk2UZQ4cOxfr16zX9nvLycni9XsTHx9dP4meJhXEiIiIialLYBvzc7c8vCw4ucPn8MOkUtGthRVZ3Di6oi8Pjg8vnR5Sh+pb9ZoOCvFIXHB5fI2dGRHRmFHsZ+t5yLQwlRSju0x87nngekPi3lIiIiIgoknTt2rXS9VmzZmH27NmVthUWFsLv9yM5ufKyZ8nJydi9e7em3zN9+nSkpaVh6NDQdqhiYZyIiIiImhy2AT97XB/73FgMOph0Cso9PthM+iq3Oz1+GHUKLAZ+1SKiMKaq6Dl1Imx7d8GVlIKfX3kTqskU6qyIiIiIiKiR7dy5s9Ka36fPFq8PTz75JFauXIm1a9fCFOLvHTxbQ0RERERNDtuAnx2uj33u0mPNaNfCiu3HSmA16iq1UxdCIKfEhR7pMUiPrX5GORFROGj/zONI/vxj+I1G/Lz4LbiTU0OdEhERERERhYDNZkN0dHStMYmJiVAUBXl5eZW25+XlISUlpdb7Pv3003jyySfx5ZdfomfPnuec77liYZyIiIiImhS2AT97XB/73MmyhKzuyThW4sS+/MBraTYocHr8yClxId5iwLBuyRxYQERhK+Wj99D+hacAADuefAElvfuHOCMiIiIiIgpnBoMB/fr1w5o1azBq1CgAgKqqWLNmDaZMmVLj/Z566ik8/vjj+Oyzz9C/f3h875BDnQARERERkVYVbcC3HytBbJQebROtiI3SY/uxEiz74SD255eFOsWw9vv62NWPjzUbFLh9fq6PXYf2STZMGJKJ7mkxKC734mChA8XlXvRIj2EreqII0eOe2zC8tQ1dH7irym1d/j4Nw1vb0OOe26rcFrvpJ2S1iUHf8aOr3GY+cgjDW9uqvcRs3nBG+cWv/w6Dr/gjhnVIwPkX9EL6v18HANi2b0WPeyYBAH679U4c+/N1AADZ5UKPe27DkGGDMKxtLPpMvLZq7hvXYdCfh+KSXq1wWccW+OMlfdH61RcrB/n9aP/0o7hgSHdc1rEFLji/J9o9NxcQ4ozyJyIiIiKi8DJt2jQsXrwYK1aswK5du3D77bfD4XBgwoQJAIAbb7wRM2fODMbPnTsXDz30EJYuXYrMzEzk5uYiNzcXdrs9VE8BAGeMExEREVETwTbg547rY9ef9kk2tL3Iypb+RBHMmdYSqf99F7sffhKqKbB8guxyIe2Df8OZnlHtfdJXvYZD4yeh5arXYMzLqbaF+YY3/gt7xy6Vtnnj4jXnZT58EH0nXI0jY2/CL8+9ioQfvkG36VPgN5rRac7fobicKLjwMuyZ8Y/gfSTVD7/JjEMTJiH50w+rfVy/2YLD425DWZfu8JujELtxPbo9cBf8UVE4+tebAABtX34GrV5/FdvmvwJ7xy6I/uVn9Ljvdviio3Fowu2anwMREREREYWXMWPGoKCgAA8//DByc3PRu3dvrF69GsnJyQCAw4cPQ5Z/n4/98ssvw+Px4Oqrr670OLNmzcLs2bMbM/VKeMaLiIiIiJoEtgE/d1wfu37JssR9jSiClXbvhahDvyH50w+R839jAADJqz+EM70lnBmtq8QrDjtSP3oP6//7DYwFeUj/9+v4dcp9VeK8cfHwJCWfdV4ZbyyBM6M19jw0BwDg6NAZcRt+QNcH74KhtASOtu2x9YWlgKIE7+OPsmDn4wsAAHH/+xG60pIqj1vWvRfKuvcKXndmtEby6g8Rt2F9sDAeu+kn5F82AgWXDg/GpH74b8Rs2XTWz4eIiIiIiMLDlClTamydvnbt2krXDx482PAJnQW2UiciIiKiJoFtwM9dxfrY8RYD9uaWYV9+KfbklmJffin25pZxfWwiojN09C83BNuUA0D62/9C9jXXVxub8tF7cLTrCEe7jjj2f2OQ/vbrZ9xivKLdevz672qMid28Acf/ePHvG4SAsbAAhtISeG3R2PzqKvhiYs/o91bHtn0r4jb/hKJBQ4LbivsNQsK6bxD1675AzM5tiPvfehRcdNk5/z4iIiIiahwvvfQSMjMzYTKZMGjQIGzYUPuyPv/+97/RuXNnmEwm9OjRA5988kml259++mkkJSUhKSkJ8+fPr3TbTz/9hH79+sHn47kcahycMU5ERERETQLbgNeP9kk2dE6x4dV9hSgoc8EvBBRJQgubCbd0SOT62EREZ+DY/41Bx6dmw3T0MIDAbOutLy5D/I9VC9ctV72GYydnlhdeeBn0Zbcj/sfvcWLw+ZXi/vDnoRBy5XkMX+7KBQCoej3s7TrAb665s4exIA+exBbB6xn/ehXxP30PAPjl6ZfhaNfxLJ7p7y4a1AmGE4WQfD7sv/sBHL1ufPC2X/92D3T2Mpx/ST8IRYHk92PffQ8HZ9QTERERUXhbtWoVpk2bhoULF2LQoEFYsGABsrKysGfPHiQlJVWJX7duHa677jrMmTMHV155Jd58802MGjUKmzdvRvfu3fHLL7/g4YcfxkcffQQhBK688koMGzYMPXr0gM/nw6RJk7Bo0SLodDyXQ42DexoRERERNQlsA14/1uzKw4r1h+D0+pAWa4ZBJ8PjU1Hq8mLF+kNIizXj0i5n38KXiCiSeBNaoODiLKS/8wYkIVBwSRa88YlV4iwH9iJm6yb8vOgtAIDQ6ZBz5Wikr3qtSmF8y0vL4Wjfqdrf505Jw/dfbdacX/y6b9HlkfuD14/Xw8ztn/79GZRyB2J/3oCOT85CeWZb5Iy8BkBgVnzq+29j6/NLA2uM7/wFnR+ZDldyKo5dPfacfzcRERERNaxnnnkGEydOxIQJEwAACxcuxMcff4ylS5dixowZVeKfe+45DB8+HPfdF1gi6NFHH8UXX3yBF198EQsXLsTu3bvRs2dPXHLJJQCAnj17Yvfu3ejRowfmzZuHCy64AAMGDGi8J0gRj4VxIiIiImoSKtqAHytxYl9+YK1xs0GB0+NHTomLbcA18PlULP/hIMpcXrSOj4J8yozEuCg9Dhc5sWLdQVzYoQV0Oq66RESkRfZfbkCXh+8FAOx8dH61MemrXoPs8+GigR2C2yQhoBqM2PWPp+GLjglud6W2RHlmu7POx90iGYbCApgPH0Tvv90A2edDUZ8BsO7fA9V07oPHnK0yAQD2zt1gKChA+wVPBAvjnZ74O367fRpy/3R1MMZ09Aja/nM+C+NEREREYc7j8WDTpk2YOXNmcJssyxg6dCjWr19f7X3Wr1+PadOmVdqWlZWF999/HwDQo0cP7N27F4cPH4YQAnv37kX37t1x4MABLFu2DJs2bWqw50NUHRbGiYiIiKjJaJ9kw4Qhmfhsex4OFNiRV+qCUaegR3oMhnVLZhvwOmw+UoSDxx1IsBgqFcWBwJfdBIsBvxU6sPlIEQa2SQhRlkRETUvBRZehm9cDSBIKLxxa5XbJ50P6e29h99+fQOEFl1a6rc/E65D64Ts4cv3N9ZZPcd+BaLFmNRLWfQND0QmU9OwLV3pGpeJ7fZGECtnjCV5XnOVV2sBDkSGpar3/biIiIiKqX4WFhfD7/UhOrtxFLjk5Gbt37672Prm5udXG5+YGlgLq0qULnnjiCVx2WaBz0Zw5c9ClSxcMHToUTz31FD777DPMnj0ber0ezz33HC644IIGeGZEv2NhnIiIiIialPZJNrS9yIrsYiccHh8sBh3SY82cKa7BcYcHXr8Ks0GBEAIenxpcY9ygk2E2KDjh8OC4w1P3gxERUYCi4Ls1/wv+fLoWaz6FvqQYR8fcWKU4nXf5n9By1WuVCuP6ohMw5OdVivNFx0A1mWDMPYYBf70S255ZhJLe/X8P8PsRv2EdjPm5KO3SHZmLXoCs+uGOS0DusCvR4dnHsXnZO8HwVstfQfJn/8XGtz4KbrPs3Q3Z64G+uAiK3Q7bjl8AAGXdegbus2IRnOktg2uUx/30A9oseh6Hxk8KPkbB0MvR7sV5cKW1hL1jF9h2bEXmqy/i6F9uOJNXlIiIiIiakUmTJmHSpN8/M65YsQI2mw2DBw9Gp06dsHHjRhw9ehTXXnstfvvtNxiNxhBmS80dC+NERERE1OTIsoSM+KhQp9HkJFgM0Csyiss9cHsFnF4/VCEgSxLMegVGvQS9Epg5TkRE2vlt0TXe1nLVaygcclG1M7bzLh+JtgsXwLprO/zWQNeTgWOvqhK35YVlyP3T1ZC9XlgP7IPidAZvS/70A3R+ZDrMOdmV7iMA6MtKkfH2v7Bj7ouVZrMbio4j6vBvleL7TxgN89HDwetDrhgCAFh9qCywQVXRce5smI8cgtDpUN6qDfbM+AeOjL0peJ+djzyNDvMfQ9eHpsFQWAB3ciqO/PUm7L+r6nqURERERBReEhMToSgK8vIqD9LMy8tDSkpKtfdJSUk5o/jCwkI88sgj+Pbbb/HTTz+hY8eO6NChAzp06ACv14u9e/eiR48e9fOEiKrBwjgRERERUYTomxGHJJsRO3NKYVQkGA06KJIMvxCwuzw47hDomhaNvhlxoU6ViCisbZv/Sq23/7x4ZfDnzUv/XWNcSe/+vxeegUo/V8eZ0bpSTPKnH6D37TcAQlQbv/XFZci7fGSV7funPoD9Ux+otO2bH3bU+rsPT5iEwxMm1Rrjt9qwe9Zc7J41t9Y4IiIiIgo/BoMB/fr1w5o1azBq1CgAgKqqWLNmDaZMmVLtfQYPHow1a9bg7rvvDm774osvMHjw4Grjp06diqlTp6Jly5bYuHEjvF5v8Dafzwe/319vz4eoOiyMExERERFFCFmW0Do+Crtzy+BVAZ0qIMuAXxXwqoAsSciMj2JbeiKipsDvR+dHpgNCoNqjtiSh8yPTkTfsympbvBMRERERnW7atGkYN24c+vfvj4EDB2LBggVwOByYMGECAODGG29Eeno65syZAwC46667cOGFF2L+/PkYMWIEVq5cif/9739YtGhRlcf+4osvsHfvXqxYsQIAMGDAAOzevRuffvopjhw5AkVR0KlTp8Z7shSRWBgnIiIiIooQ2cVOQJIwuF089uTaUeL0wqkKKLKEBKsBHZOtEJCQXexkq3oiojAXv2Fdlfbpp5KEgDknG/Eb1uHE4PMbMTMiIiIiaqrGjBmDgoICPPzww8jNzUXv3r2xevVqJCcnAwAOHz4MWZaD8eeddx7efPNN/P3vf8cDDzyADh064P3330f37t0rPa7T6cSUKVOwatWq4P1btmyJF154ARMmTIDRaMSKFStgNpsb78lSRGJhnIiIiIgoQjg8Prh8fnROiUGXlGjklLhQ7vUjSq8gNcYEFcDBQgccHl+oUyUiojoY83PrNY6IiIiICACmTJlSY+v0tWvXVtl2zTXX4Jprrqn1Mc1mM/bs2VNl+y233IJbbrnlrPIkOhssjBMRERERRQiLQQeTTkG5xwebSY/0uMqzwh0uL4w6BRYDvyYQEYU7d1JKvcYRERERERE1d3LdIURERERE1Bykx5rRroUVOSUuCCEq3SaEQE6JC+2TrEiPZesyIqJwd2LgeXCmpkNI1a4wDiFJcKam48TA8xo5MyIiIiIiovDEwjgRERERUYSQZQlZ3ZMRbzFgX74dZS4vfKqKMpcX+/LtiLcYMKxbMmS5+iILERGFEUXB7llzAaBKcbzi+u5ZcwFFafTUiIiIiIiIwhEL40REREREEaR9kg0ThmSie1oMisu9OFjoQHG5Fz3SYzBhSCbaJ9lCnSIREWmUd/lIbHn5X3ClpFXa7kpJw5aX/4W8y0eGKDMiIiIiIqLww8UDiYiIiIgiTPskG9peZEV2sRMOjw8Wgw7psWbOFCciaoLyLh+JvGFXIn7DOhjzc+FOSgm0T+dMcSIiIiICcPz4cXTp0gUbNmxAZmZmqNM5azNmzIDD4cALL7wQ6lSoCeOM8ZM+/vhjDBo0CGazGXFxcRg1alSoUyIiIiIiajCyLCEjPgqdU6KRER/FojgRUVOmKDgx+HzkjLwGJwafz6I4EREREQU9/vjjGDlyZIMUxb1eL6ZPn44ePXrAYrEgLS0NN954I44dO1YpLjMzE5IkVbo8+eSTwdvXrl2LkSNHIjU1FRaLBb1798Ybb7xR6THuvfderFixAr/++mu9Pw+KHCyMA3j33Xdxww03YMKECdi6dSt++OEH/PWvfw11WkRERERERERERERERERnpby8HEuWLMHNN9/cYI+/efNmPPTQQ9i8eTPee+897NmzB3/605+qxP7jH/9ATk5O8HLHHXcEb1u3bh169uyJd999F7/88gsmTJiAG2+8ER999FEwJjExEVlZWXj55Zcb5LlQZIj4Vuo+nw933XUX5s2bV+nA0LVr1xBmRURERERERERERERERHT2PvnkExiNRvzhD38AEJiZffHFF+PLL7/E9OnTsXPnTvTu3RvLli1Dp06dzvjxY2Ji8MUXX1Ta9uKLL2LgwIE4fPgwWrVqFdxus9mQkpJS7eM88MADla7fdddd+Pzzz/Hee+/hyiuvDG6/6qqr8OCDD2LevHlnnCsRwBnj2Lx5M7KzsyHLMvr06YPU1FRcfvnl2L59e6hTIyIiIiIiIiIiIiIiIjor3333Hfr161dl+4MPPoj58+fjf//7H3Q6HW666aZK97FarbVeTm9zfqqSkhJIkoTY2NhK25988kkkJCSgT58+mDdvHnw+X625l5SUID4+vtK2gQMH4ujRozh48GDdT56oGhE/Y7xiLYLZs2fjmWeeQWZmJubPn4+LLroIe/furfKmq+B2u+F2u4PXS0tLGyVfIiIiIiIiIiIiIiIiorocOnQIaWlpVbY//vjjuPDCCwEAM2bMwIgRI+ByuWAymdC/f39s2bKl1sdNTk6udrvL5cL06dNx3XXXITo6Orj9zjvvRN++fREfH49169Zh5syZyMnJwTPPPFPt47z99tvYuHEjXnnllUrbK57LoUOHGmTNdGr+mm1hfMaMGZg7d26tMbt27YKqqgACo2NGjx4NAFi2bBlatmyJf//737jtttuqve+cOXPwyCOP1G/SRERERERERERERERERPXA6XTCZDJV2d6zZ8/gz6mpqQCA/Px8tGrVCmazGe3btz/j3+X1evGXv/wFQogq64BPmzat0u82GAy47bbbMGfOHBiNxkqxX3/9NSZMmIDFixejW7dulW4zm80AAmubE52NZlsYv+eeezB+/PhaY9q2bYucnBwAldcUNxqNaNu2LQ4fPlzjfWfOnFnpjVxaWoqMjIxzS5qIiIiIiIiIiIiIiIioHiQmJqKoqKjKdr1eH/xZkiQACE4k/e6773D55ZfX+rivvPIKxo4dG7xeURQ/dOgQvvrqq0qzxaszaNAg+Hw+HDx4sNLa5t988w2uuuoqPPvss7jxxhur3O/EiRMAgBYtWtT6+EQ1abaF8RYtWmh6Y/Tr1w9GoxF79uzBH//4RwCBN/DBgwfRunXrGu9nNBqrjGIhIiIiIiIiIiIiIiIiCgd9+vTB66+/fkb3OdNW6hVF8X379uHrr79GQkJCnb9jy5YtkGUZSUlJwW1r167FlVdeiblz5+LWW2+t9n7bt2+HXq+vMpOcSKtmWxjXKjo6GpMmTcKsWbOQkZGB1q1bY968eQCAa665JsTZEREREREREZ29l156CfPmzUNubi569eqFF154AQMHDgx1WkRERERE1AiysrIwc+ZMFBUVIS4uTtN9zqSVutfrxdVXX43Nmzfjo48+gt/vR25uLgAgPj4eBoMB69evx08//YSLL74YNpsN69evx9SpU3H99dcHc/r6669x5ZVX4q677sLo0aODj2EwGBAfHx/8fd999x3OP//8YEt1ojMlhzqBcDBv3jxce+21uOGGGzBgwIBgqwetBwkiIiIiIiKicLNq1SpMmzYNs2bNwubNm9GrVy9kZWUhPz8/1KkREREREVEj6NGjB/r27Yu33367QR4/OzsbH374IY4ePYrevXsjNTU1eFm3bh2AQAfmlStX4sILL0S3bt3w+OOPY+rUqVi0aFHwcVasWIHy8nLMmTOn0mP8+c9/rvT7Vq5ciYkTJzbIc6HIIAkhRKiTaA5KS0sRExODkpKSOtdOICIiIiIioqajqX7fGzRoEAYMGIAXX3wRQGDNwIyMDNxxxx2YMWNGnfc/evQoMjIycOTIEbRs2bKh0z0rqw/bQ50ChbHhrayhToH7KNUoHPZPgPso1Yz7KIW7cNlHm4KPP/4Y9913H7Zv3w5ZbrrzZT/99FPcc889+OWXX6DTRXxD7HPWFL7vNYSm+w4gIiIiIiIiomp5PB5s2rQJQ4cODW6TZRlDhw7F+vXrQ5gZERERERE1phEjRuDWW29FdnZ2qFM5Jw6HA8uWLWNRnM4J9556UjHxvrS0NMSZEBERERERUX2q+J7XlBquFRYWwu/3Izk5udL25ORk7N69u9r7uN1uuN3u4PWSkhIAQE5OTsMleo4KchyhToHC2FHZEuoUuI9SjcJh/wS4j1LNuI9SuAuXfbSpuPrqqwEEZgk3VX/4wx8ANO3nEE4qvuepqhriTBoXC+P1pKysDACQkZER4kyIiIiIiIioIZSVlSEmJibUaTSYOXPm4JFHHqmyfeDAgSHIhoiIiIiIiBpaXl4eWrVqFeo0Gg0L4/UkLS0NR44cgc1mgyRJoU6nWqWlpcH1AprSunjUvHA/pHDA/ZDCAfdDCgfcDykcNIX9UAiBsrIypKWlhToVzRITE6EoCvLy8iptz8vLQ0pKSrX3mTlzJqZNmxa87vP5sGvXLmRkZDTptQgjRVlZGbp27YqdO3fCZrOFOh2iKriPUrjjPkrhjvsohTvuo02LqqrIy8tDnz59Qp1Ko2JhvJ7IstxkFqePjo4O2xNOFDm4H1I44H5I4YD7IYUD7ocUDsJ9P2xqM8UNBgP69euHNWvWYNSoUQACJz7WrFmDKVOmVHsfo9EIo9FYaduQIUMaOlWqJxUt/9PT08P6vUSRi/sohTvuoxTuuI9SuOM+2vRE0kzxCiyMExERERERETVD06ZNw7hx49C/f38MHDgQCxYsgMPhwIQJE0KdGhEREREREVGjY2GciIiIiIiIqBkaM2YMCgoK8PDDDyM3Nxe9e/fG6tWrkZycHOrUiIiIiIiIiBodC+MRxGg0YtasWVVa4xE1Ju6HFA64H1I44H5I4YD7IYUD7ocNa8qUKTW2Tqfmhe8lCnfcRynccR+lcMd9lMId91FqCiQhhAh1EkRERERERERERERERERERA1FDnUCREREREREREREREREREREDYmFcSIiIiIiIiIiIiIiIiIiatZYGCciIiIiIiIiIqJztnbtWkiShOLi4lCnQlQn7q8USqHe/2bPno3evXuH5HcTEYUSC+MR4qWXXkJmZiZMJhMGDRqEDRs2hDoliiBz5szBgAEDYLPZkJSUhFGjRmHPnj2hTosi3JNPPglJknD33XeHOhWKQNnZ2bj++uuRkJAAs9mMHj164H//+1+o06II4vf78dBDD6FNmzYwm81o164dHn30UQghQp0aNWPffvstrrrqKqSlpUGSJLz//vuVbhdC4OGHH0ZqairMZjOGDh2Kffv2hSZZokY0fvx4SJIUvCQkJGD48OH45ZdfQp0aNUMV+9ukSZOq3DZ58mRIkoTx48c3fmJngUUd0mr9+vVQFAUjRoyoNW758uWIjY1tnKSoyWno42dD7H9z5syBoiiYN29enbHjx4/HqFGj6vX3U3g4/bNmxWX48OF13jczMxMLFixo+CSJGhEL4xFg1apVmDZtGmbNmoXNmzejV69eyMrKQn5+fqhTowjxzTffYPLkyfjxxx/xxRdfwOv1YtiwYXA4HKFOjSLUxo0b8corr6Bnz56hToUiUFFREYYMGQK9Xo9PP/0UO3fuxPz58xEXFxfq1CiCzJ07Fy+//DJefPFF7Nq1C3PnzsVTTz2FF154IdSpUTPmcDjQq1cvvPTSS9Xe/tRTT+H555/HwoUL8dNPP8FisSArKwsul6uRMyVqfMOHD0dOTg5ycnKwZs0a6HQ6XHnllaFOi5qpjIwMrFy5Ek6nM7jN5XLhzTffRKtWrUKYWYDH4wl1CtTMLFmyBHfccQe+/fZbHDt2LNTpUBMW7sfP0y1duhT3338/li5dGupUKMRO/axZcXnrrbfq5bH9fj9UVa2XxyJqDCyMR4BnnnkGEydOxIQJE9C1a1csXLgQUVFR/INIjWb16tUYP348unXrhl69emH58uU4fPgwNm3aFOrUKALZ7XaMHTsWixcvZiGSQmLu3LnIyMjAsmXLMHDgQLRp0wbDhg1Du3btQp0aRZB169Zh5MiRGDFiBDIzM3H11Vdj2LBh7CpEDeryyy/HY489hv/7v/+rcpsQAgsWLMDf//53jBw5Ej179sRrr72GY8eOVZlZTtQcGY1GpKSkICUlBb1798aMGTNw5MgRFBQUAACmT5+Ojh07IioqCm3btsVDDz0Er9cbvP/WrVtx8cUXw2azITo6Gv369Qt2ozl06BCuuuoqxMXFwWKxoFu3bvjkk0+C9/3mm28wcOBAGI1GpKamYsaMGfD5fI37AlCj6tu3LzIyMvDee+8Ft7333nto1aoV+vTpE9zmdrtx5513IikpCSaTCX/84x+xcePGSo/1ySefoGPHjjCbzbj44otx8ODBKr/v+++/x/nnnw+z2YyMjAzceeedlQbKZ2Zm4tFHH8WNN96I6Oho3HrrrQBq3++XL1+ORx55BFu3bg3OfFu+fDkA4PDhwxg5ciSsViuio6Pxl7/8BXl5efX18lETY7fbsWrVKtx+++0YMWJEcD853dq1azFhwgSUlJQE96nZs2cDCAxuvvHGGxEXF4eoqChcfvnl7GoTobQePwFtx9AKDbH/ffPNN3A6nfjHP/6B0tJSrFu3rsbY2bNnY8WKFfjggw+Cv3/t2rUAgG3btuGSSy6B2WxGQkICbr31Vtjt9jp/P4WXUz9rVlzi4uIghMDs2bPRqlUrGI1GpKWl4c477wQAXHTRRTh06BCmTp0a3C+A37sbfPjhh+jatSuMRiMOHz4Mt9uNe++9F+np6bBYLBg0aFBwPzr1fh999BE6deqEqKgoXH311SgvL8eKFSuQmZmJuLg43HnnnfD7/cH78RhM9Y2F8WbO4/Fg06ZNGDp0aHCbLMsYOnQo1q9fH8LMKJKVlJQAAOLj40OcCUWiyZMnY8SIEZWOi0SN6cMPP0T//v1xzTXXICkpCX369MHixYtDnRZFmPPOOw9r1qzB3r17AQQKKt9//z0uv/zyEGdGkeq3335Dbm5upb/PMTExGDRoEL+3UMSx2+14/fXX0b59eyQkJAAAbDYbli9fjp07d+K5557D4sWL8eyzzwbvM3bsWLRs2RIbN27Epk2bMGPGDOj1egCBz79utxvffvsttm3bhrlz58JqtQIILO9yxRVXYMCAAdi6dStefvllLFmyBI899ljjP3FqVDfddBOWLVsWvL506VJMmDChUsz999+Pd999FytWrMDmzZvRvn17ZGVl4cSJEwCAI0eO4M9//jOuuuoqbNmyBbfccgtmzJhR6TEOHDiA4cOHY/To0fjll1+watUqfP/995gyZUqluKeffhq9evXCzz//jIceeghA7fv9mDFjcM8996Bbt27BmW9jxoyBqqoYOXIkTpw4gW+++QZffPEFfv31V4wZM6beX0NqGt5++2107twZnTp1wvXXX4+lS5dWu3zQeeedhwULFiA6Ojq4T917770AAm2I//e//+HDDz/E+vXrIYTAFVdcUWmAEkUOLcdPoO5j6KkaYv9bsmQJrrvuOuj1elx33XVYsmRJjbH33nsv/vKXv1SaVXzeeefB4XAgKysLcXFx2LhxI/7973/jyy+/rHIMp6br3XffxbPPPotXXnkF+/btw/vvv48ePXoACAz6aNmyJf7xj38E94sK5eXlmDt3Ll599VXs2LEDSUlJmDJlCtavX4+VK1fil19+wTXXXIPhw4dXKmKXl5fj+eefx8qVK7F69WqsXbsW//d//4dPPvkEn3zyCf71r3/hlVdewTvvvBO8D4/BVO8ENWvZ2dkCgFi3bl2l7ffdd58YOHBgiLKiSOb3+8WIESPEkCFDQp0KRaC33npLdO/eXTidTiGEEBdeeKG46667QpsURRyj0SiMRqOYOXOm2Lx5s3jllVeEyWQSy5cvD3VqFEH8fr+YPn26kCRJ6HQ6IUmSeOKJJ0KdFkUQAOI///lP8PoPP/wgAIhjx45VirvmmmvEX/7yl0bOjqhxjRs3TiiKIiwWi7BYLAKASE1NFZs2barxPvPmzRP9+vULXrfZbDV+lujRo4eYPXt2tbc98MADolOnTkJV1eC2l156SVitVuH3+8/yGVE4GzdunBg5cqTIz88XRqNRHDx4UBw8eFCYTCZRUFAgRo4cKcaN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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "Matrice di Confusione per Livelli di Rischio UV:\n",
- " Basso Moderato Alto Molto Alto Estremo\n",
- "Basso 2931 19 0 2128 390\n",
- "Moderato 41 40299 0 995 11\n",
- "Alto 13 0 0 0 239\n",
- "Molto Alto 863 2454 0 8063 142\n",
- "Estremo 1878 1 0 169 4230\n",
- "\n",
- "Analisi Precisione Predizioni UV Index:\n",
- "Precisione esatta (±0.1): 55.1%\n",
- "Precisione entro 0.5 punti: 71.1%\n",
- "Precisione entro 1.0 punti: 86.1%\n",
- "Precisione livello di rischio: 85.6%\n",
- "\n",
- "Analisi errori per livello UV:\n",
- "MAE per UV Basso (0-2): 0.138 (n=41346)\n",
- "MAE per UV Moderato (2-5): 0.906 (n=11522)\n",
- "MAE per UV Alto (5-7): 0.877 (n=5468)\n",
- "MAE per UV Molto Alto (7-10): 0.758 (n=6278)\n",
- "MAE per UV Estremo (10-11): 1.528 (n=252)\n",
- "\n",
- "Statistiche degli errori:\n",
- "Media errori: 0.006\n",
- "Deviazione standard errori: 0.783\n",
- "Errore mediano: 0.000\n",
- "95° percentile errore assoluto: 1.723\n",
- "\n",
- "Distribuzione degli errori:\n",
- "Predizioni entro ±0.5: 71.1%\n",
- "Predizioni entro ±1.0: 86.1%\n",
- "Predizioni entro ±1.5: 93.2%\n",
- "Predizioni entro ±2.0: 96.5%\n"
- ]
- }
],
- "source": [
- "def plot_advanced_prediction_analysis(y_true, y_pred, folder_name=None):\n",
- " \"\"\"\n",
- " Funzione per visualizzare l'analisi degli errori di predizione e la precisione\n",
- "\n",
- " Parameters:\n",
- " -----------\n",
- " y_true : array-like\n",
- " Valori reali\n",
- " y_pred : array-like\n",
- " Valori predetti\n",
- " folder_name : str, optional\n",
- " Cartella dove salvare i plot. Se None, i plot non vengono salvati.\n",
- " \"\"\"\n",
- " import os\n",
- " from datetime import datetime\n",
- " import seaborn as sns\n",
- "\n",
- " # Converti in array numpy 1D se necessario\n",
- " if isinstance(y_true, pd.Series):\n",
- " y_true = y_true.values\n",
- " if isinstance(y_pred, pd.Series):\n",
- " y_pred = y_pred.values\n",
- "\n",
- " y_true = y_true.ravel()\n",
- " y_pred = y_pred.ravel()\n",
- "\n",
- " # Calcola gli errori\n",
- " errors = y_pred - y_true\n",
- "\n",
- " # Calcola accuracy per diversi livelli di tolleranza\n",
- " exact_accuracy = np.mean(np.abs(errors) < 0.1) * 100\n",
- " accuracy_05 = np.mean(np.abs(errors) <= 0.5) * 100\n",
- " accuracy_10 = np.mean(np.abs(errors) <= 1.0) * 100\n",
- "\n",
- " def get_risk_level(uv):\n",
- " if uv < 2:\n",
- " return 'Basso'\n",
- " elif uv < 5:\n",
- " return 'Moderato'\n",
- " elif uv < 7:\n",
- " return 'Alto'\n",
- " elif uv < 10:\n",
- " return 'Molto Alto'\n",
- " else:\n",
- " return 'Estremo'\n",
- "\n",
- " y_true_risk = [get_risk_level(x) for x in y_true]\n",
- " y_pred_risk = [get_risk_level(x) for x in y_pred]\n",
- " risk_accuracy = np.mean(np.array(y_true_risk) == np.array(y_pred_risk)) * 100\n",
- "\n",
- " # Crea la figura principale\n",
- " fig = plt.figure(figsize=(20, 10))\n",
- "\n",
- " # Plot 1: Distribuzione degli errori\n",
- " plt.subplot(2, 2, 1)\n",
- " plt.hist(errors, bins=50, alpha=0.7)\n",
- " plt.title('Distribuzione degli Errori di Predizione')\n",
- " plt.xlabel('Errore')\n",
- " plt.ylabel('Frequenza')\n",
- "\n",
- " # Plot 2: Actual vs Predicted\n",
- " plt.subplot(2, 2, 2)\n",
- " plt.scatter(y_true, y_pred, alpha=0.5)\n",
- " plt.plot([y_true.min(), y_true.max()], [y_true.min(), y_true.max()], 'r--', lw=2)\n",
- " plt.title('Valori Reali vs Predetti')\n",
- " plt.xlabel('Valori Reali')\n",
- " plt.ylabel('Valori Predetti')\n",
- "\n",
- " # Plot 3: Errori vs Valori Reali\n",
- " plt.subplot(2, 2, 3)\n",
- " plt.scatter(y_true, errors, alpha=0.5)\n",
- " plt.axhline(y=0, color='r', linestyle='--')\n",
- " plt.title('Errori vs Valori Reali')\n",
- " plt.xlabel('Valori Reali')\n",
- " plt.ylabel('Errore')\n",
- "\n",
- " # Plot 4: Precisione per intervallo di UV\n",
- " plt.subplot(2, 2, 4)\n",
- "\n",
- " solarradiation_ranges = [(0, 2), (2, 5), (5, 7), (7, 10), (10, 11)]\n",
- " range_labels = ['Basso\\n(0-2)', 'Moderato\\n(2-5)', 'Alto\\n(5-7)', 'Molto Alto\\n(7-10)', 'Estremo\\n(10-11)']\n",
- "\n",
- " accuracies = []\n",
- " counts = []\n",
- " mae_per_range = []\n",
- "\n",
- " for (low, high) in solarradiation_ranges:\n",
- " mask = (y_true >= low) & (y_true < high)\n",
- " if mask.any():\n",
- " mae = np.mean(np.abs(y_pred[mask] - y_true[mask]))\n",
- " mae_per_range.append(mae)\n",
- " count = np.sum(mask)\n",
- " counts.append(count)\n",
- " accuracy = np.mean(np.abs(y_pred[mask] - y_true[mask]) <= 0.5) * 100\n",
- " accuracies.append(accuracy)\n",
- "\n",
- " # Crea il grafico a barre con doppio asse y\n",
- " ax = plt.gca()\n",
- " bars = plt.bar(range_labels, accuracies, alpha=0.6, color='skyblue')\n",
- " plt.ylabel('Precisione (%)')\n",
- " plt.title('Precisione e MAE per Range UV')\n",
- "\n",
- " for bar in bars:\n",
- " height = bar.get_height()\n",
- " plt.text(bar.get_x() + bar.get_width() / 2., height,\n",
- " f'{height:.1f}%\\n(n={counts[bars.index(bar)]})',\n",
- " ha='center', va='bottom')\n",
- "\n",
- " ax2 = ax.twinx()\n",
- " line = ax2.plot(range_labels, mae_per_range, 'r-', marker='o', label='MAE')\n",
- " ax2.set_ylabel('MAE', color='red')\n",
- "\n",
- " for i, mae in enumerate(mae_per_range):\n",
- " ax2.text(i, mae, f'MAE: {mae:.3f}', color='red', ha='center', va='bottom')\n",
- "\n",
- " plt.xticks(rotation=45)\n",
- " plt.tight_layout()\n",
- "\n",
- " # Salva la figura principale se è specificata una cartella\n",
- " if folder_name is not None:\n",
- " try:\n",
- " # Crea la cartella se non esiste\n",
- " os.makedirs(folder_name, exist_ok=True)\n",
- "\n",
- " # Genera il timestamp\n",
- " timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
- "\n",
- " # Salva la figura principale\n",
- " main_plot_filename = os.path.join(folder_name, f'advanced_analysis_{timestamp}.png')\n",
- " plt.savefig(main_plot_filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"\\nPlot principale salvato come: {main_plot_filename}\")\n",
- "\n",
- " # Crea e salva la matrice di confusione come plot separato\n",
- " plt.figure(figsize=(10, 8))\n",
- " cm = confusion_matrix(y_true_risk, y_pred_risk)\n",
- " risk_levels = ['Basso', 'Moderato', 'Alto', 'Molto Alto', 'Estremo']\n",
- " cm_df = pd.DataFrame(cm, columns=risk_levels, index=risk_levels)\n",
- "\n",
- " sns.heatmap(cm_df, annot=True, fmt='d', cmap='Blues')\n",
- " plt.title('Matrice di Confusione per Livelli di Rischio UV')\n",
- " plt.tight_layout()\n",
- "\n",
- " conf_matrix_filename = os.path.join(folder_name, f'confusion_matrix_{timestamp}.png')\n",
- " plt.savefig(conf_matrix_filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"Matrice di confusione salvata come: {conf_matrix_filename}\")\n",
- "\n",
- " except Exception as e:\n",
- " print(f\"\\nErrore nel salvare i plot: {str(e)}\")\n",
- "\n",
- " plt.show()\n",
- "\n",
- " # Stampa delle statistiche e analisi\n",
- " cm = confusion_matrix(y_true_risk, y_pred_risk)\n",
- " risk_levels = ['Basso', 'Moderato', 'Alto', 'Molto Alto', 'Estremo']\n",
- " cm_df = pd.DataFrame(cm, columns=risk_levels, index=risk_levels)\n",
- "\n",
- " print(\"\\nMatrice di Confusione per Livelli di Rischio UV:\")\n",
- " print(cm_df)\n",
- "\n",
- " print(\"\\nAnalisi Precisione Predizioni UV Index:\")\n",
- " print(f\"Precisione esatta (±0.1): {exact_accuracy:.1f}%\")\n",
- " print(f\"Precisione entro 0.5 punti: {accuracy_05:.1f}%\")\n",
- " print(f\"Precisione entro 1.0 punti: {accuracy_10:.1f}%\")\n",
- " print(f\"Precisione livello di rischio: {risk_accuracy:.1f}%\")\n",
- "\n",
- " print(\"\\nAnalisi errori per livello UV:\")\n",
- " solarradiation_ranges = [(0, 2, 'Basso'), (2, 5, 'Moderato'), (5, 7, 'Alto'),\n",
- " (7, 10, 'Molto Alto'), (10, 11, 'Estremo')]\n",
- "\n",
- " for low, high, label in solarradiation_ranges:\n",
- " mask = (y_true >= low) & (y_true < high)\n",
- " if mask.any():\n",
- " mae = np.mean(np.abs(errors[mask]))\n",
- " n_samples = np.sum(mask)\n",
- " print(f\"MAE per UV {label} ({low}-{high}): {mae:.3f} (n={n_samples})\")\n",
- "\n",
- " print(\"\\nStatistiche degli errori:\")\n",
- " print(f\"Media errori: {np.mean(errors):.3f}\")\n",
- " print(f\"Deviazione standard errori: {np.std(errors):.3f}\")\n",
- " print(f\"Errore mediano: {np.median(errors):.3f}\")\n",
- " print(f\"95° percentile errore assoluto: {np.percentile(np.abs(errors), 95):.3f}\")\n",
- "\n",
- " print(\"\\nDistribuzione degli errori:\")\n",
- " thresholds = [0.5, 1.0, 1.5, 2.0]\n",
- " for threshold in thresholds:\n",
- " within_threshold = np.mean(np.abs(errors) <= threshold) * 100\n",
- " print(f\"Predizioni entro ±{threshold}: {within_threshold:.1f}%\")\n",
- "\n",
- "\n",
- "# Usa la funzione\n",
- "plot_advanced_prediction_analysis(y_test, predictions, folder_name=folder_name)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "fe898941-2338-4157-b624-680bc2c517d8",
- "metadata": {},
"outputs": [],
- "source": []
+ "execution_count": null
}
],
"metadata": {
diff --git a/src/models/uv_index/uv_index_model.ipynb b/src/models/uv_index/uv_index_model.ipynb
index 19537e7..3f8101e 100755
--- a/src/models/uv_index/uv_index_model.ipynb
+++ b/src/models/uv_index/uv_index_model.ipynb
@@ -2,23 +2,14 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 1,
"id": "8adcbe0819b88578",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'\\nfrom opt_einsum.paths import branch_1\\n!apt-get update\\n!apt-get install graphviz -y\\n\\n!pip install tensorflow\\n!pip install numpy\\n!pip install pandas\\n\\n!pip install keras\\n!pip install scikit-learn\\n!pip install matplotlib\\n!pip install joblib\\n!pip install pyarrow\\n!pip install fastparquet\\n!pip install scipy\\n!pip install seaborn\\n!pip install tqdm\\n!pip install pydot\\n!pip install tensorflow-io\\n'"
- ]
- },
- "execution_count": 1,
- "metadata": {},
- "output_type": "execute_result"
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-11-19T22:43:39.592603Z",
+ "start_time": "2024-11-19T22:43:05.800433Z"
}
- ],
+ },
"source": [
- "'''\n",
"from opt_einsum.paths import branch_1\n",
"!apt-get update\n",
"!apt-get install graphviz -y\n",
@@ -38,47 +29,211 @@
"!pip install tqdm\n",
"!pip install pydot\n",
"!pip install tensorflow-io\n",
- "'''"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "7a813e3cbca057b7",
- "metadata": {},
+ "!pip install tensorflow-addons"
+ ],
"outputs": [
{
- "name": "stderr",
+ "name": "stdout",
"output_type": "stream",
"text": [
- "2024-11-10 22:44:08.491015: E tensorflow/compiler/xla/stream_executor/cuda/cuda_dnn.cc:9342] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "2024-11-10 22:44:08.491086: E tensorflow/compiler/xla/stream_executor/cuda/cuda_fft.cc:609] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "2024-11-10 22:44:08.491139: E tensorflow/compiler/xla/stream_executor/cuda/cuda_blas.cc:1518] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "2024-11-10 22:44:08.502469: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
- "To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
+ "Requirement already satisfied: tensorflow in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (2.16.2)\r\n",
+ "Requirement already satisfied: absl-py>=1.0.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (2.1.0)\r\n",
+ "Requirement already satisfied: astunparse>=1.6.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (1.6.3)\r\n",
+ "Requirement already satisfied: flatbuffers>=23.5.26 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (24.3.25)\r\n",
+ "Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (0.4.0)\r\n",
+ "Requirement already satisfied: google-pasta>=0.1.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (0.2.0)\r\n",
+ "Requirement already satisfied: h5py>=3.10.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (3.11.0)\r\n",
+ "Requirement already satisfied: libclang>=13.0.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (18.1.1)\r\n",
+ "Requirement already satisfied: ml-dtypes~=0.3.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (0.3.2)\r\n",
+ "Requirement already satisfied: opt-einsum>=2.3.2 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (3.3.0)\r\n",
+ "Requirement already satisfied: packaging in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (24.1)\r\n",
+ "Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (4.25.4)\r\n",
+ "Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (2.32.3)\r\n",
+ "Requirement already satisfied: setuptools in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (72.1.0)\r\n",
+ "Requirement already satisfied: six>=1.12.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (1.16.0)\r\n",
+ "Requirement already satisfied: termcolor>=1.1.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (2.4.0)\r\n",
+ "Requirement already satisfied: typing-extensions>=3.6.6 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (4.11.0)\r\n",
+ "Requirement already satisfied: wrapt>=1.11.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (1.14.1)\r\n",
+ "Requirement already satisfied: grpcio<2.0,>=1.24.3 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (1.66.1)\r\n",
+ "Collecting tensorboard<2.17,>=2.16 (from tensorflow)\r\n",
+ " Downloading tensorboard-2.16.2-py3-none-any.whl.metadata (1.6 kB)\r\n",
+ "Collecting keras>=3.0.0 (from tensorflow)\r\n",
+ " Downloading keras-3.6.0-py3-none-any.whl.metadata (5.8 kB)\r\n",
+ "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (0.37.1)\r\n",
+ "Requirement already satisfied: numpy<2.0.0,>=1.23.5 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow) (1.23.5)\r\n",
+ "Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from astunparse>=1.6.0->tensorflow) (0.43.0)\r\n",
+ "Requirement already satisfied: rich in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from keras>=3.0.0->tensorflow) (13.7.1)\r\n",
+ "Requirement already satisfied: namex in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from keras>=3.0.0->tensorflow) (0.0.7)\r\n",
+ "Requirement already satisfied: optree in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from keras>=3.0.0->tensorflow) (0.12.1)\r\n",
+ "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from requests<3,>=2.21.0->tensorflow) (3.3.2)\r\n",
+ "Requirement already satisfied: idna<4,>=2.5 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from requests<3,>=2.21.0->tensorflow) (3.7)\r\n",
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from requests<3,>=2.21.0->tensorflow) (2.2.2)\r\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from requests<3,>=2.21.0->tensorflow) (2024.8.30)\r\n",
+ "Requirement already satisfied: markdown>=2.6.8 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorboard<2.17,>=2.16->tensorflow) (3.7)\r\n",
+ "Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorboard<2.17,>=2.16->tensorflow) (0.7.2)\r\n",
+ "Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorboard<2.17,>=2.16->tensorflow) (3.0.4)\r\n",
+ "Requirement already satisfied: MarkupSafe>=2.1.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from werkzeug>=1.0.1->tensorboard<2.17,>=2.16->tensorflow) (2.1.3)\r\n",
+ "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from rich->keras>=3.0.0->tensorflow) (2.2.0)\r\n",
+ "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from rich->keras>=3.0.0->tensorflow) (2.15.1)\r\n",
+ "Requirement already satisfied: mdurl~=0.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich->keras>=3.0.0->tensorflow) (0.1.0)\r\n",
+ "Downloading keras-3.6.0-py3-none-any.whl (1.2 MB)\r\n",
+ "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m1.2/1.2 MB\u001B[0m \u001B[31m9.8 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\r\n",
+ "\u001B[?25hDownloading tensorboard-2.16.2-py3-none-any.whl (5.5 MB)\r\n",
+ "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m5.5/5.5 MB\u001B[0m \u001B[31m20.2 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0ma \u001B[36m0:00:01\u001B[0m\r\n",
+ "\u001B[?25hInstalling collected packages: tensorboard, keras\r\n",
+ " Attempting uninstall: tensorboard\r\n",
+ " Found existing installation: tensorboard 2.12.3\r\n",
+ " Uninstalling tensorboard-2.12.3:\r\n",
+ " Successfully uninstalled tensorboard-2.12.3\r\n",
+ " Attempting uninstall: keras\r\n",
+ " Found existing installation: keras 2.12.0\r\n",
+ " Uninstalling keras-2.12.0:\r\n",
+ " Successfully uninstalled keras-2.12.0\r\n",
+ "\u001B[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\r\n",
+ "tensorflow-macos 2.12.0 requires keras<2.13,>=2.12.0, but you have keras 3.6.0 which is incompatible.\r\n",
+ "tensorflow-macos 2.12.0 requires tensorboard<2.13,>=2.12, but you have tensorboard 2.16.2 which is incompatible.\u001B[0m\u001B[31m\r\n",
+ "\u001B[0mSuccessfully installed keras-3.6.0 tensorboard-2.16.2\r\n",
+ "Requirement already satisfied: numpy in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (1.23.5)\r\n",
+ "Requirement already satisfied: pandas in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (2.2.2)\r\n",
+ "Requirement already satisfied: numpy>=1.22.4 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from pandas) (1.23.5)\r\n",
+ "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from pandas) (2.9.0.post0)\r\n",
+ "Requirement already satisfied: pytz>=2020.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from pandas) (2024.1)\r\n",
+ "Requirement already satisfied: tzdata>=2022.7 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from pandas) (2023.3)\r\n",
+ "Requirement already satisfied: six>=1.5 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\r\n",
+ "Requirement already satisfied: keras in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (3.6.0)\r\n",
+ "Requirement already satisfied: absl-py in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from keras) (2.1.0)\r\n",
+ "Requirement already satisfied: numpy in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from keras) (1.23.5)\r\n",
+ "Requirement already satisfied: rich in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from keras) (13.7.1)\r\n",
+ "Requirement already satisfied: namex in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from keras) (0.0.7)\r\n",
+ "Requirement already satisfied: h5py in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from keras) (3.11.0)\r\n",
+ "Requirement already satisfied: optree in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from keras) (0.12.1)\r\n",
+ "Requirement already satisfied: ml-dtypes in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from keras) (0.3.2)\r\n",
+ "Requirement already satisfied: packaging in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from keras) (24.1)\r\n",
+ "Requirement already satisfied: typing-extensions>=4.5.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from optree->keras) (4.11.0)\r\n",
+ "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from rich->keras) (2.2.0)\r\n",
+ "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from rich->keras) (2.15.1)\r\n",
+ "Requirement already satisfied: mdurl~=0.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich->keras) (0.1.0)\r\n",
+ "Requirement already satisfied: scikit-learn in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (1.5.2)\r\n",
+ "Requirement already satisfied: numpy>=1.19.5 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from scikit-learn) (1.23.5)\r\n",
+ "Requirement already satisfied: scipy>=1.6.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from scikit-learn) (1.10.0)\r\n",
+ "Requirement already satisfied: joblib>=1.2.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from scikit-learn) (1.4.2)\r\n",
+ "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from scikit-learn) (3.5.0)\r\n",
+ "Requirement already satisfied: matplotlib in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (3.9.2)\r\n",
+ "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib) (1.2.0)\r\n",
+ "Requirement already satisfied: cycler>=0.10 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib) (0.11.0)\r\n",
+ "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib) (4.51.0)\r\n",
+ "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib) (1.4.4)\r\n",
+ "Requirement already satisfied: numpy>=1.23 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib) (1.23.5)\r\n",
+ "Requirement already satisfied: packaging>=20.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib) (24.1)\r\n",
+ "Requirement already satisfied: pillow>=8 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib) (10.4.0)\r\n",
+ "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib) (3.1.2)\r\n",
+ "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib) (2.9.0.post0)\r\n",
+ "Requirement already satisfied: six>=1.5 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\r\n",
+ "Requirement already satisfied: joblib in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (1.4.2)\r\n",
+ "Requirement already satisfied: pyarrow in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (16.1.0)\r\n",
+ "Requirement already satisfied: numpy>=1.16.6 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from pyarrow) (1.23.5)\r\n",
+ "Requirement already satisfied: fastparquet in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (2024.2.0)\r\n",
+ "Requirement already satisfied: pandas>=1.5.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from fastparquet) (2.2.2)\r\n",
+ "Requirement already satisfied: numpy>=1.20.3 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from fastparquet) (1.23.5)\r\n",
+ "Requirement already satisfied: cramjam>=2.3 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from fastparquet) (2.7.0)\r\n",
+ "Requirement already satisfied: fsspec in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from fastparquet) (2024.6.1)\r\n",
+ "Requirement already satisfied: packaging in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from fastparquet) (24.1)\r\n",
+ "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from pandas>=1.5.0->fastparquet) (2.9.0.post0)\r\n",
+ "Requirement already satisfied: pytz>=2020.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from pandas>=1.5.0->fastparquet) (2024.1)\r\n",
+ "Requirement already satisfied: tzdata>=2022.7 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from pandas>=1.5.0->fastparquet) (2023.3)\r\n",
+ "Requirement already satisfied: six>=1.5 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas>=1.5.0->fastparquet) (1.16.0)\r\n",
+ "Requirement already satisfied: scipy in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (1.10.0)\r\n",
+ "Requirement already satisfied: numpy<1.27.0,>=1.19.5 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from scipy) (1.23.5)\r\n",
+ "Requirement already satisfied: seaborn in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (0.13.2)\r\n",
+ "Requirement already satisfied: numpy!=1.24.0,>=1.20 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from seaborn) (1.23.5)\r\n",
+ "Requirement already satisfied: pandas>=1.2 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from seaborn) (2.2.2)\r\n",
+ "Requirement already satisfied: matplotlib!=3.6.1,>=3.4 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from seaborn) (3.9.2)\r\n",
+ "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.2.0)\r\n",
+ "Requirement already satisfied: cycler>=0.10 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (0.11.0)\r\n",
+ "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (4.51.0)\r\n",
+ "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.4.4)\r\n",
+ "Requirement already satisfied: packaging>=20.0 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (24.1)\r\n",
+ "Requirement already satisfied: pillow>=8 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (10.4.0)\r\n",
+ "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (3.1.2)\r\n",
+ "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (2.9.0.post0)\r\n",
+ "Requirement already satisfied: pytz>=2020.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from pandas>=1.2->seaborn) (2024.1)\r\n",
+ "Requirement already satisfied: tzdata>=2022.7 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from pandas>=1.2->seaborn) (2023.3)\r\n",
+ "Requirement already satisfied: six>=1.5 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib!=3.6.1,>=3.4->seaborn) (1.16.0)\r\n",
+ "Requirement already satisfied: tqdm in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (4.66.5)\r\n",
+ "Collecting pydot\r\n",
+ " Downloading pydot-3.0.2-py3-none-any.whl.metadata (10 kB)\r\n",
+ "Requirement already satisfied: pyparsing>=3.0.9 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from pydot) (3.1.2)\r\n",
+ "Downloading pydot-3.0.2-py3-none-any.whl (35 kB)\r\n",
+ "Installing collected packages: pydot\r\n",
+ "Successfully installed pydot-3.0.2\r\n",
+ "Collecting tensorflow-io\r\n",
+ " Downloading tensorflow_io-0.37.1-cp310-cp310-macosx_10_14_x86_64.whl.metadata (14 kB)\r\n",
+ "Requirement already satisfied: tensorflow-io-gcs-filesystem==0.37.1 in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow-io) (0.37.1)\r\n",
+ "Downloading tensorflow_io-0.37.1-cp310-cp310-macosx_10_14_x86_64.whl (22.1 MB)\r\n",
+ "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m22.1/22.1 MB\u001B[0m \u001B[31m6.2 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0ma \u001B[36m0:00:01\u001B[0m\r\n",
+ "\u001B[?25hInstalling collected packages: tensorflow-io\r\n",
+ "Successfully installed tensorflow-io-0.37.1\r\n",
+ "Collecting tensorflow-addons\r\n",
+ " Downloading tensorflow_addons-0.23.0-cp310-cp310-macosx_10_14_x86_64.whl.metadata (1.7 kB)\r\n",
+ "Collecting typeguard<3.0.0,>=2.7 (from tensorflow-addons)\r\n",
+ " Downloading typeguard-2.13.3-py3-none-any.whl.metadata (3.6 kB)\r\n",
+ "Requirement already satisfied: packaging in /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages (from tensorflow-addons) (24.1)\r\n",
+ "Downloading tensorflow_addons-0.23.0-cp310-cp310-macosx_10_14_x86_64.whl (14.1 MB)\r\n",
+ "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m14.1/14.1 MB\u001B[0m \u001B[31m7.0 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m00:01\u001B[0m00:01\u001B[0m\r\n",
+ "\u001B[?25hDownloading typeguard-2.13.3-py3-none-any.whl (17 kB)\r\n",
+ "Installing collected packages: typeguard, tensorflow-addons\r\n",
+ "Successfully installed tensorflow-addons-0.23.0 typeguard-2.13.3\r\n"
]
}
],
+ "execution_count": 3
+ },
+ {
+ "cell_type": "code",
+ "id": "7a813e3cbca057b7",
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-11-19T22:44:45.975065Z",
+ "start_time": "2024-11-19T22:44:45.853184Z"
+ }
+ },
"source": [
"import tensorflow as tf\n",
- "from tensorflow.keras.layers import Dense, LSTM, MultiHeadAttention, Dropout, BatchNormalization, LayerNormalization, Input, Activation, Lambda, Bidirectional, Add, MaxPooling1D\n",
+ "from tensorflow.keras.layers import Dense, LSTM, MultiHeadAttention, Dropout, BatchNormalization, LayerNormalization, Input, Activation, Lambda, Bidirectional, Add, MaxPooling1D, Conv1D, GlobalAveragePooling1D\n",
"from tensorflow.keras import regularizers\n",
"from tensorflow.keras.models import Model\n",
"import pandas as pd\n",
"import numpy as np\n",
"from sklearn.model_selection import train_test_split\n",
- "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n",
- "from sklearn.preprocessing import StandardScaler\n",
- "from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau\n",
+ "from sklearn.preprocessing import RobustScaler\n",
+ "from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau, ModelCheckpoint\n",
"from tensorflow.keras.optimizers import AdamW\n",
"import json\n",
"from datetime import datetime\n",
"import matplotlib.pyplot as plt\n",
- "from sklearn.metrics import confusion_matrix\n",
"from tensorflow.keras.utils import plot_model\n",
+ "import tensorflow_addons as tfa\n",
"\n",
- "folder_name = datetime.now().strftime(\"%Y-%m-%d_%H-%M\")"
- ]
+ "\n",
+ "folder_name = datetime.now().strftime(\"%Y-%m-%d_%H-%M\")\n",
+ "random_state_value = None"
+ ],
+ "outputs": [
+ {
+ "ename": "NotFoundError",
+ "evalue": "dlopen(/usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages/tensorflow-plugins/libmetal_plugin.dylib, 0x0006): Symbol not found: __ZN10tensorflow16TensorShapeProtoC1ERKS0_\n Referenced from: /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages/tensorflow-plugins/libmetal_plugin.dylib\n Expected in: /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so",
+ "output_type": "error",
+ "traceback": [
+ "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m",
+ "\u001B[0;31mNotFoundError\u001B[0m Traceback (most recent call last)",
+ "Cell \u001B[0;32mIn[7], line 1\u001B[0m\n\u001B[0;32m----> 1\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mtensorflow\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m \u001B[38;5;21;01mtf\u001B[39;00m\n\u001B[1;32m 2\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mkeras\u001B[39;00m\n\u001B[1;32m 3\u001B[0m \u001B[38;5;28;01mfrom\u001B[39;00m \u001B[38;5;21;01mkeras\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mlayers\u001B[39;00m \u001B[38;5;28;01mimport\u001B[39;00m Dense, LSTM, MultiHeadAttention, Dropout, BatchNormalization, LayerNormalization, Input, Activation, Lambda, Bidirectional, Add, MaxPooling1D, Conv1D, GlobalAveragePooling1D\n",
+ "File \u001B[0;32m/usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages/tensorflow/__init__.py:432\u001B[0m\n\u001B[1;32m 430\u001B[0m _plugin_dir \u001B[38;5;241m=\u001B[39m _os\u001B[38;5;241m.\u001B[39mpath\u001B[38;5;241m.\u001B[39mjoin(_s, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mtensorflow-plugins\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n\u001B[1;32m 431\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m _os\u001B[38;5;241m.\u001B[39mpath\u001B[38;5;241m.\u001B[39mexists(_plugin_dir):\n\u001B[0;32m--> 432\u001B[0m \u001B[43m_ll\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mload_library\u001B[49m\u001B[43m(\u001B[49m\u001B[43m_plugin_dir\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m 433\u001B[0m \u001B[38;5;66;03m# Load Pluggable Device Library\u001B[39;00m\n\u001B[1;32m 434\u001B[0m _ll\u001B[38;5;241m.\u001B[39mload_pluggable_device_library(_plugin_dir)\n",
+ "File \u001B[0;32m/usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages/tensorflow/python/framework/load_library.py:151\u001B[0m, in \u001B[0;36mload_library\u001B[0;34m(library_location)\u001B[0m\n\u001B[1;32m 148\u001B[0m kernel_libraries \u001B[38;5;241m=\u001B[39m [library_location]\n\u001B[1;32m 150\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m lib \u001B[38;5;129;01min\u001B[39;00m kernel_libraries:\n\u001B[0;32m--> 151\u001B[0m \u001B[43mpy_tf\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mTF_LoadLibrary\u001B[49m\u001B[43m(\u001B[49m\u001B[43mlib\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m 153\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m 154\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mOSError\u001B[39;00m(\n\u001B[1;32m 155\u001B[0m errno\u001B[38;5;241m.\u001B[39mENOENT,\n\u001B[1;32m 156\u001B[0m \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mThe file or folder to load kernel libraries from does not exist.\u001B[39m\u001B[38;5;124m'\u001B[39m,\n\u001B[1;32m 157\u001B[0m library_location)\n",
+ "\u001B[0;31mNotFoundError\u001B[0m: dlopen(/usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages/tensorflow-plugins/libmetal_plugin.dylib, 0x0006): Symbol not found: __ZN10tensorflow16TensorShapeProtoC1ERKS0_\n Referenced from: /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages/tensorflow-plugins/libmetal_plugin.dylib\n Expected in: /usr/local/anaconda3/envs/ml_env/lib/python3.10/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so"
+ ]
+ }
+ ],
+ "execution_count": 7
},
{
"cell_type": "code",
@@ -140,14 +295,14 @@
"\n",
"\n",
"def add_solar_features(df):\n",
- " # Calcolo dell'angolo solare\n",
+ " # Calculate solar angle\n",
" df['solar_angle'] = np.sin(df['day_of_year'] * (2 * np.pi / 365.25)) * np.sin(df['hour'] * (2 * np.pi / 24))\n",
"\n",
- " # Interazioni tra features rilevanti\n",
+ " # Interactions between relevant features\n",
" df['cloud_temp_interaction'] = df['cloudcover'] * df['temp']\n",
" df['visibility_cloud_interaction'] = df['visibility'] * (100 - df['cloudcover'])\n",
"\n",
- " # Feature derivate\n",
+ " # Derived features\n",
" df['clear_sky_index'] = (100 - df['cloudcover']) / 100\n",
" df['temp_gradient'] = df['temp'] - df['tempmin']\n",
"\n",
@@ -155,42 +310,72 @@
"\n",
"\n",
"def add_solar_specific_features(df):\n",
- " # Angolo solare e durata del giorno\n",
+ " # Solar angle and day length calculations\n",
" df['day_length'] = 12 + 3 * np.sin(2 * np.pi * (df['day_of_year'] - 81) / 365.25)\n",
" df['solar_noon'] = 12 - df['hour']\n",
" df['solar_elevation'] = np.sin(2 * np.pi * df['day_of_year'] / 365.25) * np.cos(2 * np.pi * df['solar_noon'] / 24)\n",
"\n",
- " # Interazioni\n",
+ " # Feature interactions\n",
" df['cloud_elevation'] = df['cloudcover'] * df['solar_elevation']\n",
" df['visibility_elevation'] = df['visibility'] * df['solar_elevation']\n",
"\n",
- " # Rolling features con finestre più ampie\n",
+ " # Extended window rolling features\n",
" df['cloud_rolling_12h'] = df['cloudcover'].rolling(window=12).mean()\n",
" df['temp_rolling_12h'] = df['temp'].rolling(window=12).mean()\n",
"\n",
" return df\n",
"\n",
"\n",
+ "def add_uv_specific_features(df):\n",
+ " # Solar zenith angle calculation\n",
+ " lat = df['latitude'].iloc[0] # assuming constant latitude for the dataset\n",
+ " df['solar_zenith'] = 90 - np.arcsin(\n",
+ " np.sin(np.radians(lat)) * np.sin(df['solar_elevation']) +\n",
+ " np.cos(np.radians(lat)) * np.cos(df['solar_elevation']) * np.cos(df['hour'] * 15)\n",
+ " ).degrees\n",
+ "\n",
+ " # UV peak hours indicator (10:00-16:00)\n",
+ " df['is_uv_peak_hours'] = ((df['hour'] >= 10) & (df['hour'] <= 16)).astype(int)\n",
+ "\n",
+ " # Atmospheric attenuation factor\n",
+ " df['atmospheric_attenuation'] = (100 - df['cloudcover']) * (df['visibility'] / 100) * (1 - df['humidity'] / 200)\n",
+ "\n",
+ " # Seasonal UV factor\n",
+ " df['uv_seasonal_factor'] = np.where(df['season_Summer'], 1.0,\n",
+ " np.where(df['season_Spring'], 0.7,\n",
+ " np.where(df['season_Autumn'], 0.5, 0.3)))\n",
+ "\n",
+ " # Solar elevation and atmospheric transparency interaction\n",
+ " df['solar_clarity_index'] = df['solar_elevation'] * df['atmospheric_attenuation'] / 100\n",
+ "\n",
+ " # UV-specific rolling features\n",
+ " df['clarity_rolling_3h'] = df['atmospheric_attenuation'].rolling(window=3).mean()\n",
+ " df['temp_uv_interaction'] = df['temp'] * df['solar_clarity_index']\n",
+ "\n",
+ " return df\n",
+ "\n",
+ "\n",
"def add_advanced_features(df):\n",
- " # Features esistenti\n",
+ " # Apply existing feature engineering\n",
" df = add_time_features(df)\n",
" df = add_solar_features(df)\n",
" df = add_solar_specific_features(df)\n",
+ " df = add_uv_specific_features(df)\n",
"\n",
" if not isinstance(df.index, pd.DatetimeIndex):\n",
" df.index = pd.to_datetime(df.index)\n",
"\n",
- " # One-hot encoding per le feature categoriche\n",
+ " # One-hot encoding for categorical features\n",
" df = pd.get_dummies(df, columns=['season', 'time_period'])\n",
"\n",
- " # Interazioni tra variabili meteorologiche\n",
+ " # Weather variable interactions\n",
" df['temp_humidity'] = df['temp'] * df['humidity']\n",
" df['temp_cloudcover'] = df['temp'] * df['cloudcover']\n",
" df['visibility_cloudcover'] = df['visibility'] * df['cloudcover']\n",
"\n",
- " # Features derivate per la radiazione solare\n",
+ " # Solar radiation derived features\n",
" df['clear_sky_factor'] = (100 - df['cloudcover']) / 100\n",
- " df['day_length'] = np.sin(df['day_of_year_sin']) * 12 + 12 # approssimazione della durata del giorno\n",
+ " df['day_length'] = np.sin(df['day_of_year_sin']) * 12 + 12 # day length approximation\n",
"\n",
" # Lag features\n",
" df['temp_1h_lag'] = df['temp'].shift(1)\n",
@@ -203,19 +388,20 @@
"\n",
" df['temp_humidity_interaction'] = df['temp'] * df['humidity'] / 100\n",
"\n",
- " # Indicatore di condizioni estreme\n",
- " df['extreme_conditions'] = ((df['temp'] > df['temp'].quantile(0.75)) & (df['humidity'] < df['humidity'].quantile(0.25))).astype(int)\n",
+ " # Extreme conditions indicator\n",
+ " df['extreme_conditions'] = ((df['temp'] > df['temp'].quantile(0.75)) &\n",
+ " (df['humidity'] < df['humidity'].quantile(0.25))).astype(int)\n",
"\n",
- " # Feature composite per la trasparenza atmosferica\n",
+ " # Atmospheric transparency composite feature\n",
" df['atmospheric_transparency'] = (100 - df['cloudcover']) * (df['visibility'] / 10)\n",
"\n",
- " # Indicatori temporali più granulari per mezze stagioni\n",
+ " # Transitional seasons indicator\n",
" df['is_transition_season'] = ((df['season_Spring'] | df['season_Autumn'])).astype(int)\n",
"\n",
- " # Interazione tra angolo solare e copertura nuvolosa normalizzata\n",
+ " # Solar angle and normalized cloud cover interaction\n",
" df['solar_cloud_effect'] = df['solar_elevation'] * (100 - df['cloudcover']) / 100\n",
"\n",
- " # Indicatore di stabilità atmosferica\n",
+ " # Atmospheric stability indicator\n",
" df['pressure_stability'] = df.groupby(df.index.date if isinstance(df.index, pd.DatetimeIndex)\n",
" else df.index.to_series().dt.date)['pressure'].transform(\n",
" lambda x: x.std()\n",
@@ -225,82 +411,130 @@
"\n",
"\n",
"def prepare_advanced_data(df):\n",
- " # Applicazione delle funzioni di feature engineering\n",
+ " \"\"\"\n",
+ " Prepares data for UV index prediction model with advanced feature engineering\n",
+ " and optimized preprocessing.\n",
+ "\n",
+ " Args:\n",
+ " df: DataFrame with meteorological data\n",
+ "\n",
+ " Returns:\n",
+ " tuple: (X_train_scaled, X_test_scaled, y_train, y_test, scaler, final_features, X_to_predict_scaled)\n",
+ " \"\"\"\n",
+ " # Apply feature engineering functions\n",
" df = add_advanced_features(df)\n",
"\n",
- " target_variables = ['solarradiation', 'solarenergy', 'uvindex']\n",
+ " # Optimized feature selection for UV index\n",
+ " selected_features = {\n",
+ " # Primary meteorological features (high correlation with UV)\n",
+ " 'atmospheric': [\n",
+ " 'temp', 'humidity', 'cloudcover', 'visibility',\n",
+ " 'clear_sky_index', 'atmospheric_transparency'\n",
+ " ],\n",
"\n",
- " # Selezione delle feature più rilevanti per UV index\n",
- " selected_features = [\n",
- " # Features meteorologiche base\n",
- " 'temp', 'humidity', 'cloudcover', 'visibility', 'pressure',\n",
+ " # Essential cyclic temporal features\n",
+ " 'temporal': [\n",
+ " 'hour_sin', 'hour_cos',\n",
+ " 'day_of_year_sin', 'day_of_year_cos'\n",
+ " ],\n",
"\n",
- " # Features temporali cicliche\n",
- " 'hour_sin', 'hour_cos', 'month_sin', 'month_cos',\n",
- " 'day_of_year_sin', 'day_of_year_cos',\n",
+ " # Critical solar features for UV\n",
+ " 'solar': [\n",
+ " 'solar_angle', 'solar_elevation',\n",
+ " 'day_length', 'solar_noon',\n",
+ " 'solar_cloud_effect'\n",
+ " ],\n",
"\n",
- " # Features solari\n",
- " 'solar_angle', 'solar_elevation', 'day_length',\n",
- " 'clear_sky_index', 'solar_noon',\n",
+ " # Key interactions\n",
+ " 'interactions': [\n",
+ " 'cloud_temp_interaction',\n",
+ " 'visibility_cloud_interaction',\n",
+ " 'temp_humidity_interaction',\n",
+ " 'solar_clarity_index'\n",
+ " ],\n",
"\n",
- " # Interazioni\n",
- " 'cloud_temp_interaction', 'visibility_cloud_interaction',\n",
- " 'cloud_elevation', 'visibility_elevation',\n",
+ " # Significant rolling features\n",
+ " 'rolling': [\n",
+ " 'cloud_rolling_12h',\n",
+ " 'temp_rolling_mean_6h',\n",
+ " 'atmospheric_stability'\n",
+ " ]\n",
+ " }\n",
"\n",
- " # Rolling features\n",
- " 'cloud_rolling_12h', 'temp_rolling_12h',\n",
- " 'temp_rolling_mean_6h', 'cloudcover_rolling_mean_6h',\n",
+ " # Flatten feature list\n",
+ " base_features = [item for sublist in selected_features.values() for item in sublist]\n",
"\n",
- " # Features categoriche\n",
- " 'season', 'time_period'\n",
- " ]\n",
- "\n",
- " # Aggiorna la lista delle feature con le colonne one-hot\n",
+ " # Add categorical features (one-hot encoded)\n",
" categorical_columns = [col for col in df.columns if col.startswith(('season_', 'time_period_'))]\n",
- " final_features = [f for f in selected_features if f not in ['season', 'time_period']] + categorical_columns\n",
+ " final_features = base_features + categorical_columns\n",
"\n",
+ " # Temporal preprocessing\n",
" df = df.sort_values('datetime')\n",
" df.set_index('datetime', inplace=True)\n",
"\n",
- " columns_to_interpolate = final_features + target_variables\n",
- " for column in columns_to_interpolate:\n",
- " df[column] = df[column].interpolate(method='time')\n",
+ " # Advanced interpolation for missing values\n",
+ " for column in final_features:\n",
+ " if column in df.columns:\n",
+ " if df[column].isnull().any():\n",
+ " if column in selected_features['rolling']:\n",
+ " df[column] = df[column].fillna(method='ffill').fillna(method='bfill')\n",
+ " else:\n",
+ " df[column] = df[column].interpolate(method='time', limit_direction='both')\n",
"\n",
- " # Rimuovi eventuali valori mancanti residui\n",
- " df.fillna(0, inplace=True)\n",
+ " # Temporal data split\n",
+ " data_after_2010 = df[df.index.year >= 2010].copy()\n",
+ " data_before_2010 = df[df.index.year < 2010].copy()\n",
"\n",
- " data_after_2010 = df[df['year'] >= 2010].copy()\n",
- " data_before_2010 = df[df['year'] < 2010].copy()\n",
- "\n",
- " print(\"\\nNumero di record dopo 2010:\", len(data_after_2010))\n",
- " print(\"Numero di record prima 2010:\", len(data_before_2010))\n",
+ " print(f\"\\nTemporal distribution of data:\")\n",
+ " print(f\"Records after 2010: {len(data_after_2010):,}\")\n",
+ " print(f\"Records before 2010: {len(data_before_2010):,}\")\n",
"\n",
+ " # Feature and target preparation\n",
" X = data_after_2010[final_features]\n",
- "\n",
- " #print(X.head())\n",
- " #print(X.columns)\n",
- "\n",
" y = data_after_2010['uvindex']\n",
- "\n",
" X_to_predict = data_before_2010[final_features]\n",
"\n",
- " # Split dei dati\n",
- " X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)\n",
+ " # Data validation\n",
+ " if X.isnull().any().any() or y.isnull().any():\n",
+ " print(\"\\nWarning: Found missing values after preprocessing\")\n",
+ " print(\"Features with missing values:\", X.columns[X.isnull().any()].tolist())\n",
+ " X = X.fillna(X.mean())\n",
+ " y = y.fillna(y.mean())\n",
"\n",
- " # Scaling delle feature\n",
- " scaler = StandardScaler()\n",
+ " # Stratified data split\n",
+ " X_train, X_test, y_train, y_test = train_test_split(\n",
+ " X, y,\n",
+ " test_size=0.5,\n",
+ " random_state=random_state_value,\n",
+ " stratify=pd.qcut(y, q=5, duplicates='drop', labels=False)\n",
+ " )\n",
+ "\n",
+ " # Robust feature scaling\n",
+ " scaler = RobustScaler()\n",
" X_train_scaled = scaler.fit_transform(X_train)\n",
" X_test_scaled = scaler.transform(X_test)\n",
- "\n",
" X_to_predict_scaled = scaler.transform(X_to_predict)\n",
"\n",
- " return X_train_scaled, X_test_scaled, y_train, y_test, scaler, final_features, X_to_predict_scaled\n",
+ " # Final validation\n",
+ " assert not np.isnan(X_train_scaled).any(), \"Found NaN in X_train_scaled\"\n",
+ " assert not np.isnan(X_test_scaled).any(), \"Found NaN in X_test_scaled\"\n",
+ " assert not np.isnan(X_to_predict_scaled).any(), \"Found NaN in X_to_predict_scaled\"\n",
+ "\n",
+ " # Print feature information\n",
+ " print(\"\\nNumber of features used:\", len(final_features))\n",
+ " print(\"\\nFeature categories:\")\n",
+ " for category, features in selected_features.items():\n",
+ " print(f\"{category}: {len(features)} features\")\n",
+ " print(f\"Categorical: {len(categorical_columns)} features\")\n",
+ "\n",
+ " return (X_train_scaled, X_test_scaled, y_train, y_test,\n",
+ " scaler, final_features, X_to_predict_scaled)\n",
"\n",
"\n",
"def create_sequence_data(X, sequence_length=24):\n",
" \"\"\"\n",
- " Converte i dati in sequenze per l'input LSTM\n",
- " sequence_length rappresenta quante ore precedenti considerare\n",
+ " Converts data into sequences for LSTM input\n",
+ " sequence_length represents how many previous hours to consider\n",
" \"\"\"\n",
" sequences = []\n",
" for i in range(len(X) - sequence_length + 1):\n",
@@ -309,16 +543,16 @@
"\n",
"\n",
"def prepare_hybrid_data(df):\n",
- " # Utilizziamo la preparazione dati esistente\n",
+ " # Use existing data preparation\n",
" X_train_scaled, X_test_scaled, y_train, y_test, scaler, features, X_to_predict_scaled = prepare_advanced_data(df)\n",
"\n",
- " # Convertiamo i dati in sequenze\n",
- " sequence_length = 24 # 24 ore di dati storici\n",
+ " # Convert data to sequences\n",
+ " sequence_length = 24 # 24 hours of historical data\n",
"\n",
" X_train_seq = create_sequence_data(X_train_scaled, sequence_length)\n",
" X_test_seq = create_sequence_data(X_test_scaled, sequence_length)\n",
"\n",
- " # Adattiamo le y rimuovendo i primi (sequence_length-1) elementi\n",
+ " # Adjust y by removing the first (sequence_length-1) elements\n",
" y_train = y_train[sequence_length - 1:]\n",
" y_test = y_test[sequence_length - 1:]\n",
"\n",
@@ -334,77 +568,173 @@
"metadata": {},
"outputs": [],
"source": [
- "# Funzioni per costruire il modello LSTM avanzato\n",
- "def create_residual_lstm_layer(x, units, dropout_rate, l2_reg=0.01, return_sequences=True):\n",
+ "def create_residual_lstm_layer(x, units, dropout_rate, l2_reg=0.01,\n",
+ " survival_probability=0.8, return_sequences=True):\n",
+ " \"\"\"LSTM layer with stochastic depth\"\"\"\n",
" residual = x\n",
- " x = Bidirectional(LSTM(units, return_sequences=return_sequences, kernel_regularizer=regularizers.l2(l2_reg)))(x)\n",
+ "\n",
+ " # Main path\n",
+ " x = Bidirectional(LSTM(units, return_sequences=return_sequences,\n",
+ " kernel_regularizer=regularizers.l2(l2_reg)))(x)\n",
" x = LayerNormalization()(x)\n",
" x = Dropout(dropout_rate)(x)\n",
- " # Adjust residual dimension and handle return_sequences\n",
+ "\n",
+ " # Adjust residual dimension if needed\n",
" if return_sequences:\n",
" if int(residual.shape[-1]) != 2 * units:\n",
- " residual = Dense(2 * units, activation='linear')(residual)\n",
- " x = Add()([x, residual])\n",
+ " residual = Conv1D(2 * units, 1)(residual)\n",
+ "\n",
+ " x = tfa.layers.StochasticDepth(survival_probability)([x, residual])\n",
+ "\n",
" return x\n",
"\n",
"\n",
- "def attention_block(x, units, num_heads=8):\n",
+ "def attention_block(x, units, num_heads=8, survival_probability=0.8):\n",
+ " \"\"\"\n",
+ " Attention block with stochastic depth.\n",
+ "\n",
+ " Args:\n",
+ " x: input tensor\n",
+ " units: number of units for the attention\n",
+ " num_heads: number of attention heads\n",
+ " survival_probability: probability of the layer being kept during training\n",
+ " \"\"\"\n",
+ " # Compute self-attention\n",
" attention = MultiHeadAttention(num_heads=num_heads, key_dim=units)(x, x)\n",
- " x = Add()([x, attention])\n",
+ "\n",
+ " # Apply stochastic depth to the attention path\n",
+ " x = tfa.layers.StochasticDepth(survival_probability)([attention, x])\n",
" x = LayerNormalization()(x)\n",
+ "\n",
+ " # Optional: FFN block with stochastic depth\n",
+ " ffn = Dense(units * 4, activation='swish')(x)\n",
+ " ffn = Dense(units)(ffn)\n",
+ " x = tfa.layers.StochasticDepth(survival_probability)([ffn, x])\n",
+ " x = LayerNormalization()(x)\n",
+ "\n",
" return x\n",
"\n",
"\n",
"def create_uv_index_model(input_shape, folder_name, l2_lambda=0.005):\n",
" inputs = Input(shape=input_shape)\n",
"\n",
- " # Primi due layer LSTM con sequenze\n",
- " x = create_residual_lstm_layer(inputs, 128, 0.4, l2_lambda, return_sequences=True)\n",
- " x = create_residual_lstm_layer(x, 64, 0.3, l2_lambda, return_sequences=True)\n",
- " x = create_residual_lstm_layer(x, 32, 0.2, l2_lambda, return_sequences=True)\n",
+ " # Progressive survival probabilities\n",
+ " survival_probs = [0.9, 0.8, 0.7]\n",
+ " attention_survival_probs = [0.85, 0.75, 0.65]\n",
"\n",
- " # Attention e MaxPooling mentre abbiamo ancora la sequenza\n",
- " x = attention_block(x, 32, num_heads=16)\n",
- " x = MaxPooling1D()(x)\n",
+ " # First LSTM block with stochastic depth\n",
+ " x = create_residual_lstm_layer(\n",
+ " inputs, 128, dropout_rate=0.4,\n",
+ " l2_reg=l2_lambda,\n",
+ " survival_probability=survival_probs[0],\n",
+ " return_sequences=True\n",
+ " )\n",
+ " x = attention_block(x, 128, num_heads=8,\n",
+ " survival_probability=attention_survival_probs[0])\n",
"\n",
- " # Ultimo layer LSTM senza sequenze\n",
- " x = create_residual_lstm_layer(x, 32, 0.1, l2_lambda, return_sequences=False)\n",
+ " # Second LSTM block with stochastic depth\n",
+ " x = create_residual_lstm_layer(\n",
+ " x, 64, dropout_rate=0.3,\n",
+ " l2_reg=l2_lambda,\n",
+ " survival_probability=survival_probs[1],\n",
+ " return_sequences=True\n",
+ " )\n",
+ " x = attention_block(x, 64, num_heads=8,\n",
+ " survival_probability=attention_survival_probs[1])\n",
"\n",
- " # Dense layers\n",
- " x = Dense(32, kernel_regularizer=regularizers.l2(l2_lambda))(x)\n",
+ " # Third LSTM block with stochastic depth\n",
+ " x = create_residual_lstm_layer(\n",
+ " x, 32, dropout_rate=0.2,\n",
+ " l2_reg=l2_lambda,\n",
+ " survival_probability=survival_probs[2],\n",
+ " return_sequences=True\n",
+ " )\n",
+ " x = attention_block(x, 32, num_heads=8,\n",
+ " survival_probability=attention_survival_probs[2])\n",
+ "\n",
+ " # Global attention with stochastic depth\n",
+ " temporal_attention = MultiHeadAttention(num_heads=16, key_dim=32)(x, x)\n",
+ " x = tfa.layers.StochasticDepth(survival_probability=0.8)([temporal_attention, x])\n",
+ " x = LayerNormalization()(x)\n",
+ "\n",
+ " # Pooling\n",
+ " x = GlobalAveragePooling1D()(x)\n",
+ "\n",
+ " # Dense layers with stochastic depth\n",
+ " dense = Dense(32, activation='swish',\n",
+ " kernel_regularizer=regularizers.l2(l2_lambda))(x)\n",
+ " dense = BatchNormalization()(dense)\n",
+ " skip = Dense(32, activation='linear')(x)\n",
+ " x = tfa.layers.StochasticDepth(survival_probability=0.9)([dense, skip])\n",
+ "\n",
+ " # Final dense layer\n",
+ " x = Dense(16, activation='swish',\n",
+ " kernel_regularizer=regularizers.l2(l2_lambda))(x)\n",
" x = BatchNormalization()(x)\n",
- " x = Activation('swish')(x)\n",
- " x = Dropout(0.1)(x)\n",
- "\n",
- " x = Dense(16, kernel_regularizer=regularizers.l2(l2_lambda))(x)\n",
- " x = BatchNormalization()(x)\n",
- " x = Activation('swish')(x)\n",
- " x = Dropout(0.1)(x)\n",
"\n",
+ " # Output layer\n",
" outputs = Dense(1)(x)\n",
" outputs = Lambda(lambda x: tf.clip_by_value(x, 0, 11))(outputs)\n",
"\n",
" model = Model(inputs=inputs, outputs=outputs, name=\"UvModel\")\n",
"\n",
- " optimizer = AdamW(\n",
- " learning_rate=0.0005,\n",
- " beta_1=0.9,\n",
- " beta_2=0.999,\n",
- " epsilon=1e-07\n",
+ " # Cosine decay with warmup\n",
+ " initial_learning_rate = 0.001\n",
+ " decay_steps = 10000\n",
+ "\n",
+ " cosine_decay = tf.keras.optimizers.schedules.CosineDecayRestarts(\n",
+ " initial_learning_rate,\n",
+ " decay_steps,\n",
+ " t_mul=2.0,\n",
+ " m_mul=0.9,\n",
+ " alpha=0.1\n",
" )\n",
"\n",
+ " optimizer = AdamW(\n",
+ " learning_rate=cosine_decay,\n",
+ " weight_decay=0.01\n",
+ " )\n",
+ "\n",
+ " # UV-specific loss\n",
+ " def uv_aware_loss(y_true, y_pred):\n",
+ " huber_loss = tf.keras.losses.Huber()(y_true, y_pred)\n",
+ "\n",
+ " # Higher weight for UV peak hours\n",
+ " time_of_day = tf.cast(tf.math.floormod(tf.range(tf.shape(y_true)[0]), 24),\n",
+ " tf.float32)\n",
+ " peak_hours_weight = tf.where(\n",
+ " tf.logical_and(time_of_day >= 10, time_of_day <= 16),\n",
+ " 1.5,\n",
+ " 1.0\n",
+ " )\n",
+ "\n",
+ " # Higher weight for high UV values\n",
+ " high_uv_weight = tf.where(\n",
+ " y_true >= 8,\n",
+ " 1.3,\n",
+ " 1.0\n",
+ " )\n",
+ "\n",
+ " return huber_loss * peak_hours_weight * high_uv_weight\n",
+ "\n",
" model.compile(\n",
" optimizer=optimizer,\n",
- " loss='huber',\n",
- " metrics=['mae', 'mse']\n",
+ " loss=uv_aware_loss,\n",
+ " metrics=[\n",
+ " 'mae',\n",
+ " 'mse',\n",
+ " tf.keras.metrics.RootMeanSquaredError(),\n",
+ " tf.keras.metrics.MeanAbsolutePercentageError()\n",
+ " ]\n",
" )\n",
+ "\n",
" model.summary()\n",
"\n",
" plot_model(model,\n",
" to_file=f'{folder_name}_model_architecture.png',\n",
- " show_shapes=True, # Mostra le dimensioni dei tensori\n",
- " show_layer_names=True, # Mostra i nomi dei layer\n",
- " dpi=96, # Risoluzione dell'immagine\n",
+ " show_shapes=True,\n",
+ " show_layer_names=True,\n",
+ " dpi=150,\n",
" show_layer_activations=True)\n",
"\n",
" return model\n",
@@ -412,198 +742,221 @@
"\n",
"def evaluate_uv_predictions(y_true, y_pred, folder_name=None):\n",
" \"\"\"\n",
- " Valutazione specifica per UV index con metriche sia raw che categoriche\n",
+ " Comprehensive evaluation of UV index predictions with detailed analysis and visualizations.\n",
"\n",
" Parameters:\n",
" -----------\n",
" y_true : array-like\n",
- " Valori reali dell'UV index\n",
+ " Actual UV index values\n",
" y_pred : array-like\n",
- " Valori predetti dell'UV index\n",
+ " Predicted UV index values\n",
" folder_name : str, optional\n",
- " Cartella dove salvare eventuali plot di analisi\n",
+ " Folder to save analysis plots\n",
"\n",
" Returns:\n",
" --------\n",
" dict\n",
- " Dizionario contenente tutte le metriche calcolate\n",
+ " Dictionary containing all calculated metrics\n",
" \"\"\"\n",
" import os\n",
" from datetime import datetime\n",
+ " import seaborn as sns\n",
+ " from sklearn.metrics import confusion_matrix, mean_absolute_error, mean_squared_error, r2_score\n",
"\n",
+ " # Data preprocessing\n",
" y_true = np.array(y_true).ravel()\n",
" y_pred = np.array(y_pred).ravel()\n",
"\n",
- " # Calcolo metriche sui valori raw\n",
- " mae_raw = mean_absolute_error(y_true, y_pred)\n",
- " rmse_raw = np.sqrt(mean_squared_error(y_true, y_pred))\n",
- " r2_raw = r2_score(y_true, y_pred)\n",
- "\n",
- " # Arrotonda le predizioni al più vicino intero\n",
- " y_pred_rounded = np.round(y_pred)\n",
+ " # Rounding and clipping predictions\n",
+ " y_pred_rounded = np.round(y_pred * 2) / 2 # Round to nearest 0.5\n",
" y_pred_clipped = np.clip(y_pred_rounded, 0, 11)\n",
"\n",
- " # Calcolo metriche sui valori arrotondati\n",
- " mae_rounded = mean_absolute_error(y_true, y_pred_clipped)\n",
- " rmse_rounded = np.sqrt(mean_squared_error(y_true, y_pred_clipped))\n",
- " r2_rounded = r2_score(y_true, y_pred_clipped)\n",
+ " # Calculate errors\n",
+ " errors = y_pred - y_true\n",
+ " errors_rounded = y_pred_clipped - y_true\n",
"\n",
- " # Calcolo accuratezza per diversi margini di errore (sia raw che rounded)\n",
- " # Raw\n",
- " within_05_raw = np.mean(np.abs(y_pred - y_true) <= 0.5)\n",
- " within_1_raw = np.mean(np.abs(y_pred - y_true) <= 1.0)\n",
- " within_2_raw = np.mean(np.abs(y_pred - y_true) <= 2.0)\n",
+ " # Function to determine UV risk level\n",
+ " def get_uv_risk_level(values):\n",
+ " levels = np.full_like(values, 'Low', dtype=object)\n",
+ " levels[(values > 2) & (values <= 5)] = 'Moderate'\n",
+ " levels[(values > 5) & (values <= 7)] = 'High'\n",
+ " levels[(values > 7) & (values <= 10)] = 'Very High'\n",
+ " levels[values > 10] = 'Extreme'\n",
+ " return levels\n",
"\n",
- " # Rounded\n",
- " exact_accuracy = np.mean(y_pred_clipped == y_true)\n",
- " one_off_accuracy = np.mean(np.abs(y_pred_clipped - y_true) <= 1)\n",
- " two_off_accuracy = np.mean(np.abs(y_pred_clipped - y_true) <= 2)\n",
+ " # Calculate basic metrics\n",
+ " metrics = {\n",
+ " 'raw': {\n",
+ " 'mae': mean_absolute_error(y_true, y_pred),\n",
+ " 'rmse': np.sqrt(mean_squared_error(y_true, y_pred)),\n",
+ " 'r2': r2_score(y_true, y_pred),\n",
+ " 'mean_error': np.mean(errors),\n",
+ " 'std_error': np.std(errors),\n",
+ " 'median_error': np.median(errors),\n",
+ " 'p95_abs_error': np.percentile(np.abs(errors), 95)\n",
+ " },\n",
+ " 'rounded': {\n",
+ " 'mae': mean_absolute_error(y_true, y_pred_clipped),\n",
+ " 'rmse': np.sqrt(mean_squared_error(y_true, y_pred_clipped)),\n",
+ " 'r2': r2_score(y_true, y_pred_clipped)\n",
+ " }\n",
+ " }\n",
"\n",
- " print(\"\\nUV Index Prediction Metrics:\")\n",
- " print(\"\\nRaw Predictions:\")\n",
- " print(f\"MAE: {mae_raw:.3f}\")\n",
- " print(f\"RMSE: {rmse_raw:.3f}\")\n",
- " print(f\"R² Score: {r2_raw:.3f}\")\n",
- " print(f\"Within ±0.5: {within_05_raw:.3f}\")\n",
- " print(f\"Within ±1.0: {within_1_raw:.3f}\")\n",
- " print(f\"Within ±2.0: {within_2_raw:.3f}\")\n",
+ " # Calculate accuracies for different margins\n",
+ " for data_type, errors_data in [('raw', errors), ('rounded', errors_rounded)]:\n",
+ " metrics[data_type].update({\n",
+ " 'within_05': np.mean(np.abs(errors_data) <= 0.5) * 100,\n",
+ " 'within_1': np.mean(np.abs(errors_data) <= 1.0) * 100,\n",
+ " 'within_15': np.mean(np.abs(errors_data) <= 1.5) * 100,\n",
+ " 'within_2': np.mean(np.abs(errors_data) <= 2.0) * 100\n",
+ " })\n",
"\n",
- " print(\"\\nRounded Predictions:\")\n",
- " print(f\"MAE: {mae_rounded:.3f}\")\n",
- " print(f\"RMSE: {rmse_rounded:.3f}\")\n",
- " print(f\"R² Score: {r2_rounded:.3f}\")\n",
- " print(f\"Exact Match: {exact_accuracy:.3f}\")\n",
- " print(f\"±1 Accuracy: {one_off_accuracy:.3f}\")\n",
- " print(f\"±2 Accuracy: {two_off_accuracy:.3f}\")\n",
+ " # Analysis by UV risk level\n",
+ " y_true_risk = get_uv_risk_level(y_true)\n",
+ " y_pred_risk = get_uv_risk_level(y_pred_clipped)\n",
"\n",
- " # Analisi dei livelli UV\n",
- " def get_uv_level(value):\n",
- " if value <= 2:\n",
- " return 'Low'\n",
- " elif value <= 5:\n",
- " return 'Moderate'\n",
- " elif value <= 7:\n",
- " return 'High'\n",
- " elif value <= 10:\n",
- " return 'Very High'\n",
- " else:\n",
- " return 'Extreme'\n",
+ " # Calculate confusion matrix\n",
+ " risk_levels = ['Low', 'Moderate', 'High', 'Very High', 'Extreme']\n",
+ " cm = confusion_matrix(y_true_risk, y_pred_risk)\n",
+ " cm_df = pd.DataFrame(cm, columns=risk_levels, index=risk_levels)\n",
"\n",
- " # Calcola livelli UV sia per raw che rounded\n",
- " y_true_levels = [get_uv_level(v) for v in y_true]\n",
- " y_pred_levels_raw = [get_uv_level(v) for v in y_pred]\n",
- " y_pred_levels_rounded = [get_uv_level(v) for v in y_pred_clipped]\n",
+ " # Analysis by UV range\n",
+ " uv_ranges = [\n",
+ " (0, 2, 'Low'),\n",
+ " (2, 5, 'Moderate'),\n",
+ " (5, 7, 'High'),\n",
+ " (7, 10, 'Very High'),\n",
+ " (10, 11, 'Extreme')\n",
+ " ]\n",
"\n",
- " # Calcola accuracy dei livelli\n",
- " level_accuracy_raw = np.mean([t == p for t, p in zip(y_true_levels, y_pred_levels_raw)])\n",
- " level_accuracy_rounded = np.mean([t == p for t, p in zip(y_true_levels, y_pred_levels_rounded)])\n",
+ " range_analysis = {}\n",
+ " for low, high, label in uv_ranges:\n",
+ " mask = (y_true >= low) & (y_true < high)\n",
+ " if mask.any():\n",
+ " range_analysis[label] = {\n",
+ " 'mae': mean_absolute_error(y_true[mask], y_pred[mask]),\n",
+ " 'count': np.sum(mask),\n",
+ " 'accuracy_within_05': np.mean(np.abs(errors[mask]) <= 0.5) * 100,\n",
+ " 'accuracy_within_1': np.mean(np.abs(errors[mask]) <= 1.0) * 100\n",
+ " }\n",
"\n",
- " print(\"\\nUV Level Accuracy:\")\n",
- " print(f\"Raw predictions: {level_accuracy_raw:.3f}\")\n",
- " print(f\"Rounded predictions: {level_accuracy_rounded:.3f}\")\n",
- "\n",
- " print(\"\\nUV Level Confusion Matrix (Raw Predictions):\")\n",
- " print(pd.crosstab(\n",
- " pd.Series(y_true_levels, name='Actual'),\n",
- " pd.Series(y_pred_levels_raw, name='Predicted')\n",
- " ))\n",
- "\n",
- " print(\"\\nUV Level Confusion Matrix (Rounded Predictions):\")\n",
- " print(pd.crosstab(\n",
- " pd.Series(y_true_levels, name='Actual'),\n",
- " pd.Series(y_pred_levels_rounded, name='Predicted')\n",
- " ))\n",
- "\n",
- " # Se specificata una cartella, salva i plot di analisi\n",
+ " # Visualizations\n",
" if folder_name is not None:\n",
" try:\n",
" os.makedirs(folder_name, exist_ok=True)\n",
" timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
"\n",
- " # Plot di confronto tra raw e rounded predictions\n",
- " plt.figure(figsize=(15, 5))\n",
+ " # Main figure with 4 subplots\n",
+ " fig = plt.figure(figsize=(20, 15))\n",
"\n",
- " # Plot 1: Scatter plot confronto\n",
- " plt.subplot(1, 3, 1)\n",
- " plt.scatter(y_true, y_pred, alpha=0.5, label='Raw')\n",
- " plt.scatter(y_true, y_pred_clipped, alpha=0.5, label='Rounded')\n",
+ " # 1. Error distribution\n",
+ " plt.subplot(2, 2, 1)\n",
+ " plt.hist(errors, bins=50, alpha=0.7)\n",
+ " plt.title('Prediction Error Distribution')\n",
+ " plt.xlabel('Error')\n",
+ " plt.ylabel('Frequency')\n",
+ "\n",
+ " # 2. Actual vs Predicted scatter plot\n",
+ " plt.subplot(2, 2, 2)\n",
+ " plt.scatter(y_true, y_pred, alpha=0.5)\n",
" plt.plot([0, 11], [0, 11], 'r--', lw=2)\n",
- " plt.xlabel('Actual UV Index')\n",
- " plt.ylabel('Predicted UV Index')\n",
- " plt.title('Raw vs Rounded Predictions')\n",
- " plt.legend()\n",
- " plt.grid(True)\n",
+ " plt.title('Actual vs Predicted Values')\n",
+ " plt.xlabel('Actual Values')\n",
+ " plt.ylabel('Predicted Values')\n",
"\n",
- " # Plot 2: Distribuzione errori raw\n",
- " plt.subplot(1, 3, 2)\n",
- " plt.hist(y_pred - y_true, bins=50, alpha=0.7)\n",
- " plt.xlabel('Prediction Error (Raw)')\n",
- " plt.ylabel('Frequency')\n",
- " plt.title('Distribution of Raw Errors')\n",
- " plt.grid(True)\n",
+ " # 3. Errors vs Actual Values\n",
+ " plt.subplot(2, 2, 3)\n",
+ " plt.scatter(y_true, errors, alpha=0.5)\n",
+ " plt.axhline(y=0, color='r', linestyle='--')\n",
+ " plt.title('Errors vs Actual Values')\n",
+ " plt.xlabel('Actual Values')\n",
+ " plt.ylabel('Error')\n",
"\n",
- " # Plot 3: Distribuzione errori rounded\n",
- " plt.subplot(1, 3, 3)\n",
- " plt.hist(y_pred_clipped - y_true, bins=50, alpha=0.7)\n",
- " plt.xlabel('Prediction Error (Rounded)')\n",
- " plt.ylabel('Frequency')\n",
- " plt.title('Distribution of Rounded Errors')\n",
- " plt.grid(True)\n",
+ " # 4. Accuracy and MAE by range\n",
+ " ax = plt.subplot(2, 2, 4)\n",
+ " x_labels = [f\"{label}\\n({low}-{high})\" for low, high, label in uv_ranges]\n",
+ " accuracies = [range_analysis[label]['accuracy_within_05']\n",
+ " for _, _, label in uv_ranges if label in range_analysis]\n",
+ " mae_values = [range_analysis[label]['mae']\n",
+ " for _, _, label in uv_ranges if label in range_analysis]\n",
+ "\n",
+ " bars = plt.bar(x_labels, accuracies, alpha=0.6)\n",
+ " plt.ylabel('Accuracy within ±0.5 (%)')\n",
+ " plt.title('Accuracy and MAE by UV Range')\n",
+ "\n",
+ " # Add MAE as line\n",
+ " ax2 = ax.twinx()\n",
+ " ax2.plot(x_labels, mae_values, 'r-o', label='MAE')\n",
+ " ax2.set_ylabel('MAE', color='red')\n",
"\n",
" plt.tight_layout()\n",
"\n",
- " # Salva il plot\n",
- " filename = os.path.join(folder_name, f'uv_prediction_analysis_{timestamp}.png')\n",
- " plt.savefig(filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"\\nPlot di analisi salvato come: {filename}\")\n",
+ " # Save main figure\n",
+ " main_plot_path = os.path.join(folder_name, f'uv_analysis_{timestamp}.png')\n",
+ " plt.savefig(main_plot_path, dpi=300, bbox_inches='tight')\n",
"\n",
- " plt.show()\n",
+ " # Confusion matrix as separate plot\n",
+ " plt.figure(figsize=(10, 8))\n",
+ " sns.heatmap(cm_df, annot=True, fmt='d', cmap='Blues')\n",
+ " plt.title('Confusion Matrix for UV Risk Levels')\n",
+ "\n",
+ " conf_matrix_path = os.path.join(folder_name, f'confusion_matrix_{timestamp}.png')\n",
+ " plt.savefig(conf_matrix_path, dpi=300, bbox_inches='tight')\n",
+ "\n",
+ " plt.close('all')\n",
"\n",
" except Exception as e:\n",
- " print(f\"\\nErrore nel salvare i plot: {str(e)}\")\n",
+ " print(f\"\\nError saving plots: {str(e)}\")\n",
"\n",
- " # Restituisci tutte le metriche in un dizionario\n",
- " metrics = {\n",
- " 'raw': {\n",
- " 'mae': mae_raw,\n",
- " 'rmse': rmse_raw,\n",
- " 'r2': r2_raw,\n",
- " 'within_05': within_05_raw,\n",
- " 'within_1': within_1_raw,\n",
- " 'within_2': within_2_raw,\n",
- " 'level_accuracy': level_accuracy_raw\n",
- " },\n",
- " 'rounded': {\n",
- " 'mae': mae_rounded,\n",
- " 'rmse': rmse_rounded,\n",
- " 'r2': r2_rounded,\n",
- " 'exact_match': exact_accuracy,\n",
- " 'one_off': one_off_accuracy,\n",
- " 'two_off': two_off_accuracy,\n",
- " 'level_accuracy': level_accuracy_rounded\n",
+ " # Print detailed report\n",
+ " print(\"\\nUV Index Prediction Analysis:\")\n",
+ " print(\"\\nRaw Metrics:\")\n",
+ " for key, value in metrics['raw'].items():\n",
+ " print(f\"{key}: {value:.3f}\")\n",
+ "\n",
+ " print(\"\\nRounded Metrics:\")\n",
+ " for key, value in metrics['rounded'].items():\n",
+ " print(f\"{key}: {value:.3f}\")\n",
+ "\n",
+ " print(\"\\nAnalysis by UV Range:\")\n",
+ " for label, stats in range_analysis.items():\n",
+ " print(f\"\\n{label}:\")\n",
+ " for key, value in stats.items():\n",
+ " print(f\" {key}: {value:.3f}\")\n",
+ "\n",
+ " print(\"\\nConfusion Matrix:\")\n",
+ " print(cm_df)\n",
+ "\n",
+ " # Add range analysis and confusion matrix to metrics dictionary\n",
+ " metrics.update({\n",
+ " 'range_analysis': range_analysis,\n",
+ " 'confusion_matrix': cm_df.to_dict(),\n",
+ " 'plot_paths': {\n",
+ " 'main_analysis': main_plot_path if folder_name else None,\n",
+ " 'confusion_matrix': conf_matrix_path if folder_name else None\n",
" }\n",
- " }\n",
+ " })\n",
"\n",
" return metrics\n",
"\n",
"def plot_training_history(history, folder_name=None):\n",
" \"\"\"\n",
- " Visualizza e salva i plot della loss e delle metriche durante il training\n",
+ " Visualize and save the loss and metrics plots during training\n",
"\n",
" Parameters:\n",
" -----------\n",
" history : tensorflow.keras.callbacks.History\n",
- " L'oggetto history restituito dal training del modello\n",
+ " The history object returned by model training\n",
" folder_name : str\n",
- " Cartella dove salvare il plot\n",
+ " Folder where to save the plot\n",
" \"\"\"\n",
" import os\n",
"\n",
" try:\n",
- " # Crea la figura\n",
+ " # Create the figure\n",
" plt.figure(figsize=(12, 4))\n",
"\n",
- " # Plot della Loss\n",
+ " # Loss Plot\n",
" plt.subplot(1, 2, 1)\n",
" plt.plot(history.history['loss'], label='Training Loss')\n",
" plt.plot(history.history['val_loss'], label='Validation Loss')\n",
@@ -613,7 +966,7 @@
" plt.legend()\n",
" plt.grid(True)\n",
"\n",
- " # Plot del MAE\n",
+ " # MAE Plot\n",
" plt.subplot(1, 2, 2)\n",
" plt.plot(history.history['mae'], label='Training MAE')\n",
" plt.plot(history.history['val_mae'], label='Validation MAE')\n",
@@ -627,14 +980,14 @@
"\n",
" if folder_name is not None:\n",
" os.makedirs(folder_name, exist_ok=True)\n",
- " # Genera il nome del file con timestamp\n",
+ " # Generate filename with timestamp\n",
" filename = os.path.join(folder_name, 'training_history.png')\n",
"\n",
- " # Salva la figura\n",
+ " # Save the figure\n",
" plt.savefig(filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"\\nPlot della training history salvato come: {filename}\")\n",
+ " print(f\"\\nTraining history plot saved as: {filename}\")\n",
"\n",
- " # Salva anche i dati numerici in formato CSV\n",
+ " # Also save numerical data in CSV format\n",
" history_df = pd.DataFrame({\n",
" 'epoch': range(1, len(history.history['loss']) + 1),\n",
" 'training_loss': history.history['loss'],\n",
@@ -646,9 +999,9 @@
" if folder_name is not None:\n",
" csv_filename = os.path.join(folder_name, 'training_history.csv')\n",
" history_df.to_csv(csv_filename, index=False)\n",
- " print(f\"Dati della training history salvati come: {csv_filename}\")\n",
+ " print(f\"Training history data saved as: {csv_filename}\")\n",
"\n",
- " # Calcola e salva le statistiche finali\n",
+ " # Calculate and save final statistics\n",
" final_stats = {\n",
" 'final_training_loss': history.history['loss'][-1],\n",
" 'final_validation_loss': history.history['val_loss'][-1],\n",
@@ -660,56 +1013,56 @@
" }\n",
"\n",
" if folder_name is not None:\n",
- " # Salva le statistiche in formato JSON\n",
+ " # Save statistics in JSON format\n",
" stats_filename = os.path.join(folder_name, 'training_stats.json')\n",
" with open(stats_filename, 'w') as f:\n",
" json.dump(final_stats, f, indent=4)\n",
- " print(f\"Statistiche finali salvate come: {stats_filename}\")\n",
+ " print(f\"Final statistics saved as: {stats_filename}\")\n",
"\n",
- " # Stampa le statistiche principali\n",
- " print(\"\\nStatistiche finali del training:\")\n",
- " print(f\"Loss finale (train/val): {final_stats['final_training_loss']:.4f}/{final_stats['final_validation_loss']:.4f}\")\n",
- " print(f\"MAE finale (train/val): {final_stats['final_training_mae']:.4f}/{final_stats['final_validation_mae']:.4f}\")\n",
- " print(f\"Miglior validation loss: {final_stats['best_validation_loss']:.4f}\")\n",
- " print(f\"Miglior validation MAE: {final_stats['best_validation_mae']:.4f}\")\n",
+ " # Print main statistics\n",
+ " print(\"\\nFinal training statistics:\")\n",
+ " print(f\"Final Loss (train/val): {final_stats['final_training_loss']:.4f}/{final_stats['final_validation_loss']:.4f}\")\n",
+ " print(f\"Final MAE (train/val): {final_stats['final_training_mae']:.4f}/{final_stats['final_validation_mae']:.4f}\")\n",
+ " print(f\"Best validation loss: {final_stats['best_validation_loss']:.4f}\")\n",
+ " print(f\"Best validation MAE: {final_stats['best_validation_mae']:.4f}\")\n",
"\n",
" plt.show()\n",
"\n",
" except Exception as e:\n",
- " print(f\"\\nErrore durante la creazione o il salvataggio dei plot: {str(e)}\")\n",
+ " print(f\"\\nError during plot creation or saving: {str(e)}\")\n",
"\n",
"\n",
"def train_hybrid_model(model, X_train, y_train, X_test, y_test, epochs=100, batch_size=32, folder_name='uv_index'):\n",
" \"\"\"\n",
- " Funzione di training avanzata per il modello ibrido UV index con monitoraggio dettagliato\n",
- " e gestione del training.\n",
+ " Advanced training function for the hybrid UV index model with detailed monitoring\n",
+ " and training management.\n",
"\n",
" Parameters:\n",
" -----------\n",
" model : keras.Model\n",
- " Il modello ibrido compilato\n",
+ " The compiled hybrid model\n",
" X_train : numpy.ndarray\n",
- " Dati di training\n",
+ " Training data\n",
" y_train : numpy.ndarray\n",
- " Target di training\n",
+ " Training targets\n",
" X_test : numpy.ndarray\n",
- " Dati di validation\n",
+ " Validation data\n",
" y_test : numpy.ndarray\n",
- " Target di validation\n",
+ " Validation targets\n",
" epochs : int, optional\n",
- " Numero massimo di epoche di training\n",
+ " Maximum number of training epochs\n",
" batch_size : int, optional\n",
- " Dimensione del batch\n",
+ " Batch size\n",
"\n",
" Returns:\n",
" --------\n",
" history : keras.callbacks.History\n",
- " Storia del training con tutte le metriche\n",
+ " Training history with all metrics\n",
" \"\"\"\n",
"\n",
- " # Callbacks avanzati per il training\n",
+ " # Advanced callbacks for training\n",
" callbacks = [\n",
- " # Early Stopping avanzato\n",
+ " # Advanced Early Stopping\n",
" EarlyStopping(\n",
" monitor='mae',\n",
" patience=15,\n",
@@ -752,7 +1105,7 @@
" ),\n",
" tf.keras.callbacks.LambdaCallback(\n",
" on_epoch_end=lambda epoch, logs: print(\n",
- " f\"\\nEpoch {epoch + 1}: Predizioni fuori range: \"\n",
+ " f\"\\nEpoch {epoch + 1}: Out of range predictions: \"\n",
" f\"{np.sum((model.predict(X_test) < 0) | (model.predict(X_test) > 11))}\"\n",
" ) if epoch % 20 == 0 else None\n",
" )\n",
@@ -770,142 +1123,104 @@
" validation_freq=1,\n",
" )\n",
"\n",
- " # Analisi post-training\n",
- " print(\"\\nTraining completato con successo!\")\n",
+ " # Post-training analysis\n",
+ " print(\"\\nTraining completed successfully!\")\n",
"\n",
- " # Valutazione finale sul test set\n",
+ " # Final evaluation on test set\n",
" test_loss, test_mae, test_mse = model.evaluate(X_test, y_test, verbose=0)\n",
- " print(f\"\\nMetriche finali sul test set:\")\n",
+ " print(f\"\\nFinal metrics on test set:\")\n",
" print(f\"Loss: {test_loss:.4f}\")\n",
" print(f\"MAE: {test_mae:.4f}\")\n",
" print(f\"MSE: {test_mse:.4f}\")\n",
"\n",
- " # Analisi delle predizioni\n",
+ " # Prediction analysis\n",
" predictions = model.predict(X_test)\n",
" out_of_range = np.sum((predictions < 0) | (predictions > 11))\n",
- " print(f\"\\nPredizioni fuori range: {out_of_range} ({out_of_range / len(predictions) * 100:.2f}%)\")\n",
+ " print(f\"\\nOut of range predictions: {out_of_range} ({out_of_range / len(predictions) * 100:.2f}%)\")\n",
"\n",
" plot_training_history(history, folder_name=folder_name)\n",
"\n",
" return history\n",
"\n",
" except Exception as e:\n",
- " print(f\"\\nErrore durante il training: {str(e)}\")\n",
+ " print(f\"\\nError during training: {str(e)}\")\n",
" raise\n",
"\n",
" finally:\n",
- " # Pulizia della memoria\n",
+ " # Memory cleanup\n",
" tf.keras.backend.clear_session()\n",
"\n",
"\n",
- "def calculate_class_weights(y_train, n_classes=12):\n",
- " \"\"\"\n",
- " Calcola i pesi delle classi per bilanciare il dataset UV index.\n",
- " \n",
- " Parameters:\n",
- " -----------\n",
- " y_train : numpy.ndarray\n",
- " Array dei valori UV di training\n",
- " n_classes : int, optional\n",
- " Numero di classi possibili (0-11 per UV index, quindi 12 classi)\n",
- " \n",
- " Returns:\n",
- " --------\n",
- " dict:\n",
- " Dizionario con i pesi per ogni classe\n",
- " \"\"\"\n",
- " # Arrotonda i valori UV al più vicino intero e converti in intero\n",
- " y_discrete = np.clip(np.round(y_train), 0, 11).astype(int)\n",
- "\n",
- " # Calcola la frequenza di ogni classe\n",
- " unique, counts = np.unique(y_discrete, return_counts=True)\n",
- " total_samples = len(y_discrete)\n",
- "\n",
- " # Calcola i pesi inversamente proporzionali alla frequenza\n",
- " weights = {}\n",
- " for i in range(n_classes):\n",
- " if i in unique:\n",
- " # Se la classe è presente, calcola il peso\n",
- " weight = total_samples / (len(unique) * counts[unique == i][0])\n",
- " else:\n",
- " # Se la classe non è presente, assegna un peso neutro\n",
- " weight = 1.0\n",
- " weights[i] = weight\n",
- "\n",
- " return weights\n",
- "\n",
- "\n",
"def integrate_predictions(df, predictions, sequence_length=24):\n",
" \"\"\"\n",
- " Integra le predizioni dell'UV index nel dataset originale per i dati precedenti al 2010.\n",
- " \n",
+ " Integrate UV index predictions into the original dataset for pre-2010 data.\n",
+ "\n",
" Parameters:\n",
" -----------\n",
" df : pandas.DataFrame\n",
- " Dataset originale\n",
+ " Original dataset\n",
" predictions : numpy.ndarray\n",
- " Array delle predizioni UV index\n",
+ " Array of UV index predictions\n",
" sequence_length : int\n",
- " Lunghezza della sequenza usata per le predizioni\n",
- " \n",
+ " Sequence length used for predictions\n",
+ "\n",
" Returns:\n",
" --------\n",
" pandas.DataFrame\n",
- " Dataset aggiornato con le predizioni UV index\n",
+ " Updated dataset with UV index predictions\n",
" \"\"\"\n",
- " # Converti datetime in formato datetime se non lo è già\n",
+ " # Convert datetime to datetime format if not already\n",
" df['datetime'] = pd.to_datetime(df['datetime'])\n",
"\n",
- " # Identifica le righe precedenti al 2010\n",
+ " # Identify pre-2010 rows\n",
" mask_pre_2010 = df['datetime'].dt.year < 2010\n",
"\n",
- " # Crea un DataFrame temporaneo con le predizioni\n",
+ " # Create temporary DataFrame with predictions\n",
" dates_pre_2010 = df[mask_pre_2010]['datetime'].iloc[sequence_length - 1:]\n",
" predictions_df = pd.DataFrame({\n",
" 'datetime': dates_pre_2010,\n",
" 'uvindex_predicted': predictions.flatten()\n",
" })\n",
"\n",
- " # Merge con il dataset originale\n",
+ " # Merge with original dataset\n",
" df = df.merge(predictions_df, on='datetime', how='left')\n",
"\n",
- " # Aggiorna la colonna uvindex dove manca\n",
+ " # Update uvindex column where missing\n",
" df['uvindex'] = df['uvindex'].fillna(df['uvindex_predicted'])\n",
"\n",
- " # Rimuovi la colonna temporanea\n",
+ " # Remove temporary column\n",
" df = df.drop('uvindex_predicted', axis=1)\n",
"\n",
- " print(f\"Aggiunte {len(predictions)} predizioni al dataset\")\n",
- " print(f\"Righe con UV index dopo l'integrazione: {df['uvindex'].notna().sum()}\")\n",
+ " print(f\"Added {len(predictions)} predictions to dataset\")\n",
+ " print(f\"Rows with UV index after integration: {df['uvindex'].notna().sum()}\")\n",
"\n",
" return df\n",
"\n",
"\n",
"def train_uvindex_bounded_model(df):\n",
" \"\"\"\n",
- " Training del modello con vincoli specifici per UV index\n",
+ " Training of the model with specific constraints for UV index\n",
" \"\"\"\n",
- " print(\"Inizializzazione del training del modello UV index...\")\n",
+ " print(\"Initializing UV index model training...\")\n",
"\n",
" try:\n",
- "\n",
- " # Preparazione dei dati\n",
- " print(\"\\n1. Preparazione dei dati...\")\n",
+ " # Data preparation\n",
+ " print(\"\\n1. Preparing data...\")\n",
" X_train_seq, X_test_seq, y_train, y_test, scaler, features, X_to_predict_seq = prepare_hybrid_data(df)\n",
"\n",
- " print(f\"Shape dei dati di training: {X_train_seq.shape}\")\n",
- " print(f\"Shape dei dati di test: {X_test_seq.shape}\")\n",
+ " print(f\"Training data shape: {X_train_seq.shape}\")\n",
+ " print(f\"Test data shape: {X_test_seq.shape}\")\n",
"\n",
- " # Verifica della qualità dei dati\n",
+ " # Data quality verification\n",
" if np.isnan(X_train_seq).any() or np.isnan(y_train).any():\n",
- " raise ValueError(\"Trovati valori NaN nei dati di training\")\n",
+ " raise ValueError(\"Found NaN values in training data\")\n",
"\n",
- " # Creazione del modello\n",
- " print(\"\\n2. Creazione del modello...\")\n",
+ " # Model creation\n",
+ " print(\"\\n2. Creating model...\")\n",
" input_shape = (X_train_seq.shape[1], X_train_seq.shape[2])\n",
" model = create_uv_index_model(input_shape, folder_name)\n",
"\n",
- " print(\"\\n4. Avvio del training...\")\n",
+ " print(\"\\n4. Starting training...\")\n",
" history = train_hybrid_model(\n",
" model=model,\n",
" X_train=X_train_seq,\n",
@@ -917,14 +1232,14 @@
" folder_name=folder_name\n",
" )\n",
"\n",
- " print(\"\\n5. Generazione delle predizioni...\")\n",
+ " print(\"\\n5. Generating predictions...\")\n",
" predictions = model.predict(X_test_seq)\n",
" predictions = np.clip(predictions, 0, 11)\n",
"\n",
- " print(\"\\n6. Valutazione del modello...\")\n",
+ " print(\"\\n6. Model evaluation...\")\n",
" metrics = evaluate_uv_predictions(y_test, predictions, folder_name=folder_name)\n",
"\n",
- " # Creazione del dizionario dei risultati\n",
+ " # Creating results dictionary\n",
" training_results = {\n",
" 'model_params': {\n",
" 'input_shape': input_shape,\n",
@@ -935,7 +1250,6 @@
" 'batch_size': 32,\n",
" 'total_epochs': len(history.history['loss']),\n",
" 'best_epoch': np.argmin(history.history['val_loss']) + 1,\n",
- " #'class_weights': {str(k): float(v) for k, v in class_weights.items()}\n",
" },\n",
" 'performance_metrics': {\n",
" 'final_loss': float(history.history['val_loss'][-1]),\n",
@@ -945,16 +1259,16 @@
" }\n",
" }\n",
"\n",
- " print(\"\\n7. Predizione dei dati mancanti risultati...\")\n",
+ " print(\"\\n7. Predicting missing data results...\")\n",
" to_predict_predictions = model.predict(X_to_predict_seq)\n",
" to_predict_predictions = np.clip(to_predict_predictions, 0, 11)\n",
"\n",
- " print(\"\\n8. Integrazione delle predizioni nel dataset originale...\")\n",
+ " print(\"\\n8. Integrating predictions into original dataset...\")\n",
" df_updated = integrate_predictions(df.copy(), to_predict_predictions)\n",
"\n",
- " df_updated.to_parquet('./data/weather_data_uvindex.parquet')\n",
+ " df_updated.to_parquet('../../sources/weather_data_uvindex.parquet')\n",
"\n",
- " # Aggiungi statistiche sulle predizioni al training_results\n",
+ " # Add prediction statistics to training_results\n",
" training_results['prediction_stats'] = {\n",
" 'n_predictions_added': len(to_predict_predictions),\n",
" 'mean_predicted_uv': float(to_predict_predictions.mean()),\n",
@@ -962,16 +1276,16 @@
" 'max_predicted_uv': float(to_predict_predictions.max()),\n",
" }\n",
"\n",
- " print(\"\\nTraining completato con successo!\")\n",
+ " print(\"\\nTraining completed successfully!\")\n",
"\n",
" return model, scaler, features, history, predictions, y_test, metrics, training_results\n",
"\n",
" except Exception as e:\n",
- " print(f\"\\nErrore durante il training: {str(e)}\")\n",
+ " print(f\"\\nError during training: {str(e)}\")\n",
" raise\n",
"\n",
" finally:\n",
- " # Pulizia della memoria\n",
+ " # Memory cleanup\n",
" tf.keras.backend.clear_session()"
]
},
@@ -1349,120 +1663,11 @@
}
],
"source": [
- "df = pd.read_parquet('../data/weather_data.parquet')\n",
+ "df = pd.read_parquet('../../sources/weather_data.parquet')\n",
"\n",
- "# Esegui il training\n",
"model, scaler, features, history, predictions, y_test, metrics, training_results = train_uvindex_bounded_model(df)"
]
},
- {
- "cell_type": "code",
- "execution_count": 10,
- "id": "637891db-8d55-4232-a56e-9759dbcc8c2f",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Analisi Precisione Predizioni UV Index:\n",
- "Precisione esatta: 61.3%\n",
- "Precisione entro 0.5 punti: 79.4%\n",
- "Precisione entro 1.0 punti: 90.4%\n",
- "Precisione livello di rischio: 88.0%\n",
- "\n",
- "Analisi errori per livello UV:\n",
- "MAE per UV Basso (0-2): 0.138 (n=41346)\n",
- "MAE per UV Moderato (2-5): 0.906 (n=11522)\n",
- "MAE per UV Alto (5-7): 0.877 (n=5468)\n",
- "MAE per UV Molto Alto (7-10): 0.758 (n=6278)\n",
- "MAE per UV Estremo (10-11): 1.528 (n=252)\n",
- "\n",
- "Statistiche degli errori:\n",
- "Media errori: 0.006\n",
- "Deviazione standard errori: 0.783\n",
- "Errore mediano: 0.000\n",
- "95° percentile errore assoluto: 1.723\n"
- ]
- }
- ],
- "source": [
- "def analyze_uv_prediction_quality(y_true, y_pred):\n",
- " \"\"\"\n",
- " Analisi dettagliata della qualità delle predizioni UV\n",
- " \"\"\"\n",
- " # Converti in numpy array e appiattisci\n",
- " y_true = np.array(y_true).ravel()\n",
- " y_pred = np.array(y_pred).ravel()\n",
- "\n",
- " # Arrotonda le predizioni al più vicino 0.5\n",
- " y_pred_rounded = np.round(y_pred * 2) / 2\n",
- "\n",
- " # Calcola diverse metriche di accuratezza usando array numpy\n",
- " exact_match = np.mean(np.abs(y_pred_rounded - y_true) < 1e-6) * 100 # uso di tolleranza per confronti float\n",
- " within_half = np.mean(np.abs(y_pred_rounded - y_true) <= 0.5) * 100\n",
- " within_one = np.mean(np.abs(y_pred_rounded - y_true) <= 1.0) * 100\n",
- "\n",
- " # Analisi per livello di rischio UV\n",
- " def get_uv_risk_level(values):\n",
- " # Vettorizzazione della funzione per array numpy\n",
- " levels = np.zeros_like(values, dtype=str)\n",
- " levels[values <= 2] = 'Basso'\n",
- " levels[(values > 2) & (values <= 5)] = 'Moderato'\n",
- " levels[(values > 5) & (values <= 7)] = 'Alto'\n",
- " levels[(values > 7) & (values <= 10)] = 'Molto Alto'\n",
- " levels[values > 10] = 'Estremo'\n",
- " return levels\n",
- "\n",
- " y_true_risk = get_uv_risk_level(y_true)\n",
- " y_pred_risk = get_uv_risk_level(y_pred_rounded)\n",
- "\n",
- " risk_accuracy = np.mean(y_true_risk == y_pred_risk) * 100\n",
- "\n",
- " print(\"Analisi Precisione Predizioni UV Index:\")\n",
- " print(f\"Precisione esatta: {exact_match:.1f}%\")\n",
- " print(f\"Precisione entro 0.5 punti: {within_half:.1f}%\")\n",
- " print(f\"Precisione entro 1.0 punti: {within_one:.1f}%\")\n",
- " print(f\"Precisione livello di rischio: {risk_accuracy:.1f}%\")\n",
- "\n",
- " # Distribuzione degli errori per livello UV\n",
- " uv_ranges = [(0, 2), (2, 5), (5, 7), (7, 10), (10, 11)]\n",
- " labels = ['Basso', 'Moderato', 'Alto', 'Molto Alto', 'Estremo']\n",
- "\n",
- " print(\"\\nAnalisi errori per livello UV:\")\n",
- " for (low, high), label in zip(uv_ranges, labels):\n",
- " mask = (y_true >= low) & (y_true < high)\n",
- " if np.sum(mask) > 0:\n",
- " mae_range = np.mean(np.abs(y_pred[mask] - y_true[mask]))\n",
- " n_samples = np.sum(mask)\n",
- " print(f\"MAE per UV {label} ({low}-{high}): {mae_range:.3f} (n={n_samples})\")\n",
- "\n",
- " # Analisi aggiuntiva della distribuzione degli errori\n",
- " errors = y_pred - y_true\n",
- " print(\"\\nStatistiche degli errori:\")\n",
- " print(f\"Media errori: {np.mean(errors):.3f}\")\n",
- " print(f\"Deviazione standard errori: {np.std(errors):.3f}\")\n",
- " print(f\"Errore mediano: {np.median(errors):.3f}\")\n",
- " print(f\"95° percentile errore assoluto: {np.percentile(np.abs(errors), 95):.3f}\")\n",
- "\n",
- " return {\n",
- " 'exact_match': exact_match,\n",
- " 'within_half': within_half,\n",
- " 'within_one': within_one,\n",
- " 'risk_accuracy': risk_accuracy,\n",
- " 'error_stats': {\n",
- " 'mean': float(np.mean(errors)),\n",
- " 'std': float(np.std(errors)),\n",
- " 'median': float(np.median(errors)),\n",
- " 'p95_abs': float(np.percentile(np.abs(errors), 95))\n",
- " }\n",
- " }\n",
- "\n",
- "\n",
- "# Per utilizzare l'analisi:\n",
- "metrics = analyze_uv_prediction_quality(y_test, predictions)"
- ]
- },
{
"cell_type": "code",
"execution_count": 11,
@@ -1500,21 +1705,21 @@
"source": [
"def plot_error_analysis(y_true, y_pred, folder_name=None):\n",
" \"\"\"\n",
- " Funzione per visualizzare l'analisi degli errori di predizione\n",
+ " Function to visualize prediction error analysis\n",
"\n",
" Parameters:\n",
" -----------\n",
" y_true : array-like\n",
- " Valori reali\n",
+ " Actual values\n",
" y_pred : array-like\n",
- " Valori predetti\n",
+ " Predicted values\n",
" folder_name : str, optional\n",
- " Cartella dove salvare i plot. Se None, i plot non vengono salvati.\n",
+ " Folder to save plots. If None, plots are not saved.\n",
" \"\"\"\n",
" import os\n",
" from datetime import datetime\n",
"\n",
- " # Converti in array numpy 1D se necessario\n",
+ " # Convert to 1D numpy array if necessary\n",
" if isinstance(y_true, pd.Series):\n",
" y_true = y_true.values\n",
" if isinstance(y_pred, pd.Series):\n",
@@ -1523,330 +1728,72 @@
" y_true = y_true.ravel()\n",
" y_pred = y_pred.ravel()\n",
"\n",
- " # Calcola gli errori\n",
+ " # Calculate errors\n",
" errors = y_pred - y_true\n",
"\n",
- " # Crea la figura principale\n",
+ " # Create main figure\n",
" fig = plt.figure(figsize=(15, 5))\n",
"\n",
- " # Plot 1: Distribuzione degli errori\n",
+ " # Plot 1: Error Distribution\n",
" plt.subplot(1, 3, 1)\n",
" plt.hist(errors, bins=50, alpha=0.7)\n",
- " plt.title('Distribuzione degli Errori di Predizione')\n",
- " plt.xlabel('Errore')\n",
- " plt.ylabel('Frequenza')\n",
+ " plt.title('Prediction Error Distribution')\n",
+ " plt.xlabel('Error')\n",
+ " plt.ylabel('Frequency')\n",
"\n",
" # Plot 2: Actual vs Predicted\n",
" plt.subplot(1, 3, 2)\n",
" plt.scatter(y_true, y_pred, alpha=0.5)\n",
" plt.plot([y_true.min(), y_true.max()], [y_true.min(), y_true.max()], 'r--', lw=2)\n",
- " plt.title('Valori Reali vs Predetti')\n",
- " plt.xlabel('Valori Reali')\n",
- " plt.ylabel('Valori Predetti')\n",
+ " plt.title('Actual vs Predicted Values')\n",
+ " plt.xlabel('Actual Values')\n",
+ " plt.ylabel('Predicted Values')\n",
"\n",
- " # Plot 3: Errori vs Valori Reali\n",
+ " # Plot 3: Errors vs Actual Values\n",
" plt.subplot(1, 3, 3)\n",
" plt.scatter(y_true, errors, alpha=0.5)\n",
" plt.axhline(y=0, color='r', linestyle='--')\n",
- " plt.title('Errori vs Valori Reali')\n",
- " plt.xlabel('Valori Reali')\n",
- " plt.ylabel('Errore')\n",
+ " plt.title('Errors vs Actual Values')\n",
+ " plt.xlabel('Actual Values')\n",
+ " plt.ylabel('Error')\n",
"\n",
" plt.tight_layout()\n",
"\n",
- " # Salva il plot se è specificata una cartella\n",
+ " # Save plot if folder is specified\n",
" if folder_name is not None:\n",
" try:\n",
- " # Crea la cartella se non esiste\n",
+ " # Create folder if it doesn't exist\n",
" os.makedirs(folder_name, exist_ok=True)\n",
"\n",
- " # Genera il nome del file con timestamp\n",
+ " # Generate filename with timestamp\n",
" timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
" filename = os.path.join(folder_name, f'error_analysis_{timestamp}.png')\n",
"\n",
- " # Salva la figura\n",
+ " # Save figure\n",
" plt.savefig(filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"\\nPlot salvato come: {filename}\")\n",
+ " print(f\"\\nPlot saved as: {filename}\")\n",
" except Exception as e:\n",
- " print(f\"\\nErrore nel salvare il plot: {str(e)}\")\n",
+ " print(f\"\\nError saving plot: {str(e)}\")\n",
"\n",
" plt.show()\n",
"\n",
- " # Stampa statistiche degli errori\n",
- " print(\"\\nStatistiche degli errori:\")\n",
+ " # Print error statistics\n",
+ " print(\"\\nError statistics:\")\n",
" print(f\"MAE: {np.mean(np.abs(errors)):.4f}\")\n",
" print(f\"MSE: {np.mean(errors ** 2):.4f}\")\n",
" print(f\"RMSE: {np.sqrt(np.mean(errors ** 2)):.4f}\")\n",
- " print(f\"Media errori: {np.mean(errors):.4f}\")\n",
- " print(f\"Std errori: {np.std(errors):.4f}\")\n",
+ " print(f\"Mean errors: {np.mean(errors):.4f}\")\n",
+ " print(f\"Std errors: {np.std(errors):.4f}\")\n",
"\n",
- " # Calcola percentuali di errori entro certe soglie\n",
+ " # Calculate percentage of errors within thresholds\n",
" thresholds = [0.5, 1.0, 1.5, 2.0]\n",
" for threshold in thresholds:\n",
" within_threshold = np.mean(np.abs(errors) <= threshold) * 100\n",
- " print(f\"Predizioni entro ±{threshold}: {within_threshold:.1f}%\")\n",
+ " print(f\"Predictions within ±{threshold}: {within_threshold:.1f}%\")\n",
"\n",
"\n",
"plot_error_analysis(y_test, predictions, folder_name=folder_name)"
]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "id": "03bb9564-e518-4662-b3ee-4cfa96cdf696",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAB8YAAAPeCAYAAAB+zXC1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXwU9f3H8dfMnrnDkQQI96GIoLSoiFhFRSNSj6r1rCLeV/tD6tl6oW2taBXvo1qwKq23tloFPFutt6IgQgW55EgCIddm75nfH0sWFnIMmrAJ+34+HnnAzryz+8nknPnM9/s1bNu2ERERERERERERERERERER2UWZ6S5ARERERERERERERERERESkPakxLiIiIiIiIiIiIiIiIiIiuzQ1xkVEREREREREREREREREZJemxriIiIiIiIiIiIiIiIiIiOzS1BgXEREREREREREREREREZFdmhrjIiIiIiIiIiIiIiIiIiKyS1NjXEREREREREREREREREREdmlqjIuIiIiIiIiIiIiIiIiIyC5NjXEREREREREREREREREREdmlqTEuIpKhbrzxRgzD2CmvNW7cOMaNG5d8/Pbbb2MYBs8+++xOef1Gs2bNwjAMVqxYsVNfty1sewzbQ1PHZ2e87s7wQz/3Z511Fv3790/ZZhgGN9544w+urb21Ve1NPY+IiIiIiHQuK1aswDAMZs2a1abPuzOvMXxfu/I57w+1sz9/Or8UEZF0UWNcRGQX0Hhy1/jm9/vp1asXZWVl3H333dTV1bXJ66xdu5Ybb7yR+fPnt8nzya6jf//+KV+DW78deeSR6S4vbRovOjW+uVwu+vbty89+9jN9H4mIiIiISIuOOeYYsrOzWzynP/300/F6vWzcuHEnVvb9nXXWWSnnSD6fj912243rr7+eUCiU7vLSZutjYpomvXr14ogjjuDtt99Od2mtmj17NjNmzNhuu64hiYhIR+ROdwEiItJ2brrpJgYMGEA0GmX9+vW8/fbbTJkyhTvuuIN//OMf7LXXXsnstddey9VXX71Dz7927VqmTZtG//79GTlypOP3mzt37g69Tns544wzOOWUU/D5fOkupdPYkc/dyJEj+fWvf73d9l69erVlSd9Le3zug8EgbrezP6VOPfVUjjrqKOLxOF9//TUPPPAAr776Kh988MEOfS+1lR2pvdGf//xnLMtqp4pERERERGRbp59+Ov/85z954YUXOPPMM7fb39DQwEsvvcSRRx5Jt27d0lDhFjtyjcHn8/HII48AUFNTw0svvcTNN9/MsmXLePLJJ9uzzO10lOsVAIcffjhnnnkmtm2zfPly7r//fg499FBeeeUVJkyYkO7ymjV79mwWLlzIlClTUra3dA1J55ciIpIuaoyLiOxCJkyYwD777JN8fM011/Dmm2/y05/+lGOOOYavv/6arKwsANxu9w43xnZUQ0MD2dnZeL3edn0dp1wuFy6XK91ldCo78rkrLS3lF7/4xQ6/RiAQICcnZ7vtlmURiUTw+/07/JzbPnd7fO53pK4f//jHKcdm7NixHHPMMTzwwAM89NBDTb5Pc8elLXyfY+rxeNqhEhERERERac4xxxxDXl4es2fPbrIx/tJLLxEIBDj99NPTUF1C43nLjlxjcLvdKedHF198MQcccAB/+9vfuOOOOygpKWmvcrfTUa5XAOy2224px+VnP/sZe+21FzNmzGi2MR4KhfB6vZhm55oYVueXIiKSLp3rN6aIiOywQw89lOuuu46VK1fyxBNPJLc3tX7UvHnzOPDAAyksLCQ3N5fdd9+d3/zmN0BiXfB9990XgMmTJyen+Gpcl2zcuHEMHz6cTz/9lIMOOojs7Ozk+za3Zlc8Huc3v/kNPXr0ICcnh2OOOYbVq1enZPr3789ZZ5213ftu+5wtTeXdOPVYc+tM33///ey55574fD569erFJZdcQnV19XavN3z4cBYtWsQhhxxCdnY2paWlTJ8+fbvawuEwN9xwA4MHD8bn89GnTx+uvPJKwuHwdtmmPPzwwwwaNIisrCz2228//vOf/zSZc/o6wWCQX/3qV3Tv3p28vDyOOeYY1qxZ42id6bZeb+2ss84iNzeXZcuWcdRRR5GXl5e8iGMYBpdeeilPPvlk8vPx2muvAfD5558zYcIE8vPzyc3N5bDDDuODDz5Iee7Gz+8777zDxRdfTHFxMb17907Z52SN8RdffJHhw4fj9/sZPnw4L7zwQpO5H7LG+KGHHgrA8uXLW60d4NVXX+UnP/kJOTk55OXlMXHiRL766qs2qX3b6d63fWvU1BpwgUCAX//61/Tp0wefz8fuu+/O7bffjm3b273epZdemqzP5/Ox5557Jj+/W1uzZg1nn302JSUlydxf/vKX1g+qiIiIiMguJisri+OPP5433niDioqK7fbPnj07eY5XVVXF5ZdfzogRI8jNzSU/P58JEybwxRdfOHqtN998M3nOUVhYyLHHHsvXX3+dkmm8jrBo0SJOO+00unTpwoEHHpiy7/swDIMDDzwQ27b59ttvU/Y5ORf68ssvOeussxg4cCB+v58ePXpw9tlnO5pe3sk57/DhwznkkEO2225ZFqWlpZx44onJbX//+98ZNWoUeXl55OfnM2LECO66665W62jKiBEj6N69e/K88e2338YwDP7+979z7bXXUlpaSnZ2NrW1tQB8+OGHHHnkkRQUFJCdnc3BBx/Me++9t93zvvvuu+y77774/X4GDRrU7M3aAE888QSjRo0iKyuLrl27csopp6Rctxk3bhyvvPIKK1euTJ5D9u/fv9VrSFpjXERE0kUjxkVEMsAZZ5zBb37zG+bOnct5553XZOarr77ipz/9KXvttRc33XQTPp+PpUuXJk+i9thjD2666Sauv/56zj//fH7yk58AcMABBySfY+PGjUyYMIFTTjmFX/ziF63e5f373/8ewzC46qqrqKioYMaMGYwfP5758+cnR7Y7NWPGDOrr61O23XnnncyfP7/FKeVuvPFGpk2bxvjx47noootYsmQJDzzwAB9//DHvvfdeyl3MmzZt4sgjj+T444/npJNO4tlnn+Wqq65ixIgRybu3LcvimGOO4d133+X8889njz32YMGCBdx5553873//48UXX2zx43j00Ue54IILOOCAA5gyZQrffvstxxxzDF27dqVPnz7J3I68zllnncXTTz/NGWecwf77788777zDxIkTd+DoOhONRtmwYcN223NyclI+n7FYjLKyMg488EBuv/12srOzk/vefPNNnn76aS699FK6d+9O//79+eqrr/jJT35Cfn4+V155JR6Ph4ceeohx48bxzjvvMHr06JTXu/jiiykqKuL6668nEAjs0Mcwd+5cTjjhBIYNG8Ytt9zCxo0bmTx5ckqTui0sW7YMYLuvzaZqf/zxx5k0aRJlZWXceuutNDQ08MADD3DggQfy+eefJy8mfN/ai4qKePzxx1O2RaNRLrvsshZHT9i2zTHHHMNbb73FOeecw8iRI5kzZw5XXHEFa9as4c4770zJv/vuuzz//PNcfPHF5OXlcffdd3PCCSewatWq5HEoLy9n//33TzbSi4qKePXVVznnnHOora3dbmo+EREREZFd3emnn85jjz2WPE9qVFVVxZw5czj11FPJysriq6++4sUXX+TnP/85AwYMoLy8nIceeoiDDz6YRYsWtbjE1euvv86ECRMYOHAgN954I8FgkHvuuYexY8fy2WefbdfA/PnPf86QIUP4wx/+sN1Nsd9X403MXbp0SW5zei40b948vv32WyZPnkyPHj346quvePjhh/nqq6/44IMPvnfDvtHJJ5/MjTfeyPr16+nRo0dy+7vvvsvatWs55ZRTknWceuqpHHbYYdx6660AfP3117z33nv83//93w6/7qZNm9i0aRODBw9O2X7zzTfj9Xq5/PLLCYfDeL1e3nzzTSZMmMCoUaO44YYbME2TmTNncuihh/Kf//yH/fbbD4AFCxZwxBFHUFRUxI033kgsFuOGG25o8vrN73//e6677jpOOukkzj33XCorK7nnnns46KCD+PzzzyksLOS3v/0tNTU1fPfdd8lzwNzcXEfXkERERNLCFhGRTm/mzJk2YH/88cfNZgoKCuwf/ehHycc33HCDvfWvgTvvvNMG7MrKymaf4+OPP7YBe+bMmdvtO/jgg23AfvDBB5vcd/DBBycfv/XWWzZgl5aW2rW1tcntTz/9tA3Yd911V3Jbv3797EmTJrX6nNtqfK6bbropua3xOC1fvty2bduuqKiwvV6vfcQRR9jxeDyZu/fee23A/stf/rLdx/fXv/41uS0cDts9evSwTzjhhOS2xx9/3DZN0/7Pf/6TUs+DDz5oA/Z7773XbM2RSMQuLi62R44caYfD4eT2hx9+2AZSPl6nr/Ppp5/agD1lypSU3FlnnWUD9g033NDs8Wn8uFs6zo369etnA02+3XLLLcncpEmTbMC++uqrt3sOwDZN0/7qq69Sth933HG21+u1ly1blty2du1aOy8vzz7ooIO2q//AAw+0Y7FYynM09bE1ZeTIkXbPnj3t6urq5La5c+fagN2vX7/t6t36+DVl+fLlNmBPmzbNrqystNevX2+//fbb9o9+9CMbsJ977rkWa6+rq7MLCwvt8847L+V5169fbxcUFKRsb8vaL774YtvlctlvvvlmctukSZNSnufFF1+0Aft3v/tdyvueeOKJtmEY9tKlS1Nez+v1pmz74osvbMC+5557ktvOOeccu2fPnvaGDRtSnvOUU06xCwoK7IaGhmZrFhERERHZFcViMbtnz572mDFjUrY3nvvNmTPHtm3bDoVCKee1tp04H/H5fCnnxY3nKFuf148cOdIuLi62N27cmNz2xRdf2KZp2meeeWZyW+N1hFNPPXW7Ore9xtCcSZMm2Tk5OXZlZaVdWVlpL1261L799tttwzDs4cOH25Zl2ba9Y+dCTZ0n/O1vf7MB+9///ndy2/c9512yZMl25y62nThvys3NTb7+//3f/9n5+fnbnY86AdjnnHOOXVlZaVdUVNgffvihfdhhh9mA/ac//cm27S3XUgYOHJjyMVuWZQ8ZMsQuKytLHj/bThyXAQMG2Icffnhy23HHHWf7/X575cqVyW2LFi2yXS5XyudvxYoVtsvlsn//+9+n1LlgwQLb7XanbJ84ceJ255y23fI1pG3PL0VERHYWTaUuIpIhcnNzqaura3Z/YWEhkFijzLKs7/UaPp+PyZMnO86feeaZ5OXlJR+feOKJ9OzZk3/961/f6/UbLVq0iLPPPptjjz2Wa6+9ttnc66+/TiQSYcqUKSnrcZ133nnk5+fzyiuvpORzc3NT1vvyer3st99+KVO9PfPMM+yxxx4MHTqUDRs2JN8ap85+6623mq3nk08+oaKiggsvvDBlpO5ZZ51FQUFBStbp6zROVX3xxRenvP8vf/nLZuv4vkaPHs28efO2ezv11FO3y1500UVNPsfBBx/MsGHDko/j8Thz587luOOOY+DAgcntPXv25LTTTuPdd99NThvX6Lzzzvte64mvW7eO+fPnM2nSpJTjffjhh6fU9H3ccMMNFBUV0aNHD8aNG8eyZcu49dZbOf7441usfd68eVRXV3PqqaemfJ5dLhejR49Ofp7bsva//vWv3H///UyfPr3J6QIb/etf/8LlcvGrX/0qZfuvf/1rbNvm1VdfTdk+fvx4Bg0alHy81157kZ+fn/z+sW2b5557jqOPPhrbtlM+3rKyMmpqavjss8926GMREREREensXC4Xp5xyCu+//37K0lCzZ8+mpKSEww47DEicjzee18bjcTZu3JhcIq2lv6MbzyXOOussunbtmty+1157cfjhhzd5fn7hhRf+oI8pEAhQVFREUVERgwcP5vLLL2fs2LG89NJLydHdTs+FgJQZykKhEBs2bGD//fcHaJNziN12242RI0fy1FNPJbfF43GeffZZjj766OTrFxYWEggEmDdv3vd6nUcffZSioiKKi4sZPXo07733HlOnTt1u5qxJkyalfMzz58/nm2++4bTTTmPjxo3JYxUIBDjssMP497//jWVZxONx5syZw3HHHUffvn2T77/HHntQVlaW8hrPP/88lmVx0kknpRz/Hj16MGTIkBavbYiIiHRkmkpdRCRD1NfXU1xc3Oz+k08+mUceeYRzzz2Xq6++msMOO4zjjz+eE088MaVp3JLS0tIWp17e1pAhQ1IeG4bB4MGDHa0D3Zza2lqOP/54SktL+etf/9rilGkrV64EYPfdd0/Z7vV6GThwYHJ/o969e2/3fF26dOHLL79MPv7mm2/4+uuvKSoqavI1m1oXbtt6tj0uHo8npSm8I6+zcuVKTNNkwIABKfu3nYqtLXTv3p3x48e3mnO73c1O771tnZWVlTQ0NGz3OYLEybtlWaxevZo999yz2edwqrnjD7R6Mak1559/Pj//+c8xTZPCwsLkGurb2rb2b775BtiyJvm28vPz27T2+fPnc+GFF3LqqacyderUFrMrV66kV69eKTe3QOLzsnVNjba+8NKoS5cubNq0CUh8rqurq3n44Yd5+OGHm3zNlr5/RERERER2Vaeffjp33nkns2fP5je/+Q3fffcd//nPf/jVr36VvLHWsizuuusu7r//fpYvX048Hk++f0vLizV3XgyJv+3nzJlDIBAgJycnuf37nnM18vv9/POf/wTgu+++Y/r06VRUVKQ0e52eC0FiWvlp06bx97//fbtzhpqamh9Ua6OTTz6Z3/zmN6xZs4bS0lLefvttKioqOPnkk5OZiy++mKeffpoJEyZQWlrKEUccwUknncSRRx7p6DWOPfZYLr30UgzDIC8vjz333DPluDdq7rxx0qRJzT53TU0N4XCYYDDY7Hnj1jdBfPPNN9i23WQWSFl2TkREpDNRY1xEJAN899131NTUtNgMzcrK4t///jdvvfUWr7zyCq+99hpPPfUUhx56KHPnznU0AndH1wV3ornGdjweb7Kms846i7Vr1/LRRx+lnCi3heaOgb3VmmqWZTFixAjuuOOOJrNbrxP+Q+ys12kPW49k2FZbfA21x9fhDzVkyBBHNw1sW3vj7A2PP/54ylp2jdzutvtTbtOmTZxwwgnstttuPPLII232vI1a+/5p/Fh/8YtfNHtBZ6+99mrzukREREREOrpRo0YxdOhQ/va3v/Gb3/yGv/3tb9i2zemnn57M/OEPf+C6667j7LPP5uabb6Zr166YpsmUKVO+96xwzfmh51wulyvl/KisrIyhQ4dywQUX8I9//APYsXOhk046if/+979cccUVjBw5ktzcXCzL4sgjj2yzj/3kk0/mmmuu4ZlnnmHKlCk8/fTTFBQUpDS9i4uLmT9/PnPmzOHVV1/l1VdfZebMmZx55pk89thjrb5G7969f9B542233cbIkSObfJ/c3FzC4XCrz731cxqGwauvvtrkuVxubq7j5xIREelI1BgXEckAjz/+OMB2U2NtyzRNDjvsMA477DDuuOMO/vCHP/Db3/6Wt956i/Hjx7c4+vr7aLyruZFt2yxdujSl+dWlSxeqq6u3e9+VK1duN4r6j3/8Iy+++CLPP/88Q4cObfX1+/XrB8CSJUtSnisSibB8+XJHJ6TbGjRoEF988QWHHXbYDh+vxnq++eablLvio9Eoy5cvZ++9997h1+nXrx+WZbF8+fKUO72XLl26Q7WlS1FREdnZ2SxZsmS7fYsXL8Y0zTa7CWDr47+tpl5/Z2icery4uLjFr8cfWrtlWZx++ulUV1fz+uuvk52d3er79OvXj9dff526urqUUeOLFy9OqcmpoqIi8vLyiMfj3+t7T0RERERkV3b66adz3XXX8eWXXzJ79myGDBnCvvvum9z/7LPPcsghh/Doo4+mvF91dTXdu3dv9nm3Pi/e1uLFi+nevXuTo5bbUs+ePbnsssuYNm0aH3zwAfvvv7/jc6FNmzbxxhtvMG3aNK6//vrk9qbOjX6IAQMGsN9++/HUU09x6aWX8vzzz3PcccdtNxOY1+vl6KOP5uijj8ayLC6++GIeeughrrvuunaZuQ22nDfm5+e3eKyKiorIyspydN44aNAgbNtmwIAB7Lbbbi2+fnPXJNr6GpKIiEhb0BrjIiK7uDfffJObb76ZAQMGpNxNvq2qqqrttjXeadx4V3HjyXBTjerv469//WvKuufPPvss69atY8KECcltgwYN4oMPPiASiSS3vfzyy6xevTrluV5//XWuvfZafvvb33Lcccc5ev3x48fj9Xq5++67U0Z9P/roo9TU1DBx4sQd/phOOukk1qxZw5///Oft9gWDQQKBQLPvu88++1BUVMSDDz6Y8vHOmjVru2Pu9HUab4a4//77UzL33HOP448pnVwuF0cccQQvvfRSyhT75eXlzJ49mwMPPLDNZgbo2bMnI0eO5LHHHkuZbm/evHksWrSoTV5jR5WVlZGfn88f/vAHotHodvsrKyuBH177tGnTmDNnDn/7298cT4t41FFHEY/Huffee1O233nnnRiGkfJ97ITL5eKEE07gueeeY+HChdvtb/xYRUREREQyUeP5/PXXX8/8+fO3O793uVwp57UAzzzzDGvWrGnxebc+l9j6vHPhwoXMnTuXo446qm0+gFb88pe/JDs7mz/+8Y+A83OhxtHM237sM2bMaPMaTz75ZD744AP+8pe/sGHDhpRp1AE2btyY8tg0zeSN/zsyWntHjRo1ikGDBnH77bdTX1+/3f6tj1VZWRkvvvgiq1atSu7/+uuvmTNnTsr7HH/88bhcLqZNm7bdsbVtO+VjzcnJaXLK+ra+hiQiItIWNGJcRGQX8uqrr7J48WJisRjl5eW8+eabzJs3j379+vGPf/wDv9/f7PvedNNN/Pvf/2bixIn069ePiooK7r//fnr37s2BBx4IJJrUhYWFPPjgg+Tl5ZGTk8Po0aO/9/piXbt25cADD2Ty5MmUl5czY8YMBg8ezHnnnZfMnHvuuTz77LMceeSRnHTSSSxbtownnngieUd0o1NPPZWioiKGDBnCE088kbLv8MMPp6SkZLvXLyoq4pprrmHatGkceeSRHHPMMSxZsoT777+ffffdl1/84hc7/DGdccYZPP3001x44YW89dZbjB07lng8zuLFi3n66aeZM2cO++yzT5Pv6/F4+N3vfscFF1zAoYceysknn8zy5cuZOXPmdqPjnb7OqFGjOOGEE5gxYwYbN25k//3355133uF///sf0LZ3cK9Zs2a7Yw+JKdac3qzQlN/97nfMmzePAw88kIsvvhi3281DDz1EOBxm+vTpP6Di7d1yyy1MnDiRAw88kLPPPpuqqiruuece9txzzyYvMLS3/Px8HnjgAc444wx+/OMfc8opp1BUVMSqVat45ZVXGDt2bLIx/X1rX7BgATfffDMHHXQQFRUV230Om/s+OProoznkkEP47W9/y4oVK9h7772ZO3cuL730ElOmTNnue9SJP/7xj7z11luMHj2a8847j2HDhlFVVcVnn33G66+/3uQNPCIiIiIimWDAgAEccMABvPTSSwDbNcZ/+tOfctNNNzF58mQOOOAAFixYwJNPPrnduWRTbrvtNiZMmMCYMWM455xzCAaD3HPPPRQUFHDjjTe2x4eznW7dujF58mTuv/9+vv76a/bYYw9H50L5+fkcdNBBTJ8+nWg0SmlpKXPnzmX58uVtXuNJJ53E5ZdfzuWXX07Xrl23G5197rnnUlVVxaGHHkrv3r1ZuXIl99xzDyNHjmSPPfZo83oamabJI488woQJE9hzzz2ZPHkypaWlrFmzhrfeeov8/Pzkmu7Tpk3jtdde4yc/+QkXX3wxsVgsed745ZdfJp9z0KBB/O53v+Oaa65hxYoVHHfcceTl5bF8+XJeeOEFzj//fC6//HIg0Zh/6qmnmDp1Kvvuuy+5ubkcffTRbX4NSUREpE3YIiLS6c2cOdMGkm9er9fu0aOHffjhh9t33XWXXVtbu9373HDDDfbWvwbeeOMN+9hjj7V79eple71eu1evXvapp55q/+9//0t5v5deeskeNmyY7Xa7bcCeOXOmbdu2ffDBB9t77rlnk/UdfPDB9sEHH5x8/NZbb9mA/be//c2+5ppr7OLiYjsrK8ueOHGivXLlyu3e/09/+pNdWlpq+3w+e+zYsfYnn3yy3XNu/fFv+/bWW2+lHKfly5enPP+9995rDx061PZ4PHZJSYl90UUX2Zs2bdruY2jq45s0aZLdr1+/lG2RSMS+9dZb7T333NP2+Xx2ly5d7FGjRtnTpk2za2pqmjxGW7v//vvtAQMG2D6fz95nn33sf//739t9vDvyOoFAwL7kkkvsrl272rm5ufZxxx1nL1myxAbsP/7xj8lcU8enqddtSr9+/Zo9/lsfn0mTJtk5OTlNPgdgX3LJJU3u++yzz+yysjI7NzfXzs7Otg855BD7v//9b0qmsf6PP/54u/dv7nPflOeee87eY489bJ/PZw8bNsx+/vnnm/w8A/YNN9zQ4nMtX77cBuzbbrutxVxLtdt24numrKzMLigosP1+vz1o0CD7rLPOsj/55JMfXHvj92Nzb42aep66ujr7sssus3v16mV7PB57yJAh9m233WZblrXd6zX1ue3Xr589adKklG3l5eX2JZdcYvfp08f2eDx2jx497MMOO8x++OGHWziCIiIiIiK7vvvuu88G7P3222+7faFQyP71r39t9+zZ087KyrLHjh1rv//++9ud0zWeozSeyzd6/fXX7bFjx9pZWVl2fn6+ffTRR9uLFi1KyTReR6isrNzu9be9xtCcls4Jly1bZrtcrpRzBCfnQt999539s5/9zC4sLLQLCgrsn//85/batWu3O2f7Iee8jcaOHWsD9rnnnrvdvmeffdY+4ogj7OLiYtvr9dp9+/a1L7jgAnvdunWtPm9L58ONGs/dnnnmmSb3f/755/bxxx9vd+vWzfb5fHa/fv3sk046yX7jjTdScu+88449atQo2+v12gMHDrQffPDBZj9/zz33nH3ggQfaOTk5dk5Ojj106FD7kksusZcsWZLM1NfX26eddppdWFi43TWA5q4hNXV+KSIisjMYtr3NXCgiIiKyy5s/fz4/+tGPeOKJJ1qcYl9EREREREREREREZFegNcZFRER2ccFgcLttM2bMwDRNDjrooDRUJCIiIiIiIiIiIiKyc2mNcRERkV3c9OnT+fTTTznkkENwu928+uqrvPrqq5x//vn06dMn3eWJiIiIiIiIiIiIiLQ7TaUuIiKyi5s3bx7Tpk1j0aJF1NfX07dvX8444wx++9vf4nbrHjkRERERERERERER2fWpMS4iIiIiIiIiIiIiIiIiIrs0rTEuIiIiIiIiIiIiIiIiIiK7NDXGRURERERERERERERERERkl6aFRduIZVmsXbuWvLw8DMNIdzkiIiIiIiLSRmzbpq6ujl69emGamXN/uc5zRUREREREdk2Zep6rxngbWbt2LX369El3GSIiIiIiItJOVq9eTe/evdNdxk6j81wREREREZFdW6ad56ox3kby8vKAxBdQfn5+mqsRERERERGRtlJbW0ufPn2S532ZQue5IiIiIiIiu6ZMPc9VY7yNNE4rl5+frwsGIiIiIiIiu6BMm05c57kiIiIiIiK7tkw7z82cSeNFRERERERERERERERERCQjqTEuIiIiIiIiIiIiIiIiIiK7NDXGRURERERERERERERERERkl6bGuIiIiIiIiIiIiIiIiIiI7NLUGBcRERERERERERERERERkV2aGuMiIiIiIiIiIiIiIiIiIrJLU2NcRERERERERERERERERER2aWqMi4iIiIiIiIiIiIiIiIjILk2NcRERERERERERERERERER2aWpMS4iIiIiIiIiIiIiIiIiIrs0NcZFRERERERERERERERERGSXpsa4iIiIiIiIiIiIiIiIiIjs0tQYFxEREREREelk/v3vf3P00UfTq1cvDMPgxRdfTNlv2zbXX389PXv2JCsri/Hjx/PNN9+kp1gRERERERGRDkCNcREREREREZFOJhAIsPfee3Pfffc1uX/69OncfffdPPjgg3z44Yfk5ORQVlZGKBTayZWKiIiIiIiIdAzudBcgIiIiIiIiIjtmwoQJTJgwocl9tm0zY8YMrr32Wo499lgA/vrXv1JSUsKLL77IKaecsjNLFRERERERySw1NVBQkO4qpAkaMS4iIiIiIiKyC1m+fDnr169n/PjxyW0FBQWMHj2a999/v9n3C4fD1NbWpryJiIiIiIiIA7YN//kPHH00DBsG4XC6K5ImqDEuIiIiIiIisgtZv349ACUlJSnbS0pKkvuacsstt1BQUJB869OnT7vWKSIiIiIi0ulZFrzwAhxwABx0ELz8MqxdC088ke7KpAmaSl1ERDLSObM+/kHv/+hZ+7ZRJSIiIiIdwzXXXMPUqVOTj2tra9UcFxERERERaUoolGh+33Yb/O9/qfv69AG/Pz11SYvUGBcRERERERHZhfTo0QOA8vJyevbsmdxeXl7OyJEjm30/n8+Hz+dr7/JEREREREQ6r4YGuPtuuOsu2HZGrhEj4Mor4eSTweNJT33SIk2lLiIiIiIiIrILGTBgAD169OCNN95IbqutreXDDz9kzJgxaaxMRERERESkkzPN7Zvi48bBv/4FX3wBv/iFmuIdmBrjIiIiIiIiIp1MfX098+fPZ/78+QAsX76c+fPns2rVKgzDYMqUKfzud7/jH//4BwsWLODMM8+kV69eHHfccWmtW0REREREpFNZty71sd8P//d/YBhwwgnw4Yfw1lswYUJim3RomkpdREREREREpJP55JNPOOSQQ5KPG9cGnzRpErNmzeLKK68kEAhw/vnnU11dzYEHHshrr72GX+vciYiIiIiItMy24b334NZbYc4c+OYb6Ndvy/6LLko0xYcMSV+N8r2oMS4iIiIiIiLSyYwbNw7btpvdbxgGN910EzfddNNOrEpERERERKQTsyz4xz9g+nR4//0t2++8E2bM2PK4oCDxJp2OGuMiIiIiIiIiIiIiIiIikpnCYXjiCbjtNliyJHVf796w++7pqUvanBrjIiIiIiIiIiIiIiIiIpJZamrgoYcSo8G3XUt8+HC48ko45RTweNJSnrQ9NcZFREREREREREREREREJLO88AJcdVXqtoMPTjTEJ0wAw0hPXdJuzHQXICIiIiIiIiIiIiIiIiLSruLx1MennQalpYkG+PHHwwcfwNtvw1FHqSm+i9KIcRERERERERERERERERHZNf33vzB9OmRlwd/+tmW71wszZ0K/frDbbumrT3YaNcZFREREREREREREREREZNdhWfDyy4mG+HvvJbaZJvz+9zBw4Jbc4Yenpz5JC02lLiIiIiIiIiIiIiIiIiKdXzicGAU+fDgce+yWpjhAr16wfHn6apO004hxEREREREREREREREREem8amrg4YdhxgxYuzZ13557wpVXwimnJKZPl4ylxriIiIiIiIiIiIiIiIiIdF4//Sm8+27qtoMOSjTEJ0xITKMuGU9fBSIiIiIiIiIiIiIiIiLSeV1wQeJfw4Djj4f334d33oGJE9UUlyR9JYiIiIiIiIiIiIiIiIhIx/ff/8Jxx8FHH6VuP/lkuPxy+PpreO452H//tJQnHVtaG+MPPPAAe+21F/n5+eTn5zNmzBheffXV5P5x48ZhGEbK24UXXpjyHKtWrWLixIlkZ2dTXFzMFVdcQSwWS8m8/fbb/PjHP8bn8zF48GBmzZq1XS333Xcf/fv3x+/3M3r0aD7a9htKRERERERERERERERERHYuy4J//hMOPBDGjoWXXoLp01MzHg/cdhvsvnt6apROIa2N8d69e/PHP/6RTz/9lE8++YRDDz2UY489lq+++iqZOe+881i3bl3ybfpWX+jxeJyJEycSiUT473//y2OPPcasWbO4/vrrk5nly5czceJEDjnkEObPn8+UKVM499xzmTNnTjLz1FNPMXXqVG644QY+++wz9t57b8rKyqioqNg5B0JEREREREREREREREREtgiHYeZMGD4cjjkG3ntvy76PPoJAIH21Sadk2LZtp7uIrXXt2pXbbruNc845h3HjxjFy5EhmzJjRZPbVV1/lpz/9KWvXrqWkpASABx98kKuuuorKykq8Xi9XXXUVr7zyCgsXLky+3ymnnEJ1dTWvvfYaAKNHj2bffffl3nvvBcCyLPr06cMvf/lLrr76akd119bWUlBQQE1NDfn5+T/gCIiIyM5wzqyPf9D7P3rWvm1UiYiIiHR0mXq+l6kft4iIiIiIpFltLTz0EMyYAWvXpu4bNgyuvBJOPRW83rSUtyvI1PO9DrPGeDwe5+9//zuBQIAxY8Yktz/55JN0796d4cOHc80119DQ0JDc9/777zNixIhkUxygrKyM2tra5Kjz999/n/Hjx6e8VllZGe+//z4AkUiETz/9NCVjmibjx49PZpoSDoepra1NeRMRERERERERERERERGR7+nbb6FPn0Tze+um+E9+kphOfcECmDSpwzbFLctmdVUDi9fXsrqqAcvqUOOTM5473QUsWLCAMWPGEAqFyM3N5YUXXmDYsGEAnHbaafTr149evXrx5ZdfctVVV7FkyRKef/55ANavX5/SFAeSj9evX99ipra2lmAwyKZNm4jH401mFi9e3Gzdt9xyC9OmTfthH7yIiIiIiIiIiIiIiIiIJAwYAIMGweefg2HAsccmmuRbDartqJZW1DFnYTnLKusJxeL43S4GFeVSNryEwcV56S5P6ACN8d1335358+dTU1PDs88+y6RJk3jnnXcYNmwY559/fjI3YsQIevbsyWGHHcayZcsYNGhQGquGa665hqlTpyYf19bW0qdPnzRWJCIiIiIiIiIiIiIiItJJvP8+vPwy/P73W7YZBvzmNzBnDvz61zB0aPrq2wFLK+qY+d4KqgIRehb4yfZm0RCJsXBtDWtrgkwe21/N8Q4g7Y1xr9fL4MGDARg1ahQff/wxd911Fw899NB22dGjRwOwdOlSBg0aRI8ePfjoo49SMuXl5QD06NEj+W/jtq0z+fn5ZGVl4XK5cLlcTWYan6MpPp8Pn8+3gx+tiIiIiIiIiIiIiIiISIayLPjXv+DWW+HddxPbJk6EAw7YkjnxxMRbJ2FZNnMWllMViDCoezbra8Osrw2R7XExqHs2yzY0MPercgZ2z8U0jXSXm9E6zBrjjSzLIhwON7lv/vz5APTs2ROAMWPGsGDBAioqKpKZefPmkZ+fn5yOfcyYMbzxxhspzzNv3rzkOuZer5dRo0alZCzL4o033khZ61xEREREREREREREREREvodIBGbNghEj4OijtzTFAR5+OG1ltYU11UGWVdYTjcd56Yt1zF1UzjtLKpm7qJyXvlhHNB5naUU9a6qD6S4146V1xPg111zDhAkT6Nu3L3V1dcyePZu3336bOXPmsGzZMmbPns1RRx1Ft27d+PLLL7nssss46KCD2GuvvQA44ogjGDZsGGeccQbTp09n/fr1XHvttVxy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bi4nnHAC5eXlKc+xatUqJk6cSHZ2NsXFxVxxxRXEYql/NL/99tv8+Mc/xufzMXjwYGbNmrVdLffddx/9+/fH7/czevRoPvroo3b5mEVERERERETa26233soDDzzAvffey9dff82tt97K9OnTueeee9Jd2veW43Xjd7toaKZRFozE8bld5Hg1OZ60r/U1ISwLTAMiMYtwLE44mvg3ErMwDbCsRE6a5nUZLN8QIB638LvNxA0FpoHHZeJ3m8TiFis2BPC61ExrzupNDW2ay0SW7WwUs9NcJqoKOby5wGEuEzm9ZbHz3trYcQTdPnjpJQgGExtcLvjFL+CLL+DVV2HcuMTUJSLfQ3GOs9lFnOak/aS1Md67d2/++Mc/8umnn/LJJ59w6KGHcuyxx/LVV18BcNlll/HPf/6TZ555hnfeeYe1a9dy/PHHJ98/Ho8zceJEIpEI//3vf3nssceYNWsW119/fTKzfPlyJk6cyCGHHML8+fOZMmUK5557LnPmzElmnnrqKaZOncoNN9zAZ599xt57701ZWRkVFRU772CIiIiIiIiItJH//ve/HHvssUycOJH+/ftz4okncsQRR3Tqm8BLC7MYVJTLupoQlmVRG4yyoT5MbTCKZVmsqwkxuDiXUo2OdMyybFZXNbB4fS2rqxq0nrNDJfl+DAMiFkTjNmyeAhw78ThiJR6X5PvTXWqHtXBtbfImAsOAmGUTjVvELBvDAJcB4ZjFwrW16S61w1paHmjTXCaKxByu0+4wl4lqG5ytHe40l4mcDgTXgPEdZNsMrViesinmcsNll0F2Nvzf/8GyZfD447DXXmkqUnYlfp+zm3Od5qT9pPUzcPTRR6c8/v3vf88DDzzABx98QO/evXn00UeZPXs2hx56KAAzZ85kjz324IMPPmD//fdn7ty5LFq0iNdff52SkhJGjhzJzTffzFVXXcWNN96I1+vlwQcfZMCAAfzpT38CYI899uDdd9/lzjvvpKysDIA77riD8847j8mTJwPw4IMP8sorr/CXv/yFq6++eiceEREREREREZEf7oADDuDhhx/mf//7H7vtthtffPEF7777LnfccUe6S/veTNOgbHgJX6+vZc6icuJbNXFdpsFuJXkcsWcJpqmRPk4srahjzsJyllXWE4rF8btdDCrKpWx4CYOL89JdXoe2b/8ueNwGoaiNAcRtUoby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5n5VzsDuuZimblpLp7Q2xkVEREREREREZOfJ8brpnuuje66XddUhyuvCxCwLt2lSku+jZ4EfMMjx6pJRc7rkOLso7DSXiYoLsto0l4k2BCJtmhPpdGpr4eGH4c47Ye1auOACePDBLftzc+GLLxLriYtIi3rlO7uJymkuE62pDvL56k1U1IWIWza5fg8ev5to3KayLozLNPhs1SbWVAfp01XHMZ20QoqIiIiIiIiISIYoLcxiUFEuwajFqH5d+HG/QkaUFvDjfoWM6tuFYNRicHEupYVqSDanf/fcNs1lIr/H1aa5TNTgcH5vpzmRTmPdOrj6aujTB664ItEUB5g1CzZuTM2qKS7iyLINdW2ay0R14SirqhqIxW26ZHvAtglF42AnHsfiNqurGqgLR9NdasbT7b8iIiIiIiIiIhnCNA3Khpfw9fpa5i4qT0yljg0YuAyD3XrkccSeJZrisQVBh9PMO81lokjM2TTzTnOZyOvwngGnOZEOb8kSuP12+OtfE9OnNzIMOO64RJO8W7e0lSfSmS1a56zh7TSXiepDMYKROF63wbqaMMFoHMu2MQ2DLI8Ln8egIWJRr6V20k6NcRERERERERGRTGSweX1xY8tjadXyDQ1tmstEgYjdprlMZDr8hnWaE+mwNmxIrBH+0ktgb/UzweuFM8+Eyy+H3XdPX30iuwCnv231W7l5uT43LsOgojaM22XidZu4DJO4bROIxKgJWnTL9ZHrU1s23fQZEBERERERERHJEJZlM2dhOXHL5og9illfG6YhGifb46JHvo9lGxqY+1U5A7vnatR4MwqznF1Oc5rLRE6vCevacfPqQ85mJHCaE+mwCgsTa4U3NsULCuCii+BXv4KePdNamsiuoijb26a5TJTrc+NyGYmbB+xtbiGwbWzAZRpqjHcA+gyIiIiIiIiItJO7776b888/H7/fz913391i9le/+tVOqkoy2ZrqIMsq68nymHy2qoaqhggxy8Jtmqyt9tKjwMfSinrWVAfp0zW7xeeyLJs11UECkRg5XjelhVkZ0Uzfu08XYJXDnDRlzaZQm+YyUdThsD2nOZEOIRKBf/8bxo/fss3thl//Gv7wB7jsMjj/fMjPT1+NIruggixn6244zWUiG/C5XeT7PRhAKGYRtS0MwyDb58a2E/v1azn91BgXERERERERaSd33nknp59+On6/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exuR7jWuHPms4saVI2fwkO2KkxKKx+H3v4evfQ0CgS3HL720MEr9kkvgtNMgqC0uRPoST2WLGleOVnck6UhkOXB8Des607QnMsTTOSzTpKEqxJjKAB2JLKs7koyrrSh1uiIfyQ4Vxi+44ALuvPNOjj32WKZNm9bzw6iIiIiIiIiI9O9f//oX//Vf/8V7773Hn//8Z5qamvjv//5vJkyYwKc+9alSpzekre5Ismx9jMaq4Db3IQzDoLEqyNLWmG7YDcLd9NLlHchmnF7dPxlcTCiMztStnn61xbwtGvAaV46SHqfZeo0TGZZaW+EXv4BbboH29kJR/Gtf23J+v/3g7bfBNEuXo8gwkMl662X2GleO4pkcqVyeiXURxtZU0J3Kkck7+C2TaNAm77qs2BAnntEcksEsbe3mkTfW8cbqTuLZHGGfzfSmKo6aPkaTrYaIHSqM//GPf+RPf/oTxxxzTLHzERERERERERmR7r33Xr761a9y6qmn8vLLL5NOF4pmnZ2dXHXVVTz88MMlznBo23zDrsLf996GIb9FS1dKN+wGMToawDIN0s62N4ddIA8ETIPR0cA256XguWVtnuO+cdjknZzN8GR6HMjqNa4ceRtGr23ah6Rly+C66+COOyCV2nL8Zz+DuXN773GhorjIoByPk4K8xpWjsN8maFskMjkigW3LhslMnoBtEfbvUEmxbCxt7ebGfyzh3ZZu8ltday9vi/N2SzcXHjlZxfEhYIfeWf1+P83NzcXORURERERERGTE+vGPf8ytt97Kr3/9a3w+X8/xWbNm8fLLL5cws+Fh6xt2fdENO292r63A6aMovjXHcdldXff9aotnihpXjmzb2y1Jr3HlyOuSAS0tGEIWLoQvfhH23BN+9astRXHbLoxKv+ee3kVxKQte/4/rK6N/Qcvbvhte48pRU3WISaMjLGmN8eLydp57r43nl7fx3HttvLi8nSWtMZrrIzRV971AVQrXz3f/eyWvreog77hEgz5qw36iQR95x+W1VR384fmVg16Hy863Q1eX3/72t7nppptwXf0PFBEREREREfHinXfe4dBDD93meFVVFR0dHbs+oWFm8w27tZ0pHMehK5llQyxNVzKL4zis7Uzphp0H6zpT5Ae5nZN3C3HSt9Fh3+BB2xFXjlyPN4W9xokMaW++CUccATNmwJ/+BM6mnd/DYbjo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TZuUlpamSpUqeew/MzNTu3bturATAwAAAABcNurVq6c2bdro3XffVfv27bVz506tXLlSzz77rCTX+t/PP/+8Fi1apPj4eOXk5Cg7O1v+/v6F7m/Lli2yWq1q1aqVu6xSpUq68sortWXLFneZr6/vea9fvnLlSvn7+2vNmjV6/vnnNXPmTHfdpk2b9L///U/z5s1zlxmGIafTqT179qh+/fpav369nnnmGW3atEknT56U0+mU5FqqrEGDBucVEwAAODckxgEAKEcCAgJUp06dM9YXp6y4xzpdWlqaqlatqh9++KFAW9ZNAwAAAIDy5d5779W//vUvTZs2TbNnz1bt2rXVrl07SdJLL72k1157TVOnTlVsbKwCAgI0bNgw5eTkXNAx7Xa7TCbTeW0bExOj0NBQXXnllUpMTFSvXr30008/SXL1dwcPHqxHHnmkwHY1atRQenq64uLiFBcXp3nz5iksLEz79+9XXFzcBZ8TAAAoPtYYBwAA56R+/fo6cOCADhw44C7766+/lJSUdMa73Js2baojR47IarWqTp06Ho/KlStfitABAAAAAKVEz549ZTabNX/+fL333nsaNGiQO2m9evVqde3aVf369dPVV1+tWrVqafv27UXuq379+srLy9Ovv/7qLjt+/Li2bdt2UUZjP/zww9q8ebM++eQTSa7+7l9//VWgr1unTh35+vpq69atOn78uF544QVdd911qlevnhITE0s8LgAAcGYkxgEAKEeys7N15MgRj8exY8fOaR8dO3ZUbGys+vbtq99//11r167VPffco3bt2hU6Ffvp27Vu3VrdunXTN998o7179+rnn3/Wv//9b61bt+5CTw0AAAAAcBkJDAxUr169NHr0aB0+fFgDBgxw19WtW1fLly/Xzz//rC1btmjw4MFKSEgocl9169ZV165ddf/992vVqlXatGmT+vXrp8jISHXt2rXEY/f399f999+vcePGyTAMPfnkk/r55581dOhQbdy4UTt27NBnn32moUOHSnKNGvf19dUbb7yh3bt36/PPP9eECRNKPC4AAHBmJMYBAChHvv76a1WtWtXjce21157TPkwmkz777DNVqFBB119/vTp27KhatWrpww8/POt2X331la6//noNHDhQV1xxhe666y7t27dPERERF3JaAAAAAIDL0L333quTJ08qLi5O1apVc5c//fTTatq0qeLi4tS+fXtVqVJF3bp1O+O+Zs+erWbNmumWW25R69atZRiGvvrqK/n4+FyU2IcOHaotW7Zo8eLFuuqqq/Tjjz9q+/btuu6669SkSRONHTvWfU5hYWGaM2eOFi9erAYNGuiFF17Qyy+/fFHiAgAARTMZhmF4OwgAAAAAAAAAAAAAAC4WRowDAAAAAAAAAAAAAMo0EuMAAAAAAAAAAAAAgDKNxDgAAAAAAAAAAAAAoEwjMQ4AAAAAAAAAAAAAKNNIjAMAAAAAAAAAAAAAyjQS4wAAAAAAAAAAAACAMo3EOAAAAAAAAAAAAACgTCMxDgAAAAAAAAAAAAAo00iMAwAAAAAAAAAAAADKNBLjAAAAAAAAAAAAAIAyjcQ4AAAAAAAAAAAAAKBMIzEOAAAAAAAAAAAAACjTSIwDAAAAAAAAAAAAAMo0EuMAAAAAAAAAAAAAgDKNxDgAAAAAAAAAAAAAoEwjMQ4AAAAAAAAAAAAAKNNIjAMAAAAAAAAAAAAAyjQS4wAAlELR0dEaMGCAt8MocRfjvH744QeZTCb98MMPJbrfkrR3716ZTCbNmTPHXfbMM8/IZDJ5LygAAAAApdaAAQMUHR19TttcDn0jAAAAbyIxDgAod+bMmSOTyVTkY82aNd4O0eumTJkik8mkb7/9tsg2b7/9tkwmkz7//PNLGNn5++fnbrVaFRkZqQEDBig+Pt7b4QEAAADwon/2F/z8/HTFFVdo6NChSkhI8HZ4+Fv+53PfffcVWv/vf//b3ebYsWOFtunZs6dMJpOefPLJQuvzbzAo6rFw4cISO5+LpX379h4x2+12XXXVVZo6daqcTqe3wysxJpNJQ4cOLbTuo48+ct8okpubq8qVK+vaa68tcl+GYSgqKkpNmza9WOECAEoBq7cDAADAW5599lnFxMQUKK9Tp44XovG0bds2mc3eu3/trrvu0siRIzV//nx17Nix0Dbz589XpUqV1Llz50scnafrr79emZmZ8vX1LVb7/M89KytLa9as0Zw5c7Rq1Spt3rxZfn5+FznaU55++mmNGjXqkh0PAAAAwNmd3l9YtWqVZsyYoa+++kqbN2+Wv7//JYvj7bffPucE5rn2jS5Xfn5+WrJkiaZPn17gXBcsWCA/Pz9lZWUVum1KSor++9//Kjo6WgsWLNALL7xQ5ExejzzyiFq0aFGgvHXr1hd+EpdA9erVNWnSJEnSsWPHNH/+fD322GM6evSoJk6c6OXoLi0fHx/16NFDb731lvbt26eaNWsWaPPTTz/p4MGDeuyxx7wQIQDgUiExDgAotzp37qzmzZuf0zZ5eXlyOp2F/tCQnp6ugICA847HMAxlZWXJbrfLZrOd935KQrVq1dShQwd9/PHHmjFjRoF44uPj9dNPP+mBBx6Qj4+PV2LMysqSr6+vzGbzOSW0T//c77vvPlWuXFmTJ0/W559/rp49e16scAuwWq2yWrkUAwAAAEqTf/YXKlWqpClTpuizzz5T7969C93mQvuChTmffta59o0uVzfddJM+//xzLV26VF27dnWX//zzz9qzZ4+6d++uJUuWFLrtkiVL5HA49O677+qGG27QTz/9pHbt2hXa9rrrrtOdd955Uc7hQjmdTuXk5Jzx8w4JCVG/fv3cr4cMGaJ69erpjTfe0LPPPiuLxXIpQi01+vbtq5kzZ2rBggWF3qQ+f/58mc1m3XXXXV6IDgBwqTCVOgAARchfF/rll1/W1KlTVbt2bdlsNv3111/u9aH/+usv9enTRxUqVHBPyZWXl6cJEya420dHR+upp55Sdna2x/6jo6N1yy23aNmyZWrevLnsdrveeustd92Z1uLOzc1VxYoVNXDgwAJ1KSkp8vPz04gRI9xlb7zxhho2bCh/f39VqFBBzZs31/z58894/v369VNycrK+/PLLAnULFy6U0+lU3759JUkvv/yy2rRpo0qVKslut6tZs2b66KOPzrj/fLt371aPHj1UsWJF+fv765prrilwzPyp7BYuXKinn35akZGR8vf3V0pKygWvo3fddddJknbt2uVRvnXrVt15552qWLGi/Pz81Lx58wLTxp84cUIjRoxQbGysAgMDFRwcrM6dO2vTpk1nPS5rjAMAAACl3w033CBJ2rNnjyTX2t+BgYHatWuXbr75ZgUFBbn7RU6nU1OnTlXDhg3l5+eniIgIDR48WCdPniyw36VLl6pdu3YKCgpScHCwWrRo4dFHK2yN8YULF6pZs2bubWJjY/Xaa6+564vqGy1evFjNmjWT3W5X5cqV1a9fvwLLSeWfV3x8vLp166bAwECFhYVpxIgRcjgcHm3P5TwLU5y+1plERkbq+uuvL9CnnTdvnmJjY9WoUaMit503b57+7//+Tx06dFD9+vU1b968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Mvl0bdq0cd/Jfq6uvvpq9e/fX7NmzVJSUpLatWuntWvXau7cuerWrZs6dOhwoWEX0KtXL73xxhsaN26cYmNjPUaqS64fXqpUqaK2bdsqIiJCW7Zs0ZtvvqkuXbooKCjorPs3mUzq06ePnn/+eUnSs88+61HfpUsXTZkyRTfddJP69OmjxMRETZs2TXXq1NH//ve/M+571KhRWrBggTp37qxHHnlEFStW1Ny5c7Vnzx4tWbKkwPSEF8vIkSPVo0cPzZkzR0OGDNG0adN07bXXKjY2Vvfff79q1aqlhIQE/fLLLzp48KA2bdokSbrlllv07LPPauDAgWrTpo3++OMPzZs377y/PwAAAAAuT+3atdPgwYM1adIkbdy4UZ06dZKPj4927NihxYsX67XXXtOdd96p4OBgvfrqq7rvvvvUokUL9enTRxUqVNCmTZuUkZFR5LTo9913n06cOKEbbrhB1atX1759+/TGG2+ocePGBfqA+Xx8fDR58mQNHDhQ7dq1U+/evZWQkKDXXntN0dHRhU4pXlLnWZTi9rWK6+qrr/ZYSqww8+bNk8ViKfJGgNtuu03//ve/tXDhQg0fPtxdvnLlygI3L0iukddnm+K7WrVqmjx5svbu3asrrrhCH374oTZu3KhZs2bJx8dHknT33Xdr0aJFGjJkiL7//nu1bdtWDodDW7du1aJFi7Rs2bKzTut/rho0aKCbb75Z//nPfzRmzBhVqlRJ119/vV588UXl5uYqMjJS33zzjfbs2XPex2jWrJm6d++uqVOn6vjx47rmmmv0448/ukfMnz46/oUXXtD333+vVq1a6f7771eDBg104sQJ/f777/r222914sSJMx5r1KhRWrx4sa6//noNHjxY9erV06FDhzRnzhwdPny4yJnsunfvroceekifffaZoqKidP3115/3+QIALjMGAADlzOzZsw1JRT5mz55tGIZh7Nmzx5BkvPTSSwX2MW7cOEOScfTo0QJ1ubm5xvjx442YmBjDx8fHiIqKMkaPHm1kZWV5tKtZs6bRpUuXQmOsWbOm0b9//2Kdj9PpNKKiogxJxnPPPVeg/q233jKuv/56o1KlSobNZjNq165tjBw50khOTi7W/g3DMP78809DkmGz2YyTJ08WqH/nnXeMunXrGjabzahXr54xe/Zs93t0tvPatWuXceeddxqhoaGGn5+f0bJlS+OLL77waPP9998bkozFixcXOHZ+3ffff3/Gc8j/3H/77bcCdQ6Hw6hdu7ZRu3ZtIy8vzx3XPffcY1SpUsXw8fExIiMjjVtuucX46KOP3NtlZWUZjz/+uFG1alXDbrcbbdu2NX755RejXbt2Rrt27dzt8r9L+d8twzAKfX8AAED5kZeXZzz99NNGdHS04efnZ9SqVct49tlnDafT6W5z5MgRo3///u5rjbi4OGP79u1n3G9h17o2m82jzUsvvWSEhYUZYWFhxssvv+xRt2bNGqNp06ZGbm5uyZ0scBk4U3/hdP379zcCAgKKrJ81a5bRrFkzw263G0FBQUZsbKzxxBNPGIcOHfJo9/nnnxtt2rQx7Ha7ERwcbLRs2dJYsGCBx3Fq1qzpfv3RRx8ZnTp1MsLDww1fX1+jRo0axuDBg43Dhw+72xTVN/rwww+NJk2aGDabzahYsaLRt29f4+DBg8U6r6L6LcU9z8IUp69VFEnGww8/fMY2p/fXc3JyjEqVKhnXXXfdGbeJiYkxmjRpYhjGqfexqMe4cePOuK927doZDRs2NNatW2e0bt3a8PPzM2rWrGm8+eabBdrm5OQYkydPNho2bGjYbDajQoUKRrNmzYzx48d79NmLc96FxVCYH374weM8Dh48aNx+++1GaGioERISYvTo0cM4dOhQgXMt6neQ/L87e/bscZelp6cbDz/8sFGxYkUjMDDQ6Natm7Ft2zZDkvHCCy94bJ+QkGA8/PDDRlRUlOHj42NUqVLFuPHGG41Zs2YV61wPHjxo3HfffUZkZKRhtVqNihUrGrfccouxZs2aM27Xo0cPQ5LxxBNPFOs4AICywWQYZ5ijBwAAAAAAACXu+eef15QpUzR37lw1bNhQ69at08CBAzVx4kQ98sgjMgxDbdq0kY+Pj1555RUFBwdrypQp+vrrr/XXX395rFt7ujlz5ujRRx/1WHPVZDIpIiJCkvS///1P11xzjb744gsZhqFbbrlFa9euVWxsrPLy8tSiRQvNmjVLLVq0uCTvAwCUNe3bt9exY8cKnR68PNu4caOaNGmiDz74gKnLAQBew1TqAAAAAAAAl9jPP/+srl27uqf2jY6O1oIFC7R27VpJ0o4dO7RmzRpt3rxZDRs2lCTNmDFDVapU0YIFC3TfffcVuW+TyVTomqqStHXrVl111VW64YYbJLmmBN66datiY2P10ksv6frrrycpDgC4IJmZmbLb7R5lU6dOldlsZtpyAIBXkRgHAAAAAAC4xNq0aaNZs2Zp+/btuuKKK7Rp0yatWrVKU6ZMkSRlZ2dLkvz8/NzbmM1m2Ww2rVq16oyJ8bS0NNWsWVNOp1NNmzbV888/706ux8bGavv27dq/f78Mw9D27dvVqFEj7dq1S7Nnz9b69esv4lkDAMqDF198UevXr1eHDh1ktVq1dOlSLV26VA888ICioqK8HR4AoBwzezsAAAAAAACA8mbUqFG66667VK9ePfn4+KhJkyYaNmyYe3rZevXqqUaNGho9erROnjypnJwcTZ48WQcPHtThw4eL3O+VV16pd999V5999pk++OADOZ1OtWnTRgcPHpQk1a9fX88//7z+7//+T506ddKkSZNUv359DR48WC+++KKWLVumRo0aqUmTJvrpp58uyXsBAChb2rRpoxMnTmjChAl6/PHHtX37dj3zzDOaNm2at0MDAJRzrDEOAAAAAABwiS1cuFAjR47USy+9pIYNG2rjxo0aNmyYpkyZov79+0uS1q9fr3vvvVebNm2SxWJRx44dZTabZRiGli5dWqzj5Obmqn79+urdu7cmTJhQaJu5c+fq008/1cyZM3XllVfqt99+08GDB9W3b1/t2bNHNputxM4bAAAAALyFqdQBAAAAAAAusZEjR7pHjUuuKc737dunSZMmuRPjzZo108aNG5WcnKycnByFhYWpVatWat68ebGPkz8afefOnYXWHzt2TOPHj9dPP/2kX3/9VVdccYXq1q2runXrKjc3V9u3b1dsbOyFnzAAAAAAeBlTqQMAAAAAAFxiGRkZMps9f5axWCxyOp0F2oaEhCgsLEw7duzQunXr1LVr12Ifx+Fw6I8//lDVqlULrX/sscf02GOPqXr16nI4HMrNzXXX5eXlyeFwFPtYAAAAAFCaMWIcAAAAAADgErv11ls1ceJE1ahRQw0bNtSGDRs0ZcoUDRo0yN1m8eLFCgsLU40aNfTHH3/o0UcfVbdu3dSpUyd3m3vuuUeRkZGaNGmSJOnZZ5/VNddcozp16igpKUkvvfSS9u3bp/vuu69ADMuXL9f27ds1d+5cSVKLFi20detWLV26VAcOHJDFYtGVV155kd8JAAAAALg0SIyXEKfTqUOHDikoKEgmk8nb4QAAAAAASohh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dx4891wVHq2ISAj9/DOcfHL5HVsKCqwlV665psqnrpGF8cTERL766iu+//57fv31V3JycjjppJPo1atXuFM7qmhmmoiIhIrd5iJHoAnJUcvhCG1cJMrMsdes326ciMiRFggEmD59Ot988w1paWkEgyV/c/73v/8NU2YiIodp+3ZrHebCQrjyStDyEFJdnE6oU8faDtfChfZmguflWbEHzt6NioLOnUsWy7t2tVq0i+yTkJBA586dS+yLi4ujQYMGxfubNGlS6nYtW7akdevWxddPOOEEnn76aS4/YMBRVlYW77//Ps8//3yFOTzxxBNcfPHFdO/eHYCePXsyatQoBg8ezIQJE+jZs6cV6PfDgAGwZQu0bg2zZ2vwh4iET48esHPn/sF1derAypXQpo11PSMDrr22dhTGCwsLiYmJYeXKlfTs2XP/B7NUmWFzUV1Di+qKiEglNGP88AVMe7+YrTgpy/827rYdd9NZx1VzNiIiVTdy5EimT59O37596dy5M4b+MSYitUF+vjU7PDUVTjwRpk/XaE85Opx9NhxzDCQnl73OuGFA8+bWjLTffrO+kF+xwvqZlQXLllnbgfFt2+4vlBf9LKPwKVIVGzZsIPOgZQNmzZqFaZpce+215d5u9erVzJ49m5UrVxbvu+qqq1i4cCFnn3027du3Z+bMmdaBe++Fb76BuDjrNd+gQXU8FBERew7+vVzW7+lD7BhZ4wrjbrebli1blmzhIYckaPM1YTdOREREDp3D5rABu3GRqNBvryeB3TgRkSNt1qxZzJ49m4svvjjcqYiIhIZpws03W8XBhg2tYopmzMrRwumEl16Cq66yitoHfsFeNHjtpZfgpJOsrYhpWrNqiwrlRcXy5GTYuNHaZs/eH9+kSclCeffucNxxGkASoSpbN7yspcHK2nfbbbdx2223VXiuzp07s3HjxhL7HA4Hr776Kq+++ur+ndOmWa91gLffhi5dKjyviEiNcIgDzWtcYRzgX//6Fw8++CBvv/029evXD3c6Ry1/iONERETk0AVs1mrtxkWiGJe9P3jtxomIHGkej4e2bduGOw0RkdAZNw7efRdcLvjgA2jVKtwZiVTNFVdYr92RI+Gvv/bvP+YYGD/eOn4ww7BaubZpU/L4rl0lZ5WvWAEbNkBKCsyfb21F4uOt1usHFss7dbJatIscSUuWwNCh1uXH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0pinnnqKpyoYFGKWUWw8UFnrigN07tyZjRs3ltjncDh49dVXefXVVyvNS8QWp5P1j46j27AbMA2jRHHcNAwA1j86rsqf7yIikUyFcREREREREZEjoG3btsyfP5877rijxP4vvviCNm3ahCkrEal1TBOGD4cffoDERPj4Y+tnFVVH0XHQoEEMGjSo0vM2bty4zILkI488wiOPPFLp7UVEaovUPv1ZOfFtTvj3/cTsLF6FHG+TZqx/dBypffqHMTsRkaOPCuMiIiIiIiIiR8A999zDHXfcwa5duzjvvPMA+Oabb3j++efVRl1EQmfCBJgyBRwOeO89OP74cGckIiKHIbVPf1IvvIT6P/9AVFoKBUlNrPbpmikuIlJljnAnICIiIiIicjTy+QJ8+lsybyz6g09/S8bnC4Q7JanhhgwZwvPPP8+UKVM499xzOffcc3nnnXeYOHEit9566yGfd+zYsRiGwV133VW8z+v1Mnz4cBo0aEB8fDxXXnklqampIXgUIlKjffMN3H23dfmZZ6B37/DmIyIioeF0kt7jbHb2v5r0HmerKC4icog0Y1xERERERKSK3l7yJ28s2sKubC8B08RpGDyb8Du3nN2aG3q0Cnd6UoMNGzaMYcOGsWvXLmJiYoiPjz+s8/3yyy+89tprnHjiiSX233333Xz22We8//77JCYmcscdd3DFFVfw/fffH9b9iUgN9scfcM01EAjADTfAPfeEOyMRERERkRpFM8ZFRERERESq4O0lf/Lsgg2kZOYTCAYxgyaBYJCUzHyeXbCBt5f8Ge4UpQbz+/18/fXXzJ07t3jt3R07dpCTk1Plc+Xk5DBw4EBef/116tWrV7w/MzOTKVOm8MILL3Deeedx8sknM23aNH744Qd+/PHHkD0WEalBsrPh0kshPR1OOw0mTwbDCHdWIodkz549JCUllbnOfG3zwAMPcOedd4Y7DRERkYihwriIiIiIiIhNPl+ANxZtIbvAT0HApCAAviAUBKAgYJJd4GfK4i1qqy5l2rp1K126dKF///4MHz6cXbt2ATBu3DjuvffeKp9v+PDh9O3bl169epXYv2zZMgoLC0vsP+GEE2jZsiVLliwp93wFBQVkZWUVb9nZ2VXOSUTCIBi0ZoivWQNNm8KHH0J0dLizEjlkY8aMoX///rRq1apazj9o0CAMwyixXXTRRWXGFhQU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+FNPPYXHH38cn332WbVFcSAwQ7dPnz4Nkjedmx49eqBv3754++23cdttt9X74yuKgl9++QUrVqxAcXEx0tLSMGzYMDz66KPVn+utgSzL+O9//4s77rgDF1xwASwWCy6//HLMnz8/GDN+/HiUlZXhxRdfxD333IPY2FhccsklmDu38no7K1euxOyKJX+IiIioQfGb+CmmTZuGcePGoX///hg4cCAWLFgAh8OBCbWtrRjGDj45ApkzPtYUR0RUYX9+GZb9cBAnHB6kxpgQZTCj3OPD9mMlOFbixIQhmdUXx4mIiIioVhs3bsSaNWvw+eefo0ePHrCcNjDhvffeC1FmRBTW7HZg5Ejg+HGgXz/g1Vd/715Th6ysLMycORNFRUWIq2Ut8lOdaSv1EydO4PDhwzh27BgAYM+ePQCAlJQUpKSkAAByc3ORm5uL/fv3AwjMCrbZbGjVqhXi4+Oxfv16/PTTT7j44oths9mwfv16TJ06Fddff30w76+//hpXXnkl7rrrLowePRq5ubkAApNd4uPjAQBz587Fww8/jDfffBOZmZnBGKvVCqv195mF3333HYYNG6b5OVLjevjhh3Hfffdh4sSJuOiii3B6w9PevXtX2aaV2WzGZ599dkb3yczMrPb3paWl4d133631vnfccQfuuOOOGm//9NNPIcsyrr766jPKiYiIiM6OHOoEwsmYMWPw9NNP4+GHH0bv3r2xZcsWrF69ulFGwTaUuoreLIoT0alUVeCz7Xk44fCgQ5IVNpMeiizBZtKjQ5IVJxwefL4jD6rKVTiIiIiIzlRsbCxGjx6NrKwspKWlISYmptKFiKgKVQXGjQO2bQOSk4H33z+j7hmnzr5tKB9++CH69OmDESMC55iuvfZa9OnTBwsXLgzGLFy4EH369MHEiRMBABdccAH69OmDDz/8EECgM+PKlStx4YUXolu3bnj88ccxdepULFq0KPgYK1asQHl5OebMmYPU1NTg5c9//nMw5uWXX4bH48HVV19dKebpp58OxmRnZ2PdunVNdiJMJBgxYgRuvfVWZGdnhzqVBudwOLBs2TJ2kiEiImok/It7milTplTbOr0pq2nmOIviRHS67GInDhTYkRpjgnTaDARJkpAaY8L+fDuyi53IiD+DFqlEREREhGXLloU6BSJqah59FHjvvcCyKf/5D3AW6z825OxbINAu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ICkpCX369MHixYtDnRZFmPPOOw9r1qzB3r17AQQKKt9//z0uv/zyEGdGkeq3335Dbm5upb/PMTExGDRoEL+3UMSx2+14/fXX0b59eyQkJAAAbDYbli9fjp07d+K5557D4sWL8eyzzwbvM3bsWLRs2RIbN27Epk2bMGPGDOj1egCBz79utxvffvsttm3bhrlz58JqtQIILO9yxRVXYMCAAdi6dStefvllLFmyBI899ljjP3FqVDfddBOWLVsWvL506VJMmDChUsz999+Pd999FytWrMDmzZvRvn17ZGVl4cSJEwCAI0eO4M9//jOuuuoqbNmyBbfccgtmzJhR6TEOHDiA4cOHY/To0fjll1+watUqfP/995gyZUqluKeffhq9evXCzz//jIceeghA7fv9mDFjcM8996Bbt27BmW9jxoyBqqoYOXIkTpw4gW+++QZffPEFfv31V4wZM6beX0NqGt5++2107twZnTp1wvXXX4+lS5dWu3zQeeedhwULFiA6Ojq4T917770AAm2I//e//+HDDz/E+vXrIYTAFVdcUWmAEkUOLcdPoO5j6KkaYv9bsmQJrrvuOuj1elx33XVYsmRJjbH33nsv/vKXv1SaVXzeeefB4XAgKysLcXFx2LhxI/7973/jyy+/rHIMp6br3XffxbPPPotXXnkF+/btw/vvv48ePXoACAz6aNmyJf7xj38E94sK5eXlmDt3Ll599VXs2LEDSUlJmDJlCtavX4+VK1fil19+wTXXXIPhw4dXKmKXl5fj+eefx8qVK7F69WqsXbsW//d//4dPPvkEn3zyCf71r3/hlVdewTvvvBO8D4/BVO8ENWvZ2dkCgFi3bl2l7ffdd58YOHBgiLKiSOb3+8WIESPEkCFDQp0KRaC33npLdO/eXTidTiGEEBdeeKG46667QpsURRyj0SiMRqOYOXOm2Lx5s3jllVeEyWQSy5cvD3VqFEH8fr+YPn26kCRJ6HQ6IUmSeOKJJ0KdFkUQAOI///lP8PoPP/wgAIhjx45VirvmmmvEX/7yl0bOjqhxjRs3TiiKIiwWi7BYLAKASE1NFZs2barxPvPmzRP9+vULXrfZbDV+lujRo4eYPXt2tbc98MADolOnTkJV1eC2l156SVitVuH3+8/yGVE4GzdunBg5cqTIz88XRqNRHDx4UBw8eFCYTCZRUFAgRo4cKcaNGyfsdrvQ6/XijTfeCN7X4/GItLQ08dRTTwkhhJg5c6bo2rVrpcefPn26ACCKioqEEELcfPPN4tZbb60U89133wlZloPfy1q3bi1GjRpVZ+6n7/ezZs0SvXr1qhTz+eefC0VRxOHDh4PbduzYIQCIDRs21P0CUbNz3nnniQULFgghhPB6vSIxMVF8/fXXQgghvv7660r767Jly0RMTEyl++/du1cAED/88ENwW2FhoTCbzeLtt99ujKdAYULr8VMIoekY2pD7X0lJiTCbzWLLli1CCCF+/vlnYbVaRVlZWTDm9GNoxfM71aJFi0RcXJyw2+3BbR9//LGQZVnk5ubW+ZpReDj9s2bF5fHHHxfz588XHTt2FB6Pp9r7tm7dWjz77LOVti1btkwACO5fQghx6NAhoSiKyM7OrhR76aWXipkzZ1a63/79+4O333bbbSIqKqrSvpmVlSVuu+02IQSPwdQwdCGpxhNRxJo8eTK2b9+O77//PtSpUIQ5cuQI7rrrLnzxxRcwmUyhTocimKqq6N+/P5544gkAQJ8+fbB9+3YsXLgQ48aNC3F2FCnefvttvPHGG3jzzTfRrVs3bNmyBXfffTfS0tK4HxIRhcDFF1+Ml19+GUCgXeQ///lPXH755diwYQNat26NVatW4fnnn8eBAwdgt9vh8/kQHR0dvP+0adNwyy234F//+heGDh2Ka665JrhMy5133onbb78dn3/+OYYOHYrRo0ejZ8+eAIBdu3Zh8ODBwdaYADBkyBDY7XYcPXo0LNdLpfrRokWLYFtpIQRGjBiBxMTE4O0HDhyA1+vFkCFDgtv0ej0GDhyIXbt2AQjsP4MGDar0uIMHD650fevWrfjll1/wxhtvBLcJIaCqKn777Td06dIFANC/f/8qOda131dn165dyMjIQEZGRnBb165dERsbi127dmHAgAF1vTTUjOzZswcbNmzAf/7zHwCATqfDmDFjsGTJElx00UWaHmPXrl3Q6XSV9vWEhAR06tQp+F6gyFLX8RPQdgzV4mz3v7feegvt2rVDr169AAC9e/cOfp64+eabz+j39+rVCxaLJbhtyJAhUFUVe/bsQXJysubHotA69bNmhfj4eDgcDixYsABt27bF8OHDccUVV+Cqq66CTld76dBgMAQ/TwKBlvt+vx8dO3asFOd2u4MdkAAgKiqq0lKCycnJyMzMDHYzqtiWn58PgMdgahgsjDdziYmJUBSlylpKeXl5SElJCVFWFKmmTJmCjz76CN9++y1atmwZ6nQowmzatAn5+fno27dvcJvf78e3336LF198EW63G4qihDBDihSpqano2rVrpW1dunTBu+++G6KMKBLdd999mDFjBq699loAQI8ePXDo0CHMmTOHhXEKiYrvJnl5eUhNTQ1uz8vLQ+/evUOUFVHjsVgsaN++ffD6q6++ipiYGCxevBgjRozA2LFj8cgjjyArKwsxMTFYuXIl5s+fH4yfPXs2/vrXv+Ljjz/Gp59+ilmzZmHlypX4v//7P9xyyy3IysrCxx9/jM8//xxz5szB/Pnzcccdd4TiqVIYuemmm4LtcF966aUG+R12ux233XZbcL3SU5068OLUogsArF+/vs79nqguS5Ysgc/nQ1paWnCbEAJGoxEvvvhiCDOjpq4xjp/nYsmSJdixY0el4qaqqli6dOkZFcap+Tj9s2aF+Ph47NmzB19++SW++OIL/O1vf8O8efPwzTffBJflqY7ZbK40sNJut0NRFGzatKnK+dVTi96nP6YkSdVuU1X1jJ4f0ZngGuPNnMFgQL9+/bBmzZrgNlVVsWbNmiqjeIkaihACU6ZMwX/+8x989dVXaNOmTahTogh06aWXYtu2bdiyZUvw0r9/f4wdOxZbtmxhUZwazZAhQ7Bnz55K2/bu3YvWrVuHKCOKROXl5ZDlyl8FFEXhl08KmTZt2iAlJaXS95bS0lL89NNP/N5CEUmSJMiyDKfTiXXr1qF169Z48MEH0b9/f3To0AGHDh2qcp+OHTti6tSp+Pzzz/HnP/+50vqnGRkZmDRpEt577z3cc889WLx4MYDA4LyKtRor/PDDD7DZbBzMHAGGDx8Oj8cDr9eLrKysSre1a9cOBoMBP/zwQ3Cb1+vFxo0bg4M8u3Tpgg0bNlS6348//ljpet++fbFz5060b9++ysVgMNSYm5b93mAwwO/3V9rWpUsXHDlyBEeOHAlu27lzJ4qLi6sMTqXmzefz4bXXXsP8+fMrnQfYunUr0tLS8NZbb1W5T037lM/nw08//RTcdvz4cezZs4f7VASr7fgJaDuGnq6+9r9t27bhf//7H9auXVtp31+7di3Wr1+P3bt3n9Hv37p1KxwOR3DbDz/8AFmW0alTp2ofh5oes9mMq666Cs8//3xwP9m2bRuA6veL6vTp0wd+vx/5+flV/t6fywRNHoOpIXDGeASYNm0axo0bh/79+2PgwIFYsGABHA4HJkyYEOrUKEJMnjwZb775Jj744APYbDbk5uYCAGJiYmA2m0OcHUUKm82G7t27V9pmsViQkJBQZTtRQ5o6dSrOO+88PPHEE/jLX/6CDRs2YNGiRVi0aFGoU6MIctVVV+Hxxx9Hq1at0K1bN/z888945plncNNNN4U6NWrG7HY79u/fH7z+22+/YcuWLYiPj0erVq1w991347HHHkOHDh3Qpk0bPPTQQ0hLS8OoUaNClzRRI3G73cHvSUVFRXjxxRdht9tx1VVXobS0FIcPH8bKlSsxYMAAfPzxx8G2wADgdDpx33334eqrr0abNm1w9OhRbNy4EaNHjwYA3H333bj88svRsWNHFBUV4euvvw62r/7b3/6GBQsW4I477sCUKVOwZ88ezJo1C9OmTasygIqaH0VRgm1ITx8obLFYcPvtt+O+++4LHqefeuoplJeXB2cbTpo0CfPnz8d9992HW265BZs2bcLy5csrPc706dPxhz/8AVOmTMEtt9wCi8WCnTt34osvvqh1xm6HDh1q3e8BIDMzM/i3pGXLlrDZbBg6dCh69OiBsWPHYsGCBfD5fPjb3/6GCy+8sNp27dR8ffTRRygqKsLNN9+MmJiYSreNHj0aS5Yswbx58yptz8zMhN1ux5o1a9CrVy9ERUWhQ4cOGDlyJCZOnIhXXnkFNpsNM2bMQHp6OkaOHNmYT4nCSG3HT0DbMfR09bX/LVmyBAMHDsQFF1xQ5bYBAwZUu+9X/P7PPvsMe/bsQUJCAmJiYjB27FjMmjUL48aNw+zZs1FQUIA77rgDN9xwA9uoNzGnftasoNPp8NFHH8Hv92PQoEGIiorC66+/DrPZHJy8kZmZiW+//RbXXnstjEZjlWUDKnTs2BFjx47FjTfeiPnz56NPnz4oKCjAmjVr0LNnT4wYMeKs8uYxmBpEKBc4p8bzwgsviFatWgmDwSAGDhwofvzxx1CnRBEEQLWXZcuWhTo1inAXXnihuOuuu0KdBkWg//73v6J79+7CaDSKzp07i0WLFoU6JYowpaWl4q677hKtWrUSJpNJtG3bVjz44IPC7XaHOjVqxr7++utqPxOOGzdOCCGEqqrioYceEsnJycJoNIpLL71U7NmzJ7RJEzWCcePGVXpP2Gw2MWDAAPHOO+8EY+677z6RkJAgrFarGDNmjHj22WdFTEyMEEIIt9strr32WpGRkSEMBoNIS0sTU6ZMEU6nUwghxJQpU0S7du2E0WgULVq0EDfccIMoLCwMPvbatWvFgAEDhMFgECkpKWL69OnC6/U26mtAjWfcuHFi5MiRNd4+cuTI4HHZ6XSKO+64QyQmJgqj0SiGDBkiNmzYUCn+v//9r2jfvr0wGo3i/PPPF0uXLhUARFFRUTBmw4YN4rLLLhNWq1VYLBbRs2dP8fjjjwdvb926tXj22Wer5FLbfi+EEC6XS4wePVrExsZWOsdw6NAh8ac//UlYLBZhs9nENddcI3Jzc8/0paIm7sorrxRXXHFFtbf99NNPAoB47rnnquyvkyZNEgkJCQKAmDVrlhBCiBMnTogbbrhBxMTECLPZLLKyssTevXsb4VlQODmT46cQdR9DKz4b1+f+53a7xf+3d/dBVVd5HMc/pPIkoYggYShja7DsIJCmYrHgrgMJuehYg+KzrO6UD8tSLVuS7PqQ+DBN6rq5JQ8VzqrMmrqTDaKrhSs7zmJXA8lwMzVHtFXM0AYUzv7RcMd7uTyYkIjv18zvj/s7535/5+d8PFw5/s719vY2q1atcti+cuVK4+vra+rq6kxmZqYJCwuztl28eNE6V0sy+/fvN8YYc+zYMTN69Gjj6upq+vTpY+bMmWO+/fbbFv+s0LnYf9ZsPIKCgsz7779vRowYYTw9PU3Pnj3NyJEjzd69e63vLSkpMUOGDDEuLi6mcTkxNzfX5udxo7q6OrN48WITGBhoevToYR566CEzYcIEc+zYsWbfZ5/DxvHe+neNORjtzcmYW/bLAgAAAAAAAAAAAACgi2FfLAAAAAAAAAAAAABAl8bCOAAAAAAAAAAAAACgS2NhHAAAAAAAAAAAAADQpbEwDgAAAAAAAAAAAADo0lgYBwAAAAAAAAAAAAB0aSyMAwAAAAAAdCKXLl2Sr6+vvvzyyw69zsiRI/X3v/+9Q6+BromMojMjn+hsfqxMtqaurk6BgYH6z3/+c1fHgburs+SxLcgsOgIL4wAAAAAAAJ3I8uXLlZiYqMDAQEnSmTNnlJCQIHd3d/n6+uqll17SzZs3W6zx9ttvKyoqSl5eXvLy8tKYMWN0+PBhmz4ZGRn6wx/+oIaGho66FXRRt2b06NGjmjx5sgICAuTm5qaf/vSnWrt2bas18vLy5OTkZHO4urra9CGj+CHs51D7nDk5OWnLli0t1oiJiXH4voSEBGsf8om2ujWTjua+xuPixYvN1igvL9fEiRMVGBgoJycnvfHGGw77bdiwQYGBgXJ1ddWIESNsfvY7OzvrxRdfVHp6envfIu4h9nPkwoULNXToULm4uCg8PNzhe44dO6aoqCi5uroqICBAq1atavU6H3/8scaNGyd/f385OTlpx44dTfps375dsbGx8vb2lpOTkywWi007mUVHYGEcAAAAAACgk7h+/bqys7OVkpIiSaqvr1dCQoLq6up06NAhvfPOO8rLy9PixYtbrHPgwAFNnjxZ+/fvV0lJiQICAhQbG6tz585Z+4wdO1bffvutPvzwww69J3Qt9hktLS2Vr6+v8vPzVV5erkWLFunll1/Wn//851ZreXp66vz589bj9OnTNu1kFLfLPp+NcnNzbbI2fvz4Futs377dpn9ZWZm6deumZ5991tqHfKIt7DOZlJRkk63z588rLi5O0dHR8vX1bbHOoEGDlJWVJT8/P4d9tm7dqrS0NGVmZurIkSMKCwtTXFyczYL7lClTdPDgQZWXl7fvjeKe0NwcOXv2bCUlJTl8z9WrVxUbG6uBAweqtLRUq1ev1h//+Ee99dZbLV7r2rVrCgsL04YNG1rs8+STT2rlypXN9iGzaG8sjAMAcB+IiYlRamrqHdeZOXNmq79A+DEcOHBATk5OunLliqTvnzbp3bv3XR0TAABAe9i9e7dcXFw0cuRISdKePXt0/Phx5efnKzw8XGPHjtXSpUu1YcMG1dXVNVtn8+bNev755xUeHq7g4GBt2rRJDQ0N2rdvn7VPt27dFB8f3+qTk8Ct7DM6e/ZsrV27VtHR0Ro0aJCmTp2qWbNmafv27a3WcnJykp+fn/Xo16+fTTsZxe2yz2ej3r1722TNfncCe3369LHpX1RUJHd3d5uFcfKJtrDPpJubm022unXrpn/+859NFirtPf7441q9erUmTZokFxcXh31ef/11zZkzR7NmzVJISIg2btwod3d35eTkWPt4eXnpiSeeILf3KUdz5Lp16zRv3jwNGjTI4Xs2b96suro65eTk6Gc/+5kmTZqkhQsX6vXXX2/xWmPHjtWyZcs0YcKEZvtMmzZNixcv1pgxY5rtQ2bR3lgYBwCgExs3bpyeeuoph23FxcVycnLSsWPHfrTxrF27Vnl5ec22Ny5YNx4+Pj6Kj4/Xp59+2qHjSkpK0ueff96h1wAAAPgxFBcXa+jQodbXJSUlCg0NtVkwjIuL09WrV2/ryZnr16/rxo0b6tOnj8354cOHq7i4+M4HjvuGfUYd+eabb5pkzZGamhoNHDhQAQEBSkxMdJhpMorb0Vw+582bp759+2r48OHKycmRMea26mZnZ2vSpEnq2bOnzXnyida0Nme+++67cnd31zPPPHNH16mrq1NpaanNAuMDDzygMWPGqKSkxKYvub1/teVnuL2SkhL9/Oc/l7Ozs/VcXFycTpw4oerq6vYeokNkFu2JhXEAADqxlJQUFRUV6auvvmrSlpubq2HDhmnIkCEdPo76+no1NDSoV69ebXoy+8SJEzp//rwKCwtVW1tr3f6zo7i5ubW45RgAAMC94vTp0/L397e+rqqqavIUbePrqqqqNtdNT0+Xv79/kydy/P39dfbsWb4jF21mn1F7hw4d0tatWzV37twW6wQFBSknJ0c7d+5Ufn6+GhoaNGrUqCb/9iGjuB2O8rlkyRJt27ZNRUVFmjhxop5//nmtX7++zTUPHz6ssrIy/frXv27SRj7RmtbmzOzsbCUnJ8vNze2OrvO///1P9fX1Dj8z2H9e8Pf3b/LVFbg/tJZHR9rrs+idILNoTyyMAwDQiT399NPy8fFp8pR2TU2NCgoKlJKSokuXLmny5Mnq37+/3N3dFRoaqr/97W8t1q2urtb06dPl5eUld3d3jR07VpWVldb2xq3Jd+3apZCQELm4uOjMmTNt3krd19dXfn5+euyxx5SamqqzZ8/qs88+s7YfPHhQUVFRcnNzU0BAgBYuXKhr165Z29977z0NGzZMDz74oPz8/JScnGzznVj22EodAAB0Fd99912rW/ze6syZM/Lw8LAer732WpM+WVlZ2rJli95///0mtd3c3NTQ0KDa2to7HjvuDy1ltKysTImJicrMzFRsbKyk5jMaGRmp6dOnKzw8XNHR0dq+fbt8fHz017/+1aYmGcXtcJTPV199VU888YQiIiKUnp6u3//+91q9erWkts2h2dnZCg0N1fDhw5u0kU+0pqU5s6SkRBUVFTbbqLclk3fKzc1N169fb/e66Pxu93NmWxQXF9tkdvPmze1aXyKzaF/d7/YAAABA87p3767p06crLy9PixYtkpOTkySpoKBA9fX1mjx5smpqajR06FClp6fL09NTH3zwgaZNm6ZHHnnE4T/cpe+/K7yyslK7du2Sp6en0tPTFR8fr+PHj6tHjx6Svt9uc+XKldq0aZO8vb1/0BPZ33zzjfU7gBq3XPrvf/+rp556SsuWLVNOTo6+/vprzZ8/X/Pnz1dubq4k6caNG1q6dKmCgoJ08eJFpaWlaebMmdq9e/dtjwEAAOBe0rdvX5ttKf38/HT48GGbPhcuXLC2+fv7y2KxWNvst69es2aNsrKytHfvXoc7DV2+fFk9e/a84yfVcP+wz2ij48eP65e//KXmzp2rjIwM6/nWMtqoR48eioiI0MmTJ23Ok1HcjubyeasRI0Zo6dKlqq2tbTWf165d05YtW7RkyRKHtcgnWtNSJjdt2qTw8HCbra3bOmc6uk63bt2snxEaXbhwQX5+fjbnLl++LB8fnzbeAbqStsyR9vz8/BzmqrEtMDDQJrP2T5e3BzKL9sTCOAAAndzs2bO1evVqffTRR4qJiZH0/TbqEydOVK9evdSrVy+9+OKL1v4LFixQYWGhtm3b5nBhvHFB/F//+pdGjRolSdq8ebMCAgK0Y8cOPfvss5K+X5z+y1/+orCwsNse88MPPyxJ1qfAf/WrXyk4OFiStGLFCk2ZMkWpqamSpMGDB2vdunWKjo7Wm2++KVdXV82ePdtaa9CgQVq3bp0ef/xx1dTUyMPD47bHAwAAcK+IiIhQfn6+9XVkZKSWL1+uixcvWv+jYlFRkTw9PRUSEqLu3bvrJz/5icNaq1at0vLly1VYWKhhw4Y57FNWVqaIiIj2vxF0WfYZlaTy8nL94he/0IwZM7R8+XKbtpYyeqv6+np9+umnio+PtzlPRnE7HOXTnsVikZeXl1xcXCSpxXwWFBSotrZWU6dOddhOPtGa5jJZU1Ojbdu2acWKFTbn2zpn2nN2dtbQoUO1b98+605/DQ0N2rdvn+bPn2/Tl9zev9oyR9qLjIzUokWLdOPGDevDNEVFRQoKCpKXl5eklufR9kBm0Z7YSh0AgE4uODhYo0aNUk5OjiTp5MmTKi4utm61VV9fr6VLlyo0NFR9+vSRh4eHCgsLdebMGYf1Kioq1L17d40YMcJ6ztvbW0FBQaqoqLCec3Z2/sHfX15cXKzS0lLl5eXp0Ucf1caNG61tR48eVV5ens02S3FxcWpoaNCpU6ckSaWlpRo3bpwGDBigBx98UNHR0ZLU7D0BAAB0FXFxcSovL7c+zRMbG6uQkBBNmzZNR48eVWFhoTIyMjRv3jzroo4jK1eu1KuvvqqcnBwFBgaqqqpKVVVVqqmpselXXFxs3fIaaAv7jJaVlWn06NGKjY1VWlqaNWtff/11i3WWLFmiPXv26IsvvtCRI0c0depUnT59usn3OJNR3A77fP7jH//Qpk2bVFZWppMnT+rNN9/Ua6+9pgULFrSpXnZ2tsaPHy9vb2+H7eQTrbHPZKOtW7fq5s2bzf6nC3t1dXWyWCyyWCyqq6vTuXPnZLFYbHbZSEtL09tvv6133nlHFRUVeu6553Tt2jXNmjXLpha5vX85yuPJkydlsVhUVVWl7777ziZnkpScnCxnZ2elpKSovLxcW7du1dq1a5WWltbitWpqaqy1JOnUqVOyWCw2v9u7fPmyLBaLjh8/Lkk6ceKEdSy3IrNoVwYAAHR62dnZxt3d3Vy9etW88sor5pFHHjENDQ3GGGNWrFhhvL29zXvvvWcsFouprKw0CQkJJjEx0fr+6Oho89vf/tYYY8zOnTtN9+7dzc2bN22uER4ebv70pz8ZY4zJzc01vXr1ajKOGTNm2NS1t3//fiPJVFdXW8+tWrXKREVFWV8HBwebBQsWmMrKyiZHbW2tqampMd7e3iY5Odl8/PHHpqKiwhQWFhpJ5pNPPnF4nebGCwAAcC8aPny42bhxo/X1l19+acaOHWvc3NxM3759zQsvvGBu3LjRYo2BAwcaSU2OzMxMa5+vvvrK9OjRw5w9e7ajbgVd1K0ZzczMdJi1gQMHtlgjNTXVDBgwwDg7O5t+/fqZ+Ph4c+TIEZs+ZBQ/xK35/PDDD014eLjx8PAwPXv2NGFhYWbjxo2mvr6+1TqfffaZkWT27NnjsJ18oq3sf64bY0xkZKRJTk5uc41Tp045nGujo6Nt+q1fv946tw4fPtz8+9//tmk/dOiQ6d27t7l+/foPvh/c2+zzGB0d7TBbp06dsvY5evSoefLJJ42Li4vp37+/ycrKavU6jb+7sz9mzJhh7ZObm9vq51Uyi/bmZIwxHb34DgAA7kxNTY0eeughrVmzRsuWLdNzzz2nV155RZI0btw4+fr6Kjs7W9L3W2UFBwcrJCREO3bskCTFxMQoPDxcb7zxhiorK/Xoo4/abKV+6dIlBQQE6N1339UzzzyjvLw8paam6sqVKzbjmDlzpq5cuWKta+/AgQMaPXq0qqur1bt3b0nff1f5ww8/rOzsbE2YMEFTpkzRhQsXtHfvXoc1SktLNWzYMJ05c0YBAQGSpPz8fE2bNk2ffPKJwsPDm1ynufECAADciz744AO99NJLKisr0wMPdNxmf+np6aqurtZbb73VYddA10RG0ZmRT3Q2P1Ym2yIpKUlhYWHW3ynh/tOZ8tgWZBbtrfOnHgAAyMPDQ0lJSXr55Zd1/vx5zZw509o2ePBgFRUV6dChQ6qoqNBvfvMbXbhwodlagwcPVmJioubMmaODBw/q6NGjmjp1qvr376/ExMR2H7u7u7vmzJmjzMxMGWOUnp6uQ4cOaf78+bJYLKqsrNTOnTut33k1YMAAOTs7a/369friiy+0a9cuLV26tN3HBQAA0FklJCRo7ty5OnfuXIdex9fXl89Z+EHIKDoz8onO5sfKZGvq6uoUGhqq3/3ud3d1HLi7Okse24LMoiOwMA4AwD0iJSVF1dXViouLk7+/v/V8RkaGHnvsMcXFxSkmJkZ+fn4aP358i7Vyc3M1dOhQPf3004qMjJQxRrt371aPHj06ZOzz589XRUWFCgoKNGTIEH300Uf6/PPPFRUVpYiICC1evNh6Tz4+PsrLy1NBQYFCQkKUlZWlNWvWdMi4AAAAOqvU1FTr7jkd5YUXXlC/fv069BrousgoOjPyic7mx8hka5ydnZWRkSE3N7e7Og7cfZ0hj21BZtER2EodAAAAAAAAAAAAANCl8cQ4AAAAAAAAAAAAAKBLY2EcAAAAAAAAAAAAANClsTAOAAAAAAAAAAAAAOjSWBgHAAAAAAAAAAAAAHRpLIwDAAAAAAAAAAAAALo0FsYBAAAAAAAAAAAAAF0aC+MAAAAAAAAAAAAAgC6NhXEAAAAAAAAAAAAAQJfGwjgAAAAAAAAAAAAAoEtjYRwAAAAAAAAAAAAA0KWxMA4AAAAAAAAAAAAA6NJYGAcAAAAAAAAAAAAAdGn/B5pDxhOtV2mpAAAAAElFTkSuQmCC",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "Matrice di Confusione per Livelli di Rischio UV:\n",
- " Basso Moderato Alto Molto Alto Estremo\n",
- "Basso 2931 19 0 2128 390\n",
- "Moderato 41 40299 0 995 11\n",
- "Alto 13 0 0 0 239\n",
- "Molto Alto 863 2454 0 8063 142\n",
- "Estremo 1878 1 0 169 4230\n",
- "\n",
- "Analisi Precisione Predizioni UV Index:\n",
- "Precisione esatta (±0.1): 55.1%\n",
- "Precisione entro 0.5 punti: 71.1%\n",
- "Precisione entro 1.0 punti: 86.1%\n",
- "Precisione livello di rischio: 85.6%\n",
- "\n",
- "Analisi errori per livello UV:\n",
- "MAE per UV Basso (0-2): 0.138 (n=41346)\n",
- "MAE per UV Moderato (2-5): 0.906 (n=11522)\n",
- "MAE per UV Alto (5-7): 0.877 (n=5468)\n",
- "MAE per UV Molto Alto (7-10): 0.758 (n=6278)\n",
- "MAE per UV Estremo (10-11): 1.528 (n=252)\n",
- "\n",
- "Statistiche degli errori:\n",
- "Media errori: 0.006\n",
- "Deviazione standard errori: 0.783\n",
- "Errore mediano: 0.000\n",
- "95° percentile errore assoluto: 1.723\n",
- "\n",
- "Distribuzione degli errori:\n",
- "Predizioni entro ±0.5: 71.1%\n",
- "Predizioni entro ±1.0: 86.1%\n",
- "Predizioni entro ±1.5: 93.2%\n",
- "Predizioni entro ±2.0: 96.5%\n"
- ]
- }
- ],
- "source": [
- "def plot_advanced_prediction_analysis(y_true, y_pred, folder_name=None):\n",
- " \"\"\"\n",
- " Funzione per visualizzare l'analisi degli errori di predizione e la precisione\n",
- "\n",
- " Parameters:\n",
- " -----------\n",
- " y_true : array-like\n",
- " Valori reali\n",
- " y_pred : array-like\n",
- " Valori predetti\n",
- " folder_name : str, optional\n",
- " Cartella dove salvare i plot. Se None, i plot non vengono salvati.\n",
- " \"\"\"\n",
- " import os\n",
- " from datetime import datetime\n",
- " import seaborn as sns\n",
- "\n",
- " # Converti in array numpy 1D se necessario\n",
- " if isinstance(y_true, pd.Series):\n",
- " y_true = y_true.values\n",
- " if isinstance(y_pred, pd.Series):\n",
- " y_pred = y_pred.values\n",
- "\n",
- " y_true = y_true.ravel()\n",
- " y_pred = y_pred.ravel()\n",
- "\n",
- " # Calcola gli errori\n",
- " errors = y_pred - y_true\n",
- "\n",
- " # Calcola accuracy per diversi livelli di tolleranza\n",
- " exact_accuracy = np.mean(np.abs(errors) < 0.1) * 100\n",
- " accuracy_05 = np.mean(np.abs(errors) <= 0.5) * 100\n",
- " accuracy_10 = np.mean(np.abs(errors) <= 1.0) * 100\n",
- "\n",
- " def get_risk_level(uv):\n",
- " if uv < 2:\n",
- " return 'Basso'\n",
- " elif uv < 5:\n",
- " return 'Moderato'\n",
- " elif uv < 7:\n",
- " return 'Alto'\n",
- " elif uv < 10:\n",
- " return 'Molto Alto'\n",
- " else:\n",
- " return 'Estremo'\n",
- "\n",
- " y_true_risk = [get_risk_level(x) for x in y_true]\n",
- " y_pred_risk = [get_risk_level(x) for x in y_pred]\n",
- " risk_accuracy = np.mean(np.array(y_true_risk) == np.array(y_pred_risk)) * 100\n",
- "\n",
- " # Crea la figura principale\n",
- " fig = plt.figure(figsize=(20, 10))\n",
- "\n",
- " # Plot 1: Distribuzione degli errori\n",
- " plt.subplot(2, 2, 1)\n",
- " plt.hist(errors, bins=50, alpha=0.7)\n",
- " plt.title('Distribuzione degli Errori di Predizione')\n",
- " plt.xlabel('Errore')\n",
- " plt.ylabel('Frequenza')\n",
- "\n",
- " # Plot 2: Actual vs Predicted\n",
- " plt.subplot(2, 2, 2)\n",
- " plt.scatter(y_true, y_pred, alpha=0.5)\n",
- " plt.plot([y_true.min(), y_true.max()], [y_true.min(), y_true.max()], 'r--', lw=2)\n",
- " plt.title('Valori Reali vs Predetti')\n",
- " plt.xlabel('Valori Reali')\n",
- " plt.ylabel('Valori Predetti')\n",
- "\n",
- " # Plot 3: Errori vs Valori Reali\n",
- " plt.subplot(2, 2, 3)\n",
- " plt.scatter(y_true, errors, alpha=0.5)\n",
- " plt.axhline(y=0, color='r', linestyle='--')\n",
- " plt.title('Errori vs Valori Reali')\n",
- " plt.xlabel('Valori Reali')\n",
- " plt.ylabel('Errore')\n",
- "\n",
- " # Plot 4: Precisione per intervallo di UV\n",
- " plt.subplot(2, 2, 4)\n",
- "\n",
- " uv_ranges = [(0, 2), (2, 5), (5, 7), (7, 10), (10, 11)]\n",
- " range_labels = ['Basso\\n(0-2)', 'Moderato\\n(2-5)', 'Alto\\n(5-7)', 'Molto Alto\\n(7-10)', 'Estremo\\n(10-11)']\n",
- "\n",
- " accuracies = []\n",
- " counts = []\n",
- " mae_per_range = []\n",
- "\n",
- " for (low, high) in uv_ranges:\n",
- " mask = (y_true >= low) & (y_true < high)\n",
- " if mask.any():\n",
- " mae = np.mean(np.abs(y_pred[mask] - y_true[mask]))\n",
- " mae_per_range.append(mae)\n",
- " count = np.sum(mask)\n",
- " counts.append(count)\n",
- " accuracy = np.mean(np.abs(y_pred[mask] - y_true[mask]) <= 0.5) * 100\n",
- " accuracies.append(accuracy)\n",
- "\n",
- " # Crea il grafico a barre con doppio asse y\n",
- " ax = plt.gca()\n",
- " bars = plt.bar(range_labels, accuracies, alpha=0.6, color='skyblue')\n",
- " plt.ylabel('Precisione (%)')\n",
- " plt.title('Precisione e MAE per Range UV')\n",
- "\n",
- " for bar in bars:\n",
- " height = bar.get_height()\n",
- " plt.text(bar.get_x() + bar.get_width() / 2., height,\n",
- " f'{height:.1f}%\\n(n={counts[bars.index(bar)]})',\n",
- " ha='center', va='bottom')\n",
- "\n",
- " ax2 = ax.twinx()\n",
- " line = ax2.plot(range_labels, mae_per_range, 'r-', marker='o', label='MAE')\n",
- " ax2.set_ylabel('MAE', color='red')\n",
- "\n",
- " for i, mae in enumerate(mae_per_range):\n",
- " ax2.text(i, mae, f'MAE: {mae:.3f}', color='red', ha='center', va='bottom')\n",
- "\n",
- " plt.xticks(rotation=45)\n",
- " plt.tight_layout()\n",
- "\n",
- " # Salva la figura principale se è specificata una cartella\n",
- " if folder_name is not None:\n",
- " try:\n",
- " # Crea la cartella se non esiste\n",
- " os.makedirs(folder_name, exist_ok=True)\n",
- "\n",
- " # Genera il timestamp\n",
- " timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
- "\n",
- " # Salva la figura principale\n",
- " main_plot_filename = os.path.join(folder_name, f'advanced_analysis_{timestamp}.png')\n",
- " plt.savefig(main_plot_filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"\\nPlot principale salvato come: {main_plot_filename}\")\n",
- "\n",
- " # Crea e salva la matrice di confusione come plot separato\n",
- " plt.figure(figsize=(10, 8))\n",
- " cm = confusion_matrix(y_true_risk, y_pred_risk)\n",
- " risk_levels = ['Basso', 'Moderato', 'Alto', 'Molto Alto', 'Estremo']\n",
- " cm_df = pd.DataFrame(cm, columns=risk_levels, index=risk_levels)\n",
- "\n",
- " sns.heatmap(cm_df, annot=True, fmt='d', cmap='Blues')\n",
- " plt.title('Matrice di Confusione per Livelli di Rischio UV')\n",
- " plt.tight_layout()\n",
- "\n",
- " conf_matrix_filename = os.path.join(folder_name, f'confusion_matrix_{timestamp}.png')\n",
- " plt.savefig(conf_matrix_filename, dpi=300, bbox_inches='tight')\n",
- " print(f\"Matrice di confusione salvata come: {conf_matrix_filename}\")\n",
- "\n",
- " except Exception as e:\n",
- " print(f\"\\nErrore nel salvare i plot: {str(e)}\")\n",
- "\n",
- " plt.show()\n",
- "\n",
- " # Stampa delle statistiche e analisi\n",
- " cm = confusion_matrix(y_true_risk, y_pred_risk)\n",
- " risk_levels = ['Basso', 'Moderato', 'Alto', 'Molto Alto', 'Estremo']\n",
- " cm_df = pd.DataFrame(cm, columns=risk_levels, index=risk_levels)\n",
- "\n",
- " print(\"\\nMatrice di Confusione per Livelli di Rischio UV:\")\n",
- " print(cm_df)\n",
- "\n",
- " print(\"\\nAnalisi Precisione Predizioni UV Index:\")\n",
- " print(f\"Precisione esatta (±0.1): {exact_accuracy:.1f}%\")\n",
- " print(f\"Precisione entro 0.5 punti: {accuracy_05:.1f}%\")\n",
- " print(f\"Precisione entro 1.0 punti: {accuracy_10:.1f}%\")\n",
- " print(f\"Precisione livello di rischio: {risk_accuracy:.1f}%\")\n",
- "\n",
- " print(\"\\nAnalisi errori per livello UV:\")\n",
- " uv_ranges = [(0, 2, 'Basso'), (2, 5, 'Moderato'), (5, 7, 'Alto'),\n",
- " (7, 10, 'Molto Alto'), (10, 11, 'Estremo')]\n",
- "\n",
- " for low, high, label in uv_ranges:\n",
- " mask = (y_true >= low) & (y_true < high)\n",
- " if mask.any():\n",
- " mae = np.mean(np.abs(errors[mask]))\n",
- " n_samples = np.sum(mask)\n",
- " print(f\"MAE per UV {label} ({low}-{high}): {mae:.3f} (n={n_samples})\")\n",
- "\n",
- " print(\"\\nStatistiche degli errori:\")\n",
- " print(f\"Media errori: {np.mean(errors):.3f}\")\n",
- " print(f\"Deviazione standard errori: {np.std(errors):.3f}\")\n",
- " print(f\"Errore mediano: {np.median(errors):.3f}\")\n",
- " print(f\"95° percentile errore assoluto: {np.percentile(np.abs(errors), 95):.3f}\")\n",
- "\n",
- " print(\"\\nDistribuzione degli errori:\")\n",
- " thresholds = [0.5, 1.0, 1.5, 2.0]\n",
- " for threshold in thresholds:\n",
- " within_threshold = np.mean(np.abs(errors) <= threshold) * 100\n",
- " print(f\"Predizioni entro ±{threshold}: {within_threshold:.1f}%\")\n",
- "\n",
- "\n",
- "# Usa la funzione\n",
- "plot_advanced_prediction_analysis(y_test, predictions, folder_name=folder_name)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "fe898941-2338-4157-b624-680bc2c517d8",
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {
diff --git a/src/olive-oil-dashboard.py b/src/olive-oil-dashboard.py
old mode 100644
new mode 100755
diff --git a/src/olive_config.json b/src/olive_config.json
old mode 100644
new mode 100755
diff --git a/src/olive_oil_train_dataset/__pycache__/create_train_dataset.cpython-39.pyc b/src/olive_oil_train_dataset/__pycache__/create_train_dataset.cpython-39.pyc
old mode 100644
new mode 100755
diff --git a/src/olive_oil_train_dataset/create_train_dataset.py b/src/olive_oil_train_dataset/create_train_dataset.py
old mode 100644
new mode 100755
diff --git a/src/setup.py b/src/setup.py
old mode 100644
new mode 100755
diff --git a/src/sources.dvc b/src/sources.dvc
new file mode 100644
index 0000000..5c75a9d
--- /dev/null
+++ b/src/sources.dvc
@@ -0,0 +1,6 @@
+outs:
+- md5: 23e7daa876590e1c6ae9cb7af3be8028.dir
+ size: 984847509
+ nfiles: 5
+ hash: md5
+ path: sources
diff --git a/src/utils/__init__.py b/src/utils/__init__.py
old mode 100644
new mode 100755
diff --git a/src/utils/__pycache__/__init__.cpython-39.pyc b/src/utils/__pycache__/__init__.cpython-39.pyc
old mode 100644
new mode 100755
diff --git a/src/utils/__pycache__/helpers.cpython-39.pyc b/src/utils/__pycache__/helpers.cpython-39.pyc
old mode 100644
new mode 100755
diff --git a/src/utils/helpers.py b/src/utils/helpers.py
old mode 100644
new mode 100755
index b408295..3f35a74
--- a/src/utils/helpers.py
+++ b/src/utils/helpers.py
@@ -429,7 +429,7 @@ def calculate_water_need(weather_data, base_need, optimal_temp):
rain_factor = 1 - 0.001 * weather_data['precip_sum'] # Diminuisce leggermente con l'aumentare delle precipitazioni
return base_need * temp_factor * rain_factor
-def create_technique_mapping(olive_varieties, mapping_path='./kaggle/working/models/technique_mapping.joblib'):
+def create_technique_mapping(olive_varieties, mapping_path='./sources/technique_mapping.joblib'):
# Estrai tutte le tecniche uniche dal dataset e convertile in lowercase
all_techniques = olive_varieties['Tecnica di Coltivazione'].str.lower().unique()
@@ -443,7 +443,7 @@ def create_technique_mapping(olive_varieties, mapping_path='./kaggle/working/mod
return technique_mapping
-def encode_techniques(df, mapping_path='./kaggle/working/models/technique_mapping.joblib'):
+def encode_techniques(df, mapping_path='./sources/technique_mapping.joblib'):
if not os.path.exists(mapping_path):
raise FileNotFoundError(f"Mapping not found at {mapping_path}. Run create_technique_mapping first.")
@@ -459,7 +459,7 @@ def encode_techniques(df, mapping_path='./kaggle/working/models/technique_mappin
return df
-def decode_techniques(df, mapping_path='./kaggle/working/models/technique_mapping.joblib'):
+def decode_techniques(df, mapping_path='./sources/technique_mapping.joblib'):
if not os.path.exists(mapping_path):
raise FileNotFoundError(f"Mapping not found at {mapping_path}")
@@ -477,7 +477,7 @@ def decode_techniques(df, mapping_path='./kaggle/working/models/technique_mappin
return df
-def decode_single_technique(technique_value, mapping_path='./kaggle/working/models/technique_mapping.joblib'):
+def decode_single_technique(technique_value, mapping_path='./sources/technique_mapping.joblib'):
if not os.path.exists(mapping_path):
raise FileNotFoundError(f"Mapping not found at {mapping_path}")