diff --git a/.ipynb_checkpoints/limpieza_modelos-checkpoint.ipynb b/.ipynb_checkpoints/limpieza_modelos-checkpoint.ipynb new file mode 100644 index 0000000..376a952 --- /dev/null +++ b/.ipynb_checkpoints/limpieza_modelos-checkpoint.ipynb @@ -0,0 +1,5687 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 618, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib as mpl\n", + "import matplotlib.pylab as pylab\n", + "from sklearn import metrics\n", + "import numpy as np # linear algebra\n", + "import pandas as pd # data processing\n", + "#from sklearn.preprocessing import OneHotEncoder, LabelEncoder\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.decomposition import PCA\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.tree import DecisionTreeRegressor\n", + "from sklearn.ensemble import RandomForestRegressor\n", + "from sklearn.linear_model import LinearRegression\n", + "from xgboost import XGBRegressor\n", + "from sklearn.neighbors import KNeighborsRegressor\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn import metrics\n", + "from sklearn.linear_model import Ridge, Lasso\n", + "from sklearn.ensemble import GradientBoostingRegressor\n", + "from sklearn import metrics\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.linear_model import SGDRegressor\n", + "from sklearn import linear_model\n", + "from scipy import stats" + ] + }, + { + "cell_type": "code", + "execution_count": 619, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidespecialsgas_typeACrainsunrefill litersrefill gas
02852621,512NaNE1000045E10
1124,23021,513NaNE10000NaNNaN
211,25,53821,515NaNE10000NaNNaN
312,93,93621,514NaNE10000NaNNaN
418,54,54621,515NaNE10000NaNNaN
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside specials gas_type AC \\\n", + "0 28 5 26 21,5 12 NaN E10 0 \n", + "1 12 4,2 30 21,5 13 NaN E10 0 \n", + "2 11,2 5,5 38 21,5 15 NaN E10 0 \n", + "3 12,9 3,9 36 21,5 14 NaN E10 0 \n", + "4 18,5 4,5 46 21,5 15 NaN E10 0 \n", + "\n", + " rain sun refill liters refill gas \n", + "0 0 0 45 E10 \n", + "1 0 0 NaN NaN \n", + "2 0 0 NaN NaN \n", + "3 0 0 NaN NaN \n", + "4 0 0 NaN NaN " + ] + }, + "execution_count": 619, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train=pd.read_csv('../reto_data/inputs/measurements.csv')\n", + "df_train.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### drop nan" + ] + }, + { + "cell_type": "code", + "execution_count": 620, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "distance 0\n", + "consume 0\n", + "speed 0\n", + "temp_inside 12\n", + "temp_outside 0\n", + "specials 295\n", + "gas_type 0\n", + "AC 0\n", + "rain 0\n", + "sun 0\n", + "refill liters 375\n", + "refill gas 375\n", + "dtype: int64" + ] + }, + "execution_count": 620, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train.isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 621, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{' ', '_', 'd', 'e', 'f', 'i', 'l', 'r', 's', 't'}" + ] + }, + "execution_count": 621, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set('df_refill liters')" + ] + }, + { + "cell_type": "code", + "execution_count": 622, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{' ', '_', 'a', 'd', 'e', 'f', 'g', 'i', 'l', 'r', 's'}" + ] + }, + "execution_count": 622, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set('df_refill gas')" + ] + }, + { + "cell_type": "code", + "execution_count": 623, + "metadata": {}, + "outputs": [], + "source": [ + "#eliminamos columnas con demasiados elementos vacios\n", + "df_train=df_train.drop(['specials', 'refill liters', 'refill gas'], axis='columns')" + ] + }, + { + "cell_type": "code", + "execution_count": 624, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 9 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 distance 388 non-null object\n", + " 1 consume 388 non-null object\n", + " 2 speed 388 non-null int64 \n", + " 3 temp_inside 376 non-null object\n", + " 4 temp_outside 388 non-null int64 \n", + " 5 gas_type 388 non-null object\n", + " 6 AC 388 non-null int64 \n", + " 7 rain 388 non-null int64 \n", + " 8 sun 388 non-null int64 \n", + "dtypes: int64(5), object(4)\n", + "memory usage: 27.4+ KB\n" + ] + } + ], + "source": [ + "df_train.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Categorical and numerical columns" + ] + }, + { + "cell_type": "code", + "execution_count": 625, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Numerical columns: ['speed', 'temp_outside', 'AC', 'rain', 'sun']\n", + "Categorical columns: ['temp_inside', 'gas_type', 'distance', 'consume']\n" + ] + } + ], + "source": [ + "num_cols = list(df_train._get_numeric_data().columns)\n", + "print(\"Numerical columns: \", num_cols)\n", + "\n", + "cat_cols=list(set(df_train.columns) - set(num_cols))\n", + "print(\"Categorical columns: \", cat_cols)" + ] + }, + { + "cell_type": "code", + "execution_count": 626, + "metadata": {}, + "outputs": [], + "source": [ + "#Creating a function to convert the values\n", + "def comma_converter(x):\n", + " if type(x) == str and ',' in x:\n", + " a = x.split(',')\n", + " return float(a[0] + '.' + a[1])\n", + " else:\n", + " return float(x)\n", + " \n", + "#Converting the data\n", + "df_train['distance'] = df_train['distance'].apply(comma_converter)\n", + "df_train['consume'] = df_train['consume'].apply(comma_converter)\n", + "df_train['temp_inside'] = df_train['temp_inside'].apply(comma_converter)" + ] + }, + { + "cell_type": "code", + "execution_count": 627, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "temp_inside > {nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 19.0, 20.0, 21.5, 22.5, 21.0, 20.5, 23.0, 23.5, 24.0, 22.0, 25.0, 24.5, 25.5}\n", + "\n", + "gas_type > {'SP98', 'E10'}\n", + "\n", + "distance > {1.7, 2.0, 2.9, 4.9, 4.5, 5.4, 7.8, 8.3, 6.1, 10.2, 11.2, 12.0, 12.9, 12.3, 11.9, 12.4, 11.8, 18.5, 17.3, 14.2, 17.9, 18.4, 18.3, 24.7, 25.9, 25.3, 19.0, 28.0, 20.0, 27.3, 31.1, 32.6, 33.4, 34.8, 35.9, 7.0, 36.9, 36.6, 39.4, 35.8, 40.6, 38.6, 43.5, 44.9, 44.4, 43.7, 39.0, 48.6, 41.9, 10.5, 51.6, 53.2, 56.1, 11.5, 58.7, 12.5, 13.0, 67.2, 14.0, 14.5, 16.0, 16.6, 16.1, 16.4, 81.2, 17.4, 16.9, 17.0, 16.5, 18.9, 18.1, 93.9, 19.6, 100.9, 20.1, 101.9, 20.6, 20.9, 21.6, 21.1, 2.4, 21.4, 21.5, 22.9, 22.4, 22.1, 21.0, 23.5, 24.9, 24.5, 25.5, 129.7, 130.3, 26.6, 5.5, 27.1, 28.5, 29.0, 29.9, 153.5, 31.4, 31.5, 31.9, 6.4, 6.0, 162.7, 32.1, 7.9, 7.4, 32.0, 9.9, 36.5, 37.2, 38.5, 13.9, 13.4, 39.5, 15.9, 15.4, 211.0, 4.8, 1.3, 216.1, 5.3, 6.8, 8.7, 9.8, 9.7, 9.2, 10.8, 11.7, 11.3, 12.2, 12.8, 12.7, 13.2, 13.3, 14.3, 14.7, 15.7, 15.3, 16.8, 16.2, 16.3, 16.7, 4.2, 17.2, 5.2, 18.8, 18.7, 6.7, 19.8, 20.8, 22.7, 22.2, 24.8, 25.2, 25.7, 26.2, 28.2, 28.8, 4.1, 5.1, 31.8, 6.6, 2.1, 10.6, 10.1, 11.6, 12.1, 12.6, 13.1, 13.6, 14.1}\n", + "\n", + "consume > {3.9, 4.5, 5.5, 4.2, 5.0, 6.4, 4.4, 5.3, 5.6, 4.6, 5.9, 5.1, 7.4, 9.9, 12.2, 10.8, 11.5, 4.9, 4.1, 4.0, 5.4, 6.5, 6.1, 6.9, 6.0, 6.6, 7.9, 7.1, 8.7, 8.1, 9.0, 3.6, 3.3, 3.8, 3.7, 4.7, 4.8, 4.3, 5.8, 5.7, 5.2, 6.2, 6.3}\n", + "\n" + ] + } + ], + "source": [ + "#visualizar contenido de las columnas categoricas\n", + "for c in cat_cols:\n", + " print(c, \">\", set(df_train[c]))\n", + " print(\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 628, + "metadata": {}, + "outputs": [], + "source": [ + "#convertimos en numéricas las que no son strings\n", + "df_train['temp_inside'] = pd.to_numeric(df_train['temp_inside'], errors='coerce')\n", + "df_train['consume'] = pd.to_numeric(df_train['consume'], errors='coerce')\n", + "df_train['distance'] = pd.to_numeric(df_train['distance'], errors='coerce')" + ] + }, + { + "cell_type": "code", + "execution_count": 629, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Numerical columns: ['distance', 'consume', 'speed', 'temp_inside', 'temp_outside', 'AC', 'rain', 'sun']\n", + "Categorical columns: ['gas_type']\n" + ] + } + ], + "source": [ + "num_cols = list(df_train._get_numeric_data().columns)\n", + "print(\"Numerical columns: \", num_cols)\n", + "\n", + "cat_cols=list(set(df_train.columns) - set(num_cols))\n", + "print(\"Categorical columns: \", cat_cols)" + ] + }, + { + "cell_type": "code", + "execution_count": 630, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{0, 1}" + ] + }, + "execution_count": 630, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#con un diccionario mapeamos y convertimos en numéricos los dos tipos de combustibles\n", + "df_train['gas_type'] = df_train['gas_type'].map({'SP98': 1, 'E10': 0})\n", + "set(df_train['gas_type'])" + ] + }, + { + "cell_type": "code", + "execution_count": 631, + "metadata": {}, + "outputs": [], + "source": [ + "#solo una pequeá cantidad de rows en temp_inside están vacías, las rellenamos con la media de la columna\n", + "temp_inside = df_train['temp_inside'].dropna()\n", + "temp_inside_avg = temp_inside.mean()\n", + "df_train['temp_inside'] = df_train['temp_inside'].fillna(temp_inside_avg)" + ] + }, + { + "cell_type": "code", + "execution_count": 632, + "metadata": {}, + "outputs": [], + "source": [ + "distance = df_train['distance'].dropna()\n", + "distance_avg = distance.mean()\n", + "df_train['distance'] = df_train['distance'].fillna(distance_avg)" + ] + }, + { + "cell_type": "code", + "execution_count": 633, + "metadata": {}, + "outputs": [], + "source": [ + "#df_train.drop(['distance'], inplace=True, axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 634, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 9 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 distance 388 non-null float64\n", + " 1 consume 388 non-null float64\n", + " 2 speed 388 non-null int64 \n", + " 3 temp_inside 388 non-null float64\n", + " 4 temp_outside 388 non-null int64 \n", + " 5 gas_type 388 non-null int64 \n", + " 6 AC 388 non-null int64 \n", + " 7 rain 388 non-null int64 \n", + " 8 sun 388 non-null int64 \n", + "dtypes: float64(3), int64(6)\n", + "memory usage: 27.4 KB\n" + ] + } + ], + "source": [ + "df_train.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Añadimos una nueva columna con el consumo / 100 Km" + ] + }, + { + "cell_type": "code", + "execution_count": 635, + "metadata": {}, + "outputs": [], + "source": [ + "df_train['consume_100Km'] = (df_train['consume']/100)*df_train['distance']" + ] + }, + { + "cell_type": "code", + "execution_count": 636, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 10 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 distance 388 non-null float64\n", + " 1 consume 388 non-null float64\n", + " 2 speed 388 non-null int64 \n", + " 3 temp_inside 388 non-null float64\n", + " 4 temp_outside 388 non-null int64 \n", + " 5 gas_type 388 non-null int64 \n", + " 6 AC 388 non-null int64 \n", + " 7 rain 388 non-null int64 \n", + " 8 sun 388 non-null int64 \n", + " 9 consume_100Km 388 non-null float64\n", + "dtypes: float64(4), int64(6)\n", + "memory usage: 30.4 KB\n" + ] + } + ], + "source": [ + "df_train.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### correlations" + ] + }, + { + "cell_type": "code", + "execution_count": 637, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(10.5, -0.5)" + ] + }, + "execution_count": 637, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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bQwArF23DkIIBC9apNzm/3XuDH8/PywNCUHo0qWI+vprSCQS+Hh7o1NHzT2S19TEBHOm+SFgwXzIpDJYW72OoOn+Zdfs8uXY9tVXamOACtfsR2UPMuj67rsYN9oNEokEC2bMxKIVyyGVyWBmaoqwefNeqEYXAGhiYoqp0+cgeN5MyGRSvP56M/gFlB3HX25cx8pli7BuQ7SGS0lE2kgiXsRn5L6g7t27B19fXxQWFkJXVxcff/wxGjZsiAULFqBx48bo1asXLl26hOjoaHh6esLb2xvdunVDWloaxo4di2PHjtV4Xw9eoEfb1oU/Sl+doQXWBsWaLkKdkd19tc5jRXaupotQZ+r1enEqRf80RcFDTRehzuToaE9l/3lo1cxE00UgAgAsiNLcsNdyc8Z20HQRaoWVmBcUKzEvL1ZiXl6sxLycWIl5ebESQy+K+ZGar8QEjtOuSgznxBARERERkVbhnBgiIiIiIg3iuKjaY08MERERERFpFVZiiIiIiIhIq3A4GRERERGRBmnj77RoGntiiIiIiIhIq7AnhoiIiIhIg9gRU3vsiSEiIiIiIq3CSgwREREREWkVDicjIiIiItIgDierPfbEEBERERGRVmFPDBERERGRBvERy7XHnhgiIiIiItIqrMQQEREREZFW4XAyIiIiIiIN4miy2mNPDBERERERaRX2xBARERERaRB7YmqPPTFERERERKRVWIkhIiIiIiKtwuFkREREREQapOBwslpjTwwREREREWkVVmKIiIiIiEircDgZEREREZEGCT6erNbYE0NERERERFqFPTEvqEz3TzRdhDplFveNpotQZwojd2u6CHXG6MORmi5CnZK0b6vpItSZQtmr0wZmaNxE00WoM2aQa7oIdSr/z3uaLkKdMbZ6XdNFoGqwI6b2Xp1PISIiIiIieimwEkNERERERFqFw8mIiIiIiDSIvxNTe6zEEBERERHR3/Lnn3/Cz88P2dnZaNWqFZYuXYqGDRuqxHz66ae4d69sLppCocAvv/yCnTt34s0330S3bt3QvHlzZWxsbCx0dXXV7o+VGCIiIiIiDRLQ/q6YefPmYcyYMRg8eDDWrl2LdevWwc/PTyXmyy+/VP5/1apVeOedd/D2228jOTkZ7777LjZt2lTj/XFODBERERER/WVSqRQXLlzAwIEDAQDDhw/HoUOH1MbfunULu3fvhr+/PwDg6tWryMnJwahRozBq1CgkJiY+c5/siSEiIiIiesXl5+cjPz+/0nJjY2MYGxtXu25ubi6MjIygp1dWtTA3N0dGRoba+PXr12PChAkwMjICAEgkEtjb22PSpEm4fv06PvnkE+zbtw+mpqZqt8FKDBERERGRBr0IvxMTGRmJNWvWVFru7e2NyZMnK/8+ePAgFi9erBLTsmXLSutJJJIq9/PgwQOcOXMGCxcuVC5zc3NT/r9Tp07o3LkzLl26hP79+6stLysxRERERESvuHHjxsHV1bXS8qd7YRwdHeHo6KiyTCqVolu3bpDL5dDV1UVWVhYsLCyq3M/JkyfRp08fGBoaKpft3r0b//73v9GiRQsAgBAC+vr61ZaXlRgiIiIiIg16ER6xXJNhY+ro6+vjvffew4EDB+Ds7Izdu3ejT58+VcZevnwZ7733nsqyGzdu4PLlywgKCsLt27dx/fp1dOnSpdp9cmI/ERERERH9LXPnzsV3330HJycnXLx4EVOmTAEAbN++HatWrVLGpaamwtLSUmXdSZMmIScnB0OGDIGPjw9CQ0OV82XUYU8MERERERH9LdbW1oiOjq603N3dXeXvjRs3VooxMjLC6tWra7U/VmKIiIiIiDRIvAgz+7UMh5MREREREZFWYU8MEREREZEGsSOm9tgTQ0REREREWoWVGCIiIiIi0iocTkZEREREpEEvwu/EaBv2xBARERERkVZhTwwRERERkQbxEcu1x54YIiIiIiLSKqzEEBERERGRVuFwMiIiIiIiDeJostpjTwwREREREWkV9sS8Ihr06AqzieMh0ddHya3fkBmyEoqiIpWYxiNc0GS4M0RJCUrvpCJz+VooCh5Cp5ERLHy9YdiuDRSPHiH/wBE82LVXQ5mod/bsD/jqy3WQlpaiTdu2CJgxGw0bGtUqbshgB5ibmStj3cd4wmHgIKSlpWJZWCjy8nIhlckwZIgL3Nw/rLPc1DFs9QaMe/eARFcX0qxs5H0fD1EqVYkx7tsT9dq3hXj0CAAgy81D7v8OAwDMPEZBoqcHyOUAgKLrv6Dw4k91m0Q1fjh3Dms3bECpVIp2rVtjtr8/jBo2rHHMjrg47Nm/HyUlJXizQwfMmT4dBgYGSE1LQ8jy5ch98AAyqRQugwfDY/RoTaSo4oezZ7Hmyy9RWlqKdm3bYs6MGZXzVRPz8OFDzF+8GL/fuQMhBAY7OsLLwwMAcPu337BwyRIUFxUBEgkm//e/6NGtmyZSVHHu7A/Y8FXZtdi6TVv4q7lmq4tzGaJ6zbqN8cQAh0G4desmJn06AdbWzZSvzZ2/CC1avPHPJ1aFMz/8gHXr10BaWoq2bdth1qw5aGhUOddnxWVkpOPjCeMR/fV2NGnSBADw48WLWLV6BeRyORobN8YXX/iiXfv2dZUafvjhB6xZv/7JOTlrFoyeyk1djFwux4qVK3Hu/HnI5XJ4fPghRg4fDgC4ePEiVqxe/TgvY/h+8QXaV8irtLQUU3x9MXzYMPS3t6+zfFXyOncOayM2Prn/+E2v+h6lJmbH7t3Yc+DxPap9e8zxK7tHlcsvKIDnxP/g84kTYd+3X12mRvTCY0/MK0C3SWNYzpiKe7ODcefDTyD9Mx2vfTpeJab+u51hMuYD/DFlBu5+5I3ChAuwmO4DADCfPBGK4ke44zkRqRO/QMNu76Hh+zaaSEWt3NxcLF64AMELQxDzzU5YWVnjy/VraxV3984dNGrUCFsityn/OQwcBABYtHA+7Oz7Y0vkNnz51Sbs2ROLH3+8UKc5Pk2nfj00GWSPnL0HkbllG2QPHsC49/uV4gysXkfu/sPIiv4WWdHfKiswEj096DVujKyob5SvvUgVmNy8PMwPCUHoggXY9fXXsLaywpqvvqpxzLFTp/BdbCzWLl+ObyMjUVJSgpgdOwAA80JCMMDODjGbNmHzunWI27sXFy5dqvMcK8rNzcW8hQuxZOFCxH7zTVku69fXOGb9xo2wNDfHd19/jaiICOyKi0NScjIAIGTZMrgMHoyYyEgEzpyJgDlzIJPJ6jzHivJycxGyaAEWBIfg6+1l1+JXVVyz1cXdvXsHjYwaYdPWbcp/AxzKrtlrV5Ng33+gymuaqsDk5uYiOHgeFi9egu92xMLK2hpr162pddyBA//DxImfICsrS7ns4cOHCAjww+TJPti27RtM95+BWbMCUFpaWme5zQsOxpLFixG7Ywesra2xZt26GsfExsXhbmoqvo2JQdSWLdj+zTdIvnYNDx8+hF9AAHwmT8Y327Zhhr8/AmbNUuaVdPUqvCZMwJUrV+okz6rk5uVh/pJQhM6bj11R0bB+3QprNmyoccyxU6fwXVws1i5dhm+3bEVJSSlidu5QriuEwNzFi1BYWFineZFmKITm/2mbV64Sc+PGDQwePFhl2ebNmzFo0CAMHDgQ33//vXL5vn374OTkhAEDBmDbtm0AgLS0NNjZ2SljpFIpPvvsM0yZMkXjXwrUadD13yj5+RdI0/4EADzY/T80GmCrEmPYoR2Kf/wJsqz7AICHJ8+g4fvdAD09GHZoi4LD8YBCAchkKDyXCKN+veo8j+pcSDyPNzt2QvPmLQAAw1xH4Mj3hyo9srC6uKvJSdDV0cXn3v/FuLFjsGVzBOSPeygGD3FRfjkyMjJCM+vmSE9Pr8MMKzN8owWk6ZmQ5z0AABRdSUb9jk+1vurqQN/CDEbvvQtzTzeYODtCt1FZC6n+65YQUilMXYfAfKw7jPv1AvR06zoNtRIuXECnN99Ei2ZlLekjhg7FoaNHVY5pdTEHDh/Gh6NHo7GxMXR0dDDD1xdODg4AABcnJwzq3x9A+fG0xj0NH8+ExER06tgRLZo3BwCMdHXFwe+/V823mphpU6bAx9sbAHA/OxulUqmytVchl6OgoAAAUFRUBMMKLb2acuFC2bXY7PG1ONR1BI4eqeKarSYu+WoSdHR14TP5vxg/bgy2bnlyzSYnJ+HOnd8w8RMvTPzEC6dOHq/bBCs4fz4BHTt2QosWZTkMHz4Shw8drJRrdXFZWVk4efIkVixfpbJOaupdNDQyQteuZQ1LLVu2RMOGRrh6NakOMgMSzp8vOycfl3nk8OE4eEj1OFYXc/zkSbg4O0NPTw/GxsZwGDAABw8dwt3UVBgZGcGma1dlXkYNGyLp6lUAwDfffovPJk7EW2+9VSd5ViXhwgV06lDx/uOCQ/FV3KPUxBz4/jA+HDXqyT1q6lQ4DXBQrrspOhrtWrdBm1at6jYxIi3xSlVidu/ejY8//hjFxcXKZUlJSdi7dy/27NmDmJgYLFmyBHl5ecjIyMCKFSsQExODPXv24Ntvv8XNmzdVtieTyTB16lTUr18fy5Ytg57eizk6T8/CDLKMJy13sqz70DVqCJ0GDZTLHl2/gfr//j/oWVoAAIydHKBjoA/dxo3wKOUGGg20B3R1IalfD0Z9e0L3NdM6z6M6mZkZsLSwUP5tbm6BwsJCFBUV1jhOLpfjva42WLp8Fdas/QqJiQnYtfM7AMDgwc6oV68eAOB8wjkkJyehW7cedZCZerrGRpAXPFT+LS94CB1DQ0gM9J/ENGyIkrtpyD99DlnR36D0XjpMh5VV4iUG+ihJTUPuvoPI2vYddBs1gnEvzeZUUUZmpsqxsjA3R2FhIQorDIOsLuZuaipyc3Mx2c8P7uPHY8OWLWj0eIiLi5OT8niePX8eSdeu4X0ND6/6u/lKJBLo6elhzrx5GO3piS7vvos3Hn9p9Pf1xZboaDgNG4bPfHwQMG2axu9XmRkZsKjJNVtNXPk1G7ZsFVav+QoXEhMQu6vsmq1Xrz76DxiIrzZuxYxZc7F8aShu/Hy9bpJ7SmZGBiwtLZV/W1g8zqGwcq7q4szNzREaGoZWrVurrNOieQsUFxXhfEICACAl5Rpu376F7Pv3/8GMnshQU+aKvQfVxWRkqN6TLS0skJmZiRbNm6OoqAgJj/O6lpKCW7dv4/7jvBYFB6NXL802pmVkZcLS4slQxiqv2Wpi7qalITc3D5On+8F9wkfYsHWr8h6VcOECLl25jInjVUdN0MtLCKHxf9rmmZUYIQTCwsIwcOBAODk5ITIyEr/99hs8PT3h7OyM0aNHIymprMUnICAAwcHBcHd3h52dHXbt2gUAOHfuHIYPH47hw4dj/PjxyMnJqdSjER4ejvDwcABAz549MXv2bAwaNAienp44ePAgxowZAzs7OyQmJgIA7ty5g/Hjx8PV1RXu7u5ISUmpNo+CggLEx8dj+fLlKstPnTqFAQMGwNDQEK+99hpsbGxw4sQJnD17Ft27d0eTJk3QoEEDDBw4EIcOHVKuJ5fLMW3aNDRo0ABhYWHQ1S1rwbazs0NYWBgGDx4MFxcXnDhxAmPHjkXfvn1x4MCBZx6Qf4RO1YdZKOTK/z+6koycLdvw+qI5aL5xFaBQQP4gH0Iqw/21GwEItNi8BlYL56Do4k8Q0her10mhUFS5XEdHt8ZxLi7DMOWLaTAwMECjRo0wevQYnDp1QiXu4IH/YcH8QCwIDoGZmdlzKftfJ6l6cYU+YXl+AXLi/gd5bh4AoPDiT9Bt3Bi6xo1Qcut35B08WjaHRi7Hw/MXUa9d66q3qQFCzbHSrXA+Vxcjk8lw/uJFLA4KQtSGDcjPz8e6iAiVuP8dOoTAhQsRMm8ezF577fkV/i9Qd25WzLcmMQvmzsXR/fuRn5+PiC1bUFJSghmBgQiaNQsHdu/GxrVrsSgsDOkZGc83gVpSiBpes9XEObsMg8+UJ9fsqNFjcPrxNTt1mj+GuY4EALRs2Qr97Oxx5szp55dALajNQbeGueqq7yFtaGSEJWHLsDVyMzw+dMeBA/vx3ntdoaevr3ad50mh5ouPboUyVxdT1TWso6MDIyMjLAsLw+bISLh/+CH2HziAru+9B/06yqsmhJrxN6r3KPUxMpkM53+8iMVzgxD15VfIL8jHuk0RSM/IwMr16zB/1iyV95GIVD2zKe7QoUO4dOkS9u3bB6lUijFjxiAmJga+vr5wcHDA5cuX4ePjg8OHy8bZp6enIyYmBr/88gvGjh2LESNGYN26dQgKCkLnzp0RFRWFlJQUtGzZUu0+79+/j379+iE4OBienp44evQoYmJiEBcXh8jISNjY2MDf3x+BgYHo1KkTbt68iUmTJinLUJVGjRohPDwcaWlpKsszMzPx9ttvK/82NzdHeno6JBIJzM0rtJ5YWCgra3K5HNOnT8eRI0ewf/9+6DxVSbCwsMD+/fsxY8YMbNiwAVFRUbh06RIWLVoEJyenZ73lz50sIxP1OnZQ/q1nZgZ5fgHEoxLlMkn9+ii+fBX5+8uG0+maNMFrH4+FIr8AehbmuL9uExSPW/1NxnwA6R9/1m0SVYjY+BXO/HAKAFBYVIg2rdsqX7t/PwuNGhmjfv36KutYNm2K6ynXqow7dOgA2rZth7Zt2wEABISytVoIgbVrVuHE8WNYsXJtnU6aVUdeUAD915+0buoaGUFR/AiiwrBGPbPXoG9uhuLrN56sKCn78m/YuiVESSlKy4+lRALIq/4SpQmWlpZIvv6k5Tzr/n0YN2qkckyrizEzM0O/3r2VQ6ocHRwQERkJoOx4rly3DsdOnsTaZcvQoV27OspKvaZNmyK5QmNMVflWF3Pu/Hm0bd0a5ubmZQ0v/fvj2MmTuHX7Nh49eoTePXsCAN7+17/QulUrJKekoGmF1vG6sCniK5wtv2YLC9G6TQ2uWUv11+zhx9dsm/JrVgjo6epBLpcj5utIjPhgNBo0eDzJWgB6dfiFcMNXX+L06Se5tmnTRvlaVlYWjI2rzvXa43lM1cVVpFAo0KB+A6xf/2QuxujRI9G8WfPnlUq1mlpaIvkZZa4upmnTprifna18LTMrCxYWFo/zqo8NFeaFjRw9Gs2bPXlQg6ZZWlqo3n+yqrpHqY8xe80M/XpVuEf1H4CIqCgctTiBRyUl+Hz6dABA2h9/YPWXXyLvwQOMcBlaR9kRvfie2RNz4cIFODo6wsDAAA0bNkRMTAxyc3Ph8Hhs+TvvvIPGjRvj9u3bAMp6USQSCdq3b4+8vDwAgL29Pby9vTF//ny0adOmRl3Affr0AQBYW1uje/fuAAArKyvk5+ejsLAQycnJmDFjBoYOHQpfX18UFRUhNze31m9AVd1nOjo6VS6XSMpavtPT09GgQQP4+PjAz8+v0lyY8rJbWVmha9eu0NPTU5ZdE4oSL6HeW29Cv5kVAKDxMCcU/nBOJUbPzBTWq5coh5iZjnNHwdETyvjXJngCKKvcGDsPQsGRE3VWfnU+/mSicgL+Vxs249q1ZKSm3gUA7I6LRa/efSqtY2PTTW3cb7dvYVPEV5DL5SgpeYTYXTtgZz8AALBq5TJcufwTNm6KfCEqMABQ8nsqDF5vCt0mjQEADf7vX3h06zfVICHQ2K43dI0bKWNkWdlQPCyEbiMjGPftWTYPRiJBwy7voPjGzad3ozHdu3ZFckoK7j5ueNi1dy/6PP4iXpMY+759EX+i7MuAEAInTp9GpzffBAAsW70aP125gqgNG16ICgwAdLexQfK1a7ibmgoA2BUXh769e9c45sixY9iwZQuEECgtLcWRY8fw3r//jebNmuFhYSGuPJ5LkJaWht9//x1vaiDvCR9PVE6yX79hM1KuJSPt8bW4d3cselZxzXa16aY27rfbt7B505NrNm7XDtjaD4Curi7O/HAa+/bsBgCkp9/DyZPH0KefXaXt/1P+M/FTRH8dg+ivYxCxaQuSk5Nx925ZDnGxu9C7d99K63Tr1r1GcRVJJBJMneqD69fLKrfx8Uehp6eHtnV0fLt366ZS5l2xsZXP22pi+vTpg7379kEmk6GgoADfHzmCfn37QiKRwGfqVKQ8rgAcjY+Hnp4e2r0g1ysAdH+vK5KvV7j/7KviHlVNjH3fvog/WeEedeYHdHqzAzxGjcbubTGIidiEmIhN6NihAz7/9FNWYF5yQmj+n7Z5Zk/M0+OmU1NTK33BF0IoJ1MaGhoCePKFHwC8vLxga2uL48ePIywsDElJSXBxcVHZjkwmU9lXxUcMPt2dqlAoYGBggD179iiXpaenKx83WRuWlpYqT3rJyspCq1atIITAxYsXlcszMzOV47ItLCwwf/58CCFw8uRJrFy5EtOmTVPGVuzu1vS4cwCQ5z1AxuIVeH3BLEj09CD98x7Sg5fCsEM7WPr74O5H3pCm/oHcbd+h+VcrAB0dFCddQ9aKsqfH5ER/h6ZzpqFF5HpAIkHOlq9R8vMvGs5KlYmJKWbMnIM5swMgk8pgZW2N2XOCAAA/X09BaMhCbIncVm3c+I8+wYrlYRg3dgzkMhn62drD2XkoMjIyELtrB5o2bYqpU7yV+xw5yg2DBztrINsyiuJi5B2Oh6mzI6CrA3lePnIPHYG+pQWaONgiK/pbyLJz8ODYKZi6DgEkEigePkTu/rIey6IrydBrbAxzj9GQ6OigJPUPFCQkaiyfp5mamCAwIAABgYGQSqVoZm2NoJkzkfLzzwgOC0PMpk1qYwBg5LBhyC8owNhPPoFcocCb7dphyqRJSM/MxHdxcXjd0hKTfH2V+3MbMQIuGugpLWdqYoLAmTPhP3u2Mpd5c+Yg5fp1BIeEICYyUm0MAHzh7Y1FYWEY7ekJiUSCfr17w33UKOjo6GDpokVYtnIlSkpLoaenh5nTp6OZhlu0TUxMETBzDgJnB0Aqk8Ha2hozZwcBAH7+OQVhIQuxaeu2auO8PvoEK5eHYfy4MZA9vmaHOJd90Zs9dz6Wh4Xg4MH/QaFQYPLnU9GypWYmSJuammLOnEDMnOEPqUyKZtbNEDh3HgDg+vUULFoYjOivY6qNU0cikWDe/GAsXhQMqVSG18zMsGTJUpXP4H+SqakpAufMgf+MGZDKZGXn5Ny5ZeftwoWI+fprtTFA2ST/P9LSMMbDA1KpFMNdXdHl3/8GAATPn4/gRYsgk0phZmaGpUuW1FleNWFqYoLA6f4ImDu37HhZWSFoxkyk3Hh8j4rYpDYGAEYOHYr8gnyMnfifJ/eo/36m4ayItIdEPGMmz5EjRxAVFYXNmzdDJpPB1dUVOTk5CA4OVg4nmzRpEo4fP47AwEDY2Nhg+ONnvHfo0AE3btzABx98gHnz5qFTp07YvXs34uPjsWjRIvTt2xdHjx6FkZER3NzcYGtri8mTJyvXA8rm2ZRv8/z581izZg2io6MxfPhwjBs3DkOHDsWZM2cQGBiIo0ePPvMGl5aWhrFjx+LYsWMAyib2BwYGYvv27SguLsbIkSOxfft2AIC7uzt27tyJ+vXrw83NDQsWLICpqanK+mlpaRg2bBjCw8PRo0cP2NnZISoqCs2aNVPO8Zk8eXKl/T7Lr70daxT3smgc942mi1BnZJHRmi5CnTH6cKSmi1CnJC9Ao0VdKRQvztyEf5qh/qvzDBw9yJ8d9BIRRcXPDnpJGFu9rukiUDUmhNXNEwWrs8mvs6aLUCvP/MQdMGAAkpOTMXz4cCgUCowdOxbdunVDUFAQwsPDoa+vj/DwcJWek6dNnToVAQEB0NPTg6GhIebNm4dGjRphwoQJGDlyJJo2baoyL6UmwsLCEBQUhIiICOjr62PFihV/qYWmc+fOcHFxwciRIyGTyfD5558rn6LyxRdfYOzYsZBKpRg5ciQ6d+5caU5Ns2bNMGPGDPj5+WHv3hfvByCJiIiIiF42z+yJIc1gT8zLiz0xLy/2xLyc2BPz8mJPDL0o2BNTey/VJ+7WrVsRFxdXabmFhQU2btyogRIREREREVWPfQq191JVYry8vODl5aXpYhARERER0T/oparEEBERERFpGzW/i0rVeHUG+hIRERER0UuBlRgiIiIiItIqHE5GRERERKRBnNdfe+yJISIiIiIircKeGCIiIiIiDWJPTO2xJ4aIiIiIiLQKKzFERERERKRVOJyMiIiIiEiDFBxPVmvsiSEiIiIiIq3CnhgiIiIiIg1iR0ztsSeGiIiIiIi0CisxRERERESkVTicjIiIiIhIgzicrPbYE0NERERERFqFlRgiIiIiItIqHE5GRERERKRB/J2Y2mNPDBERERERaRX2xBARERERaRA7YmqPPTFERERERKRVWIkhIiIiIiKtwuFkREREREQaxOFktcdKzAuq3emDmi4C/VN8vTVdAqK/rZGmC0D0PDRpoukSENFfxEoMEREREZEG8RHLtcc5MUREREREpFVYiSEiIiIiIq3C4WRERERERBrE0WS1x54YIiIiIiLSKuyJISIiIiLSIPbE1B57YoiIiIiISKuwEkNERERERFqFw8mIiIiIiDSIvxNTe+yJISIiIiIircKeGCIiIiIiDWJHTO2xJ4aIiIiIiLQKKzFERERERKRVOJyMiIiIiEiDOJys9tgTQ0REREREWoWVGCIiIiIi0iocTkZEREREpEH8nZjaY08MERERERFpFfbEEBERERFpEDtiao89MUREREREpFVYiSEiIiIiIq3C4WRERERERBrE4WS1x54YIiIiIiLSKuyJISIiIiLSID5iufbYE0NERERERFqFlRgiIiIiInouVq1ahfDw8CpfKy0thZ+fHxwd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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.set(style=\"white\")\n", + "# Generate a mask for the upper triangle\n", + "mask = np.zeros_like(df_train.corr(), dtype=np.bool)\n", + "mask[np.triu_indices_from(mask)] = True\n", + "# Set up the matplotlib figure to control size of heatmap\n", + "fig, ax = plt.subplots(figsize=(16,12))\n", + "# Create a custom color palette\n", + "cmap = sns.diverging_palette(255, 10, as_cmap=True) # as_cmap returns a matplotlib colormap object rather than a list of colors\n", + "# Red=10, Green=128, Blue=255\n", + "# Plot the heatmap\n", + "sns.heatmap(df_train.corr(), mask=mask, annot=True, square=True, cmap=cmap , vmin=-1, vmax=1, ax=ax) # annot display corr label\n", + "# Prevent Heatmap Cut-Off Issue\n", + "bottom, top = ax.get_ylim()\n", + "ax.set_ylim(bottom+0.5, top-0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 638, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsunconsume_100Km
consume_100Km99.210074-5.21878055.1846556.2373253.787710-5.534834-1.8700210.9124646.424729100.000000
distance100.000000-12.89667656.2298827.5178238.817534-5.341141-2.573817-1.9790658.11198199.210074
speed56.229882-22.786618100.0000005.9292961.541101-9.736041-3.5408000.9489468.16182855.184655
sun8.111981-17.0667388.16182824.22479434.6903412.2760968.859801-11.264999100.0000006.424729
temp_inside7.517823-16.0622885.929296100.00000035.9500421.01976729.737625-3.69372424.2247946.237325
temp_outside8.817534-32.0810591.54110135.950042100.00000014.87050116.756227-18.63148934.6903413.787710
rain-1.97906524.8117710.948946-3.693724-18.6314896.03281924.291471100.000000-11.2649990.912464
AC-2.5738179.659140-3.54080029.73762516.75622710.528540100.00000024.2914718.859801-1.870021
consume-12.896676100.000000-22.786618-16.062288-32.081059-1.5326979.65914024.811771-17.066738-5.218780
gas_type-5.341141-1.532697-9.7360411.01976714.870501100.00000010.5285406.0328192.276096-5.534834
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside \\\n", + "consume_100Km 99.210074 -5.218780 55.184655 6.237325 3.787710 \n", + "distance 100.000000 -12.896676 56.229882 7.517823 8.817534 \n", + "speed 56.229882 -22.786618 100.000000 5.929296 1.541101 \n", + "sun 8.111981 -17.066738 8.161828 24.224794 34.690341 \n", + "temp_inside 7.517823 -16.062288 5.929296 100.000000 35.950042 \n", + "temp_outside 8.817534 -32.081059 1.541101 35.950042 100.000000 \n", + "rain -1.979065 24.811771 0.948946 -3.693724 -18.631489 \n", + "AC -2.573817 9.659140 -3.540800 29.737625 16.756227 \n", + "consume -12.896676 100.000000 -22.786618 -16.062288 -32.081059 \n", + "gas_type -5.341141 -1.532697 -9.736041 1.019767 14.870501 \n", + "\n", + " gas_type AC rain sun consume_100Km \n", + "consume_100Km -5.534834 -1.870021 0.912464 6.424729 100.000000 \n", + "distance -5.341141 -2.573817 -1.979065 8.111981 99.210074 \n", + "speed -9.736041 -3.540800 0.948946 8.161828 55.184655 \n", + "sun 2.276096 8.859801 -11.264999 100.000000 6.424729 \n", + "temp_inside 1.019767 29.737625 -3.693724 24.224794 6.237325 \n", + "temp_outside 14.870501 16.756227 -18.631489 34.690341 3.787710 \n", + "rain 6.032819 24.291471 100.000000 -11.264999 0.912464 \n", + "AC 10.528540 100.000000 24.291471 8.859801 -1.870021 \n", + "consume -1.532697 9.659140 24.811771 -17.066738 -5.218780 \n", + "gas_type 100.000000 10.528540 6.032819 2.276096 -5.534834 " + ] + }, + "execution_count": 638, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "corr = (df_train.corr().sort_values('consume_100Km', ascending=False))*100\n", + "corr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " *- El consumo no solo se relaciona con el tipo de combustible, sino con la lluvia y la velocidad, así como la temperatura en el exterior y en el interior*" + ] + }, + { + "cell_type": "code", + "execution_count": 639, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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4zan0+k0IM+/df36dR05ckQBAQHy8fExOg4AAAAAwIPsdruys7PVpEkTVahQoch5UxZVAAAAAEDpxc2UAAAAAACmQlEFAAAAAJgKRRUAAAAAYCoUVQAAAACAqVBUAQAAAACmQlEFAAAAAJgKRRUAAAAAYCoUVQAAAACAqVBUPSA3N9foCECxvfPOOzp06JDreOHChdq0aZOBiayN9wtYwYEDB7Ru3Trl5+dr3759RscBYDLnzp37t1/A7+FrdABvdvToUcXGxur69etKSkrS4MGD9corr6hx48ZGR7OUr776Sm+++aZyc3PldDpd46tWrTIwlTWsXr1aKSkpmjt3rmusffv2mjNnjvLz8zVo0CAD01kL7xd3R1pamt566y1dvnxZkuR0OmWz2bRjxw6Dk1nHypUrtX37dmVlZal79+6aPn26+vfvr2HDhhkdzTLOnj2rqVOn6uzZs1qzZo0mTJigv/71r6pVq5bR0Szjk08+UUJCgi5fviyn08l7hYcNHjxYNptNN27c0I8//qjatWurTJkyOn36tGrXrq2tW7caHdEy8vPz9fbbb+vEiROaPn26VqxYoREjRqhcuXJGR3OfE8U2aNAg5/Hjx529e/d2Op1O565du5z9+vUzNpQF9ezZ07l69WrnZ5995vz8889dX3Bfr169nD/99FOR8R9//NEZHh5uQCLr4v3i7ujYsaNz7969zjNnzhT6guf07t3beePGDde/5StXrjjDwsKMDWUxQ4cOdX7yySfOiIgIp8PhcCYlJTkHDRpkdCxLCQkJce7cudP5/fff815RgsaNG+fct2+f6/jLL790jh071sBE1jNlyhTnwoULnX/605+c165dc06cONE5YcIEo2N5BEt/3ZCXl6cHH3zQdfzHP/5R+fn5BiaypgoVKmjw4MF6/PHH1apVK9cX3FemTBn5+fkVGa9WrZrKlOHtwZN4v7g76tSpo8cee0w1a9Ys9AXPKVOmTKFP6suXLy8fHx8DE1nPxYsX1a5dO9cs34ABA3TlyhWjY1lK1apV1alTJ9WqVYv3ihL07bffqkWLFq7j4OBgnThxwsBE1pORkaHx48fL19dXFStW1Ny5c3X06FGjY3kES3/d4O/vr2PHjslms0mSUlJSVKVKFYNTWU+7du20evVqtWvXTuXLl3eN33///QamsgYfHx/9+OOPuu+++wqN5+TkyG63G5TKmni/uDuGDh2q6OhotWzZslB5GjNmjIGprKVVq1aaO3eu8vLytH37diUlJal169ZGx7KUChUq6Pz58673i/3791tjGZ+JPPbYY5o9e7aeeOKJQn9btGzZ0sBU1lO9enW9+uqr6tGjhxwOh1JSUvTAAw8YHctSbDab8vPzXe8XFy9edD32djan8xcX/eGOnD59WnFxcTp8+LAqVKigunXrav78+apfv77R0Sylc+fORca4jsQzkpOTtWrVKr344osKDg6W0+nU4cOHNWfOHEVERGjw4MFGR7QM3i/ujoiICD3yyCNFZkYoqp7jcDi0YcMG7d69Ww6HQ23atNHAgQPl68tn355y6NAhTZs2TadPn1adOnWUm5urV155Rc2bNzc6mmVERUUVGbPZbNz/wsNyc3P12muvae/evZKktm3bauzYsbddzYXiSU5O1saNG3Xq1CmFhYVp+/btGj16tPr37290NLdRVD3g2rVrcjgc/J8OXikpKUlvvvmmfvjhB0k/L50cNmyYWrVqpXr16hmcznoyMzPlcDhUo0YNo6NYUs+ePfXee+8ZHcPSrl69quTkZEVGRiozM1Pr16/XiBEjVLFiRaOjWUpBQYFOnjwpu92u+vXrM6MKr3Xt2jWdPn1aDz/8sK5fv65KlSoZHclyjh8/rs8//1x2u12tWrVSo0aNjI7kERRVN+zfv18rV64sst0En8Z5xuLFizV27FhNnjz5tudnz559lxNZ28WLF+V0OrVnzx6tX79eR44c0RdffGF0LMs4duyYXnjhBWVmZsrpdKp+/fqaO3eu6tata3Q0S1mwYIGqV6+uJ554QmXLlnWNc6mA54wcOVINGzZUbGysrly5omXLlum7777T4sWLjY7m9X7r990t/N7znKioqNsuj+RvOM/as2ePpk+fLrvdrqSkJIWHh2vBggVq166d0dG8XnJy8r89HxERcVdylCTW6bhh0qRJGjNmDH8AlZBb23Zw46SS9/333yspKUmbN29Wbm6uRo4cqVdffdXoWJby4osvKjY2Vp06dZIkffjhh5o8ebLWrl1rcDJref/99yVJy5cvd41xqYBnnTt3Tm+++aYkyc/PT7Gxserdu7fBqazh1u+79PR0Xb16Vb169ZKvr6/ef/993XPPPQans5axY8e6Ht+8eVM7duzQvffea2Aia1q0aJHWrl2r4cOHKyAgQGvWrNH48eMpqh7w+eefS/r50qJTp06pY8eOKlOmjHbt2qUGDRpQVEu7oKAgS/wjMKtb16b26dNHly5dUl5enpxOp+x2u86cOWNwOmv48MMPtX79emVkZKhbt26aN2+epk2bxvV8JcDpdLpKqiR169ZNS5YsMTCRtTgcDpUpU0Y7d+4scu7ixYsGJLIum82mr7/+Wg0bNpT08109uT7VM/r06SNJWrt2rZKSklx3Xw8LC9OAAQOMjGY5v/4QvG3btvrzn/+s5557zqBE1uRwOBQQEOA6btCggYFprOXWCouoqCilpKSoWrVqkn6+Lnj06NFGRvMYfrO4ISoqShMmTFDr1q0L/ZKmvHrWokWLlJiYqJs3b6pq1arKzMxUkyZNtHHjRqOjeb2xY8eqe/fuSkpKci1Btcqd4symRYsW+tvf/qYBAwbIx8dH77//vh588EGdO3dOEktT3TVhwgQtXLiwyL/fzz77TC+88II+/vhjg5JZT1xcnIYOHaqgoCBJP38QMG/ePINTWctPP/2kS5cuuf7wzMnJ0bVr1wxOZS233nulnz9I/Ne//qVLly4ZF8iiqlevrvT0dNlsNl2+fFmJiYn8vvOwrKws+fv7u44rVqyo7Oxs4wJ5EEXVDbeW7B04cKDQOEXVs9577z199NFHio+P16hRo3Tu3Dn93//9n9GxLCElJUWbN2/WoEGDVLNmTf3pT39iW5oScmvp6aZNmwqNDx48mKWpHnDjxg3FxcW5CpPD4VBCQoLWr1//H6/7w51p27at0tPT9c0338jX15cb/ZSAkSNHqlevXnr00UflcDj05ZdfaurUqUbHspRb771Op1NlypRR1apVNW3aNKNjWc7MmTMVHx+vH374Qd26ddPjjz+umTNnGh3LUjp27KghQ4YoJCREDodDaWlpCgsLMzqWR3AzJTeEhYXpgw8+MDqG5Q0cOFBJSUlavny5atWqpZCQEPXr10/vvPOO0dEsw263Kz09XZs3b9ZHH32ktm3bKjIyUh06dDA6mmVkZ2cXWv4Ez7p586bGjx+vypUra9SoUZowYYLKly+vOXPmFNmqBu45e/as1qxZo9zcXP3yTwhu9ONZWVlZ+uKLL2Sz2fTYY48V2e8a7vnyyy914MABDR48WCNHjlRGRoZmzpyp0NBQo6NZ0qVLlwrN+sGztm7dqr1798pms6lNmzbq0qWL0ZE8oozRAbxZixYtlJ6erps3bxodxdLuueceJScnq3HjxkpNTdXBgwd1+fJlo2NZio+Pj7p27aolS5bo448/Vps2bbRw4UKjY1nK4MGDNWLECKWlpamgoMDoOJbj6+urhIQE5eXlqUePHurWrZtWrVpFSS0B48aNk/Tz78BWrVq5vuC+pKQkSdLrr7+uDRs26F//+pe++eYbrVu3Tq+//rrB6awlPj5eTZs21bZt21ShQgUlJydr6dKlRseynKNHj6p79+6KiIhQZmamunXrpoyMDKNjWcKtn+O+fftUrVo1de/eXaGhobr33nu1b98+g9N5Bkt/3ZCenl7kOkmbzaajR48alMiaHA6HLl68qIiICKWnp2v69OmuP5TgedWqVdOQIUM0ZMgQo6NYytatW7Vv3z4lJydr/vz56tChg/r06aOmTZsaHc0yfHx8tGjRIk2cOFFnzpzheusScvPmTcXFxRkdw5JY5Hb3OBwOtWzZUs8//7xCQkJUo0YNLn0pAS+//LKWLFmi559/XkFBQXrppZc0Y8aMIpfB4M6tX79es2bN0muvvVbknM1ms8RWSyz9hen169dPK1eulJ+fn9FRALfduHFDH3zwgRISEmSz2VStWjVNnz5dzZs3NzqaV+vcubOrmNrtdp0/f15BQUHy8fHhGmAPe/nll9W2bVu1a9eOa1NLUH5+vsqVK6dTp07pxIkTat++vesuwHBfVFSUOnXqpOXLl+vvf/+7kpOTtW3bNiUmJhodzVL69u2rd999VxEREa59P3v16qWUlBRjg1nYlStXLPM3MzOqbvitZThs7eFZZcqUUefOnVWvXj2VL1/eNW6FT4pQeuzevVtbtmzR7t271aFDByUkJOjRRx/V119/reHDh3NXWjetXr3a6AilRlpamtasWVNojNVEnrVkyRKdOnVK48aNU2RkpB566CHt2LFDs2bNMjqaZSxYsEAbN27Ua6+9pipVqigrK4tLXkqAv7+/jh075vogMSUlRVWqVDE4lbWkp6dr//79evbZZ9W/f39duHBBMTExioyMNDqa25hRdcMvi2pBQYE++eQTNWvWTDNmzDAwlfXs3bv3tuNcEwVvEhkZqX79+iksLEwVK1YsdG7FihX6y1/+YkwwC/n222+1detWnT9/XmXKlFFgYKCeeOIJllfD6/Tt21fr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rEK/6ypWrKjs7GzjAlnQ7Nmz9b//+7+u5XuHDx/WjBkz2HcZwB3x9g9oKapumDVrlp555hlNmTLFNbZ+/XoDEwEwqwceeEC1a9fWvn379OSTT+ratWt69NFH9c0337AfM7xKx44dNWTIEIWEhLhuChYWFmZ0LEspV65coWvMmjZtamAaAN7K2z+gpai64eOPP1bFihW1efNmnT59WrGxsdq7d6/q1atndDQAJrNz504dPXpUXbp0kST94x//UGBgoFavXq3w8HCW88FrTJ48WVu3btXevXtls9k0dOhQ179reEZwcLCmTJmiAQMGyMfHR3//+99Vs2ZN7du3T5LUsmVLgxMCQMljH1U39OzZUxs3bnQt38vLy9OAAQOUmppqcDIAZvPkk09q6dKluvfeeyVJV65c0ciRI7VixQr17dtXKSkpBie0voiICCUnJxsdA/iPoqKifvOczWbTqlWr7mIaAN7K2/ddZkbVDQUFBSpbtqzr+JePAeCXLl68qMqVK7uOy5cvr9zcXPn6+nr90hwzys3Ndd3A6hbulgpvsXr1aqMjALAAb5+PpKi6oWvXrnr66add1+Zs27aN5U8AbiskJMT1fuFwOFzvF8nJyQoICDA6nmUcPXpUsbGxun79upKSkjR48GC98soraty4Mcur4TX279+vlStXKjc3t9A4M6kAbseq21mx9NdNaWlp2rdvn3x9fdWyZUs2mwfwm9LT0/Xpp5/Kx8dHbdu2VYcOHXTw4EHVq1evyOwfiicyMlIzZ87U888/r+TkZH366adKSEhgf2t4la5du2rMmDG6//77C423atXKoEQAzOrfbWfl7SiqAADL6Nu3r959991C16P26tWLa4DhVSIjI5WYmGh0DABeoGfPnlqwYIElt7Ni6S8AwDL8/f117Ngx17KnlJQUZqvhdaKiojRhwgS1bt1avr7//59q3r6MD4DnWXk7K2ZUAQCWcfr0acXFxenw4cOqUKGC6tatq/nz56t+/fpGRwN+t+joaElSzZo1C43Pnj3biDgATOyll15SQUFBoe2szpw543of8ebtrCiqAADLuXbtmhwOh/z8/IyOAtyxsLAwffDBB0bHAOAFrLydFUUVAGAZ3C0VVjBt2jR17txZTzzxRKGlvwBQmlBUAQCWwd1SYQXt2rVTTk6OpJ9nRJxOp2w2m44ePWpwMgBmY+UPaPmYDgBgGUFBQdxwBl5v165dRkcA4CUmTZp02w9orYCiCgCwDO6WCivIz8/X8uXLdeLECU2bNk0rVqzQiBEjVK5cOaOjATAZK39AS1EFAFjG2rVrJUkHDhwoNG7VX+KwppkzZ6patWrKyMiQj4+PTp8+rSlTpmj+/PlGRwNgMlb+gJaiCgCwjOzsbO6WCq+XkZGhzZs36+OPP1bFihU1d+5chYeHGx0LgAlZ+QNaiioAwDJatGih9PR07pYKr2az2ZSfny+bzSZJunjxousxAPySlT+g5bc4AMAy0tPTtXHjxkJj3C0V3iY6OlpDhgxRdna24uPj9eGHH2rMmDFGxwJgQlb+gJbtaQAAAExk7NixGjdunD777DM5HA61bNlSs2fP1sqVK42OBsBkrLydFUUVAGAZr7/++m3HmY2CNxg9erSOHTumrKwsBQYG6tafaA6HQzVq1NC6desMTggAd4+15ocBAPh/CgoK9Mknn6hZs2ZGRwF+l7lz5+rSpUuKj4/X1KlTXeO+vr667777DEwGwKysvJ0VM6oAAMvKz8/X0KFDtWbNGqOjAADgcVOnTlW1atW0c+dObdy4UTNmzJDT6bTEdlZljA4AAEBJuXr1qs6dO2d0DAAASkRGRobGjx8vX19f13ZWVrg+VWLpLwDAQjp37uzaxsPpdOry5csaNmyYwakAACgZVt7OiqW/AADLOHv2rOuxzWbTvffeKz8/PwMTAQBQcpKTk7Vx40adOnVKYWFhru2s+vfvb3Q0t7H0FwBgGZUrV9apU6dUs2ZNpaam6sUXX9Tx48eNjgUAQInYsWOHZs6cqVGjRqlOnTp68803lZqaanQsj2BGFQBgGcOGDVOnTp1Uv359zZ8/X08//bQ2btyoxMREo6MBAOAxpWE7K4oqAMAy+vfvr02bNmnWrFmqW7euoqOj1bdvX7377rtGRwMAwGOuXLnyb7ez8vX1/lsRef//AgAA/h+Hw6EjR45o+/btWrNmjY4ePSq73W50LAAAPMrPz09+fn564403jI5SYiiqAADLmDhxoubNm6chQ4aodu3aGjBggCZNmmR0LAAAcIdY+gsAAAAAMBVmVAEAlrF582bNmTNHly9fLjRulc3PAQAoLZhRBQBYRpcuXfTGG2/o4YcfNjoKAABwA/uoAgAsIygoiJIKAIAFMKMKALCM+Ph4ZWZm6o9//KPKly/vGo+IiDAuFAAAuGNcowoAsIwrV66ocuXKOnjwYKFxiioAAN6FGVUAgKUUFBToxIkTstvteuihhyyx6TkAAKUNv70BAJZx5MgRxcTEyN/fXw6HQzk5OVqyZImaNWtmdDQAAHAHmFEFAFjGk08+qcmTJ7uK6cGDB/Xyyy9r06ZNBicDAAB3grv+AgAs49q1a4VmT5s3b64bN24YmAgAABQHRRUAYBlVqlTR9u3bXcfbt2+Xv7+/cYEAAECxsPQXAGAZJ0+e1DPPPKNLly65xtavX6969eoZFwoAANwxZlQBAJbx8ccfq2LFikpPT9fKlStVrVo17d271+hYAADgDjGjCgCwjJ49e2rjxo2qWLGiJCkvL08DBgxQamqqwckAAMCdYEYVAGAZBQUFKlu2rOv4l48BAID3YB9VAIBldO3aVU8//bTCwsIkSdu2bVOXLl0MTgUAAO4US38BAJaSlpamffv2ydfXVy1btlTXrl2NjgQAAO4QRRUAAAAAYCpcowoAAAAAMBWKKgAAAADAVCiqAAAAAABToagCAAAAAEyFogoAAAAAMJX/DyC8QRuzOxqbAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "corr_mat=df_train.corr(method='pearson')\n", + "plt.figure(figsize = (16,5))\n", + "corr_mat['consume'].sort_values(ascending = False).plot(kind = 'bar');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Chequear media de consumo por tipo de combustible y resto de variables" + ] + }, + { + "cell_type": "code", + "execution_count": 640, + "metadata": {}, + "outputs": [], + "source": [ + "gas_type=df_train.groupby('gas_type')" + ] + }, + { + "cell_type": "code", + "execution_count": 641, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsideACrainsunconsume_100Km
gas_type
021.0962504.93125043.50625021.91742910.118750.0437500.1000000.0750001.008933
118.6399124.89912340.82017521.93800712.228070.1008770.1403510.0877190.883618
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside AC \\\n", + "gas_type \n", + "0 21.096250 4.931250 43.506250 21.917429 10.11875 0.043750 \n", + "1 18.639912 4.899123 40.820175 21.938007 12.22807 0.100877 \n", + "\n", + " rain sun consume_100Km \n", + "gas_type \n", + "0 0.100000 0.075000 1.008933 \n", + "1 0.140351 0.087719 0.883618 " + ] + }, + "execution_count": 641, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 504, + "metadata": {}, + "outputs": [], + "source": [ + "#gas_type.get_group(1).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 505, + "metadata": {}, + "outputs": [], + "source": [ + "#gas_type.get_group(0).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 506, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 506, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "gas_type.size().sort_values(ascending=True).plot(kind='barh')\n", + "#'SP98': 1, 'E10': 0" + ] + }, + { + "cell_type": "code", + "execution_count": 612, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(11.204923406862736, 0.5, 'consume l/100km')" + ] + }, + "execution_count": 612, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAx8AAAGyCAYAAACFuXm8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAACX60lEQVR4nOzdd5TV933n/+e33T4NmBnqMIgikNCAEKKpUWQkZDuysR3bG8VxNt6UtXdz4iT2rtN2nbXjZHOON+X8EsUpXsdeO3KMixKBhECoMSAhJJooAjEMdQaYevv9lt8fd+bSmU59Pc7xsfjeb/ncEZq5r/l8Pu+3EQRBgIiIiIiIyAgzr/cARERERETk9qDwISIiIiIi14TCh4iIiIiIXBMKHyIiIiIick0ofIiIiIiIyDVxw4UP13U5duwYrute76GIiIiIiMgwuuHCx6lTp1ixYgWnTp263kMREREREZFhdMOFDxERERERuTUpfIiIiIiIyDWh8CEiIiIiIteEwoeIiIiIiFwTCh8iIiIiInJNKHyIiIiIiMg1ofAhIiIiIiLXhMKHiIiIiIhcEwofIiIiIiJyTSh8iIiIiIjINaHwISIiIiIi14TCh4iIiIiIXBMKHyIiIiIick0ofIiIiIiIyDWh8CEiIiIiIteEwoeIiIiIiFwT9vUegIiIiIjIrWjb3hZ+/PJBulN5/vK3l13v4dwQNPMhIiIiIjLMtu1t4bvPvQtBQGUidL2Hc8NQ+BARERERGUZBELDhzWZMy6ArlSeb9673kG4YWnYlIiIiIjIMgiAgnXNJpQvsb24n4pgYhnG9h3VDUfgQERERERmC80NHwfMBqCqL0JnMEnas6zy6G4uWXYmIiIiIDEIQBKSzBU63Z+jozpWCB8DKhXV4XkCu4BEQXMdR3lgUPkREREREBuD80NF+UejoNXvqGD618k4qEhEyWe356KVlVyIiIiIi/ZTJFehOFS4bOC42e+oYZk8dg6VtHyUKHyIiIiIifcjkCiTTLnlXsxhDofAhIiIiInIFCh3DS+FDREREROQiCh0jQ+FDRERERKRHNueSTBfIDVPoONORobYqOiz3uhWo2pWIiIiI3PZyOZczHRnOdmWHJXicOpvi2//2Ln/4dOMwjO7WoZkPEREREblt5XIu3ZkC+YI3LN04jrV2s66xibf2tqq7x2UofIiIiIjIbSeXd+lOD1/oOHyik7Wbm9h58EzpWHVllMcWTx6Gu986FD5ERERE5LaRzbukMi65vDssoeO9o+2s3dzEu4fbSsfGjo6xaskU5s+qwTK1y+F8Ch8iIiIicsvLFTxS6QLZYQgdQRCwt6mNtZubeO9oR+n4pJoEq5ZMYe6d1ZiGOgtejsKHiIiIiNyyhjt07Dx4hrWbm2g62VU6PmV8OauWTOGeqaMxFDquSuFDRERERG45+YJHKlMgk3cJhpg6fD9g+/5W1m5u4vjpZOn4jLpKnlgyhTsnVyl09JPCh4iIiIjcMoYzdHi+z5t7Wljb2ERLW7p0/O47RrNqcT3TJlUO7QG3IYUPEREREbnpFVyPZHp4QkfB9dmy+yTPNzZxpjNbOj5n+hieWDKFyePKhzja25fCh4iIiIjctIYzdOQLHq/tOMELW4/Q0Z0DwDDgvpm1rFpcz4SaxDCM+Pam8CEiIiIiN52C65PKFEjnCkMOHdmcy8tvH+fFN47QnS4AYBoGC2eP5fHF9dSOig3DiAUUPkRERETkJjKcoSOVLbBp21E2bDtKOusCYFsGSxrGs3LhZMZURodhxHI+hQ8RERERueG5nk8qXSA1DKGjO51nw5vNbHrrGNm8B4Bjmzw0dwIfWFhHVVlkGEYsl6PwISIiIiI3rN7Qkc4V8IcYOjq6c6x/4wivvH2cgusDEAlZLL1vIsvn11EeDw3DiC9kmRCPOMN+35uVwoeIiIiI3HBcr2d5VXbooeNMR4YXth5h884TuF7xZvGIzfL5k1g6f9KIhAPbNIhFHWIRB8tUD5BeCh8iIiIicsPwPJ/kMIWOlrY0zzc2sWXPKfyem5XFHB5dMJlH7p1AJDz8H4UdyyQec4iFbTUevAyFDxERERG57ryemY7UMISO46eTrGtsYtveltL+kMqyMI8tnMwDc8YTcqyhD/g8BhCyLeIxm0hIoeNqFD5ERERE5LoZztBx5GQXz21uYsd7p0vHxlREeGxxPYtmj8OxzSGO9kKGARHHJh6xCY/ALMqtSF8lEREREbnmhjN0HDzWwdrNTex5/2zpWO2oGKsW13P/XbVY1vCHjmjIJh51hn0W5Van8CEiIiIi14zn+aSzBZKZoYWOIAjYf6Sd5zYf5kBzR+n4hOoETzxQz70zajCHeaO3aUAsUtxEPtyzKLcLhQ8RERERGXGeH5DO5IcldOw6dJa1mw9z+ERX6fjkceV8cEk990wbM+x7LnrL5cYizrDPotxuFD5EREREZMT0ho5UpoA3hNDhBwHv7D/N2s2HOdqaLB2fPqmSVUvqmVU/athDh2OZxKI2sbAz7LMotyuFDxEREREZdsMVOjzfZ9u7LaxtbOLU2XTp+F1TRrFqcT3T66qGYbQXCtkW8ahNVOVyh53Ch4iIiIgMm1LoyBbw/MHfx/V8tu4+xbrGJk53ZErHG6aNYdWSeqaMrxiG0Z5jACHHIhF1RqT/hxTpKysiIiIiQzZcoSNf8Hh95wle2HqE9q4cUAwG982q4fHF9UysKRueAfforVwVizqEVblqxCl8iIiIiMigDVfoyOZdXnn7OC++0UxXKg+AaRgsuLuWxxfXM3Z0fJhGTM+9IRZ2iEVtHFuh41pR+BARERGRARuu0JHOFtj01jE2vNlMKusCYFsGi+8Zz2OLJjOmMjpMIy6yesvlRh1sVa665hQ+RERERKTfhit0JNN5Nmw7yktvHSWb8wBwbJOH5k7gAwvqqCqPDNOIi2zTIBbtKZerylXXzYiHjz/90z+lvb2db3zjGyP9KBEREREZIb4fkMoWSGXyQwodnckc699o5pW3j5EvFG8UDlksnTeRFfdPojweHqYRFzmWSTzmEFPlqhvCiIaPxsZGfvzjH7N06dKRfIyIiIiIjJDhCh1nOzO8sPUIr+84idtzo1jYZtn8SSyfP4l41BmmEfdUrrIt4jGbSEih40YyYuGjo6ODb37zm/z6r/86+/btG6nHiIiIiMgIGK7Q0dKW5vktTWzZfQq/p7V5Iurw6II6Hpk3kegwlrU1DAjbNomoTVjlcm9II/Zv5Q//8A/5rd/6LU6ePDlSjxARERGRYTZcoePE6SRrG5vYtreFoKfJYEUizMqFdTw4ZwLh0PBVmOotlxuPOoRULveGNiLh44c//CHjxo1j8eLFrFmzZiQeISIiIiLDqDd0pDMFXH/wLcmbT3WxdnMTbx84XTo2qjzCY4sms6Rh3LCWtTV7K1dFHBxblatuBiMSPp577jlOnz7Nk08+SWdnJ+l0mq9//et85StfGYnHiYiIiMgg+X5AOlcglR5a6Hj/eCfPbT7M7kNnS8dqqqI8vriehXePxRrGsraWCfGe0DGc95WRNyLh45/+6Z9K/7xmzRreeOMNBQ8RERGRG8hwhI4gCDjQ3M5zm5vYf6S9dHx8dZxVi+u5b2Yt5jCWtXUsk1jUJhZ2hvW+cu1oJ46IiIjIbWS4Qsee98/y3OYm3j/eWTpeN7aMJ5ZMoWH6GMxhrDAVsi3iUZuoyuXe9EY8fKxevZrVq1eP9GNERERE5CqGI3T4QcCOA6dZu7mJ5pbu0vGpEyt4YskU7poyatjCgQGEHItE1CGiylW3DP2bFBEREbmFDUvo8APe2tfC2s1NnDiTKh2fWT+KJ5bUM31S5fCFjp7KVdFIsUeH3Fr0b1RERETkFhQEAelsgeQQQofn+Wzdc4p1jU20tmdKx++ZOoZVS+q5Y0LFcA0Xw4BY2CEetYe1IpbcWBQ+RERERG4hwxE6Cq7H6ztP8sKWI7R1ZYHiMqh776zh8cX11I0tG7bxWr3lcqMOtipX3fIUPkRERERuAcMROnJ5j1ffOc76N47QmcwDYBoG999Vy+OL6xk3Jj5s47VNg1i0p1yuKlfdNhQ+RERERG5i50KHi+sPriV5JuuyafsxNrzZTDJTAMAyDRbfM47HFk2muio2bON1LLOncpXK5d6OFD5EREREbkK9oSOVcSl4gwsdyUyBjW8289Jbx8jkXAAc2+SBhvGsXDSZUeWRYRmrQU+53FhxE7nK5d6+FD5EREREbiJBEJDOuaTShUGHjs5kjhffbOaV7cfJFTwAwo7Fw/Mm8Oj9dVQkwsMyVsOAsG2TiNqEVS5XUPgQERERuSkMR+ho68qyfusRXttxgoJbvEc0bLPsvoksv7+ORNQZlrH2lsuNRx1CjipXyTkKHyIiIiI3sOEIHafb0zy/5QiNu07i9WxGj0cdHr2/jqXzJhKNDM9HQrOnXG4s6uDYqlwll1L4EBEREbkBDUfoOHkmxbrGJt549xRBTwGs8niIlQsn8+Dc8cPWxM8yIR7pqVylcrlyFQofIiIiIjeQIAjI5FySQwgdR1u6Wbu5ibf3t9JbdHdUeYSViybzQMO4YWviZ5sG8ZhDTJWrpJ8UPkRERERuAMMROg6f6OS515vYdehM6Vh1ZZTHF9ezcPbYYWvi51gmiZhDNKzKVTIwCh8iIiIi19FwhI4Dze08t7mJfU1tpWPjxsR5fHE982fVYJlDDx0GEHKsUo8OkcFQ+BARERG5DoYaOoIg4N3Dbazd3MTBYx2l45Nqy3hiST1zZlRjDsOshGFAxLGJRe1h2yMity/9DRIRERG5hoYaOvwgYOd7Z1i7+TBHTnWXjt8xoYJVS+qZfcfoYVkKZfRUropH7WHbIyKi8CEiIiJyDQRBQDbv0p0aZOjwA7bvb2Xt5iaOn06Wjt9ZV8UTD9Qzo65qWEKHafRUroo6w7ZHRKSXwoeIiIjICMvkCoMOHZ7n88a7LaxrbKKlLV06PnvqaFYtrmfqxMphGaNtGsQiNrFoCEuVq2SEKHyIiIiIjJBMrkAy7ZJ3vQFfW3B9Gned4PktRzjbmS0dv3dGNauW1FM3tnxYxuhYZmkTucrlykhT+BAREREZZkMJHfmCx6vvHOeFrc10JnNAcf/F/Fm1rFpcz/jqxJDHZwCObZGIFTeRq1yuXCsKHyIiIiLDZCihI5NzeXn7MTa82Ux3ugCAaRosmj2WxxbVUzsqNuTxGUDYsUlEbcJhfQyUa09/60RERESGKNtTvSo3iNCRyhTYuO0oL207SjrnAmBbJg/MGc/KhXWMrogOeXyGAdGQTSzqEHZUuUquH4UPERERkUEaSujoSuV48Y2jvPz2MXL54vUhx+TheyfygQV1VCTCQx6f2VMuNxZ1cGxVrpLrT+FDREREZIByOZfuTIF8wSMY4LXtXVle2HqE13acoOAWq19FwhZL503i0fsnkYiFhjw+y+wplxtxsFQuV24gCh8iIiIi/TSU0HGmI8PzW47QuOsErle8Oh6xWXF/HUvvm0gs4gx5fLZpEI85RMOOyuXKDUnhQ0RERKQPubxLd3pwoePU2RTrGpt4Y08LflC8ujwe4tEFdTx87wQioaF/HHMsk3jMIRZW5Sq5sSl8iIiIiFxBNu+SSrvkCu6AQ8ex1m7WNTbx1t7W0rVV5WFWLpzMAw3jCQ1x47cBhByr1KND5Gag8CEiIiJykVzBK24kzw88dBw+0cnazU3sPHimdKy6Msrji+tZOHss9hD3YBgGRBybWNQellkTkWtJf2NFREREeuQKHql0gewgQsd7R9tZu7mJdw+3lY6NHR1j1ZIpzJ9Vg2UOPXTEwg6xiN3nrMm2vS2s2XSQlrY0taNirF46jfmzaof0fJHhoPAhIiIit718z0zHQENHEATsbWpj7eYm3jvaUTo+qSbBqiVTmHtnNeYQ92CYBsQiDvGo069Zk217W3h6zU5s26AsatPeleHpNTthdYMCiFx3Ch8iIiJy28oXPFKZApm8SzCA1BEEATsPnmHt5iaaTnaVjk8ZX86qJVO4Z+roIW/8tkyDeMQmFg0NqHLVmk0HsW2jtCQrErLJ4rJm00GFD7nuFD5ERETktjPY0OH7Adv3t7J2cxPHTydLx2fUVfLEkincOblqyKHDsczSJnJzEOVyW9rSlEUv/IgXdixa29JDGpfIcFD4EBERkdtGwS0urxpo6PA8nzffbWFtYxMt532Iv/uO0axaXM+0SZVDHlvItkjEipvIhxJgakfFaO/KXLAZPVfwqBkVG/IYRYZK4UNERERueYMNHQXXZ8vukzzf2MSZzmzp+JzpY3hiyRQmjysf0rgMIOzYxKM2kfDwfCxbvXQaT6/ZSRaXsGORK3i4bsDqpdOG5f4iQ6HwISIiIresguuRyrikc4UBhY58weO1HSd4YesROrpzQDEo3DerllWL65lQkxjSuAwDoiGbWNQhPMR+HxebP6sWVjewZtNBWtvS1KjaldxAFD5ERETkllNwfVKZwoBDRzbn8vLbx3nxjSN0pwsAmIbBwtljeWzRZMaOjg9pXGZvudyog2MPrfTu1cyfVauwITckhQ8RERG5ZQw2dKSyBTZtO8qGbUdJZ10AbMtgScN4Vi6czJjK6JDGZZkQjzjEIg7WEJsMitzMFD5ERETkpud6Pql0gdQAQ0d3Os+GN5vZ9NYxsnkPAMc2eWjuBD6wsI6qssiQxmWbBvGYQzTsDKhcrsitSuFDREREblq9oSOdK+APIHR0dOdY/8YRXnn7OAXXByASslh630SWz6+jPB4a0rgcyyQec4iFh1a5SuRWo/AhIiIiNx3X61lelR1Y6DjTkeGFrUfYvPMErle8MBaxWTF/EkvnTyIecQY9JoNiudx4rNijQ0QupfAhIiIiN43Bho6WtjTPNzaxZc8p/J4Ly2IOjy6o45F7Jw6pzK1hQMSxiUXtC3priMil9F+IiIiI3PA8zyc5iNBx/HSSdY1NbNvbUtoLUlkWZuXCyTw4ZzyhIZS5NXorV0XsId1H5Hai8CEiIiI3rMGGjiOnuli7uYl3DpwuHRtTEeGxxfUsmj1uSGVuTQNiPZWrRrJcrsitSOFDREREbjhez/Kq1ABDx8FjHazd3MSe98+WjtWOirFqST3331WLZQ4+LJTK5UZDqlwlMkgKHyIiInLDGEzoCIKA/UfaeW7zYQ40d5SOT6hO8MQD9dw7owZzCGHBsUzi0eIm8qHcR0QUPkREROQGMNjQsfvQWZ7bfJjDJ7pKxyePK+eDS+q5Z9qYIZW5DdlWT+hQuVyR4aLwISIiIteN5/mkswWSmf6HDj8IeGf/adZuPszR1mTp+LSJlTzxQD2z6kcNOiwYQMixSESdIVXAEpHL039VIiIics15fkA6kx9Q6PB8n23vtrC2sYlTZ9Ol47PqR7FqST0z6qoGPR7DgGjIJhZ1CKtylciIUfgQERGRa2YwocP1fLbsPsnzjUc43ZEpHW+YNoZVS+qZMr5i0OMxe8vlRm0cW6FDZKQpfIiIiMiI6w0dqWwBz+/fNfmCx+s7T/DC1iO0d+WA4rKoeTNrWLW4nom1ZYMej2X2hg4H21K5XJFrReFDRERERsxgQkc27/LK28d58Y1mulJ5AEzD4P67alm1pJ6xo+ODHo9tGsSixR4dKpcrcu0pfIiIiMiwG0zoSGcLbHrrGBvebCaVdQGwTIMlDeNYuaie6srooMfjWCbxmENMlatEriuFDxERERk2gwkdyXSeDduOsumtY2RyxdDh2CYPzhnPyoWTqSqPDGosBj3lcmM2kZBCh8iNQOFDREREhmwwoaMzmWP9G8288vYx8oXiReGQxdJ5E1lx/yTK4+FBjcUwIOLYxCM2YZXLFbmh6L9IERERGTTfD0hlC6Qy+X6HjrbOLM9vPcLrO07g9lwUC9ssmz+J5fMnEY86gxpLb7nceNQhpHK5IjckhQ8REREZsMGEjtb2NM83HqFx90n8njq7iajDowvqeGTeRKKDnKUwDYhFipvIHVuVq0RuZAofIiIi0m+9oSOdKeD2s1HHiTNJ1jUe4c13TxH0XFKRCLNyYR0PzplAODS4WQrLhHhP6LBULlfkpqDwISIiIn3y/YB0rkAq3f/Q0Xyqm7WNh3l7/+nSsVHlER5bNJklDeMG3dTPNo2eylUOpsrlitxUFD5ERETkigYTOt4/3slzmw+z+9DZ0rGaqiiPL65n4d1jBz1L4VgmiZhDVOVyRW5aCh8iIiJyiYGGjiAIONDcznObm9h/pL10fHx1nFWL67lvZu2gZinOL5cbDQ9uI7qI3DgUPkRERKRkMKFjz/tneW5zE+8f7ywdrxtbxhNLptAwfQzmIGYpesvlxqLFHh0icmvQf80iIiJCEASkswWS/QwdfhCw48Bp1m5uormlu3R86sQKnlgyhbumjBrU0iiVyxW5tSl8iIiI3MYGHDr8gLf2tbB2cxMnzqRKx2fWj+KJJfVMn1Q5qNChcrkitweFDxERkdvQQEOH5/ls3XOKdY1NtLZnSsfvmTqGVUvquWNCxaDGoXK5IrcXhQ8REZHbSG/oSGVcCv3oDlhwPV7feZIXthyhrSsLFDeB33tnDY8vrqdubNmgxqFyuSK3J4UPERGR20AQBKRzLql0oV+hI5f3ePWd46x/4widyTxQ3I+x4K6xPLZ4MuPHJAY1Dscye0KHyuWK3I4UPkRERG5hAw0dmazLpu3H2PBmM8lMAQDLNFh0zzgeWzSZmqrYgMegcrki0kvhQ0RE5BY00NCRzBTY+GYzL711jEzOBcC2TB6cM56VCyczqiIy4DGUyuVGbCJhfeQQEYUPERGRW0oQBGRyLsl+ho7OZI4X32zmle3HyRU8AMKOxcP3TuDRBXVUJMIDHoPK5YrIlSh8iIiI3AIGGjraurK8sOUIr+88QcEtnh8JWyy7bxIr5k8iEQsNeAwqlysifVH4EBERuYkNNHScbk+zbssRtuw6iddTYjcedXj0/jqWzptINDLwjwYqlysi/aXwISIichMaaOg4eSbFusYm3nj3FEFPW4/yeIiVCyfz4NzxREID/0igcrkiMlAKHyIiIjeRIAjI5l26U/0LHUdbulm7uYm397fS20pwVHmElYsm80DDOBx74HsyVC5XRAZL4UNEROQmkckV+h06Dp/o5LnXm9h16EzpWHVVlMcX1bNw9ljsAS6PUrlcERkOIxo+/uIv/oLnn38ewzD4+Mc/zi//8i+P5ONERERuSZlcgWTaJe96Vz0vCALeO9rBc5ub2NfUVjo+bkycxxfXM39WDZY5wNDRUy43HrEJq1yuiAzRiH0XeeONN9iyZQs/+9nPcF2XJ554gkceeYQ77rhjpB4pIiJySxlI6Hj3cBtrNx/m4LHO0vG62jJWLalnzoxqzAEuj1K5XBEZCSMWPhYsWMB3vvMdbNumpaUFz/OIxQbeFVVEROR209/Q4QcBO987w9rNhzlyqrt0/I4JFTyxpJ677xg94D0ZKpcrIiNpROdPHcfhL//yL/nHf/xHHn/8cWpra0fycSIiIje1focOP2D7/lbWbm7i+Olk6fiddVU88UA9M+qqBhw6VC5XRK4FIwh6C+6NnEwmw6//+q/zxBNP8MlPfvKq5x47dowVK1awYcMGJk6cONJDExERue76Gzo8z+eNd1tY19hES1u6dHz21NGsWlzP1ImVA362yuWKyLU0YjMfhw4dIp/PM2vWLKLRKCtXrmT//v0j9TgREZGbTiZXIJV2yfUROgquT+OuEzy/5QhnO7Ol4/fOqGbVknrqxpYP+NmOZZKIOURVLldErqERCx/Hjh3jL//yL/n+978PwIYNG/jYxz42Uo8TERG5aWR7mgP2FTryBY9X3znOC1ub6UzmgOJG8Pmzalm1uJ7x1YkBPdcAQo5FPKpyuSJyfYxY+HjkkUfYsWMHH/nIR7Asi5UrV/LBD35wpB4nIiJyw+tv6MjkXF7efowNbzbTnS4AYJoGi2aP5bFF9dSOGlgBl95yubGoPahO5iIiw6Vfez5Onz5NZ2fnBcemTZs2IgPSng8REbnV9Dd0pDIFNm47ykvbjpLOuQDYlskDc8azcmEdoyuiA3quYUAs7BCP2oPqZC4iMtz6/PXHn/zJn/C9732PROLc1K5hGDQ2No7owERERG52uZxLd6ZAvuBxtd/0daXybHizmU3bj5HLFwNKyDF5+N6JfGBBHRWJ8ICea/WWy406A+5kfjnb9rawZtNBWtrS1I6KsXrpNObPUgVLERm4PsPH+vXrefXVV6mqqroW4xEREbnp9Td0tHdlWf9GM6++c5yC6wMQCVssnTeJR++fRCIWGtBzbdMgFu0plztMlau27W3h6TU7sW2DsqhNe1eGp9fshNUNCiAiMmB9ho/6+nrKywdeRUNEROR209/QcbojwwtbmmjcdRLXK54Zj9isuL+OpfdNJBYZ2GZwxzKJxxyiIXvYy+Wu2XQQ2zZKe0UiIZssLms2HVT4EJEB6zN8/OIv/iJPPfUUCxcuxLbPnf6FL3xhRAcmIiJys+hv6Dh1NsW6xiO8secUfs+Wy/J4iEcX1PHwvRMGtBncAEK2RTxW3EQ+UuVyW9rSlEUvHFfYsWg9r8+IiEh/9fld7q/+6q8YPXo03d3d12I8IiIiN41c3iWZdskV3KuGjmOt3axrbOKtva2l86rKwqxcNJkHGsYTcvq/GdwwIGzbJKI24fDIV66qHRWjvStzQTDKFTxqBlhxS0QE+hE+MpkM3/rWt67FWERERG4K2bxbbA7YR+hoOtnFc68fZufBM6VjYyqjPL54MgvvHodj938zuGFANGQTjzoDCitDtXrpNJ5es5MsLmHHIlfwcN2A1UtHpuqliNza+gwf06dPZ9++fcycOfNajEdEROSGcX6Vp0k1CT780B3Uj6sgl7966HjvaDtrNzfx7uG20rGxo2OsWlzP/Ltqscz+hw6zt3JVxBlQWBku82fVwuoG1mw6SGtbmhpVuxKRIegzfLS2tvLxj3+cCRMmEAqdq7rx7LPPjujARERErqfeKk/xqM3E6jiZXIFv/XgXH102jdlTx1xyfhAE7G1qY+3mJt472lE6PrEmwaol9dx7Zw3mAPZlWCbEe0KHNQzlcodi/qxahQ0RGRZ9ho8vfvGL12IcIiIiN5RnX3uf6qoItmXRncoXlxv5Pi9sbb4gfARBwK6DZ3hucxNNJ7tKx6eML2fVkincM3X0gDaDO5ZJPGoTDTvDXrlKROR66zN8hEIh5s6dW/pzLpfjG9/4BgsWLBjJcYmIiFw3uYJHMpPHd33ybr50PGSbnO3MAOD7AW8faGXt5iaOtSZL58yoq+SJJVO4c3LVgEJHyLZIjHDlKhGR661fMx9PP/0006dPZ9euXfzO7/wOU6dOvRZjExERuaZyBY9UukC24EJg0J0pED5vc3fe9RlVHmHL7pOsa2zi1Nlz5WbvvmM0qxbXM21SZb+fZwBhxyYetYlcg8pVIiLXW5/f6f7sz/6Mz3/+8zz66KP8+Mc/5stf/jIf+chHrsHQREREro18wSOZKZDNu/S032Dlwjp+8MJ+cniEbJNcwSOddcnkPL79b++Wrp0zvZonltQzeVz/G/L2Vq6KRZ0Lwo2IyK2uz/Axf/58/viP/5hf//Vf55/+6Z8uWIIlIiJyM8sXPFKZApnzQkev2VPH8KmVsK7xCCfOJMkXvFI3cgO4b1YtqxbXM6Em0e/nmQbEwg6x6PWpXCUicr1dMXx8+MMfvvBE2+Y3fuM3GDOmuMlO1a5ERORmVXA9kunLh45e2ZzL8dMpWtpSpLMuAKZhsHD2WB5bNJmxo+P9ft6NVLlKROR6umL4+IM/+INrOQ4REblNnN87o/Ya94zoT+hIZQts2naUDduOlkKHbRksaRjPyoWTGVMZ7ffzbNMgHnOIqXKViAhwlfCxYMECcrkcr776KqdOncI0TcaOHcuCBQtIJPo/xSwiItKrt3eGbRuURW3auzI8vWYnrG4Y0QBScH1SmQLpXOGKoaM7nWfDm81seusY2bwHgGObPDR3Ah9YWEdVWaTfzwvZVk+5XFWuEhE53xXDx9tvv81v/uZvUl9fT21t8QdCS0sLf/iHf8j//t//m8WLF1+zQYqIyK1hzaaD2LZBJFT88RMJ2WRxWbPp4JDDR+rQdjobf4rb0YpdWUPF4icJTZ7bZ+jo6M6x/o0jvPL2cQqu3zMui0fmTWTF/XWUx0OXv/AiBhByLBJRR5WrRESu4IrfHf/wD/+Qv/u7v2PmzJkXHN+3bx9f+tKX+NnPfjbigxMRkVtLS1uasuiFP3rCjkVrW/oKV/RP6tB2zq77e7BsjEgCN9nO6ee+hfXAU5iT5lz2mjMdGV7YeoTNO0+UNpLHIjYr5k9i6fxJxCNOv57dW7kqGrFLoUpERC7vit8lfd+/JHgAzJw5k+BKvz4SERG5itpRMdq7Mhd8SM8VPGpGxYZ0387Gn4JlYzphPD/ANxwCwyfYsZbQReGjpS3N841NbNlzCt8v/jwrizk8umAyj9w7od+zFucqV9k4tsrlioj0xxW/w44fP56/+7u/4xOf+ARVVVUAdHd384Mf/IAJEyZcswGKiMitY/XSaTy9ZidZXMKORa7g4boBq5dOG9J9Cx0tBKE4Xs+yKQDsEEH36dIfj59Osq6xiW17W0pLsCrLwqxcOJkH54wn1M9+G5Z5rlyurcpVIiIDcsXw8ad/+qd89atfZdmyZQRBUJrtWLp0KV/72teu2QBFROTWMX9WLaxuYM2mg7S2pakZYrUr1ytuJA/iY/BTHRhO+LwX8xhl1Rw51cXazU28c+BcEBlTEeGxxfUsmj2u3/02bNMgFu0pl6vKVSIig2IEfayh8jyP9vZ2fN9n9OjRWNbITi0fO3aMFStWsGHDBiZOnDiizxIRkZtTb+hIZwv4AXjNO3Bf/2cwbbBD4OZ5P51gvfkw754slK6rHRVj1eJ67r+rtt/9NhzL7CmXq8pVIiJDddWFrevWreNnP/sZp06dwrIsxo4dy6OPPsqTTz55rcYnIiJS4nk+yfNCRy+rrrivw92xlv2nfV5I3cvBVDlQDB4TqhOsWlLPvDtr+tVvw6CnXG6suIlcoUNEZHhcMXz89V//NVu3bmX16tWMHTsWKJba/dGPfsSBAwf43d/93Ws2SBERub1dKXT0CoKAPfkJrG1fweHWrtLxyePK+eCSeu6ZNqZfAcIwIGzbJKI2YZXLFREZdlf8zvrss8/y7LPPEgpdWN/8iSee4MMf/rDCh4iIjDivZ3lV6gqhww8C3tl/mrWbD3O0NVk6Pn1SJauW1DOrflS/Q0c0ZBOPOv3eeC4iIgN3xfBhmuZlS+p6nofj9K/2uYiI3Nq27W1hzaaDtLSlqR3i5vHz9RU6PN9n27strG1s4tTZcz1CZtWP4okl9Uyvq+rXc86Vy3X6vfFcREQG74rh48knn+TTn/40H/rQh0rLrk6fPs2zzz7Lz/3cz12zAYqIyI1p294Wnl6zE9s2KIvatHdleHrNTljdMOgA0lfocD2frbtPsa6xidMdmdLxhmljWLWkninjK/r1HMuEeKSncpXK5YqIXDNXDB+//uu/zqxZs3jxxRfZvHkzQRAwbtw4Pv/5z7Ns2bJrOUYREbkBrdl0ENs2Sg0DIyGbLC5rNh0ccPjoK3TkCx6v7zzBC1uP0N6VA4qbwufNrGHV4nom1pb16zkqlysicn1ddTfdI488wiOPPHKtxiIiIjeRlrY0ZdELf4yEHYvWtvQVrriU5/mkswWSmcuHjmze5ZW3j/PiG810pfIAmIbB/XfVsmpJPWNHx/v1HJXLFRG5MaiUh4iIDErtqBjtXZnSzAdAruBRMyrW57V9hY50tsCmt46x4c1mUlkXAMs0WNIwjpWL6qmujF72voYBhucSmMUxqVyuiMiN5Yrh43/9r/911Qt///d/f9gHIyIiN4/VS6fx9JqdZHEJOxa5gofrBqxeOu2K13h+QDqTv2LoSKbzbNh2lJfeOko25wHg2CYPzhnPyoWTqSqPXPa+xdCRh1waAo9IRS1xlcsVEbnhXPG7cllZGd/+9rf55V/+ZUxTm/FERORC82fVwuoG1mw6SGtbmpqrVLvqDR2pTAHvMqGjM5lj/RvNvPL2MfIFH4BwyGLpvImsuH8S5fHwFUYRYHp5glwKzy0QsU1i8SixysuHFBERub6uGD5+8zd/k0OHDlFVVcUv/uIvXssxiYjITWL+rNqrbi4vhY5sAc+/9PW2zizPbz3C6ztO4PacEAvbLJs/ieXzJxGPXr60uwEYbpYgl8J3C0RDNpGyMLZlYqh6lYjIDeuq89G/93u/xw9/+MNrNRYREblF9BU6TrenWdd4hMbdJ/F71l8log6PLqjjkXkTiV5huZRBgFHIEuRTBJ5LNGwTjUc0Qy8icpO4aviora3lC1/4wrUai4iI3OT6Ch0nziRZ13iEN989RW8f24pEiJULJ/PgnAmEQ5fvLm7gYxQyBNnino5Y1CHiRDFVLldE5KZyxfDx4Q9/mLlz57JixQqWLFlCKBS6luMSEZGbSF+ho/lUN2sbD/P2/tOlY6PKIzy+eDKL7xmHY18pdHgY+Qx+Lo1JQCxiEw2FijvMLx5DsoPk7pcpnD3OmA/+BqHRE4bt/YmIyPC4Yvj42c9+xttvv82LL77IX/zFXzBp0iRWrFjBsmXLKC8vv5ZjFBGRG1RfoeP94508t/kwuw+dLR2rqYry+OJ6Ft499rLdxQ3ACFwoZPCzGSwTElGLcOjy+z/yZ46R3LmR9MG3wC8OIntkj8KHiMgN6IrhwzAM5s2bx7x58wA4dOgQGzZs4Nd+7dcIh8N8+9vfvlZjFBGRG8zVQkcQBBxobue5zU3sP9JeOj6+Os6qxfXcN7P2ssulDAMM34V8Cj+XJWSZRGM2odClP6qCICB79F2SO14id3x/6bgZLSPRsJSyuSuG782KiMiw6XcB9KlTpzJ16lR+9Vd/lTNnzozkmERE5Abl+wGpbIFUJn/Z0LHn/bM8t7mJ9493lo7XjS3jiSVTaJg+BvMyy6XO79HhF3KEbZNoInTZpViBWyD93ja6d27EbT9VOm5XjaWsYTmx6fMxw1EM8/LLuERE5Pq6Yvi49957r9oNdvv27SMyIBERufFcLXT4QcCOA6dZu7mJ5pbu0vGpEytYtbieu+8YfYWfJ+d6dBTL5VqlcrkX8zJJUu++RnL3K/iZc88IT5hBomE5kbpZGIYqXomI3OiuGD7+7d/+7VqOQ0REbkBXDR1+wFv7Wli7uYkTZ1Kl4zPrR/HEknqmT6q8bOg4v0dH4BWK5XJj4cuWyy10tJLc+RLpA1sJ3ELxoGkSm3YfiYblhMZMHM63KyIiI+yK4WPCBG3UExG5XZ0LHQU8/8KW5J7ns3XPKdY1NtHanikdv2fqGFYtqeeOCRWXvacRBBheMXQYvkc0YhN1ohgX7f8IgoD8qUN079hItmk3UHy+EYqSuOsBErMfwUpUDuv7FRGRa6Pfez5EROTW5/sB6VyBVLqAe1HoKLgem3ee5PktR2jrygLFWYy5d1azavEU6saWXfae5/foMI2AaNgiEopcUi438D0y779D946NFE43l45bZaNI3LOM+MxFmKHI8L5hEZHbSHd3N5///Of5zne+c93GoPAhIiJXDR25vMer7xxn/RtH6EzmgWJuWHDXWB5bPJnxYxKXvacReBiFNH6uWC43Hr185So/nyW1dzPJXS/jJdtKx0M19STmLCc6pUEbyEVEhkFnZye7du26rmPoV/jIZrMcOXKEGTNmkMvliET0mycRkVvB1UJHJuuyafsxNrzZTDJT3G9hmQaL7hnHY4smU1MVu+R+Bj3lcgtp/HyWkGUQidmEnEt/3LjJdpK7Xia193WCfLZ0h0j9PZTNWUFo7JSrFj4REbnV/N3f/R3/+q//SjweZ/78+WzYsIF/+Id/4Ktf/SrpdJrW1lZmzpzJ//k//4dwOMxf/uVfsn79ehzHoaqqij/5kz+hpqbmivf/7//9v5PNZnnyySf5lV/5Ff7f//t//OAHPwDgxIkT/PzP/zwbN25k7ty5/NIv/RJbt24lnU7zxS9+kZUrVwLwwx/+kO9///v4vk9lZSV/8Ad/wNSpU/v9HvsMH++88w5f+MIXsG2bH/zgBzz55JP8zd/8Tan/h4iI3HyuFjqSmQIb32zmpbeOkcm5ANiWyYNzxrNy4WRGVVz6C6hiudwC5NME+SxhxyKacLCtS2cs8qeP0r1jI5n3t5eaAhp2iNidCylrWIZdUT3Id2VgOA5WOD7I60VErp9XX32VNWvW8K//+q+UlZXxe7/3ewA888wzfOQjH+HJJ5+kUCiwevVqNm3aRENDA//3//5fGhsbCYVC/OM//iM7d+7k0UcfveIz/uRP/oQPf/jD/PSnPyWfz/ONb3yDgwcPMm3aNH74wx/y0Y9+lFAohOd5VFRUsGbNGvbt28dTTz3F/PnzOXjwID/5yU/43ve+RzQa5bXXXuO//Jf/wnPPPdfv99ln+PizP/szvv3tb/M7v/M7jB07lj/7sz/ja1/7Gj/60Y/6/RAREbkxXC10dCZzvPhmM6+8fZxc3gMg7Fg8PG8Cj95fR0UifMn9DAMMNwe5NLh5IiGLSHkY66LKVUHgk21+l+SOjeROvFc6bsbKSdz9MIm7H8SMDC40GKaB4cQwwxFM59IxiojcDF5++WUef/xxysvLAfiFX/gFtmzZwu/+7u/y+uuv861vfYumpiZaW1tJp9PU1tYyc+ZMPvrRj/Lwww/z8MMPs3jx4n4/LxQK8YlPfIJnnnmGL3/5y/z4xz/mu9/9bun1p556CoCZM2cyY8YM3nzzTXbs2MGRI0f41Kc+VTqvs7OTjo4OKisr+/XcPsNHNptl2rRppT8/8sgjfPOb3+zv+xIRkRtAEASkswWSlwkdbV1Z1m89wms7TlBwizMR0bDNsvsmsvz+OhJR55L7GQQYXp4gmwK/QCRsE41FLulcHrgFUgfeILnzJdyOltJxe9S4nqaA92FYl96/PwzLxgzH1FRQRG4Jtm0TBOe+P1s9M8df/OIX8TyPVatWsXTpUk6ePEkQBJimyXe/+1127dpFY2MjX//611m4cCG///u/3+9nfvKTn+QTn/gECxYsYPr06UyceK58uXXezLXv+1iWhe/7PPnkk/zu7/5u6XhraysVFZevcnjZ99nnCbZNZ2dnad3t+++/3++bi4jI9XW10HG6I8PzjU007jpZKqcbjzo8en8dS+dNJBq59EeEQYBRyBLk0xi+SyxiE71M5Sov001qz6skd7+Kn02WjocnzqRsznLCE2cOcj+HgemEMMNxjFBYe0JE5JbxyCOP8NWvfpXPfe5zlJWV8a//+q8AvPbaa3z3u99l5syZHDx4kB07drBq1Sr27dvHb//2b/PMM8/Q0NDAmDFj+MlPfnLVZ9i2jed5BEGAYRiMHz+euXPn8vWvf/2S0PKTn/yET3/60+zZs4fDhw9z//33Ew6H+YM/+AN+6Zd+iZqaGr7//e/zne98h3Xr1vX7ffYZPn7jN36Dp556ijNnzvDFL36R119/na9+9av9foCIiFx7VwsdJ8+kWNfYxJvvtuD3/JatPB7iAwvqePjeiYRDl84iFENHhiCbwjQCYhGLsHNp6Ci0nyK58yVSB94Ar7hfBNMqNgWcs5zQ6MH1kDJMAyNUnOUw7dCg7iEiciNbvHgxP//zP88nP/lJIpEI06dPJxqN8iu/8it8/vOfp6Kigmg0yv33309zczOf+MQnWLVqFR/72MeIxWJEIpE+Zz2qq6u56667WLVqFd///vepqqpi9erV/PEf/zGPPPLIBedu376dZ555Bt/3+eY3v0lFRQUPPfQQ/+k//Sf+43/8jxiGQSKR4K//+q8H9IsgIzh/fucKjhw5wuuvv47v+yxatOiCZVjD7dixY6xYsYINGzZcMPUjIiJ96w0dqYxL4aKW5MdaunmusYm397XS+41/VHmElYsm80DDOBz7cqHDK8505FI4hkE0bF1SLjcIAnIn3iO5YyPZ5j3nrg3HzjUFjPd/Sv6C51s2ZiSGGdLSKhG5te3atYu3336bz3zmMwD80z/9Ezt27OD//J//M2LP9H2fr371q4wfP55f/dVfLR2/8847aWxsZNSoUcP+zH6V2o3FYixYsKD0595d8SIicmO4Wug4fKKTtZub2HnwTOlYdWWUxxfXs3D2WGzLvPh253p05DOELZNIzLkknASeR+bQdrp3bqRw5ljpuFU+hrKGpcTuXDS4DeCGgelEirMcaiooIreJKVOm8K1vfYtnnnkGwzAYN24cf/zHfzzg+/yH//AfSKVSl33te9/7HolEsTdTMplk2bJlNDQ08KUvfWlIYx+IPmc+/uRP/oTvfe97lJWVlTbBGIZBY2PjiAxIMx8iIv0XBAHpnEsqXbgkdLzX3M5zm5vY23Sucd+4MXFWLa7nvlk1l1SkOr9HR5DPEnVMIhH7kvP8XIbU3teLTQFTHaXjodoplM1ZTqS+AcO8NND0xTBNjFAMKxId9CZ0ERG5sfU587F+/XpeffVVqqqqrsV4RESkH64UOoIg4N3DbazdfJiDxzpLxyfVlvHEknrmzKjGvGhtrmGA4Rcgl8YoZAmHbaJl4UsqV7ndbSR3bSK1dzNBIVe6ODplDok5ywnXThnEOzEw7POqVhkDDy0iInLz6DN81NfXl+oNi4jI9XWl0OEHATvfO8PazYc5cqq7dPyOCRWsWlLP7DtGX7IhsNgYMA+5NKaXJxK2iEQiGBeFjnzrkZ6mgO9AcK4pYHzmYhINS7HLxwz8jZSWVsUwQ+rNISJyu+gzfPziL/4iTz31FAsXLsS2z53+hS98YUQHJiIi51wxdPgB2/e3snZzE8dPnytpe2ddFauW1HPn5KrLVCEJML08QS6FGXjEwibhWPiCylVB4JNt2k33zo3kTx4qHTdjFSTueZjEXQ9ihmMDfh+GaZ2b5bD6te1QRERuIX1+5/+rv/orRo8eTXd3d1+niojIMAuCgEzOJXlR6PA8nzfebWFdYxMtbenS8bvvGM2qJfVMm1h5yb0MwHCLlassfGJhi9BFsw5+IU/6wNZiU8DO06XjzugJJOYsJzZ13iBCg4HhOFjhGEYooqVVIiK3sT5/gmQyGb71rW9di7GIiEiPK4WOguvTuOsEz285wtnObOn43BnVrFpSz+Sxly6TPdcYMIVjBESiNiH7wg3dXrqL5O5XSL37Gn72XJWUyKS7ivs5JswYeEM/w8AMRYtVqwZT9UpERK67Z599lr/5m7+hUCjw2c9+ll/4hV8Y0v36DB/Tp09n3759zJw5c0gPEhG5VW3b28KaTQdpaUtTOyrG6qXTmD+rdlD3ulLoyBc8Xn3nOC9sbaYzWdzsbRgwf1Ytjy+uZ0J14pJ7GfgYhQzk0oQtg0jMvqSsbqHtJN07N5I+sA383qaANrEZ91PWsAxn1LgBvwfDsouBIxxTbw4RkZtYS0sL3/zmN1mzZg2hUIhPfepTLFy4cEgtN/oMH62trXz84x9nwoQJhELnuso+++yzg36oiMitYtveFp5esxPbNiiL2rR3ZXh6zU5Y3TCgAHKl0JHJuby8/Rgb3mymO10AwDQNFs0ey2OL6qkddem+CwMPI5+BfJqIYxJNOJjnlb4NgoDc8QPFpoBH3y0dNyNx4nc9SGL2w1ixgRYaMTCdUDFwhCIDnyUREZFBG85fgp1v8+bNLFq0iMrKSgAee+wx1q1bN6S9332Gjy9+8YuDvrmIyK1uzaaD2LZBpKfrdyRkk8VlzaaD/frGHwQB2bxLd+rC0JHKFNi47SgvbTtKOleckbAtkyUN43hs0WRGV0QvuI8BGIELhQxGPkM4ZBFNXFguN/Bc0oe2k9zxEoWz55oC2hXVJBqWEZuxENMJMRCGaWCEihvITXtg14qIyNAN1y/BLqe1tZXq6urSn2tqati5c+eQ7tln+JgxY8aQHiAicitraUtTFr3wW2nYsWg9bxP4lWRyhUtCR1cqz4Y3m9m0/Ri5vAdAyDF5+N6JfGBBHRWJC/dOnGsMmMIs5IiELaJlF1au8nNpku8WmwL66XO9P0LjplLWsJxI/ewBbwIvLq3qqVqlpVUiItfNUH8JdjWX60U+1JntPsPHokWLMAyDIAhKD6uuruaVV14Z0oNFRG4FtaNitHdlSt/0AXIFj5qe5VAXT4V/Yvl0ZtZXkUy75F2vdE17V5b1bzTz6jvHKbjFMBIJWyy7bxIr5k8iEbtwVqHYo6OAkUth+gWiYZNw5MLQ4XadIblzE6l9jQRuvudCk+gdcymbs5xQzeSBvVnDwHTCmKEYRiispVUiIjeAofwSrC+1tbVs27at9OfW1lZqamqGdM8+w8e+fftK/1woFHjhhRcuOCYicjtbvXQaT6/ZSRaXsGORK3i4bsDqpdMumAqvqYxgEPAPP9tNACQzBcZURFk0u5bDJ7pp3HUC1yv+hikesVlxfx1L75tILHJhVSrDAMPNQT6NFXjEQuYl5XJzLYdJ7thI5vAO6PmtleFEiM9aTOKepdhlowb0HotLq+JY4SjGRVWyRETk+urrl2BDsWTJEv7qr/6KtrY2otEoL7zwAn/8x388pHsOqFi74zh88IMf5B/+4R/47d/+7SE9WETkVjB/Vi2sbmDNpoO0tqWpOW+j31f+5nXK4g6ViTC5gsfpjiwtZ1NYlsHo8gjNp7o40Nxeuld5PMSjC+p4+N4JF/wQKeppDJhP4QQ+0YiFc94ei8D3yR7ZRfeOjeRPvV86bsUrSdyzlPisJZjhKANh2E5xL0dIS6tERG5UV/sl2FDV1tbyW7/1W3zmM5+hUCjw8Y9/nIaGhiHds8/w0dHRUfrnIAjYvXs3XV1dQ3qoiMhwGqkqH/01f1btZZ/nej6RkM3Zziyu59PW05fDdQNOtWVK59mWwceWT+eBhvGEnAs/5BsEPTMdKcJmQCRiY5/X5M8v5Ejv30r3zpfwus6UjjtjJlE2ZznRO+4le3wfZ57/Fl7XWazy0ZTNXUG07u7LvxnDwHQiPaEjMpQvi4iIXANX+yXYcPjwhz/Mhz/84WG5FwxwzwfA6NGj+b3f+71hG4CIyFCMZJWPwcrkCiTTLgbQ2p4u/SYqV/AuOM+2DMpiDoZhsOy+SRe8ZgQBhpfFyKUI2xCN2ReUy/VSnSR3v0Ly3dcIcufW9Ubq7iYxZwXh8dMwDINM8x46Xv0hWBZGOIaX7iz++SEuCCCGaWKEYliRKIalpVUiIjeTK/0S7EY0oD0fIiI3mpGs8jFQmVyBVNol17ORfPn8Sfzzc3tp786RL5yraGWZBpWJELGITd71qUicm2HobQxo5LNEQhCNOxjnlcstnD1RbAr43jbwe8KMZROfsYBEwzKcqrEXjKn7nQ1gWZh2cV+IYYfxydH9zgaidXf3LK3qqVo1wIpXIiIiA9Vn+Dhz5gw7duxgxYoVfP3rX2ffvn185StfUcdzEbkhjGSVj/7K9jQHTL+/HW/nWvyu07xnTuX59N10ptzSeY5lYlkG5XGHsGORd308L+DxRZMxAg+jkMYs5IiGDCIJu1S5KggCcsf20b1jI7lj534hZEYSxO/uaQoYLbvs2LyusxjhCzcdmtFiA0G7bDTmRZvVRURERlKf4eO//bf/xoMPPkhjYyNbtmzhs5/9LP/rf/0vvvvd716L8YmIXNVIVvnoS2/oyLkeXvMOCq/9M3tyY3mh80GOZMuBYvCYMr6cVUumcM/U0ex5/ywvbG3mbGeGcWPirLp/AjPGOZiZNqIhk3DZeZvIvQLp994iufMlCm0nSsftyhoSDcuJz7gfo4/Gflb5aLx0J0Yo2lMiN4pfyGA5EQUPERG55vq14fyzn/0sf/qnf8qHPvQhVq9ezfe+971rMTYRkT6NZJWPK8nmXJKZQmkPhx8EbHt1Cy+0PMjx/LkZiGmRNh4b28rsT/7nUk+M2VPHcM+0McUeHfkUtu8SsV1C0XNBwM+mSL77Gsndr+CnzxX4CI+fTmLOciJ1d/V7iVTZvR+g+63nMcIxgiDA6z4NhTxVj39uOL4UIiIiA9Jn+CgUChQKBV599VW+8Y1vkMlkSKev3XIGEZGrGekqH+fL5Vy6MwXyBY8A8HyfN99tYV1jE6fOngs7s2JtrBzdzB2RTsinzmvGVyyXSz5NyPCJhk1s69zMhdt5mu6dL5Hev/XCpoBT7y02Bayu6/9ge6pWld31IHbFaDpf/wleZyt2ZQ0Vi58kPnXe0L8gIiIiA9Rn+FixYgWLFy9m1qxZzJ49mw996EN86EMf6tfN//qv/5q1a9cC8Mgjj/ClL31paKMVEbmMka7ycXHoKLg+W3af5PktRzjTca5k7j2xVh4bc4y6SBKAoJDHKK/BAAw3C/k0ETMgErWwzGJFqSAIyJ86TPfODWQP7wJ6mgKGIsRnLSEx+5EBNQU0TKtnA3mkVLUqPmUu8Slzh+NLISIiMiR9ho//+l//Kz//8z9PbW3xB/uf//mf92uz+ebNm3nttdf48Y9/jGEYfO5zn2P9+vV84AMfGPqoRUSugYtDR77g8fqOE7yw9Qjt3TkADOC+WbWsnJKjds9aMG2CIAS+ixmK4Mx5HCt9llCpXG7PJnLfI3N4J8kdG8m3NpWeaSWqepoCLsYM9bcpoFGsWhWJYYYiqlolIiLDKplM8qlPfYq//du/ZeLEiUO6V5/hI5PJ0NjYSGdnZ6nXR2NjI7/8y7981euqq6v5b//tvxEKFZcUTJ06lRMnTlz1GhGRG8HFoSObc3n57eO8+MYRutMFAEzDYOHssTy2aDJjR8cB8CptvN0vYObTGFVjsevvJV47kYhjl8rl+vksqX1bSO56Ca+7rfRMp7qupyng3P53E+9tCBiJYTraPC4icrtKHdpOZ+NPcTuGf3ntjh07+P3f/32ampqG5X59ho/f+q3forW1lRkzZpy3brlv06dPL/1zU1MTzz33HD/4wQ8GN0oRkWsgm3dJpV3Sh97C3bmWVEc7r+Tv5uWOiaTzxV++2JbBkobxrFw4mTGVF85M2JNmExp7B6abJxqCsHOuXK6X7CC5+2WS775OkO9dqmUQqZ9NWcNyQuOm9vt77LmlVVEMq89v4yIicgtLHdrO2XV/D5aNEUngJtuLf378c8MSQJ555hn+6I/+aNi2T/T5U+v999/nueeew7YH9wPuvffe49d+7df48pe/TH19/aDuISIyknpDR67g4jbvoOOVf+Gl7jt4tftecr4NBDgWPHTvJD6wsI6qsvObAoLhuxhuGsvNEw2ZhBLnOoTnzxwjuWMj6UNvgV9sNGjYDrEZC4tNAStr+jnK4tIqKxLD0NIqERHp0dn4U7BsTKf4s8lwIvhk6Wz86bCEj6997WtDvsf5+kwUY8eO7euUK3rrrbf4r//1v/KVr3yFD37wg4O+j4jISDg/dARAR3eOdc/vZnPbUvJBcelT2HB5qPwoy8Z1MPrRFaVrDQMMv4CRS+MEBSJhCydSXGYaBD7Z5r0kd24kd/xA6RozWkZi9sPE73oQK5ro3yANAzMUxQxHtbRKREQu4Xa0YkQu/Jli2GHcjtbrNKKr6zN8zJgxg8985jM89NBDRCLnftvX156PkydP8vnPf55vfvObLF68eOgjFREZJtm8SyrjkssXQ8fZzgzPbznC5p0ncL3iL1xiZoFHqo7zcOUJYmYBMimgJ3R4eYxcmpDpEQlbpXK5gVsg/d42unduxG0/VXqeXTWWsoblxKbPx7CdS8ZzOYZll0KHllaJiMiV2JU1uMl2DOfc5/TAzWH3e2b92urzJ1oqlWLy5Mk0NzcP6Mb/8A//QC6X4xvf+Ebp2Kc+9Sk+/elPD3yUIiLD4OLQ0dKW5vnGJrbsOYXvF/d0JKwCy8qbeHBUK1Gr2EQwKBQwR03E9HIY+RRhMyAatTB7yuV6mSSp3qaAme7S88ITZhSbAk6a1c9lUgaG42CFi53IB7LPTkREbk8Vi5/k7Lq/xyeLYYcJ3Bx4LhWLn7zeQ7ssI+gtYdWH48eP47oukydPHtEBHTt2jBUrVrBhw4Yhl/ISkRvPtr0trNl0kJa2NLUj2BDwfBeHjuOnk6xrbGLb3hZ6vwNWloX5wII6loxuw9z6XTBtcMKYpoXpONh3ryA+YeoFlasKHa0kd75E+sBWArdYBQvTJDbtPhINywmN6d/3MMM0MJxibw4trRIRkYEayWpXvZYvX853vvOdkS+1e+TIEf7zf/7PtLa24vs+VVVVPP3000ydOnVIDxaR28+2vS08vWYntm1QFrVp78rw9JqdsLphRALIxaHjyKku1m5u4p0Dp0vnjK6I8PjiehbNHodjm0Adnm3g79+EmU+BEyV25wLK6+8EwyAIAnInDtK9cyPZpt2cawoYJXHXAyRmP4KVqOzX+AzLLu7lCMf6X15XRETkIvGp84Y9bFxs48aNw3KfPsPHV7/6VT73uc/x0Y9+FIAf/ehH/M//+T/5zne+MywDEJHbx5pNB7Ftg0io+K0nErLJ4rJm08FhDR8XbyQ/dKyD5zY3sef9s6VzakfFWLW4nvvvqsWyzi2JMggIjZuOVT2JqAOhnrEGvkfm0Dt079hI4fS5ZahW2SgSDcuIz1zcz1mL3qVV8Z6qVVpaJSIit48+w8fZs2dLwQPgYx/7GN/+9rdHckwicp2M9JKolrY0ZdELv+2EHYvWtvSw3P/8mQ4/CNh/pJ21m5vY39xeOmdCdYJVS+qZd2dNqds4gIGHWcji+DnCjkEoXBynn8+Q2ttIctcmvOS5+4Rq60k0LCc6paFfsxZaWiUiItKP8OF5Hh0dHVRWVgLQ1tZ29QtE5KZ0LZZE1Y6K0d6VKc18AOQKHjWjYkO6b67gkUwXSqFj9/tnWbu5ifePd5bOmTyunA8uqeeeaWMumG0wAg+rkCYUFAiHTOyeylJusp3krpdJ7X2dIJ/tPZvolAYSc5YTHntHv8ZWXFrV0xBQS6tEROQ212f4eOqpp/jkJz/JqlWrAFi7di2/9Eu/NOIDE5Fr61osiVq9dBpPr9lJFpewY5EreLhuwOql0/q89nKb6ey6OaTSBbJ5Fy8I2HHgNM9tbuJoy7mKU9MmVvLEA/XMqh9VCh29jQFNN02IAtGQhWkW33f+9FG6d2wk8/7285oChojNXETZPUuxK6r78U4NTCdU3MuhpVUiIiIlfYaPT37yk0yePJlXX30V3/f5H//jf6hvh8gtaKSXRAHFELO6gTWbDtLalqamn0u7Uoe2c3bd34NlY0QSFLrbOf3ct7CWPEUw8R627W1lXWMTJ8+kStfMqh/FE0vqmV5XVTrW2xjQymdwTLcndDgEgU/myG6SOzaSO/Fe6XwzVk5i9sMk7noQMxLv8/0ZpoERKs5ymHZoEF8hERGRW1uf4aOlpYV169bxP/7H/+D999/nz//8z5k2bRrV1f357Z+I3CxGaknUxebPqh3wTEpn40+LwcMO4/sBvulQIGDbpjd5MZ3idEemdG7DtDGsWlLPlPEVpWO9jQGtQoaw5RGNWGDYBG6e5L43Se58CbejpXS+PWpcT1PA+zCsvpsCammViIhI//QZPr785S+zfPlyACZMmMCCBQv4yle+wre+9a0RH5yIXDtDWRI10godLQShOIHnk/dNtnSN5cW2SXS4ESCDAcybWcOqxfVMrC0778oAy8tju1nClke4J3R4mW5Se14luftV/GyydHZ44kzK5iwnPHFmP5ZK9S6timOEwlpaJSIi0g99ho/29nY+85nPABAOh/nsZz/LT37yk5Eel4hcY4NdEjWS8gWPVKZAEB9Dprub11P1bGyfSLdXXNJkErBg9jgeX1zP2NHnlkUZBJheDsfNErZ8QlEbsCm0nyK5cxOpA2+A19sU0CI2fT5lDctxRo/vc0xaWiUiIjJ4/ap21dLSQm1t8QPImTNn6GdTdBG5yQxmSdRI6A0dmbxLKlNgo/kIG492kPZ7Q4fPvPAR5t07g3lL7y5dZxBgulkcP0vYhlDUIggMssffI7lzI9kju0vn5owQweQFTHnocax4xSVjuJhh2ZiRGGZIS6tEREQGq8/w8dnPfpaPfOQjPPTQQxiGwebNm/nSl750LcYmIrewi3uKfHzZNGZPHVMKHd2pPBu2HeWlt46SzXlACAuP+eHDNERPssucyZq9FpG6s9x9RyVWIUsoyBF2TOyQReB5pN/bVmwKeOZo6bldJNhrz2SvP4Vck8UnpxeYPfUKgzQMTCeMGYppaZWIiMgwMIJ+TGPs27ePLVu2YFkWCxcuZMaMGSM2oGPHjrFixQo2bNjAxIkTR+w5InL9nN9TJBF1sC0D1wt4bFE946sTrH+jmVfePka+UCx1Gw5ZxCI2lmkQ62n+59gmMQcmjQrx6aWTiIRMTNPEz2VI7d1cbAqY6ig984xVwzvBDE45dQRGsaN5ruBRnojwxU/Pu2B8xaVVcaxwFMPue8O5iIiI9E+fMx8AM2fOZObMmSM9FhG5TazZdJBoxKKqLAJAMp2nrSvLt/99L6lMAdcrho5Y2GbZ/Eksnz+Jr337DaIhi3DIoipmUhkOMApZTp1oJxaZgtvdRteuTaT2NhIUepoCGgbRKXNIzFnO3/z4BPGwdcHsRcg2aes8VylLS6tERERGVr/Ch4jIcMoVXCoTYZLpPN3pAl2pPKmsW3o9EXV4dEEdj8ybSLRnpmNidYIQBcZEAwI3TbIzT3c6T12km7Pr/4nM++9AcK4pYHzmYhINS7HLxwAwuqKdrmSWsHMuVORdn7FjyjBD0eIG8lDk2n0RREREbkMKHyJyzfRuJA87Ns0t3WRyHunzQodlGaxeOo0H50wgHOoNCQGWl2P1gipe3HyIM2cLBH7AWPcoD/n7GJc6TeZQ8UwzVkHinp6mgOEL+5OsXFDHv6zfTw6PiGNh2BaRSIIVj8zGLqtCRERERp7Ch4iMuILrkUwXN5IfOdlNOlPgbGeu9LppGkRDFr/4xCzmzqgBziuX62WJ2AH31Fdi5MdzaPNLTM3vppLu0vXO6Akk5iwnNnUehnX5b2uzp47BMAxe2dVKe8YgFIvx2KIpzJl5/at7iYiI3C4UPkRkxJwfOg4d6+S5zYfZfehs6XXHNgk5JuPHJHhs0eRiQCDAKmR6KlcZ2I6Jl+6ic/srjHr3NSqzqdL1kUl3kZiznPCEGVevRGUYmE6EOXOmc+/994zkWxYREZGrUPgQkWFXcD3efLeFZ197nyOnunDdgEzu3PKq8dVxVi2u576ZtZhmMTQYeNiFJCHyRBwT07QotJ2kbedG0ge2gd9zvWkTm3E/ZQ3LcEaNu+o4DNPEDMcxwxEMS1WrRERErjeFDxEZNr0zHdv2neLbz75LJu9RcP3S69VVUT62bDoN08dgGgYGYARusUeHkS/uxTAscsf3071jI7mje0vXmpE48bseJDH7YaxY+VVGYWDYNma42IXc6CmrKyIiItefwoeIDFlv6EjlCryz/zTf/rd3yRW80uthxyQatqlMhJk7oxrDAMMvYBWyhM0CkZAFAaTfe4PkzpconD1eutauqCbRsJzYjAWYTuiKY3i3qY1X95zlVJdPOBrliSVTmD8rPqLvW0RERAZG4UNEBq0UOrIFtu1tYe3mJk6cObcnIxyyqIg7pfK22ZyL5eWwvBwRyyUctvDzebp3vEZy1yv46c7StaFx0yibs5zI5LuvOnthmBb7TmT4f6+dJusGmIZBWyrJ02t2wuoG5s/ShnIREZEbhcKHiAxYb+hIZvJs2X2KdY1NtLafa9YXjziEHIOyWAjDgFjIpjwSUBOHRJAiFLFxuzro2LmJ1L5GAjdfvNAwid4xl7I5ywnVTL7KCAwM2+lpCBjhX57ZQnfWIxIqfkuLhGyyuKzZdFDhQ0RE5Aai8CEi/dYbOrrSOV7fcZLntxyhravYTdwA5t5ZzarFU+hK5Xhm/QEcx2BCuUUoyJFOZ1kwbwpB+1HO7thI5vAOCILitU6E+KzFJO5Zil026soD6KladXFDwJNnUpRFL/x2FnYsWtvSw/41EBERkcFT+BCRPvWGjo5kjlfePs76N47QmSzOVhgGLLhrLI8tnsz4MYniMeJUOFPYte8Yp053YDgmH7ojQ9WO/8vplsOl+1rxShL3LCU+awlmOHrF5xumdW4D+WX6eNSOitHelSnNfADkCh41o2KXnCsiIiLXj8KHiFxRb0fytq4sm7Yf48U3mklmCgBYpsGie8bx2KLJ1FQVP+QXy+VmCAV55tZFmTuhnvT+LXTv3IS34ww9i6twxkyibM5yonfci2FZV3h6cWmVFYlhhCKX7PtIHdpOZ+NPcTta+aVQJT9yp3GUyYQdi1zBw3UDVi+dNkJfGRERERkMhQ8RuURv6DjdkWHDm8289NaxUp8OxzZ5oGE8KxdOZlRFpFQu13ZzhIwcEcfCz6TofvNlku++TpA7t/QpUnc3iTkrCI+fduWmgIaBGYoWl1Y54cuekjq0nbPr/h4sGyOSIOqm+ETsDV4ww7ydrKVmVIzVS6dpv4eIiMgNRuFD5BZ3/gyBXVlDxeIniU+dd9lze0PHqbYU699o5pW3j5PLF0vmhh2Lh+dN4NH766hIhIuhw3exvSxhI08kZFFoa6V950ZSB97ECIr9PVwsvAlzqHtwFU7V2CuO07DsUui43NKq83U2/hQsG9Mp7vswnAhh4KOJ9/j8bz418C+SiIiIXBMKHyK3sItnCNxkO2fX/T0H7/oY/7IvQktbmok1CZ586A6mjK/gxJkkz285wms7TpSaA0bDNsvum8jy++tIRB0MA0yvgO1liZguTsgkd+w9Tu/YSO7YPqC4+TxDmP3WDHYH00gdD/PJNpvZVReP0MBwHKxwDCMUvfJsyEXcjlaMSOLCO9lh3I7WIX7FREREZCQpfIjcwi43Q5DOJTm7+SckIx9lYnWMfL7A3/xoB6Mqouw/0o7nFytQxaMOj95fx9J5E4lG7J7QkSPk5wiZPo7tkX7vLdp3vkSh7UTpmV1mBTuCGRwNTcUzit9irILHC280M3vqmOJJ/VhadTV2ZQ1ush3DOVfxKnBz2JU1g/1SiYiIyDWg8CFyC7vcDEFHJmCUkWRUeYQzHRlOd2RJZ11OtRX7dJTHQ3xgQR0P3Tuhp3pUgO3lCPlZwnaA6WdI7n6NM7tfwU93le4bHj+dxJzl/M3aDuJh+4JZjJBt0pnMFZdWhaOY4RiGeaWN5n2rWPwkZ9f9PT5ZDDtM4ObAc6lY/OSg7ykiIiIjT+FDZAAGsn/iRnDxDEFAgOkXeM8bx97D7aR7NpEDmAb8/Afu5IGGcTi2hUGA7WcJB1nCFvjps3TvfIn0/q0XNgWcOq/YFLB6EgCjK7bTlcyWupo7jgWWQ2VFBXZFdb+XVl1NfOo8ePxzN9W/CxEREVH4EOm3K+2f4PHP3bAfentnCDyyBKbD+11h/r3rfg4UxgLF4GFbBrGITe2oOEvnTcQIAkJ+FoccYSOgcLqJtp0byB7eBfQ0BQxFiM96gMTshy9pCrhyQR3PvLgfwzKJJsrozJl0pH0+u3zqsASPXvGp827Yr7uIiIhcnsKHSD9dbv+ET5bOxp/ekB+Ct+9r4fmtLtHMQmoyh9mWnsh7+erS65ZlUBEPYVsGBgZPPlhP2MsQJk/I9Mg07eLMjo3kW5vOXZOo6mkKuBgzdPmmgPfMGEsoUcHPtp7kUEuSURVhPvshlb0VERERhQ+RfruZKixt39fC/3t+L+3dOTqSo8gXKkuvTaotY/Ydozh4rJPuVJ47xidYOa+aGWMtHL+b1L4ttO16Ca+7rXSNU13X0xRw7uX3ahgGphPGDMUwQmFmVxrMvmtyv8Z6sy1lExERkcFT+BDpp5uhwlK+4NGdzvOPz+7h+OkkrheUXnNsk+qqGF/57P2YhoGBS9jPEyKHle0muW09Z959nSCf6bnCIFI/m7KG5YTGXX7JlGGaGKEYVjiKYTsDHu/NuJRNREREBk/hQ6SfbuQKS10HttH2+k/ZdspiffednMjFSq+FHYuKhEPINvGDABuPSJDHIU/QcYLkjo2kD70FfrGvB5ZD/M6FJBqW4VwhWBm2gxmOYYYiQ6padbMtZRMREZGhUfgQ6acbscJSwfVo3f0Grz73Iuu7ZtFaiJdem+q0kIhFaI9MYIZ9gkXh96ggRWHtJqyx9aROHiJ3/EDpfDNaRmL2w8TvehArmrj0YYaB6UR6QsfAe3Nczs20lE1ERESGTuFDZABulApLBdejvSvHxreaWbvhKG2FhtJrDaFmHo3uZpzZTiYymuOJBu4ovEc+mcSyChS6UhSO7S2db1eNpaxhObHp8y+7dMowrWLgCEcwrIEvrbqam2Epm4iIiAwfhQ+Rm0jB9TjbmWX9G0d4YWszHd05IIxBwLxIMXSMd5KYoShGqBrPjzCt43V8z6fMKGC4fuleRijKqBW/RKRuFoZhXvQko7i0KtKztOqS1wfn4s3l4cmzcXe+dEMuZRMREZHhp/Aht6xbqYpSwfU43Z5h3ZYmXnyjme50AQDTNFhQ3sqKxAFqcs2YkQRmpJogn8FLdxAzLAKvZwN5z95zIxzDjCTAc4lOvvvCB/UurYrEMJ3hWVrV63Kby92dLxFvWEbuyO5b4t+TiIiIXJ3Ch9ySbrQqStv2trBm00Fa2tLUjoqxemn/+l4UXI/Wtgz/9vr7bNx2lHS2tzGgyQNzxrFy4WQqO98j2L4PI1qLl03idrSAVwwnpVpXhtETTBIYlo3v5rDKR5eeY1g2ZiiKGY5iWCPzbeFKm8tzR3Yz/qn/OSLPFBERkRuLwofckoZSRWmwQeFq93t6zU5s26AsatPeleHpNTthdcMV71twfU6cTvJvr7/PpreOkc17AIQck4fnTuTRBXVUloUxDZ9IxQx8YxXdr3yfINVx4Y0Mk9DEmbjtpzBsG0wL382B51E2byWGE8IKxzFCkQF3Hx/ozJI2l4uIiIjCh9wSLv4gnD9zFCsx+oJz+vNBdzBBoS9rNh3Etg0ioeJ/bpGQTRaXNZsOXnLPgutztKWbn75yiFffOU6hZ49GJGyxdN4kVtw/ibJYCAuPKFmsXAe5/VtI7tqEn2o/dyPTwq6oJnzHXAonDxF4eYJcBmybUO0UyuevIj51LqYdGtR7GszMkjaXi4iIiMKH3PQu90E4yKXxTRsrXlk673IfdC8OLVvPTse2x/YrKPRXS1uasuiF/6mFHYvWtnTpzwXX5/CJTn76yiE27zxRag4Yj9gsv7+OpfdNJBFxsHCJksFKtZDa/Qqpva8T5LM9dzGITmkgMWc54bF3kGneQ8erPwTLwiobg2k7GJZD5eInid8xd1DvpddgZpZu5D4pIiIicm0ofMhN77IfhCNleOmu4nKiK3zQvVxoWZR8kZyzlKPUl867OChcyZWWIdWOitHelSkFGoBcwWN8dZyC63PwaDs/fvkQW3efwg+KoaMs5vCBhZN5eO4EQqf3weZv4aXO4gY+BdMkf+r9UlNAww4Rm7mIsnuWYldUl57R/c4GjEgcOzEKTIugkMNLd9C5+cdDDh+DWUJ1I/ZJERERkWtL4UNuepf7IGzFK8H3sBNVV/yge7nQgpnhXvctjjr1pfNyBY+aUTGu5mrLkFYvncbTa3aSxSXsWHh+QDzicN+dNXz921t5a29raWN4VVmYlYsm80DDeMIhC+PEHgrbf4yfbidIJ4shqocZKycx+2ESdz2IGYlfMB7DNDFMCyteRVDIErjFDeiGFRqWPRaDXUJ1o/RJERERketD4UNuelf6IByqnnTVKkqXCy1lZXGMzg6y+WJQyBU8XDdg9dJpVx3D1ZYhzX/qf8LqBn726iFSmQKxqE0qU+Dvf7andP2YyiiPLZrM4nvG4VgGYcMl5HbQ9tp38DpPg++de5hpYZWPYewnvnxR0z8Dw7Z7GgJGMewQbveZ0ph6vy7DscdCS6hERERkMBQ+5KY32A/ClwstEdsnqB5HlReltS1NTT+rXfW1DGnO9Gp8L+BHm95j18EzpXPGjo6xanE98++qxbFMwkYBJ32a7J5XOLvnVfxs8tz9nAhmtAzsEOQz54JHb2+OcAwzdK43R8WiD49YQNASKhERERkMhQ+56Q32g/CVQsvED3yCrw/wQ/SVZl/M8mpee+c4P375IAeaO0qvTYikeXx+LfctuR/bhKhZwGw7QmbXRjoOvAGeWzrXCEWwYhUYPZWpfDeHVVGNYVo9sxyRi2ZAhvZ16S8toRIREZGBUviQW8JgPgj358P5xT0/7pk6ml2Hzl7SA6Q3yHj5DrxsksB12VOYyHpjLk07tpXuNzncwcpRx7g7ehr7jEOkJYJDgfSODWSbzy3DMsIxEnc9iF1VS9ebzxEQQBCAEWBFyql88GPYldUYhnnJ+7q0T8l/HlKfEhEREZHhYgRBEPR92rVz7NgxVqxYwYYNG5g4ceL1Ho7cxs7v+RF2LDqSeTq6c1SWhahMhOlI5ulK5YlFbOrGlvMfavcT2b+eHbkJrM/M5rhbVbrXtFgXK8vfY2ZlDisSwzRNvLbj+JkugsK5TeRW+RjKGpYRu3MhplNcQpVp3kPy3dcJ8jns8tGUzXuU+JS5/Rpz756VXxtCnxIRERGR4aKZD7mtbdvbwtYX1jMruZVRZpIgPobNwRy2J2tJZQrcHTrOA+ykPN/FGT/BRutuDqUnEXJsOpN5AgJ8P8DzXF7b2cKbmQ/R6p7b+zEzeobHxp5mqnUCMzEay4jgtR8nn+y4YBN5qHYKZXOWE6lvwDDPzWYYpkXizkWUNyzDsPr+z3UgDQ1FRERErjWFD7ltbdvbwgtr/o3HeRUPi6TnYLafZaH1IrnQUlqTaR5jK65rkTJClBsZPh7byr+m4VDnJEKOSSJik3N93mvu4l3vrtK9Z8fP8NjoZiYn8liGgRUaQ771EF42VVw+1cOIJBiz6lcJ1045b2QGhu1gRWLFPiWXWVp1JVdqaBhv28eJ776gzeEiIiJyXSl8yG1rzaaDfMB4Bw8b13DwCx4eNobvcp+3nVzEww0s8tiYQB4bAng0uodTwR0EQcDpzux5WSLgLuc4Pze+hQkJDyscxU924ac6cLPd54UOoxgqnDBVj3zqXPAwDMxQFDMcLS25GqjLNTQclzvMY+bruMnEJT1IFEBERETkWur/r1RFbjEtbWkq6cbtyeBBABiQDyzKg27G2CnyWMXXANOArBlmf2EcHd05OpL5Up6IR2zmVnbwVO0+JpaDWUhROLYH70wzfqYLggAjHMMqG40Zr8AZM5GqRz5FtO5uDMvGipXhVFRjJyoHHTwAVi+dhusGZPMuQVD8//v9t4nFIphOBKOnLC+WXexNIiIiInINaeZDbgmpQ9sHXFK2dlSMjvYyEmRwcTCMYgAJGR5dRhkYECJJwbAp4LA9X8+2bD2ZIFS6R8g2GVMZYVSZw5hYmFD4DN7RbeAVSuc4oyeQmLOc2NR55+3bMDAcByscwwhFMQxjWL4O82fVwuoG1mw6WOpTMimbIxKvuOC883uQiIiIiFwrCh9y00sd2l5cRmTZA1pWtHrpNF5YM5fHeRWCAM+0MD0Xx/RptObhBwELzS1syU7jzdwUckGxl4ZJwD3Tq7nvzhr2HzlLudfOjPSb1J95F7OQKd0/MukuEnOWE54woxQuDNPAcIq9OYYyw3E182fVXrC5/MR3X7hsD5Lh6HQuIiIiMhAKH3LT62z8KVh2cTkRxU7gPlk6G3961fBRnCX4EI0vhIvVrqwkQfkYthpzOZIfTybvsblrFAW/eL6Dy/i4y8pH72PBrDE47UdYdPZVMu9tA7+nKaBpE5sxn7KG5TijxpWeZVh2cS9HOIZhWiP2tbicwXaAFxERERluCh9y03M7WjEiiQuO9XdZUXGW4CngKQCOtybJbjhA89vHcb1i6ohFbJbPn8Ty+ZMoDwVYJ3aRW/t/SR99t3QfMxInfteDJGY/jBUr7x0FphMqBo5QZNiWVg3USHc6FxEREekvhQ+56dmVNUNeVnTkVBfPrD/AaztP4PvFXeRlMYdHF9TxyLyJlFsFOPQy2V0bKZw9fu7ZFdUkGpYRm7EQ0ynuBSktrYpEMe3QZZ93scHsWRmIwXSAFxERERluCh9y0xvKsqKDxzp4Zv0Btuw5WapcVVkW5gML6nho7njK/CTeuz8jtXsTfrqzdF1o3FTKGpYTqZ9d6sNRXFoVwwxHB7S0arB7VkRERERuNgofckPbtreFNZsO0tKWpnZUjNVLp13SqXswy4r2NbXxL+sPsG1fS+nYKCvNB8ae5oFH7idRaeG++c9079tM4OZL55iRBIl5H6C8YXnPkd6lVXGMULjfS6vOn+nwsylwwtg9S8f6u2dFRERE5Gaj8CE3rG17W3h6zU5s26AsatPeleHpNTthdcNlA0h/PqjvPHiGf1m/n50Hz5SO1dhJPjCqmQU1GaxCGn/jG3TnsxS7ewAYGOEIZrQC8Entfo3QmEnE7phb3ETez6VVvc6f6QgMAz+XglyKfKYbq2w0ViSuUrgiIiJyS1L4kBtS6tB2sj/7Dr9BB91+Odu9eTSH6snismbTwUvCx9UEQcDb+0/zg/X72dvUVjo+oTrBB+w3uNc5gukX8E524wVe6XUrXtkTEMByosWKWuE4GAapfVsov+eRQb233upc+B5e91nAAALwXLzuYigyLEulcEVEROSWo/AhN5zemYGQmyNHmFiQZmnhZTYBR5zJtLal+7VBOwgCtuw+xTMvHuDgsY7S8cnjyvngknrudprxX9mPn0riBwG9C6ZcTPI45Bd9gdFb/z+sRBVWJFEMIoUcfi6N19HCYPVW53LbTwAGWBZ4Lr0zLX6yDStRpVK4IiIicstR+JAbTu/MQGBB4Pm4hgMBzHO3c8CfyL2JFs6u+/EVN2j7fsBrO47zzIvvceRUV+m+0yZW8MQDU5hd7cG768nsfBH8czMdPhBg4APtRhVv7W7lU5Nm4iY7CNwcQTYJQFDIDmlWorc6V+C5PZvVTQIzKLZXDwICAkZrs7mIiIjcghQ+5IaSOrSd7LH9EPiMNm06CJP3w7hYlAVduH7Ao9E94F/aVLBt809pbBvDv254j+Onk6V7zqofxRMP1DMz1o6381/IbNh2SejwMQgwMW2bUCTK+5EHae4OUbZsOWfXfasYdIapQV9vdS4Mk8D3wTDAMLDKq4vLrRJVCh4iIiJyS1L4kEHrTyWqgehdbmUYBgEGZuBTZabpwqTgQ9qu5Nd+roHohjUXNBXsyri8dqaW11P1tL3zdul4w7QxrFpcxzS/icKuvyV9bF/pNTOSwHBCBIZJd3eOqANOJEJgmLTlHLZ2VFNZHiI+9V6yDcvo3vosfj6DGYpStvDDQwoHvdW52jZ+l8LpoximjREfhdGz/ErLrURERORWpfAhg7Jtbwt//t1tpHMuQQCn29O8f6yD33lq/qADSO9yKzMx6tzGa6DCTGOXVzH68c8Qn1rLibeKy5YKVoxNp0ezoX0SXX60dB/TgJXzx7J6Qiv5zd8n3X6y9JpdWUuiYRnxGfeTPXGQrjefozw+hjPJAkamG6uQYYM5n4IfsHrpNFKHtpPa+RJmohLLriVwc6R2vkRk/NQhB5D41HkX7l3p2eehWQ8RERG5VSl8yKD8zY92kMq6pT8HAaSyLn/zox38w++vvOJ1V5st6d2IbTrFrd9+uoPAdTGCC/dAhOd/mHU/2sCGzil0eWEADHwqrCzlZRGWxQ4w6/0fkjmUKT03PH46iTnLidTdhWFYGLZNYtZirIpqurb8lMrO07QEMV5mPqnKO/m1nnGd+O7/VwxEFy3xGq4eHOo8LiIiIrcThQ8ZlNMdxQ/25/fUC4Jzxy+nr74dvRuxDSeCFYmTI0R3V5JOL8K3XsjwxJLjHG3p5mevtJLMzATAxOeu0Emqy0zuCp3kjtw+7J5Q5GOQmH4fiYblhKongWFgOpFiF/JQMbQk7phD4o45AEwHHrxozL2B6HzqwSEiIiIyOAof0m/nz1oEweXPudJxgDWbDmLbBpFQ8a9dJGRf0LejYvGTnPjZ03S1Z0i7BlbgEjJ9toce4uSZJP/7n7fh99zfsU0eahhHtOMQM1OHmFRowsgVX8sGNjsLU9gfmsl/X7ESw7SKgSMcxbAG9lf+/EBUeo9uTj04RERERAZhxMNHMpnkU5/6FH/7t3/LxIkTR/pxcp7+9MLor4tnLXp/739x2AiHrCveo6UtTVn0wr9yYceitS0NwN78BF5IL2Cx8Q5ldHHUH83a7P2c6ogRBFmgONOy8v5JPDa2hdCB7+N1NJXu1elH2ZafxjuFOsoqyhg/dhR2ohIjFOkpaTtwvZWpfLLDVu1KRERE5HY1ouFjx44d/P7v/z5NTU0j+Ri5jN7KUVfqhTFQ589apDKF3p7cFzCAjy2bdsV71I6K0d6VKc18AOQKHjWjYqVntNuTOR2ayvHTSTK5c+VwDQNqy2B52WEWn/p3/INn6X01Ha1lfXsd+wrjScSijKlO4BphHloyGzMc6/O9XS2k9VamGq4QJyIiInI7G9Hw8cwzz/BHf/RHfOlLXxrJx8hllCpHDdNG6fNnLTqSOWzLxPP90jIow4DqyiifXjnzivdYvXQaT6/ZSRaXsGORK3i4brGqFBQrZhVcj2OtqQuuqwln+VjNIaamd+Fk8vjFJxKpn03ZnOWExk7FP9qFtaeN5rN5gkiYjz40lXvv7HtpVH9CmjaFi4iIiAyPEQ0fX/va10by9nIVw7FR+vwZgV+2w7yea+BU5A4Kro9pGFiWSdgymVAdJwgCkhn3qrMI82fVwuoG1mw6SGtbmpqealc1VVH+7J+3ceps+oLnT412sCqxl6neQcxUMeUEpk1i5iISDctwKmsxHAcrHOeeueNpuNe45D30ZbhDmoiIiIhcmTac36KGulH64hmBGi/Fo8lXeDELx6waCp6PgUFlWbFqVK7gcW+ihdM/+z5BPkPg+3ipDlp//E3s8mqCfAa7soZZi5/k67/xAACHjnXwg/X72br7VGkJl0HAvMQpHo3uYbx3gt61VVkjQnDHIu548DHseBmGE8MMRzCd8KC/Rtv2tmAfbSblh7Atl6qyMLGIo2pWIiIiIiNE4eMWNdSN0hfPCMQSxVmUB7I72RV6DC8bUB4PEQtbZPMuk9wjPJZej+8XijcwLQLfAzdP4ewxnOrJpSVN7839RX68B7bvP/cBf1yVw3znfe4P3qHCay+FjrNBOe/H7uEjv/AxzHC0538xDPPKG9v7o3cD/X8wEiRIU/AMTndkqK6EiOWpmpWIiIjICFD4uEUNdaP05ZZtReNx6qwk3/3yqlLZ3da2NPcmWljpv4GZ7gkeGOB7xf8H8H3A4GC+hudaJ7D//XOhY+oYk09OPEb1qS2Y+WTp+DFq2e/cRWtoIq4Zxqms6alaNfClVZfTu4H+HfM+lhZeBlwKgUV3V5JIuaNqViIiIiIjQOHjFjaUjdJ9LduaP6u21Jn8xHf/CDcZxr1gy0axHlYQwL7CONY3zeZQpqL06pxaj9VjDlLZuh2ai6HFCwz2uhN5051Gp11NTeUo8oaDFYpghqNXHe/VOqdfTu8G+majnk3APHc75XTR7pcx8/Ff1n4PERERkRFwTcLHxo0br8VjpB/62/tjIMu2SrMkdgjcPAB+ALsKk1ifuYej3pieMwMejL3PqvL9JPJn4WRxp0eeEHuNqewxZnDWimJG46TyBu+eLBCPwq+tnnXV99RX5/TLOb/sb7NdT7NdTzbvUlUeZbmCh4iIiMiI0MzHbWQgvT8Gsmyrd5bESoyi0HmGt7MTeSF7D6e8KgBMfB4v28sjkX1EvBQU8wlW2WgSDUv5i60WiYpKHCeK0elxvC1NLu9iGAZf/IX7rjqDAX13Tr+cvsr+ioiIiMjwU/i4jQy0rOzB5na6j3cSczOkU52UNbczZ+ql961Y/CSta/+BN1ITeb7zAU67cQDC5Pno6APcb+zB9nPnNpFb1bzlTScbuYsVY+6kfFwLx89mIeODYTBudLw0C9FX8IC+O6dfzpXK/vbneSIiIiIyOAof19lA9yoMRe/yqHS2QHt3DtfzsU2DUZmTl5y746UNFF7/ZyzfpDtwCHldFF7/Z3YAc5atKJ2XL3hsOlXJD0+v4myymC6qzCQfr36Pu4IDmG6upxW6Qb5mJuvOTCQVm0gonqAtHfA3/36Yh+6dwP6jR7FtY1CzEH11Tr+S8/etiIiIiMjIU/i4jgazV2Eo7MoaUi3H8LIpqvDwscj4IY6mK+jc23LBM9sbf0rIMylggwH5wCbwXJKNP4VlK8jmXNZtaWLNSwdp784BMMk+y5Oj3mOq+x5mobcpoEPirsWU3bOMv3/5LF2VkAts2rqL3dEDAnYdOsuvrW5g6wvrmZXcyigzSbR6LBNDo4ELvw6X27OiJVQiIiIiNweFj+toMHsVhiI8eTapI3uwMPAxMAOPBGneK9Rg/vhrNG8onNvb4XWSJkSpsq0BhcDCdlM88+IBfvLyIbrTeQwC7gkd5+dGvUdN/ii4xdMzRNhjzuA9ZyY/N20B1XUT2H/mNRzLwDC80pimG8eY2/YWY9alWJVLY5WVY8bGELipS/aj9O5ZCTwXL5vE7T5L9th+pjzwMX5t9cNaQiUiIiJyg1P4uI4Gs1eh10CXa6UObad767NAgAFYQUAhsCgEJg12M22FBFnKifRsQs/6Dg4ebs9fkYzv8E6+jjfzU8mt3YuDy4ORw6xM7KPCby9tIu/wY7g4RGJRJkcDWgouz7x2kj++ewoVifAFy6Pq3CYeKWwiMB2CQg4CHy/diWE7mOH4JftROht/Wgwe6U7AwOhpZNi1+UfM+vjUUud0EREREbkxmdd7ALez2lExcgXvgmP92avQu1yrvStzwXKtbXtbLnt+74yBX8jiY+EHJj4GXUEUx/AwDR/XsGlP5oub0S0bxzawDY+cb/FydiZ/172c13IzcXD5UHwnXxvzEz4RaywGD+AoY3mlcA9Wogq7fAxdro135iiLu9cTObMXKFaYct2AbN4lCALmFt7CxaKsPEHguWBYgIGX6gDAsMO4HecaErodrXjZJGBgGCZggGER+H5xM72IiIiI3NA083EdXWmvwidnZouN+65Q4nagy7V6q1wZtoNZKOAGYGJQbmSwDZ9CYGEYBq7nA8UP/VYIvtWxgtZsCA+LWrODZdF3WRA+jIUHPniYHDImczg+h6bCKJ6IbSaTdcnmO3qebIEX8ICzA7i0wlSVmSRWXkEs4lBI2wSeh2EYxSDChU0Noaekb/dZDNM6790FGJZzQUgRERERkRuTwsd1NH9WLe/dP4mfvvI+mZxLNGzzmYYCVe8+T+GifQ0VD3yM0Q99Aigu17rbOc592e2UB110GeW8Zc3j3bYJl31Ob5UrM1ZJ0HEakwAfsA0fH5NMECIgwLYsTufDPN86ji3d4/ACg2l2C8uje7jbOV66nxGOkbjrQf5xXyVmeS1Jz+ZwSwexyFFSQZhid/OiPBYVQVdpo3hNRytfqKyhYuWTdDbW4SaLMydmrBK36zSuF+Bh0t7aTnnEZPQHzjU1rFj8JNlj+wl8r2eWJAACjHDsgpAiIiIiIjcmhY/raNveFja+eZSqshBjR0XJFTwi760lF8lhFXqWF523ryEyvthk49fNf6WycBYfkxRxYqRZWthEOPHoZZ+RTYUJdbYRWGHCfoi4mcUOAnwM3inUcYd1mk43QmN2JntOjwPg3lATj8b2Mt48W7qXVT6GsoZlxO9+iNR72/go/47R2oEXGHRHQpSZWRJBls4gSjYIAxDCI4Nz2eaG8YZluDtfwidLLnBI+WFi5HBx6AoiPJ+ey8r8BOb3PD8+dR4VD3yMrs0/IvA9DMvBCMcwbeeynddFRERE5Mai8HEdbX1hPf/B2Eql102XX852ex6VdONmMwQ9sxMGAbZpgu/TtuG7BIUsVUZncaYCjwq6CALIEObR6J4L7r9tbwsvrPk3lpGmik58z8A0fAggMIAAaowu/jn9ME2F0USMAksj77I0so8K89ym9xajmiNlc7h76aNMurOOjm3P0fHy9zF88AMfh4BRpkvKt4mYHqOMFO0+eIFFyPLxLeeyzQ1zR3YzuqeLevpoMx1GJZuc+2i26wHI5i9dSjb6oU8QGT+1X53XRUREROTGovBxnaQObWdR8kXC5ImQozzoZkL+OCmiWIFHYFilxUuu72NZNm7bCazKGkzfK/bt62EAMXKYXccveMbWF9bzITYRJgcE2D1XBUCTO4b1mXt4tzCJKjPJR2LbWBw+SMQo9JxjcJiJHIg2kCqfQnvW4NXnmvllu5wxm39MEICHgd1zP4Co6dHmJyg30lSaGY4FNWwy7uUT4a0YdviCsfVuJo9PnUd86jz+4GvrKYvaGMa5JVtXqvzVe42IiIiI3FwUPq6TzsafEqFAJMiVjhlAnEwxdAQ9m64pBoGU51Bm5Yof4gP/svcM8pkL/nxv8mUiZAATHxsTl0NuDc9nGjjgjqfOOsMvxV9mbqgZ0yhGiEJgs9urZ6d1Fx12NZYZw0gZ+H6AT8CaTQf5XD6DGxgYgGGci0EGAeVWlgwJwGfD6E+zeuk04m814ybbMXpmPopv78LN5IPtUi4iIiIiNw+Fj+vE7WglTPaS48Zl/mwQEAuSGGYYL9VxwazH+YLAp/mvf6O0FGkMnQSBgR/AAXcsG7N3c9it4W7nKP+lbB3TnNbzroWCFeFMeALvF2ZxoGsMOdfFtlJMqI4D52YizHAUI5chwCC4aMwmPpVmEmf0RL7+q8W+G6nQk8VSv2Qx7DCBmwPPvWCfhrqUi4iIiNz6FD6usd7mgI922ky+UoqASz7Ue1iEIolS+Lg4pJSuOW9DdxAE7M5P5MXsPbR4FSwIH+LT8c3UWN0XXuOEMaMVOL5LLN3GI4WXOO0txLJgaWgPNZkUXUY5W5hL56g7KZv9Ydpe+RfgwhkY//xxnTfA+NR50LO340r7NC4uw6su5SIiIiK3HoWPa6i3OaBtG7zj3Mfk/Il+X2sSYMUrCdw8fqb7sudkCRMxDAI7wlvd5aztWkjSD/NQZB8PhA+QMHPnnW1gRmIQSUA+S6G7Dd8PiBEQGAafS2zoeSoYQUA0SPM4G2HmZEY/9AlOnu7G2LueCHkCwCveEdO2sRKVBLkLl4D1Z5/G/Fm1ChsiIiIitzCFj2tozaaDTDOPssh/h2p/YE3xfMPCz6Xwc+mePSHnvdgzy2AFPo0d1aw7MxHTy7Ms8i7zQ+9jG8UZigAwTAsjksAKRfCzKbzO0xD4mMG5dveeYVDsH+6DUWwmaAIJI0/o4L/DshXMXv0f2bb3g7T/7E8Iud0EVpiqsjCRiINfyGInqob0tRIRERGRW4/CxzUUb9vHSl7DNSwc3KuffNG6KitWUVxyVdyBfkH28HyTrfmpbMjezZjuJB+NbOau0LlZlQAwLAcrVgEE+LkUbrqz9Jjggn8Ai6D0fAMD2yh2EQ98j8LZc/edP6uWVOgz53p42DZ+IXvJfg4REREREVD4uKYesXdRcE0KgY0ZXGXDx0V8J0akrJzC6Xa8IMDsCQr5wKIxN51XsrOY6rTyK4mXmWi3l64LANOJYMYqoJDDS3WA1xN6zgs3vf8YXBR4ijknwAggCAIM49K9Jv3ZzyEiIiIiAgof11RtKE2ra+N5Pr5p9OyouDwTwDAJ1d2FSbE6lulESOUCzMBjS3YaW3LTmBtq5jcr1lFpnttjYYSiJO79AKl9Wwhy6dLSqisJrvCH3smQwADP87ANcMZMuOR69d0QERERkf5Q+LiG4tXjqD57mpOdLt1+mArz0lK7Fwh88kd2E5v9MHVP/U9a9mzjxz/YwL5cDYvCB/lSxb8TNnr6gQTQFh7HO/El/Mp/+himE6Zty7OlxoJXfsaVX+qtXlUsqWuQDkKMXfHUgN6ziIiIiEgvhY9rqGLxk7jr/p4KK0PI72PPx7nFULTsepNnuzeyf18TS6xTfLj8zVJTQD+AjF3OvooHeMefhu2EMZ1iN/GcVYbtdV3+9v3IJKe8KgICYqZLyq7gNX8Ov6cZDhEREREZJIWPayg+dR5HEnUk2t/EuFyjjot0+FE2ZmbR7Ud5+OAzrIieLr2WMmLsc+5ib+geKoMOGjq38THvNeLV40gdChOfOg/PD+j0w5Sbucv2BbmaTBDi2cw89rkTsEyTsaOjVFVGB3gXEREREZFzFD5GUG9DwXjbPh6xdzHW6iCU6yYwwMfEusI+jLNegk25WZgEPBzZxxgrWXrNNx1C/397dx4eVX33ffx9Zs5MJvskkICCYCFYFosLKESQRcsaEAVscaNWUdqLqhftZV1q2/vWtgpqcWt9tPXSVlHUW4QH60NZhN6FpCqigAUUUQQESViyTmY55/yePwIDYaeaZJDP6y9n5szM73ydM5MPv611e84c+D0cryMVCxbRp3YR+AJk5YYJeXUNq08Nn0S5k0k2PrJI4GERwD2udrtY1HjpXBL6Nx/VtcPvs7TbuIiIiIh8ZQofTWTfhoJFvi0MZVnDKldOPcHkKraHBo8dbg7LY2eR46tnRPoqMn3x5GOe5cfOyMHOLYRYLRWzf09eWgYjXQcrO4Q/M7z/WKJUlc1laexsrgj9C5ejT24/kAF2e1nE8dPKVwtYnNY6kx+UdNcGgCIiIiLylSh8NJHZSz/Bti36eh/gWH5svCPO89jmhFkR78RpdiVjMlYmNwV0jYVl2wQycvBj4cXrccs/wxgPjMGLRsBLQKwOr74Gf3Y+vrRMLDsNp7Kc2vxB/M9Ow+j0lbT1Vx6zzQaoMenETJCg5RBLy+OXV/ZR6BARERGRr4XCxwmq27jyuPa02LE7Qna6TU60GmMssqg95JjNTj5rE+3pFKhgTObK5P0J48cfsAlm5oITw62rxvJZDRsMunHwBxqWtzIJ9q1HZZwETvVO7BzA58cOF3JR4WnMWlDNuup2dAt8weSsxUc8rwR+6kwa9VY66bZLXkaA0y+bSGZnBQ8RERER+Xr4WroBJ5O6jSvZNf/POLV7sEJZOLV72DX/z9RtXHnIsW3yM4glXKqtHDKp48Dt+TYmClgS7U7A8hiRsZpvB7YDUG8CmGAGaeFW2IEgbvVO3Loq8BIYJwHGBSwsy9q/b4fPv/dVG7Y9d2p2J3cYX7NxF3k5IdLTbDZ4Zxxx4JUBFmdfRpUvTJY/QW5BIadfNll7d4iIiIjI10o9Hyegqmwu+G18gRAAViCUnF9x8B/qYwcV8dTs1fzLdy5jeRPP+NiQaMMuL5vuwS8oCu5fuarGC5GdESAzGGrYFLCyAss6OCoY8FywfBjPbbjt82P5/A3DsPayjKHV8Elkdj6fHbsXEs4KkpfdsPTu+1WdON/+9JDz2pzZgym3XQtoDw8RERERaToKH+xflWrH7ght8jMYO6josPMcnMpyrFBWo/v2za84WO9ubWBsT15bks77O9bhx6V74AvOsnYADfM5asgkL9MmbAdw62twq2qO3Eg72BA+AMvnw+xdq9cYD3w+7JzWDcOtsvKSQahNfgZ7qusJBRv+N5fmlmCq3uBcexN+DB4WWzK7c8nUe0+8aCIiIiIiJ+iUDx/7VqWybYvsdJs91fU8NXs1jO1J725tGgWTH9ppFLp1ZGTtDyDGiWGHCw+ZC5J14Wi8L+sZVPV/6Rz4FN/eUVcxY1NnZdIqO0C+5eFFanHq4oe0y7B/oJaVESaQ0wpjDCZaS6sRN7F78Qskdm4Bv40/K79h+NXe4Vb77Ot9ieKQFvATS7gsDAyj095zA+jSVIUVERERETnIKR8+9q1Kta93IBS0ieIwe+knAI2CyfJYT75b+78ApGdmYpwYuA5pHc9u2FvDb5PwLNZ/upv0jf+HdvYeWgNYUOll4PhDFOb6SU8kcCOV4B5rl3MgmEEgpxWwP+hkdj6fzM7nNw48WXmHTH7f1/sye+knlO+OUHiUXh0RERERkaZ2yoePfatSHSgt4Kd8d+SQYPJlqBOLotCn7gPCkZ3s9rJYl3UR3123Ehs/n+/xk+vsocgfSb5WhZeD3ekClkS7M67yOdyqyv2TxY/CGIhZQexgNgFjkkHnwJ6NfSHkaHp3a6OwISIiIiIp4ZQPHwfPiwCIJVwK8zMOG0w+MWdQuqc1p7fOIC3NT6C+iq3V1bS1dnGmlQAfeAa2uq3JzAjQNpwJu1czouZfeF7dcbfLAFVkU1/r5wyvisyC0464rK+IiIiIyMnglA8fh5sX4TiGsYOKmL30k0OCyZ7qGAG/xRn2HnpGV/JtbwN+X8PKVHHjZ5PbhoIcm28FY3jRWtxdFeB5hA5Yavd4WBaErAR/9X+PvFA6v7u239d63iIiIiIize2UDx8Hz4s4L2sH303/N+mLZ/ODYJjXnCK20LEhmMQdugW2MDi0ljOj2xpewIJqL8Rnblu+FYZu/lq8WBVuTQzL8jWMn2LvClV7V6s6HgaotrKTQ8BERERERE52p3z4gP3zIho2EXwdPBsrlEW6U8eVGe+wyLKxotX08lbRKrQn+bztTi4r6cGe/B50yaojzynDrdjdsAJVdivc6p0NB1oNGwM6WPiPuNVfAwN4WICPlfb5ySFgIiIiIiInO4WPAxy8iSD+AC4xBtXNJ439y+F+nGjL+1YPInlnUe/ZVNUkqPRa02Xo7XQLfpFcgcoXCGEFQ3ixOozrYiw/rnHw0bCMrgHixsaHIWb8BCwP23Ix+HjX14uPvfbJIWAiIiIiIic7hY8D7NtE0LgOkdo6fPW7CdKwMpVrLFY5nUh0vpjCoq64a3cR+vJDBrofkO+vpaoumwWzz4Wxo+h97X8D7O1J+TO+tEzcukpsC1zjo9IL4eHjfyJ9WO+0o0+4gmLfKvJ9tcQyW1NqzuH92jYUhtO1NK6IiIiIfGMofNAQEipL5+DUVRGvqSHo1RPY+1jEC7Ii0ZnA2ZfSr+/Z5ORmk5Fus/G9d+nNMlzbJkaILOoZzj8pW5BG727XAg1L4TJ8ElVlczGeA46DZyyiXh7/cL6D3bErvzpMuDivmc9fRERERKQ5nPLho3bDCnb+7Y/E6qMEvBjBvffvdLN4J96F3JwMBo4oJqfLeWSm28mVr4qqynDx41gNMcUhAMbQrfZt4Nrk6x9uL44uQP9mODcRERERkVRyUoePVUsWU/POPDKcSiJ2mOwLR3PO4EuP67leLEL1+4uoWPISfi+e7On4zGnNu7HOdMh2GNHZT2bPfoS/3avRcrsA+b5aIl6w0QK6CWzyfbVfz8mJiIiIiHzDnLThY9WSxTilzxPET4w0gk4NTunzrIKjBhCnqoKdi56j9qN38RkXPw2bAq5JdOD9xLc4O1zH93I/gXgdp1/5l0aho27jyuRk8ix/AuO51HsZWFbDiro2Dumt2jb9yYuIiIiInIRO2vBR8848gvhxfQ0DpVyCBLxagmXPsGnVTJx4nPoEVJDHuqw+nHlmO7I+XUy7yHp8GHxAzNi8HevMOqcDffN2cn1wDcQjEHWwsA4JHrvm/xn8Dcvw2q5DjlOJH4saEyLk88gJ2Zx+6ZUtVBERERERkdR20oaPDKeSGGnJ20EvRiZRLOPhRhw8Y0jDom2gljPq/x/+D6PJY6u8dP432pXPaccl4c1MtkohFgFvbzmMwW7VrtH7HbwMr52VB0BOIkY45MMOtyW3eMwh8ztERERERKRByoaP+s3/ZtvSP+FUlmOHCw/5wz5ih8l0dhHyEvhxsTAY9u6fYUEgEMQ4CexEdfI525wwS6LdqbDy6Zuznd68T5ZTi/EiWBgwBsvnw0rLIv/Saxu1Z98yvAfyZ4Yx0Vo6/OTJpiyFiIiIiMg3QsqGjz3/mEVaXjYeFrEvPmbHy/cTKDiD/EuuJbPz+YS79CRt3ZsYLAwWfjwsOw18PkhEMfH9PR3rEqexpL4Hm63TuCJ/PUO9t3Hchp3GI1YQj3SyA4ZgRvZhgw6AHS7Eqd2DtW8DQsA4MexwYfMURERERETkJJey4SMejVG/qxYbb2+Pho/E7u0N8y6GTyI/8jl1oVy8WAQ7YGMZD5OIJlefcoyP9+LfYkm0O/lpDr3CO9iV6MQWt5CzvPUY10ccP0HbYPDz97TvMuUn1x6xPbnFY9g1/894RLHsNIwTA9cht3hMs9RDRERERORkl7Lhg3gNdrBhMnlDoPAwrgN+m6qyuSSqdhII2tiuhYlHksfVeUGWx77NsuhZdM6o5trWqzjN3c4/vZ5cH/gbmU4VES8AGLLsBDVWDu/Z57O29ui7iB+4YeCRhoKJiIiIiMiRpWz48B3mPmM8rLRMElUVuHWVkIglH6tws1ka7caKWCfOyargJ4VlFDhfYhIeUSuDvmmfUp+wqDVBgpZL0O/xj+AgNttnEo07FOanH7NNh9swUEREREREjk/Kho/GLKxgCJ/PR2LHp+A6yUc+TRSwJNqDtYnT6ZO9nTvCb5Hv7ISE1/BMn58MYviD6eTkhcmOJqiorMclwfnOSj722uM4hrGDilrq5ERERERETgmpHT58fqxgesN8jlgEs/duz1isindgSbQ727x8+mVv5Vf5C8hN7IKEafQS/pwC3OoK3Ggt/swwGaEABWHYU22R7VWTF05n7KAienc7+rArERERERH5alI2fFihLCy/BdHaZOiIGpt/xbrwj2hX6kw6A3I2c1PwX2S7eyDR6NmAAcuHP5SJV1eJcfcfkBEKEPK72FmF/O7afs14ViIiIiIip66UDR9Ea8FumHBe6aXzj2g3ymJngZ3GpX070G/bX8mo/hzcwz25ce+HlZaBqa/BS2ilKhERERGRlpK64QPY6uSxJNqD9+MdSfe5fDd3E/2zN5H9rasJdvkekQV/xMQiHBw29q2PhR3AS0Tx2QGy+40j9vmHWqlKRERERKSFpGz4+EtNf76If5scf4zRuespDvybkBeFOvBKX6DNT56kLjNIVdlc4ju3YGIRrFA2/swwbl0lJlqDFQxhZ+XtDxoXX9nSpyUiIiIicspK2fCxizBXhldxgbWWoOWAB/vmcrhV5dRtXNlo6du6jSuTe3AEW52ung0RERERkRSTsuHjexmlnGfVYu0dQdWwy/l+VWVzG4UL7cEhIiIiIpLaDreXX0pI84Nn+cAcOKNj73/5bJzK8hZqmYiIiIiI/CdSNnzgJoh4wYbRVuzr9bAals/NzMUOF7Zc20RERERE5ISlbPiIkM5cdxArQ8VYPhvL54dAEH9WHpbf1jK5IiIiIiInmZSd89H/1v9mQvv2QOPJ5FomV0RERETk5JSy4eNAmkwuIiIiInLyS9lhVyIiIiIi8s2i8CEiIiIiIs1C4UNERERERJqFwoeIiIiIiDQLhQ8REREREWkWCh8iIiIiItIsFD5ERERERKRZKHyIiIiIiEizUPgQEREREZFm0aThY968eYwcOZIhQ4Ywc+bMpnwrERERERFJcXZTvfCOHTuYMWMGs2fPJhgMMmHCBPr06UNRUVFTvaWIiIiIiKSwJuv5KC0tpW/fvoTDYTIyMhg2bBjz589vqrcTEREREZEU12Q9H+Xl5RQUFCRvFxYWsnr16mM+z3VdAL788sumapqIiIiISLNq27Yttt1kf3qfNJqsAsaYQ+6zLOuYz6uoqADgmmuu+drbJCIiIiLSEhYvXkz79u1buhktrsnCR5s2bVixYkXydnl5OYWFhcd83tlnn83MmTMpKCjA7/c3VfNERERERJpN27ZtW7oJKaHJwsdFF13E448/zu7du0lPT2fBggXcd999x3xeKBSid+/eTdUsERERERFpIU3a8zF16lQmTpxIIpFg/Pjx9OzZs6neTkREREREUpxlDjc5Q0RERERE5GumHc5FRERERKRZKHyIiIiIiEizUPgQEREREZFmofAhIiIiIiLNQuFDRERERESahcLHCaqtrWXUqFFs3boVgNLSUkaPHs3QoUOZMWNGC7cuNT3xxBOUlJRQUlLC9OnTAdXteDz66KOMHDmSkpISnn32WUB1O17Tpk3jzjvvBGDdunWMGzeOYcOG8Ytf/ALHcVq4daln4sSJlJSUMGbMGMaMGcOqVauYN28eI0eOZMiQIcycObOlm5iS3nrrLcaOHcvw4cP5zW9+A+gaPZZXX301+TkbM2YMvXr14t5771XdjsPcuXOTv6XTpk0D9P12LE8//TTDhg1j9OjRPPnkk4BqlhKMHLcPPvjAjBo1yvTo0cNs2bLF1NfXm4EDB5rNmzebRCJhbrjhBrN06dKWbmZKWb58ufn+979vYrGYicfjZuLEiWbevHmq2zG8/fbbZsKECSaRSJj6+nozePBgs27dOtXtOJSWlpo+ffqYO+64wxhjTElJiXn//feNMcbcddddZubMmS3YutTjeZ7p16+fSSQSyfu+/PJLM3jwYLNnzx5TV1dnRo8ebTZs2NCCrUw9mzdvNv379zfbt2838XjcXHXVVWbp0qW6Rk/Axx9/bIYMGWK2bdumuh1DJBIxF1xwgdm1a5dJJBJm/PjxZvny5fp+O4rly5ebUaNGmZqaGuM4jpk8ebL5+9//rpqlAPV8nIBXXnmFX//61xQWFgKwevVqOnbsyBlnnIFt24wePZr58+e3cCtTS0FBAXfeeSfBYJBAIEDnzp3ZtGmT6nYMF154IX/961+xbZtdu3bhui7V1dWq2zFUVlYyY8YMfvSjHwHwxRdfEI1GOffccwEYO3asanaQTz/9FMuyuOmmm7jssst44YUXKC0tpW/fvoTDYTIyMhg2bJjqdpCFCxcycuRI2rZtSyAQYMaMGaSnp+saPQH/9V//xdSpU9myZYvqdgyu6+J5HvX19TiOg+M42Lat77ejWLt2Lf379ycrKwu/38/FF1/M888/r5qlAIWPE/Db3/6W3r17J2+Xl5dTUFCQvF1YWMiOHTtaomkpq0uXLsmLfNOmTbz55ptYlqW6HYdAIMBjjz1GSUkJxcXF+rwdh1/96ldMnTqVnJwc4NBrtKCgQDU7SHV1NcXFxfzhD3/gueeeY9asWWzbtk2ftWP4/PPPcV2XG2+8kcsuu4wXX3xR1+gJKC0tJRqNMmLECNXtOGRlZXHbbbcxYsQIBgwYQLt27QgEAvp+O4oePXqwbNkyKisricVivPXWW9i2rZqlAIWPr8AcZnN4y7JaoCWpb8OGDdxwww3ccccddOjQ4ZDHVbfDu/XWWykrK2P79u1s2rTpkMdVt/1effVVTjvtNIqLi5P36Ro9tvPOO4/p06eTkZFBfn4+48eP57HHHjvkONWtMdd1KSsr48EHH+SVV15hzZo1ybmAB1LdDm/WrFn88Ic/BHSdHo/169fz2muvsWTJEpYtW4bP52P58uWHHKe67VdcXMzYsWO57rrrmDRpEr169cJ13UOOU82an93SDTiZtWnThp07dyZvl5eXJ4dkyX7vvfcet956K3fffTclJSW88847qtsxbNy4kXg8Trdu3UhPT2fo0KHMnz8fv9+fPEZ1a+zNN9+koqKCMWPGUFVVRSQSwbKsRp+1iooK1ewgK1asIJFIJEObMYZ27drpGj2G1q1bU1xcTH5+PgCXXnqprtHjFI/Heffdd3nggQcA/ZYej2XLllFcXEyrVq2AhuFCzzzzjL7fjqK2tpYhQ4YkQ+6zzz5Lu3btWLFiRfIY1axlqOfjKzjnnHP47LPPkt3vb7zxBgMGDGjpZqWU7du3M2XKFB566CFKSkoA1e14bN26lXvuuYd4PE48Hmfx4sVMmDBBdTuKZ599ljfeeIO5c+dy6623cskll3D//feTlpbGe++9B8CcOXNUs4PU1NQwffp0YrEYtbW1vP766zz44IOUlZWxe/du6uvrWbBggep2kMGDB7Ns2TKqq6txXZd//vOfDB8+XNfocfjoo48488wzycjIAPSbcDy6du1KaWkpkUgEYwxvvfUWF154ob7fjmLr1q1MmTIFx3Goqanh1VdfZfz48apZClDPx1eQlpbGAw88wC233EIsFmPgwIEMHz68pZuVUp555hlisVjyX7gAJkyYoLodw8CBA1m1ahWXX345fr+foUOHUlJSQn5+vup2gh566CHuuece6urq6N69OxMnTmzpJqWUwYMHJz9rnudx9dVX06tXL6ZOncrEiRNJJBKMHz+enj17tnRTU8o555zDpEmTuPrqq0kkEvTr14+rrrqKTp066Ro9hi1bttC2bdvkbf2WHlv//v1Zu3YtY8eOJRAI8J3vfIebb76ZIUOG6PvtCLp27crQoUO57LLLcF2X66+/nl69euk3IQVY5nCDLUVERERERL5mGnYlIiIiIiLNQuFDRERERESahcKHiIiIiIg0C4UPERERERFpFgofIiIiIiLSLBQ+RERSxPz587nuuusAePTRR5kzZ85Rj3/iiSdYtGhRM7Ts8LZu3cp5553X6L4333yTPn36UFZW1kKtEhGRVKZ9PkREUtBtt912zGPefvttioqKmqE1x2fWrFn88Y9/5LnnnqNbt24t3RwREUlBCh8iIi3o0UcfZd68eYTDYTp27Ji8/84776RLly7ceOONPPbYYyxcuJBAIEBeXh73338/Cxcu5MMPP2T69On4/X6Kioq49957iUQilJeX07VrVx555BHS0tKSG5ItX76c8vJyJk6cyPXXXw/AU089xeuvv45t23Ts2JEHHniA7OxsXn31VV566SU8zyMcDvPLX/6Szp07H/E8nn76aWbPns2LL75I+/btgYZw9Pvf/57CwkI2bNhAeno6t9xyC88//zyfffYZQ4cO5e67727S+oqISGrRsCsRkRayaNEiFixYwJw5c5g1axa1tbWHHLN9+3b+8pe/8NprrzF79mz69evH6tWrueaaazj77LP5+c9/zpAhQ3jllVe4/PLLefnll1mwYAFbt25l6dKlAMTjcfLy8pg1axaPPfYYDz/8MLFYjMWLFzN79mxefvll3njjDdq3b88LL7zAO++8w5w5c5g5cyZz5sxh0qRJ3HLLLUc8j+nTp/Pwww9z3XXXJYPHPmvWrOHHP/4x8+fPp1WrVjz99NM89dRTyaCyY8eOr7WmIiKS2tTzISLSQsrKyhgyZAhZWVkAjBs3jueff77RMW3atKFr165cccUVDBgwgAEDBlBcXHzIa91+++0sX76cP/3pT2zatIny8nIikUjy8UsvvRSAHj16EI/HiUQilJWVMXz4cHJzcwG46667gIYw8fnnnzNhwoTk86uqqqisrCQcDjd630gkwscff8zTTz/N1KlTOf/88xsNuWrfvj3du3cHoEOHDmRnZxMMBsnPzyczM5OqqiratGnzn5ZQREROMgofIiItxLIsjDHJ236//5BjfD4fL7zwAmvWrKGsrIzf/e539OnTh3vuuafRcT/96U9xXZcRI0YwaNAgtm/f3ui109LSku8JYIzB7/cnbwNUV1dTXV2N53mMGTOG22+/HQDP8ygvL0+GlAOFQiGefPJJAoEAkydPZsqUKcyePTsZUoLBYKPjbVs/OyIipzINuxIRaSEXX3wx8+fPT/7BP3fu3EOOWb9+PaNGjaJz585MnjyZ66+/no8++ghoCCuO4wCwbNkypkyZwsiRI7Esi1WrVuG67lHf/6KLLmLhwoXJ4V6PP/44zz33HP369eNvf/sb5eXlALz00kv84Ac/OOxr+Hw+AoEAADfffDNFRUX87Gc/w/O8/6woIiLyjaZ/ghIRaSEDBw7ko48+Yty4ceTk5NC1a1f27NnT6JiuXbsyYsQIxo0bR0ZGBqFQKNnrMXjwYKZNm0YikWDq1KlMmTKF3Nxc0tPTueCCC9i8efMx3/+TTz7hqquuAqCoqIj77ruPrKwsbrrpJm644QYsyyIrK4snnniiUS/J4ViWxbRp07jiiit45JFH6Nev31eojoiIfBNZ5sB+eRERERERkSaiYVciIiIiItIsFD5ERERERKRZKHyIiIiIiEizUPgQEREREZFmofAhIiIiIiLNQuFDRERERESahcKHiIiIiIg0C4UPERERERFpFv8f1CyB8YOzHVgAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Consume vs Km_absolute\n", + "sns.lmplot(data = df_train, x = 'distance', y = 'consume_100Km', hue = 'gas_type', height=6,aspect=1.7)\n", + "plt.xlabel('distance Km')\n", + "plt.ylabel('consume l/100km')" + ] + }, + { + "cell_type": "code", + "execution_count": 512, + "metadata": {}, + "outputs": [], + "source": [ + "#gas_type[['consume_100Km','speed',]].mean().plot(kind='bar')\n", + "#'SP98': 1, 'E10': 0" + ] + }, + { + "cell_type": "code", + "execution_count": 513, + "metadata": {}, + "outputs": [], + "source": [ + "#gas_type.agg({'consume_100Km':'min','speed':'max',}).plot(kind='bar')\n", + "#'SP98': 1, 'E10': 0" + ] + }, + { + "cell_type": "code", + "execution_count": 516, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume_100Kmspeeddistance
gas_type
05.993888130.3
12.69288256.1
\n", + "
" + ], + "text/plain": [ + " consume_100Km speed distance\n", + "gas_type \n", + "0 5.9938 88 130.3\n", + "1 2.6928 82 56.1" + ] + }, + "execution_count": 516, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg({'consume_100Km':'max','speed':'max','distance':'max' })" + ] + }, + { + "cell_type": "code", + "execution_count": 515, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume_100Kmspeeddistance
gas_type
00.1638164.1
10.2035162.9
\n", + "
" + ], + "text/plain": [ + " consume_100Km speed distance\n", + "gas_type \n", + "0 0.1638 16 4.1\n", + "1 0.2035 16 2.9" + ] + }, + "execution_count": 515, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg({'consume_100Km':'min','speed':'min', 'distance':'min',})" + ] + }, + { + "cell_type": "code", + "execution_count": 517, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume_100Kmspeeddistance
gas_type
01.02524643.98089221.463057
10.74855240.60280415.987383
\n", + "
" + ], + "text/plain": [ + " consume_100Km speed distance\n", + "gas_type \n", + "0 1.025246 43.980892 21.463057\n", + "1 0.748552 40.602804 15.987383" + ] + }, + "execution_count": 517, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg({'consume_100Km':'mean','speed':'mean','distance':'mean' })" + ] + }, + { + "cell_type": "code", + "execution_count": 518, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
gas_type01
distancemin4.1000002.900000
max130.30000056.100000
mean21.46305715.987383
consumemin3.7000003.700000
max8.1000008.700000
mean4.8668794.814019
speedmin16.00000016.000000
max88.00000082.000000
mean43.98089240.602804
temp_insidemin21.00000019.000000
max25.00000025.500000
mean21.91266621.978344
temp_outsidemin-5.000000-3.000000
max27.00000031.000000
mean10.07006412.233645
ACmin0.0000000.000000
max1.0000001.000000
mean0.0445860.102804
rainmin0.0000000.000000
max1.0000001.000000
mean0.0955410.140187
sunmin0.0000000.000000
max1.0000001.000000
mean0.0764330.084112
consume_100Kmmin0.1638000.203500
max5.9938002.692800
mean1.0252460.748552
\n", + "
" + ], + "text/plain": [ + "gas_type 0 1\n", + "distance min 4.100000 2.900000\n", + " max 130.300000 56.100000\n", + " mean 21.463057 15.987383\n", + "consume min 3.700000 3.700000\n", + " max 8.100000 8.700000\n", + " mean 4.866879 4.814019\n", + "speed min 16.000000 16.000000\n", + " max 88.000000 82.000000\n", + " mean 43.980892 40.602804\n", + "temp_inside min 21.000000 19.000000\n", + " max 25.000000 25.500000\n", + " mean 21.912666 21.978344\n", + "temp_outside min -5.000000 -3.000000\n", + " max 27.000000 31.000000\n", + " mean 10.070064 12.233645\n", + "AC min 0.000000 0.000000\n", + " max 1.000000 1.000000\n", + " mean 0.044586 0.102804\n", + "rain min 0.000000 0.000000\n", + " max 1.000000 1.000000\n", + " mean 0.095541 0.140187\n", + "sun min 0.000000 0.000000\n", + " max 1.000000 1.000000\n", + " mean 0.076433 0.084112\n", + "consume_100Km min 0.163800 0.203500\n", + " max 5.993800 2.692800\n", + " mean 1.025246 0.748552" + ] + }, + "execution_count": 518, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg(['min', 'max','mean']).T" + ] + }, + { + "cell_type": "code", + "execution_count": 519, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsunconsume_100Km
27393.94.88823.01801014.5072
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside gas_type AC rain \\\n", + "273 93.9 4.8 88 23.0 18 0 1 0 \n", + "\n", + " sun consume_100Km \n", + "273 1 4.5072 " + ] + }, + "execution_count": 519, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_max_speed=df_train[df_train.speed == df_train['speed'].max()]\n", + "df_max_speed" + ] + }, + { + "cell_type": "code", + "execution_count": 520, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsunconsume_100Km
24511.86.11622.5600100.7198
37315.36.61624.02711001.0098
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside gas_type AC rain \\\n", + "245 11.8 6.1 16 22.5 6 0 0 1 \n", + "373 15.3 6.6 16 24.0 27 1 1 0 \n", + "\n", + " sun consume_100Km \n", + "245 0 0.7198 \n", + "373 0 1.0098 " + ] + }, + "execution_count": 520, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_min_speed=df_train[df_train.speed == df_train['speed'].min()]\n", + "df_min_speed" + ] + }, + { + "cell_type": "code", + "execution_count": 522, + "metadata": {}, + "outputs": [], + "source": [ + "group_cols = ['gas_type']\n", + "agg_dict = {'speed':['min', 'max','mean','var'],\n", + " 'distance':['min', 'max','mean','var'],\n", + " 'consume_100Km':['min', 'max','mean','var']}\n", + "df_groupby=df_train.groupby(group_cols).agg(agg_dict)" + ] + }, + { + "cell_type": "code", + "execution_count": 523, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['speed', 'speed', 'speed', 'speed', 'distance', 'distance', 'distance',\n", + " 'distance', 'consume_100Km', 'consume_100Km', 'consume_100Km',\n", + " 'consume_100Km'],\n", + " dtype='object')" + ] + }, + "execution_count": 523, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "level0 = df_groupby.columns.get_level_values(0)\n", + "level0" + ] + }, + { + "cell_type": "code", + "execution_count": 524, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['min', 'max', 'mean', 'var', 'min', 'max', 'mean', 'var', 'min', 'max',\n", + " 'mean', 'var'],\n", + " dtype='object')" + ] + }, + "execution_count": 524, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "level1 = df_groupby.columns.get_level_values(1)\n", + "level1" + ] + }, + { + "cell_type": "code", + "execution_count": 525, + "metadata": {}, + "outputs": [], + "source": [ + "df_groupby.columns = level0 + '_' + level1" + ] + }, + { + "cell_type": "code", + "execution_count": 526, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
gas_type01
speed_min16.00000016.000000
speed_max88.00000082.000000
speed_mean43.98089240.602804
speed_var189.685530143.151354
distance_min4.1000002.900000
distance_max130.30000056.100000
distance_mean21.46305715.987383
distance_var413.09196068.495192
consume_100Km_min0.1638000.203500
consume_100Km_max5.9938002.692800
consume_100Km_mean1.0252460.748552
consume_100Km_var0.9188980.136241
\n", + "
" + ], + "text/plain": [ + "gas_type 0 1\n", + "speed_min 16.000000 16.000000\n", + "speed_max 88.000000 82.000000\n", + "speed_mean 43.980892 40.602804\n", + "speed_var 189.685530 143.151354\n", + "distance_min 4.100000 2.900000\n", + "distance_max 130.300000 56.100000\n", + "distance_mean 21.463057 15.987383\n", + "distance_var 413.091960 68.495192\n", + "consume_100Km_min 0.163800 0.203500\n", + "consume_100Km_max 5.993800 2.692800\n", + "consume_100Km_mean 1.025246 0.748552\n", + "consume_100Km_var 0.918898 0.136241" + ] + }, + "execution_count": 526, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_groupby.T" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### speed outliers" + ] + }, + { + "cell_type": "code", + "execution_count": 527, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable height\n", + "ax = sns.distplot(df_train.speed, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('speed', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of speed', fontsize=20);" + ] + }, + { + "cell_type": "code", + "execution_count": 528, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\_decorators.py:36: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Distribution of speed')" + ] + }, + "execution_count": 528, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# box plot of the variable consume\n", + "ax = sns.boxplot(df_train.speed)\n", + "\n", + "# notation indicating an outlier\n", + "ax.annotate('Outlier', xy=(80,0), xytext=(75,-0.05), fontsize=14,\n", + " arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle=\"round\", fc=\"0.8\"))\n", + "ax.annotate('Outlier', xy=(90,0), xytext=(95,-0.05), fontsize=14,\n", + " arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle=\"round\", fc=\"0.8\"))\n", + "\n", + "# xtick, label, and title\n", + "plt.xticks(fontsize=14)\n", + "plt.xlabel('speed', fontsize=14)\n", + "plt.title('Distribution of speed', fontsize=20)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### consume outliers" + ] + }, + { + "cell_type": "code", + "execution_count": 529, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "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VPj573fSZyJKtGXLFjQaDT179jRoVioUFxfHe++9xx9//AGAl5cXAwcOZM2aNTz88MMkJCRw5coV4PY31PI6deqUwb7w8HAAvVFg1tbWxX7oFG2nL2RMbIU1rOPHjxsc02q1HDt2DAcHh1JHUd2NwqajY8eOGRy7fPkySUlJNG7c+K7PWzj0uejUMYXCw8Np1aoVH3/8caXd782bN1mxYoUylNnNzY0nn3yS5cuXExYWRnZ2tjLCqvBLyJ1/x9jY2Lu6pjH8/PywsbHhzJkzxdYa169fz8qVK7l582aFX/t+IMlEFOvgwYN89NFHODg4MHr06BLL2dnZ8dlnn/HBBx/otYmr1WqSkpKwsbFROtatrAoqwnc+x3C3/vnnH73nETIyMnj//fdRqVR6T/P7+/tz5coVLly4oOy7evVqsUNPC2MrrR+jTZs2+Pr6snPnTvbs2aN3bPny5Vy/fp2ePXuW2ZxirKeffhorKys++eQTvQSYlZXF3LlzlTJ3q169eoSEhLB//37l+QsoSBCfffYZOp2Ojh07Vtr9Ojo68vnnn7Ns2TKDocXXrl0DUDrQC6ftKfyyUhjnJ598clfXNIatrS29evUiKiqKdevW6R07fPgwS5YsYevWrQa1X1FAmrkecL///rvSL1I4N9fZs2f5+++/sbOzY9myZaV+83R3d2fEiBGsW7eOPn360KVLFywsLNi3bx/R0dGMGzdOaXP39PQE4IsvviA1NZVhw4bdU8z169fntdde4/fff8fV1ZU//viDK1eu8NJLLykjdAAGDRrEvHnzGDZsGH369EGtVvPLL78QEBDA33//rXfOwtg+/vhjzp07V+yzJhYWFixatIiRI0cyZswYunbtSv369QkPD+fEiRM0bNjwnp91KU69evV44403WLBgAf369aN79+44ODiwd+9e4uLi6N27N3379r2nc8+ZM4ehQ4cyevRounfvjre3N4cOHeLs2bMMHz5c+T1Wxv3a2NgwadIk5s+fT58+fXjsscews7Pj6NGjnDp1iqefflpJIn369OGDDz5gzZo1xMXF4ePjw19//UV6erreiK2K8sYbbxAeHs7ixYvZtWsXLVu2JCEhgZ07d2JlZcU777yDhYV8By+OJJMH3K5du9i1a5eybW9vj7e3N0OHDmXEiBEGI2OK8/rrr+Pr68vXX3/Nd999R35+Po0a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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable consume\n", + "ax = sns.distplot(df_train.consume_100Km, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('consume / 100 Km', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of consume', fontsize=20);" + ] + }, + { + "cell_type": "code", + "execution_count": 530, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\_decorators.py:36: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Distribution of consume')" + ] + }, + "execution_count": 530, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# box plot of the variable consume\n", + "ax = sns.boxplot(df_train.consume_100Km)\n", + "\n", + "# notation indicating an outlier\n", + "ax.annotate('Outlier', xy=(9,0), xytext=(8,-0.05), fontsize=14,\n", + " arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle=\"round\", fc=\"0.8\"))\n", + "\n", + "# xtick, label, and title\n", + "plt.xticks(fontsize=14)\n", + "plt.xlabel('consume_100Km', fontsize=14)\n", + "plt.title('Distribution of consume', fontsize=20)" + ] + }, + { + "cell_type": "code", + "execution_count": 531, + "metadata": {}, + "outputs": [], + "source": [ + "q_low = df_train[\"consume\"].quantile(0.01)\n", + "q_hi = df_train[\"consume\"].quantile(0.99)\n", + "\n", + "df_train = df_train[(df_train[\"consume\"] < q_hi) & (df_train[\"consume\"] > q_low)]" + ] + }, + { + "cell_type": "code", + "execution_count": 532, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable consume\n", + "ax = sns.distplot(df_train.consume, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('consume', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of consume', fontsize=20);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### distance outliers" + ] + }, + { + "cell_type": "code", + "execution_count": 533, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable consume\n", + "ax = sns.distplot(df_train.distance, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('distance', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of distance', fontsize=20);" + ] + }, + { + "cell_type": "code", + "execution_count": 617, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\_decorators.py:36: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", + " warnings.warn(\n" + ] + }, + { + "ename": "TypeError", + "evalue": "Horizontal orientation requires numeric `x` variable.", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# box plot of the variable consume\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0max\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mboxplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf_train\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdistance\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# notation indicating an outlier\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m ax.annotate('Outlier', xy=(9,0), xytext=(8,-0.05), fontsize=14,\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\seaborn\\_decorators.py\u001b[0m in \u001b[0;36minner_f\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 44\u001b[0m )\n\u001b[0;32m 45\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m{\u001b[0m\u001b[0mk\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0marg\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mk\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0marg\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msig\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mparameters\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 46\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 47\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0minner_f\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 48\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\seaborn\\categorical.py\u001b[0m in \u001b[0;36mboxplot\u001b[1;34m(x, y, hue, data, order, hue_order, orient, color, palette, saturation, width, dodge, fliersize, linewidth, whis, ax, **kwargs)\u001b[0m\n\u001b[0;32m 2238\u001b[0m ):\n\u001b[0;32m 2239\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2240\u001b[1;33m plotter = _BoxPlotter(x, y, hue, data, order, hue_order,\n\u001b[0m\u001b[0;32m 2241\u001b[0m \u001b[0morient\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpalette\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msaturation\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2242\u001b[0m width, dodge, fliersize, linewidth)\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\seaborn\\categorical.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, x, y, hue, data, order, hue_order, orient, color, palette, saturation, width, dodge, fliersize, linewidth)\u001b[0m\n\u001b[0;32m 404\u001b[0m width, dodge, fliersize, linewidth):\n\u001b[0;32m 405\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 406\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mestablish_variables\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0morient\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0morder\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhue_order\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 407\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mestablish_colors\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcolor\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpalette\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msaturation\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 408\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\seaborn\\categorical.py\u001b[0m in \u001b[0;36mestablish_variables\u001b[1;34m(self, x, y, hue, data, orient, order, hue_order, units)\u001b[0m\n\u001b[0;32m 154\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 155\u001b[0m \u001b[1;31m# Figure out the plotting orientation\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 156\u001b[1;33m orient = infer_orient(\n\u001b[0m\u001b[0;32m 157\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0morient\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrequire_numeric\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrequire_numeric\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 158\u001b[0m )\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\seaborn\\_core.py\u001b[0m in \u001b[0;36minfer_orient\u001b[1;34m(x, y, orient, require_numeric)\u001b[0m\n\u001b[0;32m 1319\u001b[0m \u001b[0mwarnings\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwarn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msingle_var_warning\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Vertical\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"x\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1320\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mrequire_numeric\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mx_type\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[1;34m\"numeric\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1321\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnonnumeric_dv_error\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Horizontal\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"x\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1322\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[1;34m\"h\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1323\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mTypeError\u001b[0m: Horizontal orientation requires numeric `x` variable." + ] + } + ], + "source": [ + "# box plot of the variable consume\n", + "ax = sns.boxplot(df_train.distance)\n", + "\n", + "# notation indicating an outlier\n", + "ax.annotate('Outlier', xy=(9,0), xytext=(8,-0.05), fontsize=14,\n", + " arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle=\"round\", fc=\"0.8\"))\n", + "\n", + "# xtick, label, and title\n", + "plt.xticks(fontsize=14)\n", + "plt.xlabel('distance', fontsize=14)\n", + "plt.title('Distribution of distance', fontsize=20)" + ] + }, + { + "cell_type": "code", + "execution_count": 535, + "metadata": {}, + "outputs": [], + "source": [ + "q_low = df_train[\"distance\"].quantile(0.01)\n", + "q_hi = df_train[\"distance\"].quantile(0.99)\n", + "\n", + "df_train = df_train[(df_train[\"distance\"] < q_hi) & (df_train[\"distance\"] > q_low)]" + ] + }, + { + "cell_type": "code", + "execution_count": 536, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable consume\n", + "ax = sns.distplot(df_train.distance, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('distance', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of distance', fontsize=20);" + ] + }, + { + "cell_type": "code", + "execution_count": 537, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsunconsume_100Km
consume-19.328871100.000000-10.660054-14.960494-40.515699-3.3176824.54282527.351497-19.047784-0.639884
rain-4.11181927.3514972.659649-2.075481-17.1970775.74685420.559670100.000000-10.9984222.075743
AC2.8964574.542825-1.10055635.05109620.5729969.916979100.00000020.55967011.1880644.206289
consume_100Km97.784761-0.63988447.2155991.415629-2.614758-17.2570734.2062892.0757433.747622100.000000
gas_type-15.443003-3.317682-10.2466552.61174417.052824100.0000009.9169795.7468540.473920-17.257073
speed47.216761-10.660054100.0000003.985971-0.453907-10.246655-1.1005562.6596499.60327747.215599
temp_inside4.069561-14.9604943.985971100.00000035.4393412.61174435.051096-2.07548123.1731431.415629
sun8.265346-19.0477849.60327723.17314331.3151660.47392011.188064-10.998422100.0000003.747622
distance100.000000-19.32887147.2167614.0695616.752227-15.4430032.896457-4.1118198.26534697.784761
temp_outside6.752227-40.515699-0.45390735.439341100.00000017.05282420.572996-17.19707731.315166-2.614758
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside \\\n", + "consume -19.328871 100.000000 -10.660054 -14.960494 -40.515699 \n", + "rain -4.111819 27.351497 2.659649 -2.075481 -17.197077 \n", + "AC 2.896457 4.542825 -1.100556 35.051096 20.572996 \n", + "consume_100Km 97.784761 -0.639884 47.215599 1.415629 -2.614758 \n", + "gas_type -15.443003 -3.317682 -10.246655 2.611744 17.052824 \n", + "speed 47.216761 -10.660054 100.000000 3.985971 -0.453907 \n", + "temp_inside 4.069561 -14.960494 3.985971 100.000000 35.439341 \n", + "sun 8.265346 -19.047784 9.603277 23.173143 31.315166 \n", + "distance 100.000000 -19.328871 47.216761 4.069561 6.752227 \n", + "temp_outside 6.752227 -40.515699 -0.453907 35.439341 100.000000 \n", + "\n", + " gas_type AC rain sun consume_100Km \n", + "consume -3.317682 4.542825 27.351497 -19.047784 -0.639884 \n", + "rain 5.746854 20.559670 100.000000 -10.998422 2.075743 \n", + "AC 9.916979 100.000000 20.559670 11.188064 4.206289 \n", + "consume_100Km -17.257073 4.206289 2.075743 3.747622 100.000000 \n", + "gas_type 100.000000 9.916979 5.746854 0.473920 -17.257073 \n", + "speed -10.246655 -1.100556 2.659649 9.603277 47.215599 \n", + "temp_inside 2.611744 35.051096 -2.075481 23.173143 1.415629 \n", + "sun 0.473920 11.188064 -10.998422 100.000000 3.747622 \n", + "distance -15.443003 2.896457 -4.111819 8.265346 97.784761 \n", + "temp_outside 17.052824 20.572996 -17.197077 31.315166 -2.614758 " + ] + }, + "execution_count": 537, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "corr = (df_train.corr().sort_values('consume', ascending=False))*100\n", + "corr" + ] + }, + { + "cell_type": "code", + "execution_count": 538, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(10.5, -0.5)" + ] + }, + "execution_count": 538, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAogAAAJ2CAYAAADc0XPTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAACweUlEQVR4nOzdd1xV9R/H8RfDhYiiDBU1Z6b9NBuOypUzzZGjco/S3OZMFNyaWzNxT9xarkzFmZl7NJQclXuxBEQZcoH7+wO7eYOroBccvJ+Px308POd8zjmfczjAx8/3nION0Wg0IiIiIiJyn+3TTkBEREREni0qEEVERETEjApEERERETGjAlFEREREzKhAFBEREREzKhBFRERExIwKRBEREZFnyN27d2nQoAHXrl1LsuzMmTM0a9aMunXr4uXlRVxcHAA3btygdevWvP/++3Tr1o3IyMgnykEFooiIiMgz4vfff6dly5ZcunQp2eUDBw5k6NChbN++HaPRyNq1awEYOXIkrVq1ws/Pj//973/MmjXrifJQgSgiIiKSxiIiIrh27VqST0REhFnc2rVrGT58OG5ubkm2cf36dWJiYihXrhwATZs2xc/PD4PBwLFjx6hbt67Z/Cdh/0Rri4iIiDyn/qpcN9325fdJA3x8fJLM79mzJ7169TJNjx071uI2goKCcHV1NU27uroSGBhIWFgYjo6O2Nvbm81/EioQRURERNJY+/btadKkSZL5Tk5OKd5Gcn8d2cbGxuL8J6ECUURERDImm/S7087JySlVxWBy3N3dCQkJMU0HBwfj5uZG7ty5uXv3LvHx8djZ2ZnmPwndgygiIiLyHPDw8CBLliycOHECgI0bN1K1alUyZcrEW2+9xdatW83mPwkViCIiIiLPsM6dO3Pq1CkAJk+ezLhx46hXrx7R0dG0a9cOgOHDh7N27Vrq16/P8ePH6dOnzxPt08aY3MC1iIiIyAvur6r1021fJfZtTbd9WYM6iCIiIiJiRg+piIiISMZk+2RP+r7I1EEUERERETPqIIqIiEiGZJOOr7l53ujMiIiIiIgZdRBFREQkY9I9iBapgygiIiIiZtRBFBERkYzpCf9e8YtMHUQRERERMaMOooiIiGRMtuqTWaIzIyIiIiJm1EEUERGRjEn3IFqkDqKIiIiImFEHUURERDIkG3UQLVIHUURERETMqEAUERERETMaYhYREZGMSa+5sUhnRkRERETMqIMoIiIiGZMeUrFIHUQRERERMaMOooiIiGRMtuogWqIOooiIiIiYUQdRREREMiYb9cks0ZkRERERETPqIIqIiEiGZKN7EC1SB1FEREREzKiDKCIiIhmT3oNokTqIIiIiImJGHUQRERHJmPQUs0U6MyIiIiJiRh1EERERyZj0FLNF6iCKiIiIiBkViCIiIiJiRkPMIiIikjHpNTcWqYMoIiIiImbUQRQREZEMycZWfTJLdGZERERExIw6iCIiIpIx6R5Ei9RBFBEREREz6iCKiIhIxqR7EC3SmRERERERM+ogioiISMakexAtUgdRRERERMyogygiIiIZkzqIFqmDKCIiIiJm1EEUERGRDEl/ScUynRkRERERMaMOooiIiGRMugfRInUQRURERMSMCkQRERERMaMhZhEREcmYbDXEbIk6iCIiIiJiRh1EERERyZhs1CezRGdGRERERMyogygiIiIZk+5BtEgdRBERERExow6iiIiIZEx6UbZF6iCKiIiIiBl1EEVERCRDstFTzBapQBQRERF5hmzevJnZs2djMBjo0KEDrVu3Ni07c+YMnp6epunQ0FBy5szJDz/8wMaNG5k8eTJ58uQBoHr16vTt2/exclCBKCIiIhnTM/gUc2BgINOmTWP9+vVkzpyZFi1aULFiRYoXLw5AqVKl2LRpEwDR0dF89NFHjBgxAoBTp07h6elJgwYNnjgP9VZFRERE0lhERATXrl1L8omIiDCLO3jwIJUqVSJXrlw4ODhQt25d/Pz8kt3m3LlzKV++PG+99RaQWCBu3LiRRo0aMWDAAG7fvv3Y+b7wBaKnpydz5syhc+fOFmPu3LlD9+7d0zErEREReepsbNLt4+vrS82aNZN8fH19zVIKCgrC1dXVNO3m5kZgYGCS1CMiIli7di09e/Y0zXN1daVXr15s2rSJfPnyMWrUqMc+NRliiNnNzY358+dbXH779m3Onj2bjhmJiIhIRtK+fXuaNGmSZL6Tk5PZtNFoTBJjk8zreDZv3kytWrVM9xsCzJw50/TvTp06UatWrcfO94UrEI1GI+PHj2fv3r24ubkRHx9PhQoVqFGjBnv27GHz5s0sWLAAOzs7ChQowKRJkxgzZgxBQUH06NGDmTNnMm3aNA4dOsTt27dxdnZmxowZuLq6Urly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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.set(style=\"white\")\n", + "# Generate a mask for the upper triangle\n", + "mask = np.zeros_like(df_train.corr(), dtype=np.bool)\n", + "mask[np.triu_indices_from(mask)] = True\n", + "# Set up the matplotlib figure to control size of heatmap\n", + "fig, ax = plt.subplots(figsize=(10,10))\n", + "# Create a custom color palette\n", + "cmap = sns.diverging_palette(255, 10, as_cmap=True) # as_cmap returns a matplotlib colormap object rather than a list of colors\n", + "# Red=10, Green=128, Blue=255\n", + "# Plot the heatmap\n", + "sns.heatmap(df_train.corr(), mask=mask, annot=True, square=True, cmap=cmap , vmin=-1, vmax=1, ax=ax) # annot display corr label\n", + "# Prevent Heatmap Cut-Off Issue\n", + "bottom, top = ax.get_ylim()\n", + "ax.set_ylim(bottom+0.5, top-0.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Feature selection.2" + ] + }, + { + "cell_type": "code", + "execution_count": 540, + "metadata": {}, + "outputs": [], + "source": [ + "X = df_train[['speed', 'temp_inside','distance','consume', 'temp_outside',\n", + " 'gas_type', 'AC', 'rain', 'sun']].values\n", + "y = df_train['consume_100Km'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 541, + "metadata": {}, + "outputs": [], + "source": [ + "X_train,X_test,y_train,y_test = train_test_split(X,y, random_state=9, train_size = 0.8)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Models pipelines" + ] + }, + { + "cell_type": "code", + "execution_count": 542, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# We train different model to see which give us less error\n", + "models = { \"ridge\": Ridge(),\n", + " \"lasso\": Lasso(),\n", + " \"sgd\": SGDRegressor(),\n", + " \"knn\": KNeighborsRegressor(),\n", + " \"gradient\": GradientBoostingRegressor(),\n", + " \"rdm\": RandomForestRegressor(),}" + ] + }, + { + "cell_type": "code", + "execution_count": 543, + "metadata": {}, + "outputs": [], + "source": [ + "# Building pipelins of standard scaler and model for varios regressors.\n", + "\n", + "pipeline_lr=Pipeline([(\"scalar1\",StandardScaler()),\n", + " (\"lr_classifier\",LinearRegression())])\n", + "\n", + "pipeline_dt=Pipeline([(\"scalar2\",StandardScaler()),\n", + " (\"dt_classifier\",DecisionTreeRegressor())])\n", + "\n", + "pipeline_rf=Pipeline([(\"scalar3\",StandardScaler()),\n", + " (\"rf_classifier\",RandomForestRegressor())])\n", + "\n", + "pipeline_kn=Pipeline([(\"scalar4\",StandardScaler()),\n", + " (\"rf_classifier\",KNeighborsRegressor())])\n", + "\n", + "pipeline_xgb=Pipeline([(\"scalar5\",StandardScaler()),\n", + " (\"rf_classifier\",XGBRegressor())])\n", + "\n", + "pipeline_ridge=Pipeline([(\"scalar6\",StandardScaler()),\n", + " (\"rf_classifier\",Ridge())])\n", + "\n", + "pipeline_lasso=Pipeline([(\"scalar7\",StandardScaler()),\n", + " (\"rf_classifier\",Lasso())])\n", + "\n", + "pipeline_xgbr=Pipeline([(\"scalar8\",StandardScaler()),\n", + " (\"rf_classifier\",GradientBoostingRegressor())])" + ] + }, + { + "cell_type": "code", + "execution_count": 544, + "metadata": {}, + "outputs": [], + "source": [ + "# List of all the pipelines\n", + "pipelines = [pipeline_lr, pipeline_dt, pipeline_rf, pipeline_kn, \n", + " pipeline_xgb, pipeline_ridge,pipeline_lasso, pipeline_xgbr]" + ] + }, + { + "cell_type": "code", + "execution_count": 545, + "metadata": {}, + "outputs": [], + "source": [ + "# Dictionary of pipelines and model types for ease of reference\n", + "pipe_dict = {0: \"LinearRegression\", 1: \"DecisionTree\", 2: \"RandomForest\",\n", + " 3: \"KNeighbors\", 4: \"XGBRegressor\", 5:\"Ridge\", 6:\"Lasso\",\n", + " 7:'GradientBoostingRegressor'}" + ] + }, + { + "cell_type": "code", + "execution_count": 546, + "metadata": {}, + "outputs": [], + "source": [ + "# Fit the pipelines\n", + "for pipe in pipelines:\n", + " pipe.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 547, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "LinearRegression: -0.047035 \n", + "DecisionTree: -0.093148 \n", + "RandomForest: -0.084951 \n", + "KNeighbors: -0.231354 \n", + "XGBRegressor: -0.072891 \n", + "Ridge: -0.047132 \n", + "Lasso: -0.504632 \n", + "GradientBoostingRegressor: -0.066258 \n" + ] + } + ], + "source": [ + "cv_results_rms = []\n", + "for i, model in enumerate(pipelines):\n", + " cv_score = cross_val_score(model, X_train,y_train,scoring=\"neg_root_mean_squared_error\", cv=10)\n", + " cv_results_rms.append(cv_score)\n", + " print(\"%s: %f \" % (pipe_dict[i], cv_score.mean()))" + ] + }, + { + "cell_type": "code", + "execution_count": 548, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar1', StandardScaler()),\n", + " ('lr_classifier', LinearRegression())]) R^2: 0.9925376978865574\n", + "Adjusted R^2: 0.9922880297861076\n", + "MAE: 0.02837607364261138\n", + "MSE: 0.0020482755913549078\n", + "RMSE: 0.04525787877657224\n", + "Pipeline(steps=[('scalar2', StandardScaler()),\n", + " ('dt_classifier', DecisionTreeRegressor())]) R^2: 1.0\n", + "Adjusted R^2: 1.0\n", + "MAE: 0.0\n", + "MSE: 0.0\n", + "RMSE: 0.0\n", + "Pipeline(steps=[('scalar3', StandardScaler()),\n", + " ('rf_classifier', RandomForestRegressor())]) R^2: 0.9937861379766549\n", + "Adjusted R^2: 0.9935782392472493\n", + "MAE: 0.014543322580645234\n", + "MSE: 0.001705599923050192\n", + "RMSE: 0.041298909465628655\n", + "Pipeline(steps=[('scalar4', StandardScaler()),\n", + " ('rf_classifier', KNeighborsRegressor())]) R^2: 0.8836213486911326\n", + "Adjusted R^2: 0.8797276391677876\n", + "MAE: 0.11585992831541216\n", + "MSE: 0.031943969462365586\n", + "RMSE: 0.17872875947190364\n", + "Pipeline(steps=[('scalar5', StandardScaler()),\n", + " ('rf_classifier',\n", + " XGBRegressor(base_score=0.5, booster='gbtree',\n", + " colsample_bylevel=1, colsample_bynode=1,\n", + " colsample_bytree=1, gamma=0, gpu_id=-1,\n", + " importance_type='gain',\n", + " interaction_constraints='',\n", + " learning_rate=0.300000012, max_delta_step=0,\n", + " max_depth=6, min_child_weight=1, missing=nan,\n", + " monotone_constraints='()', n_estimators=100,\n", + " n_jobs=8, num_parallel_tree=1, random_state=0,\n", + " reg_alpha=0, reg_lambda=1, scale_pos_weight=1,\n", + " subsample=1, tree_method='exact',\n", + " validate_parameters=1, verbosity=None))]) R^2: 0.9999916674769973\n", + "Adjusted R^2: 0.9999913886936999\n", + "MAE: 0.0010687737832359861\n", + "MSE: 2.2871364923928635e-06\n", + "RMSE: 0.001512328169542862\n", + "Pipeline(steps=[('scalar6', StandardScaler()), ('rf_classifier', Ridge())]) R^2: 0.9925190981140424\n", + "Adjusted R^2: 0.9922688077163709\n", + "MAE: 0.028603398575988363\n", + "MSE: 0.002053380914011125\n", + "RMSE: 0.04531424625888778\n", + "Pipeline(steps=[('scalar7', StandardScaler()), ('rf_classifier', Lasso())]) R^2: 0.0\n", + "Adjusted R^2: -0.03345724907063197\n", + "MAE: 0.3432252283500982\n", + "MSE: 0.2744830697306047\n", + "RMSE: 0.5239113185746274\n", + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9993674801009855\n", + "Adjusted R^2: 0.9993463177251821\n", + "MAE: 0.009869758098748365\n", + "MSE: 0.0001736160035471743\n", + "RMSE: 0.013176342570955504\n" + ] + } + ], + "source": [ + "for i, model in enumerate(pipelines):\n", + " pred = model.predict(X_train)\n", + " print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + " print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + " print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + " print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + " print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 549, + "metadata": {}, + "outputs": [], + "source": [ + "# List of all the pipelines\n", + "pipelines = [pipeline_lr, pipeline_dt, pipeline_rf, pipeline_kn, \n", + " pipeline_xgb, pipeline_ridge,pipeline_lasso, pipeline_xgbr]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline ridge" + ] + }, + { + "cell_type": "code", + "execution_count": 550, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9925190981140424\n", + "Adjusted R^2: 0.9922688077163709\n", + "MAE: 0.028603398575988363\n", + "MSE: 0.002053380914011125\n", + "RMSE: 0.04531424625888778\n" + ] + } + ], + "source": [ + "pred = pipeline_ridge.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 551, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29151.359248-0.067748
10.65190.659642-0.007742
20.83600.8246960.011304
30.70930.6733650.035935
40.56640.5596900.006710
50.33810.518197-0.180097
60.79950.832087-0.032587
70.40670.3814000.025300
81.01281.0045310.008269
90.30340.2277740.075626
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 1.359248 -0.067748\n", + "1 0.6519 0.659642 -0.007742\n", + "2 0.8360 0.824696 0.011304\n", + "3 0.7093 0.673365 0.035935\n", + "4 0.5664 0.559690 0.006710\n", + "5 0.3381 0.518197 -0.180097\n", + "6 0.7995 0.832087 -0.032587\n", + "7 0.4067 0.381400 0.025300\n", + "8 1.0128 1.004531 0.008269\n", + "9 0.3034 0.227774 0.075626" + ] + }, + "execution_count": 551, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_ridge = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_ridge.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 552, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rnaNWbNmad++fXrppZeUmpqqPXv2qE+fPvr73/+u0NBQJScnV7uGJHXt2lUNGzbUlClT1L9/f0u2eakXXnhB27ZtU3FxsUJDQ+Xn56e4uDht3LhRJSUlmjlzpiV1XnvtNe3cuVP33XefNm7cqK5duyokJEQrVqzQgw8+qKFDh1pSB0Dt9I9//EPr168v94/onj17KiIiwu6hVUlxcbFSU1N16NAh9e3bV127dnUuW7RokSZOnGhZraysLNWvX1+33367Fi1apK+++kpdunTR2LFj5e/vb1mdiz311FNasGCBpdv85JNP1LdvX0nSihUr9Pe//935j2ir/qleXFyslStXql+/fqpfv75ef/117dmzR7/4xS80fvx4BQcHW1JnwoQJSkpK0i233GLJ9i6nuLhY6enpCgkJUUREhGbPnq0vvvhC7dq1U2Jioho0aGBJndLSUi1dulSZmZnl/hE9aNAgRUZGWlKjDM//qrHjuS9Z//z36kAaERGh9PR0XXfddeXmnz9/Xvfff7/Wr19vWa28vLyrLm/evHm1th8dHa20tDQFBAQoJydHY8eOVUJCggYOHKjY2Filp6dXa/sX11m5cqWOHz+uqKgobdmyRcHBwSosLNSQIUO0du3aateYO3eu0tPTNWHCBN1www2SpFdeeUWTJk2S9GOQtEJZII2JidFf/vIX3XjjjZKk/Px8DRkyxJL9P2jQIGVkZMjf31+xsbFavny5goKCVFJSoqioKH344YfVriFJsbGxmj9/vlJSUnThwgWNGTNGvXv3VkhIiCXbl37c92vWrFFhYaHCwsK0efNmBQYGyhijmJgYS/a9JMXExCg9PV1+fn66cOGCxo0bp6VLl+rMmTMaOnSoZY+ZxB+ma8EbU9fxxrTq3P3GdOHChdq9e7cGDx6sxo0bS5KOHj2q999/X61bt1ZiYmK1a0jSF198cdXl3bp1q3aNadOmqbS0VG3bttXbb7+toUOHasKECZKs/Uf0vHnztGPHDuXn56tx48Zq2LChIiMjtX79etWtW1fPPvtstWuMGjVKfn5+5eZlZ2erXbt2kqSlS5dWu4b038dl0aJF2rZtm0aNGiVjjN577z394he/0OTJk6tdY8qUKZKk5ORkLV68WOfOndOAAQO0adMmnT59Wi+++GK1a0hSjx49VL9+fQ0bNkyjRo1SYGCgJdu92NSpU3Xu3DkVFhbq1KlT6tChg4YOHarMzEzt3btXr7zyiiV1nn/+eRUVFSk8PFwbNmzQbbfdpmbNmmnp0qXq3r27JQc7JM88/z3x3Jc88/z3xHNf8szz36tP2Q0ICFBxcXGF+QUFBZY/scePH6+cnBw1btxYl2Z0Pz8/ZWZmVmv7xhjnzmzZsqVee+01jRkzRjfddFOFnVwdpaWlCgoKUosWLTR27Nhyb6hKSkosqZGYmKiePXvq5Zdf1lNPPaW7775bb731lmVBtExxcbFKS0vVsGFD1a1b1zk/KChIdepYc/lzSEiITpw44Xwinzt3TkFBQTp//rwCAqx7evj5+al169Z6++23lZWVpffee0+zZs1Sy5Yt1bRpU0v+ABpjdObMGZ07d04FBQXKz8/XjTfeqIKCAhUVFVnQxY8uXLig8+fPq27duiooKNCpU6ckSXXr1rVsv0hX/sO0cuVK7dy507I3ppX9Myg2NrbaNZ577jnnH6Znnnmm3B+mjRs3WhZIL/fHafjw4Vq/fr2ef/55t74xHT16tCTr3pj+4Q9/UN++fS/7xvSrr76y5I1p2e9QRESE5s6dq3PnzmnEiBHatGmTpk2bZtkb0127dunhhx926xvT5ORk5xvTt99+Wx06dNBLL72kzMxMPffcc5a9MZ0zZ46Kior0yCOPVHhjmpOTU+03puvWrdOHH35Y4bUkKipKUVFRlj3v//CHP2jnzp3q0KHDZf/mW/F7nJ2d7fxHYGxsrB566CGFhITooYceqlCzOj799FNlZGTo1KlT6tevn7Zu3ao6deqoZ8+elrx+SdKAAQP0+uuv68knn1SLFi1kjNGzzz6rJ554wpLtX+rjjz/WihUrnO9hwsPDFRUVZcnz/uuvv1ZGRoakH8PJmjVr5Ofnp7CwMEsvbWrSpIneeOMNvfDCC+rfv7+GDx+uyMhItWjRwrIae/fuVUZGhkpKShQWFqZly5ZJklq3bu08C88KW7Zscf4u33fffRo5cqTeffddhYWFafDgwZYFUk88/z3x3Jc88/z3xHNf8szz36sD6YQJExQbG6sePXqUO2V3y5YtlrwoXezdd9/ViBEjNH36dHXp0sXSbUs/7sxRo0Zp6tSp6tChg9q0aaOFCxfqiSeeUGFhoWV1+vfvr1//+tdaunSp803ul19+qeTkZA0cONCyOj169NDtt9+u6dOna9OmTZaF3YvdeOONCgsLk5+fn6ZPn645c+bo888/17x58zRgwABLajzxxBMaMmSIIiMj1apVK40aNUo9evTQ5s2b9cgjj1hSQ1K5F5977rlH99xzj4qKivTVV18pNzfXkhrjxo1T//79ZYxRQkKCxo4dqx49eujzzz+39HrYuLg4DR8+XPfee682b96suLg4HTx4UI8//riioqIsq+OpN6ZbtmzRhg0brvg7ZcWLOm9Mrx1vTF3jK29Mg4ODdfjw4QpnJeXl5Vl6HfySJUs0evRoPfjgg+rTp49l272YMUbnzp1T3bp1ddNNN2nJkiUaPny4GjZsaOk/oiWpsLBQN954oxITE52vmWfPnr3sP/WvxciRI3X33Xdr+vTp+tWvfqXY2Fhdf/31uuuuuyzZfplz587p+PHjat68uc6dO+d83hcUFFj2T+K6devqm2++UZs2bfTTn/5Uhw4dUvPmzXXkyBFLf8f8/Px0880364UXXlBOTo6WL1+usWPH6sKFC2ratKnzOVodderU0XfffaczZ87ozJkzcjgcCg0N1cmTJy3b99KPBzROnDihhg0b6tixYyooKJAkFRUVWfrPe088/z3x3Jc89/x393Nf8tDz33i5w4cPm7S0NPPaa6+ZP/7xjyYtLc0cPnzYLbV27dplkpOT3bJtY4zJysoy3377bbl5eXl5ZubMmZbW2bp1a7np/fv3m02bNlla42LLly83Y8aMcdv29+/fb/75z38aY4zZtm2b+dvf/mbp9v/973+bN99800yfPt0kJyebl19+2ezatcvSGsuXL7d0e1dy/vx5k5+fb4wx5ssvvzRvvPGG2bx5s+V1srKyzBtvvGGysrKMMcbk5+ebL7/80tIa0dHR5uDBgxXm//vf/zaDBw+2tNb48ePNihUrLN3mxaKioszZs2ed04cPHza9evUya9euNbGxsZbViYyMNAUFBcaY8r9zZ86cMYMGDbKszjfffGNGjBhh0tLSjDHG0h7K9O/f3xw7dsyMHz/enDx50jn/9OnTlvUydOhQ8/XXXxtjjHn88cedv2+HDx82MTExltQwpvzj891335m5c+ea/v37m7CwMPPAAw9YUmPw4MHmwIEDZteuXaZDhw4mNzfXGGPMiRMnLN33gwYNMsePHzfG/Pg4lfWWn59vIiMjq739zz77zISHh5uHHnrIJCQkmISEBPPQQw+Z8PBw8/nnn1d7+xc7cOCAmTdvnqXbvNiyZctM//79na+Txhjz7bffmvDwcNO+fXvL6qSmppr+/fub4uJi57zt27ebXr16mffee8+yOsYYc+HCBTN79mwzceJES3+vykydOtVERUWZLl26mCeeeMIYY8yGDRtMeHi4eeeddyypsWPHDvPLX/7STJw40TzzzDPml7/8pfnNb35jwsLCLH2vdKXXkJMnT1r2HuMf//iHCQsLM/fdd5/5+OOPzYABA8ykSZNMr169nK/PVli1apUJCwszv/3tb014eLjJyMgwOTk5JiwszKxcudKyOpd7/o8ZM8by57+7n/vGXP75v3//fkuf/1d67vfu3dvy574x7n3+e/U1pABqr6ysLCUlJally5blzpDIycnR7Nmz1b17d8tqHT16VBkZGXr44Yct2+bF3nvvPb355ptKSUlRjx49JP14B/FHHnlEJ06c0O7duy2p88477+itt97SunXrnNeL7tixQ08//bQmTJhg6Q2nCgsLtWDBAuXl5Wn//v364IMPLNu29OPN07Kzs3Xo0CH16NFDixYt0kcffaTZs2fr0Ucf1fDhw6td45///KcmTpyozp0767rrrtNnn32mO++8U3v37tXvfvc7hYWFWdCJrnifgP/85z/Kzc113k28OjZv3qzk5GSVlpbqueee04svvqi2bdtqz549mjRpkmVHyFevXq2FCxeqU6dO2rVrl6ZMmaL27dvrwQcf1MSJEy05G+ODDz7Qd999J39/f91yyy1q0qSJ7rzzTqWlpVl6R3pP3Pl+yZIlKiwsVHR0tLNGfn6+3nnnHT366KOW1JB+vKGhv7+/s5fDhw/rzJkz2rFjh2W9XPx4ORwOvf/++3r++ect/6SATz75RHl5eerZs6datmypr7/+WsYY7dy507I66enpcjgcCgkJUXFxsW6++Wbde++9+vTTTy2r8emnn6qoqMjtv2Nlj1d4eLjq1q2rbdu2qU2bNtq2bZul+6XsdzkyMlItW7ZUYWGhzp49q48++sjSOl9++aXOnDmjo0ePKicnR//3f/+nYcOGWXrWiqc+jeK7775TSEiImjVr5qzTvn17/ec//9FDDz1kWY26des6e9m1a5dCQ0OdlwVZ5eLH7L333tOuXbt07733WvaYEUgBeK0LFy5o9+7dOnr0qIwxzjemVp5W5e4bmpXJyclRUFBQue3l5+dr5cqVlv1hkuQ8ZatM2RvTNm3aWFbjYp999pk++OADPf/8827Z/vnz53X8+HHdcsstzjemP//5zy3bfn5+vrKysvT999+rpKTE+ca0adOmltX49NNPLQu3rjp+/Ljzjemtt95q6ba/++47ffXVV7rtttucb0zPnTtnyY2T5s+fr71796pVq1Zat26dpk6d6pY70nvizveeuru+r/VStv/d2YsnfsfmzZunvXv3un2/uPvxKqvjK58U4YkaldXp1KmTJZe52NXL4cOH1bdvX2vrWHq8FQAscvDgwat+WSUqKsq0a9fO9O7d2/Tq1avcV+/evS2p4alePFGHXryzjq/0EhUVZYqKiowxP57e3KtXL7Nu3TpjzJVPgfTWOlFRUc5T6XyhF1/aL/RS9Tqe+l0uKCgwDofDdOzY0XkJyoULF0x0dHSNqeGpOr7Ui1ff1AhA7eXuO1+XcfcNzSTP9eKJOper4efn57yTOL24VqeMO3uxuoYn6hgP3ZHeE3Uufnx8oRdf2i/0UvU6ZWr6J0V4ooan6vhSLxwhBeCVzpw5Y6Kjo822bdvcXsvdNzTzVC+eqEMv3lnHV3pZtGiRGT58eLmbvmzbts10797ddO7cuUbVoRfvrEMv3lvn5ZdfNiNGjCh3k559+/aZ+Ph4s2jRohpTw1N1fKkXAikAr+XuoOhJnurFE3XoxTvr+EovnrojvSfq0It31qEX763jiU+K8NSnUdCL67ipEQAAAADAFnUqXwUAAAAAAOsRSAEAAAAAtiCQAgAAAABsQSAFAAAAANiCQAoAAAAAsMX/BweF2rzsr9kTAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_ridge = results_ridge.head(35)\n", + "results_ridge.plot(kind='bar',figsize=(16,8))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 553, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_ridge.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 554, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.01688220269864965" + ] + }, + "execution_count": 554, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_ridge=np.mean(results_ridge.error)\n", + "meanerror_ridge" + ] + }, + { + "cell_type": "code", + "execution_count": 555, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.644335
10.555178
21.229197
30.663718
40.515901
......
650.774879
660.671756
671.801921
680.724719
690.807843
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.644335\n", + "1 0.555178\n", + "2 1.229197\n", + "3 0.663718\n", + "4 0.515901\n", + ".. ...\n", + "65 0.774879\n", + "66 0.671756\n", + "67 1.801921\n", + "68 0.724719\n", + "69 0.807843\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 555, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 556, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/ridge.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline rf" + ] + }, + { + "cell_type": "code", + "execution_count": 557, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9937861379766549\n", + "Adjusted R^2: 0.9935782392472493\n", + "MAE: 0.014543322580645234\n", + "MSE: 0.001705599923050192\n", + "RMSE: 0.041298909465628655\n" + ] + } + ], + "source": [ + "pred = pipeline_rf.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 558, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29151.319827-0.028327
10.65190.6498250.002075
20.83600.838836-0.002836
30.70930.733131-0.023831
40.56640.571842-0.005442
50.33810.3222800.015820
60.79950.7791410.020359
70.40670.412124-0.005424
81.01281.0126360.000164
90.30340.311385-0.007985
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 1.319827 -0.028327\n", + "1 0.6519 0.649825 0.002075\n", + "2 0.8360 0.838836 -0.002836\n", + "3 0.7093 0.733131 -0.023831\n", + "4 0.5664 0.571842 -0.005442\n", + "5 0.3381 0.322280 0.015820\n", + "6 0.7995 0.779141 0.020359\n", + "7 0.4067 0.412124 -0.005424\n", + "8 1.0128 1.012636 0.000164\n", + "9 0.3034 0.311385 -0.007985" + ] + }, + "execution_count": 558, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_rf = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_rf.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 559, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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BLKgoCANGjRIb7/9tjZu3KiXX375ousHBwe7vy8pKVFIyNloFh4e7p4XFhamdev+d2r+oUOHdOWVV0qSzP9/5WVQUJCCgoKqNNbSGpI0b948ZWVlKTY2Vr1791Z6erp722XVrVv3bD1VrVZlKj1CKkkTJ07Uhg0blJqaqgkTJkiSlixZonbt2kmSoqOjtX79eqWlpWnu3LkKCwtzdJAAAAAA4O8SEhK0fPlyNW3atNyNYM/nnXfekTFGBw4c0J49e8qdhSpJDRo0UMuWLd2B9KOPPtKIESMkSbfffrveeustSdK7774rl+vidwEODg5WUVHReZd99NFHuu+++9S/f38dPHhQhw8fVklJiUf9OsGju+wCAAAAAC6uWbNmatasme66665K183Pz1diYqJcLpdmzZqlq666qsI68+fPV3Jysl5++WWFhobq2WefVVBQkJ544glNmTJFy5cvV7t27XT55ZdftNZ1112nkydPasqUKRo8eHC5ZePGjdNjjz2mK664Qg0bNlTbtm2VnZ1dtcargUAKAAAAICCUFLm88hEtJUUu1Qm5+Fmgxhjl5ubq6NGj6t27d6Xb7NevnxISEsrNKz0btdR1112nv//97xV+tkmTJlq6dKl7+sknn7xorauuukrr1693T992223u72NjYxUbG3venysd3+bNm93zOnTpoAE9Bly0XlUQSAEAAAAEhMpC4/nknMxR8wbNq73dtLQ0JScnKzk5WWFhYXrqqaeUnp4uSSosKVRonbM3Hmrbtm2Vx+iJDRs26IU/vuCuU1bZ61D9DYEUAAAAAKqpX79+6tevn3t66tSp7u89Cb3VNWDAAHW4s4PX6zjNo5saAQAAAADgNAIpAAAAAMAKAikAAAAAwAoCKQAAAADACgIpAAAAgIDgKi6s8s94chOgS9kuPMNddgEAAAJA2c9JTI5KrjAPqA3CgkM1ZMWDjm935d1/dHybOItACgAAEADqhITp2zmJ5ea1mr7G0miA2unPf/6z3nnnHRUXF+uOO+7QsGHDNHbsWF1+xeVqUK+BBg4cqLVr1+qHH35Qjx49NGrUKE2fPl05OTkKCQnRpEmT1L17dy1evFi7du3SwYMHNWLECI0YMcJ2a15DIAUAAACAavrHP/6hjIwMrV69WkFBQZoyZYpSU1P13Xff6Y233lCnn3bSm2++qcOHD2vDhg0K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jxs3TpmZmWrcuLHOzehBQUHatGlTtbZvjHHvzJYtW+qll17S6NGj9eMf/7jCTq6OkpIShYWFqUWLFhozZky5N1TFxcWO1Jg6daq6d++u5557To8++qhuu+02/e1vf3MsiJYqKipSSUmJGjZsqHr16rnnh4WFqU4dZy5/Dg8P17Fjx9wv5NOnTyssLExnzpxRSIhzL4+goCBdf/31eu2115Senq4VK1Zozpw5atmypZo2berIH0BjjE6ePKnTp08rPz9feXl5uuqqq5Sfn6/CwkIHujiroKBAZ86cUb169ZSfn68ffvhBklSvXj3H9ot04T9Mq1ev1q5duxx7Y1rZP4MGDRpU7RpPPPGE+w/TY489Vu4P0+bNmx0LpOf74zRs2DBt3LhRTz75pFffmI4aNUqSc29M//CHP6h3797nfWP61VdfOfLGtPQ5FB0draeeekqnT5/W8OHDtWXLFj3++OOOvTHdvXu37rvvPq++MU1KSnK/MX3ttdfUvn17Pfvss9q0aZOeeOIJx96Yzps3T4WFhbr//vsrvDHNzMys9hvTDRs26J133qnwuyQ2NlaxsbGOve7/8Ic/aNeuXWrfvv15/+Y78TzOyMhw/yNw0KBBuvfeexUeHq577723Qs3q+PDDD5WamqoffvhBffr00ccff6w6deqoe/fujvz+kqR+/frpz3/+sx555BG1aNFCxhjNmDFDDz/8sCPbP9d7772nVatWud/DREVFKTY21pHX/b/+9S+lpqZKOhtO1q1bp6CgIEVGRjp6aVOTJk308ssv6+mnn1bfvn01bNgwxcTEqEWLFo7V2Lt3r1JTU1VcXKzIyEgtX75cknT99de7z8Jzwvbt293P5TvvvFMjRozQG2+8ocjISA0cONCxQOqL178vXvuSb17/vnjtS755/ft1IB0/frwGDRqkbt26lTtld/v27Y78UirrjTfe0PDhwzVz5kx17tzZ0W1LZ3fmyJEjNW3aNLVv316tW7fWokWL9PDDD8vlcjlWp2/fvvrlL3+ppUuXut/kfvnll0pKSlL//v0dq9OtWzfdeOONmjlzprZs2eJY2C3rqquuUmRkpIKCgjRz5kzNmzdP27Zt0/z589WvXz9Hajz88MMaPHiwYmJi1KpVK40cOVLdunXT1q1bdf/99ztSQ1K5Xz633367br/9dhUWFuqrr75SVlaWIzXGjh2rvn37yhijKVOmaMyYMerWrZu2bdvm6PWwCQkJGjZsmO644w5t3bpVCQkJOnDggB566CHFxsY6VsdXb0y3b9+utLS0Cz6nnPilzhvTS8cbU88EyhvTunXr6tChQxXOSsrJyXH0OvglS5Zo1KhRuueee9SrVy/HtluWMUanT59WvXr19OMf/1hLlizRsGHD1LBhQ0f/ES1JLpdLV111laZOner+nXnq1Knz/lP/UowYMUK33XabZs6cqV/84hcaNGiQLr/8ct16662ObL/U6dOndfToUTVv3lynT592v+7z8/Md+ydxvXr19PXXX6t169b6yU9+ooMHD6p58+Y6fPiwo8+xoKAgXX311Xr66aeVmZmplStXasyYMSooKFDTpk3dr9HqqFOnjr777judPHlSJ0+eVHZ2tiIiInT8+HHH9r109oDGsWPH1LBhQx05ckT5+fmSpMLCQkf/ee+L178vXvuS717/3n7tSz56/Rs/d+jQIbN27Vrz0ksvmT/96U9m7dq15tChQ16ptXv3bpOUlOSVbRtjTHp6uvnmm2/KzcvJyTGzZ892tM7HH39cbnr//v1my5YtjtYoa+XKlWb06NFe2/7+/fvNZ599ZowxZseOHeaDDz5wdPv//ve/zSuvvGJmzpxpkpKSzHPPPWd2797taI2VK1c6ur0LOXPmjMnLyzPGGPPll1+al19+2WzdutXxOunp6ebll1826enpxhhj8vLyzJdffulojbi4OHPgwIEK8//973+bgQMHOlpr3LhxZtWqVY5us6zY2Fhz6tQp9/ShQ4dMjx49zFtvvWUGDRrkWJ2YmBiTn59vjCn/nDt58qQZMGCAY3W+/vprM3z4cLN27VpjjHG0h1J9+/Y1R44cMePGjTPHjx93zz9x4oRjvQwZMsT861//MsYY89BDD7mfb4cOHTLx8fGO1DCm/OPz3Xffmaeeesr07dvXREZGmrvvvtuRGgMHDjTffvut2b17t2nfvr3Jysoyxhhz7NgxR/f9gAEDzNGjR40xZx+n0t7y8vJMTExMtbf/0UcfmaioKHPvvfeaKVOmmClTpph7773XREVFmW3btlV7+2V9++23Zv78+Y5us6zly5ebvn37un9PGmPMN998Y6Kioky7du0cq7Ns2TLTt29fU1RU5J63c+dO06NHD7NixQrH6hhjTEFBgZk7d66ZMGGCo8+rUtOmTTOxsbGmc+fO5uGHHzbGGJOWlmaioqLM66+/7kiNTz/91Pz85z83EyZMMI899pj5+c9/bn71q1+ZyMhIR98rXeh3yPHjxx17j/HPf/7TREZGmjvvvNO89957pl+/fmbixImmR48e7t/PTlizZo2JjIw0v/71r01UVJRJTU01mZmZJjIy0qxevdqxOud7/Y8ePdrx17+3X/vGnP/1v3//fkdf/xd67ffs2dPx174x3n39+/U1pABqr/T0dE2fPl0tW7Ysd4ZEZmam5s6dq65duzpWKzc3V6mpqbrvvvsc22ZZK1as0CuvvKLk5GR169ZN0tk7iN9///06duyY9uzZ40id119/XX/729+0YcMG9/Win376qX7zm99o/Pjxjt5wyuVyaeHChcrJydH+/fv19ttvO7Zt6ezN0zIyMnTw4EF169ZNixcv1rvvvqu5c+fqgQce0LBhw6pd47PPPtOECRPUqVMnXXbZZfroo4908803a+/evfrd736nyMhIBzrRBe8T8J///EdZWVnuu4lXx9atW5WUlKSSkhI98cQTeuaZZ9SmTRt9/vnnmjhxomNHyN98800tWrRIHTt21O7duzV58mS1a9dO99xzjyZMmODI2Rhvv/22vvvuOwUHB+uaa65RkyZNdPPNN2vt2rWO3pHeF3e+X7JkiVwul+Li4tw18vLy9Prrr+uBBx5wpIZ09oaGwcHB7l4OHTqkkydP6tNPP3Wsl7KPV3Z2ttavX68nn3zS8U8KeP/995WTk6Pu3burZcuW+te//iVjjHbt2uVYnZSUFGVnZys8PFxFRUW6+uqrdccdd+jDDz90rMaHH36owsJCrz/HSh+vqKgo1atXTzt27FDr1q21Y8cOR/dL6XM5JiZGLVu2lMvl0qlTp/Tuu+86WufLL7/UyZMnlZubq8zMTP3f//2fhg4d6uhZK776NIrvvvtO4eHhatasmbtOu3bt9J///Ef33nuvYzXq1avn7mX37t2KiIhwXxbklLKP2YoVK7R7927dcccdjj1mBFIAfqugoEB79uxRbm6ujDHuN6ZOnlbl7RualcrMzFRYWFi57eXl5Wn16tWO/WGS5D5lq1TpG9PWrVs7VqOsjz76SG+//baefPJJr2z/zJkzOnr0qK655hr3G9Of/vSnjm0/Ly9P6enp+v7771VcXOx+Y9q0aVPHanz44YeOhVtPHT161P3G9LrrrnN02999952++uor3XDDDe43pqdPn3bkxkkLFizQ3r171apVK23YsEHTpk3zyh3pfXHne1/dXT/Qeind/97sxRfPsfnz52vv3r1e3y/efrxK6wTKJ0X4okZldTp27OjIZS62ejl06JB69+7tbB1Hj7cCgEMOHDhw0S+nxMbGmrZt25qePXuaHj16lPvq2bOnIzV81Ysv6tCLf9YJlF5iY2NNYWGhMebs6c09evQwGzZsMMZc+BRIf60TGxvrPpUuEHoJpP1CL1Wv46vncn5+vsnOzjYdOnRwX4JSUFBg4uLiakwNX9UJpF78+qZGAGovb9/5upS3b2gm+a4XX9Q5X42goCD3ncTpxbM6pbzZi9M1fFHH+OiO9L6oU/bxCYReAmm/0EvV65Sq6Z8U4YsavqoTSL1whBSAXzp58qSJi4szO3bs8Hotb9/QzFe9+KIOvfhnnUDpZfHixWbYsGHlbvqyY8cO07VrV9OpU6caVYde/LMOvfhvneeee84MHz683E169u3bZxITE83ixYtrTA1f1QmkXgikAPyWt4OiL/mqF1/UoRf/rBMovfjqjvS+qEMv/lmHXvy3ji8+KcJXn0ZBL57jpkYAAAAAACvqVL4KAAAAAADOI5ACAAAAAKwgkAIAAAAArCCQAgAAAACsIJACAAAAAKz4/wDQzAm/JJr5wwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_rf = results_rf.head(35)\n", + "results_rf.plot(kind='bar',figsize=(16,8))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 560, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_rf.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 561, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.005028800000000358" + ] + }, + "execution_count": 561, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_rf=np.mean(results_rf.error)\n", + "meanerror_rf" + ] + }, + { + "cell_type": "code", + "execution_count": 562, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.653364
10.551886
21.187203
30.699820
40.524007
......
650.745894
660.655365
671.835191
680.726997
690.825854
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.653364\n", + "1 0.551886\n", + "2 1.187203\n", + "3 0.699820\n", + "4 0.524007\n", + ".. ...\n", + "65 0.745894\n", + "66 0.655365\n", + "67 1.835191\n", + "68 0.726997\n", + "69 0.825854\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 562, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 563, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../rf.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline kn" + ] + }, + { + "cell_type": "code", + "execution_count": 564, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.8836213486911326\n", + "Adjusted R^2: 0.8797276391677876\n", + "MAE: 0.11585992831541216\n", + "MSE: 0.031943969462365586\n", + "RMSE: 0.17872875947190364\n" + ] + } + ], + "source": [ + "pred = pipeline_kn.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 565, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29150.959760.33174
10.65190.650380.00152
20.83600.84794-0.01194
30.70930.424640.28466
40.56640.61854-0.05214
50.33810.72774-0.38964
60.79950.706480.09302
70.40670.47320-0.06650
81.01281.15570-0.14290
90.30340.42464-0.12124
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 0.95976 0.33174\n", + "1 0.6519 0.65038 0.00152\n", + "2 0.8360 0.84794 -0.01194\n", + "3 0.7093 0.42464 0.28466\n", + "4 0.5664 0.61854 -0.05214\n", + "5 0.3381 0.72774 -0.38964\n", + "6 0.7995 0.70648 0.09302\n", + "7 0.4067 0.47320 -0.06650\n", + "8 1.0128 1.15570 -0.14290\n", + "9 0.3034 0.42464 -0.12124" + ] + }, + "execution_count": 565, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_kn = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_kn.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 566, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6oAAAJDCAYAAAACQOngAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABG1UlEQVR4nO3de5hVddk//ntgGAgPWQqYUF8zNSs8m5ol4BEURhB8FOQriWVpCnmI4AmUycQTaBqWj1FWlidEBUkEFR4sQ7+eEsXHQ6njM8NBQLM4zzCs3x/+mBzOM7Nnz2dmXq/rmuuatfba6/7cs2Yf3nsddkGWZVkAAABAIlo19gAAAADg4wRVAAAAkiKoAgAAkBRBFQAAgKQUNvYAtmTt2rWxYMGC6NChQ7Ru3bqxhwMAAEAOVVVVxbJly6Jr167Rrl27zW5PMqguWLAgBg8e3NjDAAAAoAHdddddccQRR2w2P8mg2qFDh4j4aNB77rnnDt/v5mdujkuOvqSBRpXfOnpJs45e0qyjlzTr6CXNOnpJs45e0qyjlzTr6CXNOrWtsWTJkhg8eHB19ttUkkF14+G+e+65Z3Tp0mWH77fzHjvXavm6ykcdvaRZRy9p1tFLmnX0kmYdvaRZRy9p1tFLmnX0kmadutbY2qmeLqYEAABAUgRVAAAAkiKoAgAAkJQkz1EFAACoq8rKyigvL4+1a9fWeR09P9kzXnvttRyOqnFq5KvO1mq0bt06dtttt9hjjz2iVasd308qqAIAAM1KeXl57LLLLrH33ntHQUFBndaxaMWi2GuXvXI8svzXyFedLdXIsiwqKyvjvffei/Ly8vjc5z63w+tz6C8AANCsrF27Nnbfffc6h1Ryo6CgIIqKiqJz586xatWqWt1XUAUAAJodITUdtTnkt/o+DTAOAAAAqDNBFQAAaNYqKqtqfZ8dOaezLuvdljlz5sRvfvObWt3nlltuidmzZ+d0HClwMSUAAKBZK2rTOoovn5bz9U6/sW9O1/fqq6/W+j7f//73czqGVAiqAAAADWTEiBFxxBFHxFlnnRUREeecc0784Ac/iIMPPrjGcn//+9/j3nvvjYiIvfbaKxYtWhQvvfRSLF68OAYPHhz77bdf/PSnP421a9fGP//5zxgxYkSccsopMWrUqDjyyCPjyCOPjIsvvjj222+/eO2112L33XePW265JXbbbbd8t5wTDv0FAABoIAMGDIiHH344IiIWLlwYH3zwwWYhNSJi3333jYEDB8bAgQNjwIABERFRUVERM2bMiMGDB8cf/vCHuPrqq+Ohhx6KcePGxS9+8YvN1vH666/H0KFD449//GPsuuuuMX369IZtrgEJqgAAAA3kqKOOiqVLl0Z5eXlMnTo1+vbd8cOFDzrooOrfx48fH3/729/i5z//efzmN7/Z4te97L777vHlL385IiL222+/+Oc//1n/BhqJoAoAANBACgoKol+/fvHII4/EzJkzaxVU27VrV/372WefHS+//HJ07do1Lrjggi0u37Zt2xp1syyr+8AbmXNUAQAAGlD//v3j7LPPjn333Tc6deq01eVat24d69at22z+hx9+GKWlpXH33XdH27ZtY+LEiVFVldsrDqdGUAUAAJq1isqqnF+hd+N6i9q03u5yn/nMZ+Izn/lMnH766dtc7qtf/WqMHDky9thjjxrzd9ttt/iP//iP6N27d+y8885xyCGHxNq1a2P16tX1Gn/KBFUAAKBZ25EwualFKxZt97tUd2S9WZbF0qVLY/ny5XHiiSduc9mvfvWrMWfOnC3eNmrUqBg1alT1dElJSUREXHfdddXzPn7fYcOGbXdsKRNUAQAAGsisWbOipKQkSkpKoqioKK6//vqYN29eRERUbqiMNq3aRERE165dY9y4cY051KQIqgAAAA2kV69e0atXr+rpkSNHVv++I3ttWypX/QUAACApgioAAABJEVQBAABIiqAKANCMVFRu/t2KW5oHkDIXUwIAaEaK2rSO4sun1ZjXEN8fCU3JhvUV0aqwqFb32ZGLHNVlvewYQRUAAGjWWhUWxdvjBuR8vfuMfiDn68ylL37xi/HGG29s9faysrK47bbb4pprrtnhdc6ePTsWLFgQ3//+93MxxK0SVAEAAFqgRYsWRVlZWa3uc8IJJ8QJJ5zQQCP6N0EVAACggYwYMSKOOOKIOOussyIi4pxzzokf/OAHcfDBB2+27KhRo6KgoCDefPPNWLlyZVx44YXRr1+/mDhxYrz00kuxePHiGDx4cHzjG9+IkpKS+PDDD6Ndu3ZxxRVXxJe//OUoLy+PESNGxOrVq7e4/k1dffXVUV5eHj/+8Y+jV69eMX78+NiwYUPst99+cdlll8WPfvSjWLFiRSxbtix69+4dP/jBD+LBBx+MZ599Nq677ro4/vjj47TTTounnnoq/rXqX3HT+Juia9euOfm7uZgSAABAAxkwYEA8/PDDERGxcOHC+OCDD7YZIt977724995743e/+13ccMMNsWzZsoiIqKioiBkzZsTgwYNj5MiRMWLEiHjooYfiJz/5SVx66aUREfGTn/wk+vfvH9OmTYvDDjtsu2MbM2ZMdO3aNcaOHRsREaWlpfG73/0urr/++vjjH/8Yffr0icmTJ8fDDz8cd999d3zwwQebrWO33XaLKVOmxGn9T4vbb7+91n+fralXUL3lllvi1FNPjd69e8dvfvObzW6/9dZb47jjjou+fftG375946677qpPOQAAgCblqKOOiqVLl0Z5eXlMnTo1+vbd9sXN+vfvH23atIk999wzDjvssHjhhRciIuKggw6KiIhVq1bFggUL4j//8z+jb9++cfnll8fq1avjH//4Rzz77LNxyimnRETEaaedFm3atKnVWD//+c/HLrvsEhER3/rWt+Izn/lM/PrXv45x48ZFZWVlrFmzZrP7HHvssR/dd9/Px4cfflirettS50N/n3322XjmmWfi4YcfjvXr18epp54a3bt3j3322ad6mQULFsRNN90Uhx56aE4GCwAA0JQUFBREv3794pFHHomZM2fGr371q20u37p16+rfN2zYEIWFH0W2du3aVc8rKiqKadP+fXXvJUuWxG677RYREVmWVdctKCio1Vg31oiIuO6666KsrCz69OkTJ554YsybN6963R/Xtm3bj+pF7WptT533qB555JFx5513RmFhYbz//vtRVVUV7du3r7HMggULYtKkSVFcXBxXXXVVrFu3rt4DBgAAaEr69+8f9957b+y5557RqVOnbS776KOPRpZlsXDhwnj55Zfj8MMPr3H7LrvsEnvvvXd1UP3LX/4SgwcPjoiIY445pvow48ceeywqKiq2Wat169axfv36Ld72l7/8Jb71rW/FKaecEosXL4733nsvNmzYsEP95kJBtqVYXAs/+9nP4o477ohevXrFtddeW53aV61aFZdcckmMGTMmOnfuHKNGjYrOnTtXHz+9LeXl5XHCCSdE8bji2HmPnXd4LHNL50aPvXvUtZWk6uglzTp6SbOOXtKso5c06+glzTq5rFHSo2SL36NaMrekyfXS2HX0kmadHanR85M94//s+3+qpzu2/XQUFrXb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iPXr18chhxwSCxYsqLHcxIkTo0OHDjFw4MB48skn4yc/+UnMmDEjioqKtrn+8vLyOOGEE6J4XHHsvMfOOzyuuaVzo8fePWrbTq3lo45e0qyjlzTr6CXNOnpJs45e0qyjlzTr6CXNOnpJs05ta6xcvjKmj54es2fPji5dumy+QLYdM2bMyI499tgaP+ecc0527LHHVi9TWVmZde3adXuryoqLi7PXXnttu8uVlZVl+++/f1ZWVrbdZT9u7H+PrdXydZWPOnpJs45e0qyjlzTr6CXNOnpJs45e0qyjlzTr6CXNOrWtsb3Mt92LKZ1yyilxyimn1JhXWVkZRx11VFRVVUXr1q1j2bJl0bFjx83u+/vf/z769OkTn/rUpzaG4igsrPP1mwAAAGgB6nSOaps2beKII46IGTNmRETE1KlTo1u3bpst99xzz8WUKVMiIuLZZ5+NDRs2xD777FOP4QIAANDc1fmqv2PHjo3JkyfHqaeeGs8//3xccsklERFxzz33xC233BIREaNHj4558+ZFnz594vrrr48bb7wxWrXy1a0AAABsXZ2Pw+3cuXP8/ve/32z+oEGDqn/v1KlT/OY3v6lrCQAAAFoguzcBAABIiqAKAABAUgRVAAAAkiKoAgAAkJQkv9S0qqoqIiKWLFlSq/utXL4yysvLG2JIea+jlzTr6CXNOnpJs45e0qyjlzTr6CXNOnpJs45e0qxT2xobs97G7LepgizLspyMLIeef/75GDx4cGMPAwAAgAZ01113xRFHHLHZ/CSD6tq1a2PBggXRoUOHaN26dWMPBwAAgByqqqqKZcuWRdeuXaNdu3ab3Z5kUAUAAKDlcjElAAAAkiKoAgAAkBRBFQAAgKQIqgAAACRFUAUAACApgioAAABJEVQBAABIiqAKAABAUgobewD18dZbb8WsWbNiyZIl0apVq+jYsWMce+yxceCBBzb20GrliSeeiMWLF0f37t3jc5/7XPX8++67L84666yc1SktLY1PfOIT0alTp7j//vvjjTfeiMMOOyxOPfXUnNXIh5dffjkOOuigiIh4+umn48knn4zCwsI46aST4uCDD85prT//+c9x8MEHx6677hpTp06Nl19+Ob7yla/EgAEDcrL+q6++OoYNGxaf/OQnc7I+AABoDprsHtW77rorLrvssoiIOPDAA+MrX/lKRERcccUVcccddzTm0GplwoQJ8Yc//CFKS0tj4MCBMW3atOrb7r333pzV+e1vfxvf+ta3YuDAgfGf//mf8cgjj8TnP//5eOCBB+LnP/95zups6rrrrsv5OseOHRsRH/0PXHPNNbHnnnvGHnvsEVdeeWX84Q9/yFmdcePGxe233x7r1q2Lm2++OaZPnx777rtvPP7443H11VfnpMbUqVPjzDPPjMceeywn69uWp59+Ov76179GRMQdd9wRF1xwQdx6661RUVGRsxpPPPFEjBo1Kr71rW/FBRdcENdcc011TQCoiyeeeKL69/vvvz+GDRsWl156acyYMaMRRwU0tIIsy7LGHkRd9OzZM6ZOnRqf+MQnasxfs2ZNnH766TFz5syc1Fm0aNE2b99rr73qtf7i4uJ46KGHorCwMEpLS+O8886LESNGxCmnnBL9+vWLqVOn1mv9H68zZcqUWL58efTp0yeeeeaZaNu2bVRUVMQZZ5wRDz/8cL1r/Od//udm8+bMmRPHH398RERce+219a4REXH66afHQw89FH379o3f/va38alPfSoiIlauXBlnnHFGzrb9qaeeGtOnT4/WrVtHv379YvLkyVFUVBRVVVXRp0+fePTRR+tdo1+/fjFhwoQoKSmJdevWxdChQ+P444+Pdu3a5aCDf7vhhhvi+eefj/Xr10eXLl2ioKAg+vfvH3PmzImqqqqcBO/bb789XnrppTj22GNjzpw5ccQRR0S7du3i/vvvj29+85tx5pln5qATWronnngiTjzxxIj46A3rn/70p+ojKpra0SHU3p///OeYOXNmjSOpunXrFj179mzsodXK+vXr46677orFixfHiSeeGEcccUT1bRMnToxhw4blpM68efNil112iS996UsxceLEeOONN+Lwww+P8847L1q3bp2TGlty2WWXxU033ZSz9W183Z84cWI8//zzcc4550SWZXHffffFV77ylbj00ktzUmf9+vUxZcqUOOmkk2KXXXaJX/7yl/HKK6/EV77ylfjud78bbdu2rXeNCy64IEaPHh2f/exnczDirVu/fn1MnTo12rVrFz179oxrr702nnvuuejatWuMHDkydtttt3rX2LBhQ9x5550xe/bsWLZsWbRp0yY+97nPxamnnhq9e/eufxMf47FfO83lsd9kD/0tLCyM9evXbzZ/7dq10aZNm5zV+e53vxulpaXRsWPH2DTTFxQUxOzZs+u1/izLoqCgICIi9t5777j99ttj6NCh8elPf7p6fi5s2LAhioqKonPnznHeeefVeLKtqqrKSY3ddtstpk6dGhdccEHsuuuuERHxzDPPxJFHHpmT9W+0fv362LBhQ+y+++7Rvn376vlFRUXRqlXuDhJo165dvP/++9GxY8fYfffdY/Xq1VFUVBRr1qyJwsLcPHQKCgpi3333jT/84Q8xb968uO+++2LcuHGx9957x5577hk33nhjTur8+c9/jmnTpkVFRUV07949nnrqqWjTpk1069Yt+vbtm5MaM2bMiKlTp0ZBQUEMGDAgzj///LjzzjtjwIABceaZZ+Y0qHrBqr3GeNHK9QtWRMTPf/7zOPHEE7f4hvWNN97IyRvWfLxZjcjPG9Z8vFmNyM8b1ltuuSVefvnlOO2006Jjx44REbF06dKYMmVKvPTSSzFy5Mh613juuee2eftXv/rVeteIiLjyyitjw4YNsf/++8cPf/jDOPPMM+OCCy6IiI8+4M3FY3/8+PHx4osvxsqVK6tfxwYNGhQzZ86Ma665Jq644op614iIOOecczZ7v7JgwYIYMmRIRETceeedOakTEfH444/H/fffX/0Y7NGjR/Tp0ydnQXXj/1DPnj3j+uuvj9WrV8fZZ58dc+fOjR/96Ec5eU2eP39+9RFu55xzTk7fs37cmDFjYvXq1VFRURF/+MMf4qCDDoqf/vSnMXv27LjyyivjZz/7Wb1rXHfddVFZWRnf/va3Y9asWXHAAQfEZz7zmbjzzjujtLQ0Lrroohx04rFfW83psd9kg+oFF1wQ/fr1i6997WvRoUOHiIhYtmxZPPPMMzl7woqIuOeee+Lss8+OsWPHxuGHH56z9W7Uq1evOOecc2LUqFFx0EEHxX777Re33HJLXHzxxTk9JPPkk0+O//t//2/ceeed1Q+C119/PcaMGROnnHJKTmqMHDkyunXrFjfffHNcdtllcdRRR8Xvfve7OP3003Oy/o0+9alPRffu3aOgoCDGjh0b1113XTz99NMxfvz46NWrV87qXHzxxXHGGWdE7969Y5999olzzjknvva1r8VTTz0V3/72t3NS4+MffhxzzDFxzDHHRGVlZbzxxhtRVlaWkxob66xYsSJWr14da9eujZUrV8anPvWpWLt2bVRWVuakxrp162LNmjXRvn37WLt2bXz44YcREdG+ffucfoCQjxesiNju0Qz9+vWrd418vGBF5OdFK59vViMa9g1rPt6sRuTnDWs+3qxG5OcN64wZM+LRRx/d7PmkT58+0adPn5w89n/+85/HSy+9FAcddNAWP5zO1f/xggULqo9k6tevX5x77rnRrl27OPfcczerW1dPPvlkTJ8+PT788MM46aST4tlnn41WrVpFt27dcvL8tVGvXr3il7/8ZVxyySXRuXPnyLIsrrjiirj44otzVmP16tWxfPny2GuvvWL16tXVj/u1a9fm7IPjiIg333wzpk+fHhEfBZdp06ZFQUFBdO/ePWdHbHTq1Cl+9atfxQ033BAnn3xyDBo0KHr37h2dO3fOyfo3evXVV2P69OlRVVUV3bt3rz6dbN99983ZB9TPPPNM9f/xscceG4MHD4577rknunfvHqeddlrOgqrHfu00p8d+kw2qxcXFceSRR8bTTz8dS5cujSzL4ogjjohhw4ZFp06dclZn5513jquvvjruv//+BgmqF198cRx++OGx0047Vc87/PDD48EHH8zpubbf//7347nnnqux56SoqCiGDRsW3bt3z1mdr33ta/GlL30pxo4dG3Pnzs3Z3tqP2/hk8fbbb8e//vWviPiol+HDh0ePHj1yVuf444+P/fbbL5544ol4991345BDDomddtoprrvuuuqLOdXX4MGDN5vXpk2b6Nq1a3Tt2jUnNSIizj///Dj55JMjy7IYMWJEnHfeefG1r30tnn766ZxdGKp///4xaNCg+MY3vhFPPfVU9O/fPxYuXBgXXXRR9OnTJyc1IvLzghXx0QvwrFmztvrhRy6e7PPxghWRnxetfLxgReTnDWs+3qxG5OcNaz7erEbk5w1r27ZtY8mSJZudcrNo0aIoKiqq9/ojIiZNmhRDhgyJb37zm3HCCSfkZJ1bkmVZrF69Otq3bx+f/vSnY9KkSTFo0KDYfffdc3o0VUVFRXzqU5+KkSNHVj9nrlq1aotHpNXV4MGD46ijjoqxY8fGf/zHf0S/fv1ip512yunRVIcddlgMHTo0Fi9eHFdeeWVMnDgxHnvssbj22mvjO9/5Ts7qtG/fPv72t7/FfvvtF5/73Odi8eLFsddee8V7772Xs/+xgoKC2GOPPeKGG26I0tLSmDx5cpx33nmxbt262HPPPXN2fZJWrVrFO++8EytWrIgVK1ZEeXl5dOnSJT744IOcbf+qqqp4//33Y/fdd49ly5bF2rVrIyKisrIypx8geOzXXnN57EcGDWTy5MnZ0KFDG3sY/P/WrFmTrVy5MsuyLHv99dezX/3qV9lTTz2V0xrz5s3LfvWrX2Xz5s3LsizLVq5cmb3++us5rVFcXJwtXLhws/n/+7//m5122mk5rfXd7343u//++3O6zo/r06dPtmrVqurpJUuWZMcdd1z28MMPZ/369ctZnd69e2dr167Nsuyjx+VGK1asyE499dSc1fnb3/6WnX322dlDDz2UZVmW0x42GjVqVNanT5/s8MMPzy6++OIsy7Js1qxZWY8ePbK77747JzXOPPPM7M0338yyLMsuuuii6v+3JUuWZH379s1JjSyr+fd55513suuvvz47+eSTs+7du2dnnXVWTmqcdtpp2dtvv53Nnz8/O+igg7KysrIsy7Ls/fffz+m2P/XUU7Ply5dnWfbR32ljbytXrsx69+6dkxp/+ctfsh49emTnnntuNmLEiGzEiBHZueeem/Xo0SN7+umnc1Ijy7Ls7bffzsaPH5+z9W3Jvffem5188snVz5VZlmV///vfsx49emQHHnhgTmrcdddd2cknn5ytX7++et4LL7yQHXfccdl9992Xkxoft27duuzaa6/Nhg0bltP/rY0ef/zx7He/+132zjvvZFmWZW+88Ub2+uuvZ/fee2/Oarz44ovZ17/+9WzYsGHZD3/4w+zrX/969r3vfS/r3r17Nnfu3JzU2NpzyAcffJDNnz8/JzWyLMv+/Oc/Z927d8+OPfbY7PHHH8969eqVDR8+PDvuuOOqn6Pr64EHHsi6d++eff/738969OiRTZ8+PSstLc26d++eTZkyJSc1smzLj/2hQ4c2m8f+W2+9lZfH/vHHH9/kHvtN9mJKQMs0b968GD16dOy99941DvsvLS2Na6+9No4++uic1Vq6dGlMnz49vvWtb+VsnR933333xR133BElJSXxta99LSI++tqtb3/72/H+++/Hyy+/nJM6d999d/zud7+LGTNmVB9V8eKLL8YPfvCDuOCCC3J6/nBFRUXcdNNNsWjRonjrrbfikUceydm6P27NmjWxfPny+OxnPxtvvvlmZFkWX/ziF3Oy7r/+9a8xbNiwOOyww+ITn/hE/OUvf4mDDz44Xn311fjxj3+cs6NQtnbBvH/84x9RVlaWkyM3nnrqqRgzZkxs2LAhrrzyyrjxxhtj//33j1deeSWGDx+esz3qDz74YNxyyy1x6KGHxvz58+Pyyy+PAw88ML75zW/GsGHDcnbkxiOPPBLvvPNOtG7dOj772c9Gp06d4uCDD46HHnooZ1/nlq+vjJs0aVJUVFREcXFxdZ2VK1fG3XffnbO9hL/97W+jdevW1b0sWbIkVqxYES+++GJOe/n436y8vDz++Mc/xjXXXJOzv9mECRPi1VdfjX322SceffTRGDlyZPURARsvtJQrU6dOjfLy8mjXrl2sX78+9thjj/jGN74RTz75ZE56efLJJ6OysjIv/2NPPPFELFq0KHr06BHt27eP559/Pvbbb794/vnnc1Zn4/9x7969Y++9946KiopYtWpVPPbYYznt5fXXX48VK1bE0qVLo7S0NP7f//t/MXDgwJwe5ZKvr3F85513ol27dvGZz3ymus6BBx4Y//jHP+Lcc8/NWY327dtX9zJ//vzo0qVL9elFufLxv9l9990X8+fPj2984xs5+5sJqkCTs27dunj55ZerD/vf+GY1V4cARTT8Fb83Ki0tjaKiohrrW7lyZUyZMiVnL1gRUX3Y10Yb37Dut99+OavxcX/5y1/ikUceiWuuuSan683Xdlm5cmXMmzcv3n333aiqqqp+s7rnnnvmZP0RH71hzeWpFzti+fLl1W9Wv/CFL+R03e+880688cYbccABB1S/YV29enXOLtj08bAyY8aMGDVqVM7DyoQJE2LBggXxhS98oUEDUT7qNKde8vUNCfn4Hxs/fny8+uqredkuDR3u8/U/9tvf/jZ+//vfx4YNG+Loo4+OxYsXx0knnRRz5syJww47LCenFuSjxvbqHHrooTk5XaaxelmyZEmceOKJua2T0/2zAA1s4cKF2/zJlT59+mRdu3bNjj/++Oy4446r8XP88cfnpEa+eslHHdslzTrNqZc+ffpklZWVWZZ9dKj0cccdl82YMSPLsq0fTplijY11Nh6W1xx6aeg6vXv3rnEY45tvvpl9/etfz5555pmcnmLQ3P7H8tFLQ/8fb6yzdu3arLy8PDvkkEOqT2VZt25dVlxc3GRq5KtOc+qlyV5MCWiZGvorozZq6Ct+R+Svl3zU2VKNgoKC6q/gaurbpSF6aaztkusa+aqT5eHr3PJRY2OdjZpDLw1dJ1/fkNDc/sfy0ctGTf0rFvNRI191mlMv9qgCTcqKFSuy4uLi7Pnnn2/wWvPnz8/GjBnTYOvPVy/5qGO7pFmnOfUyceLEbNCgQTUuOPP8889nRx99dHbYYYc1mRr5qtOcesmyjy7W9/e//73GvEWLFmVXX311zmrYLunVyLIsu/nmm7Ozzz67xl711157LRswYEA2ceLEJlMjX3WaUy+CKtDkNHRQyad89ZKPOrZLmnWaUy/5CCv5qJGvOs2pl3yxXdKrkWVZ9uyzz9aYfuutt3J2JeZ81shXnebSi4spAQAAkJRWjT0AAAAA+DhBFQAAgKQIqgAAACRFUAUAACAp/x/8T7erRTRXEQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_kn = results_kn.head(35)\n", + "results_kn.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 567, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_kn.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 568, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.011010857142857142" + ] + }, + "execution_count": 568, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_kn=np.mean(results_kn.error)\n", + "meanerror_kn" + ] + }, + { + "cell_type": "code", + "execution_count": 569, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.62584
10.67650
20.71324
30.79172
40.54562
......
650.79428
660.60598
671.48028
680.73740
690.71318
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.62584\n", + "1 0.67650\n", + "2 0.71324\n", + "3 0.79172\n", + "4 0.54562\n", + ".. ...\n", + "65 0.79428\n", + "66 0.60598\n", + "67 1.48028\n", + "68 0.73740\n", + "69 0.71318\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 569, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 570, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/kn.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline xgb" + ] + }, + { + "cell_type": "code", + "execution_count": 571, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9999916674769973\n", + "Adjusted R^2: 0.9999913886936999\n", + "MAE: 0.0010687737832359861\n", + "MSE: 2.2871364923928635e-06\n", + "RMSE: 0.001512328169542862\n" + ] + } + ], + "source": [ + "pred = pipeline_xgb.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 572, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29151.2910560.000444
10.65190.6486070.003293
20.83600.836601-0.000601
30.70930.709783-0.000483
40.56640.567276-0.000876
50.33810.3380060.000094
60.79950.7990580.000442
70.40670.407544-0.000844
81.01281.013486-0.000686
90.30340.3031990.000201
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 1.291056 0.000444\n", + "1 0.6519 0.648607 0.003293\n", + "2 0.8360 0.836601 -0.000601\n", + "3 0.7093 0.709783 -0.000483\n", + "4 0.5664 0.567276 -0.000876\n", + "5 0.3381 0.338006 0.000094\n", + "6 0.7995 0.799058 0.000442\n", + "7 0.4067 0.407544 -0.000844\n", + "8 1.0128 1.013486 -0.000686\n", + "9 0.3034 0.303199 0.000201" + ] + }, + "execution_count": 572, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_xgb = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_xgb.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 573, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6QAAAJDCAYAAAAcidlTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABBvElEQVR4nO3de3RU9b03/k8EQsTL0aqgQvuz3o5tEe/XVgFvQSGC4LEgj1S0tloFRUuhBSXHilDBW7Wny2JttaKIoGAqggqHnipyrKggPl5aNT4JoIDWlltICPv3h4upETEJTGYP4fVaK2tlZu/s9/ebyQzzZu/ZuyBJkiQAAAAgx3ZKewAAAADsmBRSAAAAUqGQAgAAkAqFFAAAgFS0TDO8qqoqFi9eHPvss0+0aNEizaEAAACQZbW1tbFixYro2LFjFBUVbbY81UK6ePHi6N+/f5pDAAAAoIlNnDgxjj322M3uT7WQ7rPPPhHx6eD23XffBv/cHfPviGtOvKaJRpW7jFzlmEt+5phLfuaYS37mmEt+5jSnueQqx1zyM8dc8jPHXPIzp7EZH3zwQfTv3z/T/T4v1UK66TDdfffdNzp06NDgn9t1710btf7WyEVGrnLMJT9zzCU/c8wlP3PMJT9zmtNccpVjLvmZYy75mWMu+ZmztRlb+oimkxoBAACQCoUUAACAVCikAAAApCLVz5ACAABsjZqamqisrIyqqqpt2k7xvxXHG2+8kaVRpZeRq5wtZRQVFUWHDh2iVatWjdqeQgoAAGx3KisrY7fddosDDjggCgoKtno7S1ctjf132z+LI0snI1c5X5SRJEl89NFHUVlZGV//+tcbtT2H7AIAANudqqqq2GuvvbapjJIdBQUFsddee23V3mqFFAAA2C4po/ljax8LhRQAAIBUKKQAAECzUF1T2+ifachnLrdmu19mzpw58bvf/a5RP3PnnXfG7NmzszqOfOCkRgAAQLNQ2KpFlFw3PevbLbu1Z1a39/rrrzf6Z66++uqsjiFfKKQAAADbaOjQoXHsscfGd7/73YiIuOiii+LHP/5xHHHEEXXW+9vf/haTJk2KiIj9998/li5dGq+++mosW7Ys+vfvH4ccckjcfvvtUVVVFf/4xz9i6NChcfbZZ8fw4cPj+OOPj+OPPz6uuuqqOOSQQ+KNN96IvfbaK+68887YY489cj3lrHDILgAAwDbq06dPPPHEExERsWTJkvj44483K6MREQcffHD07ds3+vbtG3369ImIiOrq6pgxY0b0798/Hnzwwbjpppvi8ccfj9GjR8d//dd/bbaNN998MwYOHBh//OMfY/fdd4+ysrKmnVwTUkgBAAC20QknnBDLly+PysrKmDZtWvTs2fDDfDt16pT5fty4cfHXv/41fvWrX8Xvfve7WLNmzWbr77XXXvHNb34zIiIOOeSQ+Mc//rHtE0iJQgoAALCNCgoKolevXvHkk0/GzJkzG1VIi4qKMt9feOGFsWjRoujYsWNcfvnlX7h+69at6+QmSbL1A0+Zz5ACAABkQe/evePCCy+Mgw8+ONq1a7fF9Vq0aBHr16/f7P5PPvkkysvL46GHHorWrVvHXXfdFbW12T3Db75RSAEAgGahuqY262fE3bTdwlYt6l1vv/32i/322y/OO++8L13vuOOOi2HDhsXee+9d5/499tgj/uM//iO6d+8eu+66axx55JFRVVUVa9eu3abx5zOFFAAAaBYaUho/b+mqpfVei7Qh202SJJYvXx4rV66MM84440vXPe6442LOnDlfuGz48OExfPjwzO3S0tKIiBg7dmzmvs/+7KBBg+odWz5TSAEAALbRrFmzorS0NEpLS6OwsDB+8YtfxLx58yIiomZjTbTaqVVERHTs2DFGjx6d5lDzikIKAACwjbp16xbdunXL3B42bFjm+4bshd1ROcsuAAAAqVBIAQAASIVCCgAAQCoUUgCA7VB1Td1rE26sqc58X9ql9NP7NlQHQD5zUiMAgO1QYasWUXLd9Mztslt7xruj+9RZ58ARU3M9LEjVxg3VsVPLwkb9TENONrQ126VhFFIAAKBZ2Kll4Wb/MZMN+f6fO//+7/8eb7311haXV1RUxK9//eu4+eabG7zN2bNnx+LFi+Pqq6/OxhC3SCEFAABoxpYuXRoVFRWN+pnTTz89Tj/99CYa0b8opAAAANto6NChceyxx8Z3v/vdiIi46KKL4sc//nEcccQRm607fPjwKCgoiLfffjtWr14dV1xxRfTq1SvuuuuuePXVV2PZsmXRv3//+M53vhOlpaXxySefRFFRUVx//fXxzW9+MyorK2Po0KGxdu3aL9z+5910001RWVkZ//mf/xndunWLcePGxcaNG+OQQw6Ja6+9Nn72s5/FqlWrYsWKFdG9e/f48Y9/HI899li8+OKLMXbs2DjttNPi3HPPjeeeey7+ueafcdu426Jjx45Z+b05qREAAMA26tOnTzzxxBMREbFkyZL4+OOPv7QsfvjhhzFp0qS4//7745ZbbokVK1ZERER1dXXMmDEj+vfvH8OGDYuhQ4fG448/Hj//+c9jyJAhERHx85//PHr37h3Tp0+Po48+ut6xjRw5Mjp27BijRo2KiIjy8vK4//774xe/+EX88Y9/jB49esTkyZPjiSeeiIceeig+/vjjzbaxxx57xJQpU+Lc3ufGPffc0+jfz5YopAAAANvohBNOiOXLl0dlZWVMmzYtevbs+aXr9+7dO1q1ahX77rtvHH300bFgwYKIiOjUqVNERKxZsyYWL14cP/3pT6Nnz55x3XXXxdq1a+Pvf/97vPjii3H22WdHRMS5554brVq1atRYv/71r8duu+0WERGXXnpp7LfffvHb3/42Ro8eHTU1NbFu3brNfuaUU0759GcP/np88sknjcr7Mg06ZPfOO++MWbNmRUFBQZx//vkxcODAOsvvvvvumDp1auy+++4REXHBBRdE//79szZIAACAfFZQUBC9evWKJ598MmbOnBn33nvvl67fokWLzPcbN26Mli0/rWZFRUWZ+woLC2P69H+dTfuDDz6IPfbYIyIikiTJ5BYUFDRqrJsyIiLGjh0bFRUV0aNHjzjjjDNi3rx5mW1/VuvWrT/Ni8Zl1afePaQvvvhizJ8/P5544omYOnVq/OEPf4h33323zjqLFy+O2267LaZPnx7Tp09XRgEAgB1O7969Y9KkSbHvvvtGu3btvnTdp556KpIkiSVLlsSiRYvimGOOqbN8t912iwMOOCBTSJ9//vlMzzr55JMzhwc//fTTUV395dccbtGiRWzYsOELlz3//PNx6aWXxtlnnx3Lli2LDz/8MDZu3Nig+WZDvXtIjz/++HjggQeiZcuW8eGHH0ZtbW20adOmzjqLFy+OCRMmREVFRRx33HExbNiwTIMGAADIhY0bqpvkEi0NvQ7pfvvtF/vtt1+cd9559a5bVVUVffr0ierq6rjxxhtjzz333GydcePGRWlpadx7773RqlWruP3226OgoCBuuOGGGDp0aEyaNCkOP/zw2GWXXb4066CDDopVq1bF0KFD4/zzz6+z7Ic//GH85Cc/id133z322muv6NixY1RWVtY7/mwpSL5of+wX+OUvfxn33XdfdOvWLcaMGZPZLbxmzZq45pprYuTIkdG+ffsYPnx4tG/fPvOB2y9TWVkZp59+epSMLold9961wYOeWz43uhzQpcHrb41cZOQqx1zyM8dc8jPHXPIzx1zyM6c5zSVXOdnMKO1SGiXX/etQvrJbe252/cUDR0yN0rmlWcn7PI9LfubsSHMp/rfi+P8O/v+2OWfV+lWxW+vdtnk7SZLERys/imt+cE3c98h9UVj4rwL7+YyxpWPjyGOOjG4l3bY597OyNZetzXj/b+/HrH/MqnPf6pWro2xEWcyePTs6dOiw+Q8ljbB27dpkwIAByaRJk7a4zuuvv5707NmzQdurqKhIDj300KSioqIxw0hG/feoRq2/NXKRkascc8nPHHPJzxxzyc8cc8nPnOY0l1zlZDujx7XTMl9JkiTv3NS7zldT8rjkZ86ONJf/+3//b1ZylvxzSVa289RTTyUnnHBC8tRTTyVJkiRjx45Nzj333OTcc89Nzu5xdub7n/3sZ8mwYcOSqVOnZiV3kyeffLJOzme/sunLfl9f9JjU1/nqPWT3nXfeierq6vjGN74RO++8c5x11lnx1ltvZZYvXbo05s2bl9n1myRJ5gO5AAAAO4Ju3bpFt27/2uM5bNiwzPdLVy2N/Xfbv0nzzznnnDjylCObPCfb6j2pUWVlZYwcOTKqq6ujuro6Zs+eXecDt0VFRTFu3LioqKiIJEli4sSJceaZZzbpoAEAANj+1bsrs3PnzrFw4cLo1atXtGjRIs4666zo3r17XHbZZTF48OA4/PDD48Ybb4wrrrgiampq4uijj97ssjAAAADweQ06tnbw4MExePDgOvdNmDAh831xcXEUFxdnd2QAAAA0a/UesgsAAABNQSEFAACaheramkb/TENOArQ126VhnA4XAABoFgpbtIoLHrki69ud/N1fZ32bfEohBQAAyILf/OY38dRTT0VtbW185zvfiX79+sVll10Wu+y+S+zWZrc499xz4/HHH49PPvkkunbtGgMGDIgRI0bE0qVLo2XLljFkyJA49dRT46677opXX301li1bFv3794/+/funPbUmo5ACAABso//5n/+JxYsXx5QpU6KgoCCGDh0aZWVl8d5778XDTzwcR//70fHYY4/Fhx9+GDNmzIiWLVvG1VdfHSeeeGIMHDgw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HlIAAABoCgopAAAAqVBIAQAASIVCCgAAQCoUUgAAAFKhkAIAAJAKhRQAAIBUKKQAAACkQiEFAAAgFQopAAAAqVBIAQAASIVCCgAAQCoUUgAAAFKhkAIAAJAKhRQAAIBUKKQAAACkQiEFAAAgFQopAAAAqWiZZnhtbW1ERHzwwQeN+rnVK1dHZWVlUwwppxm5yjGX/Mwxl/zMMZf8zDGX/MxpTnPJVY655GeOueRnjrnkZ05jMzZ1vU3d7/MKkiRJsjKyrfDSSy9F//7904oHAAAgByZOnBjHHnvsZvenWkirqqpi8eLFsc8++0SLFi3SGgYAAABNoLa2NlasWBEdO3aMoqKizZanWkgBAADYcTmpEQAAAKlQSAEAAEiFQgoAAEAqFFIAAABSoZACAACQCoUUAACAVCikAAAApEIhBQAAIBUt0x5Afd55552YNWtWfPDBB7HTTjtF27Zt45RTTonDDz887aE12rPPPhvLli2Lzp07x9e+9rXM/Y888kh897vfzVpOeXl57LzzztGuXbt49NFH46233oqjjz46zjnnnKxl5MKiRYuiU6dOERHxwgsvxJ/+9Kdo2bJlnHnmmXHEEUdkLefPf/5zHHHEEbH77rvHtGnTYtGiRfGtb30r+vTpk7WMm266KQYNGhT/9m//lrVtAgDA9i6v95BOnDgxrr322oiIOPzww+Nb3/pWRERcf/31cd9996U5tEYbP358PPjgg1FeXh59+/aN6dOnZ5ZNmjQpazm///3v49JLL42+ffvGT3/603jyySfj61//ekydOjV+9atfZS3n88aOHZv1bY4aNSoiPv07uPnmm2PfffeNvffeO2644YZ48MEHs5IxevTouOeee2L9+vVxxx13RFlZWRx88MHxzDPPxE033ZSVjIiIadOmxQUXXBBPP/101rb5RV544YV45ZVXIiLivvvui8svvzzuvvvuqK6uzmrOs88+G8OHD49LL700Lr/88rj55pszuQCwNZ599tnM948++mgMGjQohgwZEjNmzEhxVEBTK0iSJEl7EFtSXFwc06ZNi5133rnO/evWrYvzzjsvZs6cmbWspUuXfuny/ffff5u2X1JSEo8//ni0bNkyysvL45JLLomhQ4fG2WefHb169Ypp06Zt0/Y/mzNlypRYuXJl9OjRI+bPnx+tW7eO6urqOP/88+OJJ57Y5oyf/vSnm903Z86cOO200yIiYsyYMducERFx3nnnxeOPPx49e/aM3//+97HnnntGRMTq1avj/PPPz8rjf84550RZWVm0aNEievXqFZMnT47CwsKora2NHj16xFNPPbXNGRERvXr1ivHjx0dpaWmsX78+Bg4cGKeddloUFRVlZfsREbfccku89NJLsWHDhujQoUMUFBRE7969Y86cOVFbW5u1gn3PPffEq6++GqecckrMmTMnjj322CgqKopHH300vve978UFF1yQlRx2bM8++2ycccYZEfHpG9P/+Z//yRwhsb0d7UHj/PnPf46ZM2fWOTLq1FNPjeLi4rSH1igbNmyIiRMnxrJly+KMM86IY489NrPsrrvuikGDBmUta968ebHbbrvFN77xjbjrrrvirbfeimOOOSYuueSSaNGiRdZyPuvaa6+N2267Lavb3PTv/l133RUvvfRSXHTRRZEkSTzyyCPxrW99K4YMGbLNGRs2bIgpU6bEmWeeGbvttlv85je/iddeey2+9a1vxQ9/+MNo3bp1FmYScfnll8eIESPiq1/9ala290U2bNgQ06ZNi6KioiguLo4xY8bEX/7yl+jYsWMMGzYs9thjj6zkbNy4MR544IGYPXt2rFixIlq1ahVf+9rX4pxzzonu3btnJWMTz//GSeO5H5H9539eH7LbsmXL2LBhw2b3V1VVRatWrbKa9cMf/jDKy8ujbdu28fmOXlBQELNnz96m7SdJEgUFBRERccABB8Q999wTAwcOjK985SuZ+7Nh48aNUVhYGO3bt49LLrmkzgtrbW1tVjL22GOPmDZtWlx++eWx++67R0TE/Pnz4/jjj8/K9jfZsGFDbNy4Mfbaa69o06ZN5v7CwsLYaafs7NwvKiqKjz76KNq2bRt77bVXrF27NgoLC2PdunXRsmX2nh4FBQVx8MEHx4MPPhjz5s2LRx55JEaPHh0HHHBA7LvvvnHrrbduc8af//znmD59elRXV0fnzp3jueeei1atWsWpp54aPXv2zMIsPjVjxoyYNm1aFBQURJ8+feKyyy6LBx54IPr06RMXXHBBVgupf5gar7m8Mf3Vr34VZ5xxxhe+MX3rrbe8Mf2c5vLG9M4774xFixbFueeeG23bto2IiOXLl8eUKVPi1VdfjWHDhm1zRkTEX/7yly9dftxxx21zxg033BAbN26MQw89NH7yk5/EBRdcEJdffnlEfPqfuNl63o8bNy5efvnlWL16debfsn79+sXMmTPj5ptvjuuvv36bMy666KLN3qssXrw4BgwYEBERDzzwwDZnfNYzzzwTjz76aOY52KVLl+jRo0dWnveb/oaKi4vjF7/4RaxduzYuvPDCmDt3bvzsZz/Lyr/HERELFy7MHLF20UUXZf19a0TEyJEjY+3atVFdXR0PPvhgdOrUKW6//faYPXt23HDDDfHLX/4yKzljx46Nmpqa+P73vx+zZs2Kww47LPbbb7944IEHory8PK688sqs5OTi+Z+L535Ebp7/uXjuR+Tm+Z/XhfTyyy+PXr16xUknnRT77LNPRESsWLEi5s+fn5UXpc96+OGH48ILL4xRo0bFMccck9VtR0R069YtLrroohg+fHh06tQpDjnkkLjzzjvjqquuyurhlGeddVb8n//zf+KBBx7I/LG/+eabMXLkyDj77LOzkjFs2LA49dRT44477ohrr702TjjhhLj//vvjvPPOy8r2N9lzzz2jc+fOUVBQEKNGjYqxY8fGCy+8EOPGjYtu3bplJeOqq66K888/P7p37x4HHnhgXHTRRXHSSSfFc889F9///vezkhERdf6T4+STT46TTz45ampq4q233oqKioqsZaxatSrWrl0bVVVVsXr16thzzz2jqqoqampqspIREbF+/fpYt25dtGnTJqqqquKTTz6JiIg2bdpk7T8KInL3xrS+oxN69eq1zRnemG49b0wbprm8MZ0xY0Y89dRTm72W9OjRI3r06JG15/2vfvWrePXVV6NTp05f+J/Q2fg7Xrx4ceaopF69esXFF18cRUVFcfHFF2+WuS3+9Kc/RVlZWXzyySdx5plnxosvvhg77bRTnHrqqVl5/Yr49D3Mb37zm7jmmmuiffv2kSRJXH/99XHVVVdlZfubrF27NlauXBn7779/rF27NvO8r6qqytp/Er/99ttRVlYWEZ+Wk+nTp0dBQUF07tw5q0dftGvXLu6999645ZZb4qyzzop+/fpF9+7do3379lnLeP3116OsrCxqa2ujc+fOmY+AHXzwwVn9j+j58+dn/pZPOeWU6N+/fzz88MPRuXPnOPfcc7NWSHPx/M/Fcz8iN8//XDz3I3Lz/M/rQlpSUhLHH398vPDCC7F8+fJIkiSOPfbYGDRoULRr1y6rWbvuumvcdNNN8eijjzZJIb3qqqvimGOOiV122SVz3zHHHBOPPfZYVj8Pe/XVV8df/vKXOntCCgsLY9CgQdG5c+es5Zx00knxjW98I0aNGhVz587N2t7Xz9r0ovDuu+/GP//5z4j4dC6DBw+OLl26ZCXjtNNOi0MOOSSeffbZeP/99+PII4+MXXbZJcaOHZs5oVI29O/ff7P7WrVqFR07doyOHTtmJeOyyy6Ls846K5IkiaFDh8Yll1wSJ510UrzwwgtZPUFT7969o1+/fvGd73wnnnvuuejdu3csWbIkrrzyyujRo0fWcnL1xnT+/Pkxa9asLf4nRzZe1L0xbTxvTBunubwxbd26dXzwwQebfUxm6dKlUVhYuE3b/qwJEybEgAED4nvf+16cfvrpWdvuZyVJEmvXro02bdrEV77ylZgwYUL069cv9tprr6weGRURUV1dHXvuuWcMGzYs85q5Zs2aLzzKbGv0798/TjjhhBg1alT8x3/8R/Tq1St22WWXrB8ZdfTRR8fAgQNj2bJlccMNN8Rdd90VTz/9dIwZMyZ+8IMfZCWjTZs28de//jUOOeSQ+NrXvhbLli2L/fffPz788MOs/o0VFBTE3nvvHbfcckuUl5fH5MmT45JLLon169fHvvvum5Xzh+y0007x3nvvxapVq2LVqlVRWVkZHTp0iI8//jhrj33Ep0fYffTRR7HXXnvFihUroqqqKiIiampqsno0WS6e/7l47kfk7vnf1M/9iBw9/xPYRpMnT04GDhyY9jBIkmTdunXJ6tWrkyRJkjfffDO59957k+eeey7rOfPmzUvuvffeZN68eUmSJMnq1auTN998M6sZJSUlyZIlSza7///9v/+XnHvuuVnN+uEPf5g8+uijWd3mZ/Xo0SNZs2ZN5vYHH3yQdO3aNXniiSeSXr16ZS2ne/fuSVVVVZIknz4vN1m1alVyzjnnZC3nr3/9a3LhhRcmjz/+eJIkSVbnsMnw4cOTHj16JMccc0xy1VVXJUmSJLNmzUq6dOmSPPTQQ1nJuOCCC5K33347SZIkufLKKzN/bx988EHSs2fPrGQkSd3fz3vvvZf84he/SM4666ykc+fOyXe/+92sZJx77rnJu+++myxcuDDp1KlTUlFRkSRJknz00UdZfezPOeecZOXKlUmSfPp72jS31atXJ927d9/m7T///PNJly5dkosvvjgZOnRoMnTo0OTiiy9OunTpkrzwwgvbvP3Pevfdd5Nx48ZldZufNWnSpOSss87KvE4mSZL87W9/S7p06ZIcfvjhWcuZOHFictZZZyUbNmzI3LdgwYKka9euySOPPJK1nCRJkvXr1ydjxoxJBg0alNW/q8965plnkvvvvz957733kiRJkrfeeit58803k0mTJmVl+y+//HLy7W9/Oxk0aFDyk5/8JPn2t7+d/OhHP0o6d+6czJ07NysZSZJs8TXk448/ThYuXJiVjD//+c9J586dk1NOOSV55plnkm7duiWDBw9Ounbtmnl9zoapU6cmnTt3Tq6++uqkS5cuSVlZWVJeXp507tw5mTJlStZyvuj5P3DgwKw//5v6uZ8kX/z8f+edd7L6/N/Sc/+0007L+nM/SZr2+Z/XJzUCdlzz5s2LESNGxAEHHFDnkP3y8vIYM2ZMnHjiiVnLWr58eZSVlcWll16atW1+1iOPPBL33XdflJaWxkknnRQRn17S6vvf/3589NFHsWjRoqzkPPTQQ3H//ffHjBkzMkdJvPzyy/HjH/84Lr/88qx+vre6ujpuu+22WLp0abzzzjvx5JNPZm3bn7Vu3bpYuXJlfPWrX4233347kiSJf//3f8/Ktl955ZUYNGhQHH300bHzzjvH888/H0cccUS8/vrr8Z//+Z9ZO6pkSyeu+/vf/x4VFRVZORrjueeei5EjR8bGjRvjhhtuiFtvvTUOPfTQeO2112Lw4MFZ20P+2GOPxZ133hlHHXVULFy4MK677ro4/PDD43vf+14MGjQoK0djPPnkk/Hee+9FixYt4qtf/Wq0a9cujjjiiHj88cezeom0XFyKbcKECVFdXR0lJSWZjNWrV8dDDz2UtT1+EZ+eYb9FixaZuXzwwQexatWqePnll7M2l8/+viorK+OPf/xj3HzzzVn9fY0fPz5ef/31OPDAA+Opp56KYcOGZfbwbzrhUTZMmzYtKisro6ioKDZs2BB77713fOc734k//elPWZvLn/70p6ipqWnyv7Fnn302li5dGl26dIk2bdrESy+9FIcccki89NJLWX2+bPpb7t69exxwwAFRXV0da9asiaeffjqrOW+++WasWrUqli9fHuXl5fG///u/0bdv36wetZKryyO+9957UVRUFPvtt18m5/DDD4+///3vcfHFF2cto02bNpm5LFy4MDp06JD5WFC2fPZ39sgjj8TChQvjO9/5TtZ+ZwopkLfWr18fixYtyhyyv+mNaTYPq2rqM2xvUl5eHoWFhXW2t3r16pgyZUrW/mGKiMwhW5tsemN6yCGHZC3js55//vl48skn4+abb87qdnP1uKxevTrmzZsX77//ftTW1mbemO67775Z2X7Ep29Ms/mRiYZYuXJl5o3pQQcdlNVtv/fee/HWW2/FYYcdlnljunbt2qycOOmzhWTGjBkxfPjwJikk48ePj8WLF8dBBx3UZMUnFxm5ysnVXHJxRYJc/Y2NGzcuXn/99SZ/XHJR4HP1+P/+97+PP/zhD7Fx48Y48cQTY9myZXHmmWfGnDlz4uijj87KZ1VzkVFfzlFHHZWVj7mkNZcPPvggzjjjjOzmZHV/K0CWLFmy5Eu/sqVHjx5Jx44dk9NOOy3p2rVrna/TTjstKxm5mksucjwu+ZnTXObSo0ePpKamJkmSTw9v7tq1azJjxowkSbZ8CGS+5vTo0SNzKF1zmEsuHpfu3bvXOfzw7bffTr797W8n8+fPz9pHA5rb31iu5pKrv+WqqqqksrIyOfLIIzMfQVm/fn1SUlKy3WTkKqc5zSWvT2oE7Lia+lJMmzT1GbYjcjeXXOR8UUZBQUHm0lbb++PSFHNJ63HJdkYucpIcXSItFzmf/f00h7nk4nHJxRUJmtvfWK7mssn2funCXGTkKqc5zcUeUiAvrVq1KikpKUleeumlJs9auHBhMnLkyCbbfq7mkoscj0t+5jSXudx1111Jv3796pz05aWXXkpOPPHE5Oijj96ucsxl68ybNy/529/+Vue+pUuXJjfddFNWtu9xyd+cO+64I7nwwgvr7CV/4403kj59+iR33XXXdpORq5zmNBeFFMhbTV1IcilXc8lFjsclP3Oay1yaupDkMsdc8pPHJX9zXnzxxTq333nnnaye/ThXGbnKaS5zcVIjAAAAUrFT/asAAABA9imkAAAApEIhBQAAIBUKKQAAAKn4/wE/XTQOTTQ34QAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_xgb = results_xgb.head(35)\n", + "results_xgb.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 574, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_xgb.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 575, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.0002484967735835318" + ] + }, + "execution_count": 575, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_xgb=np.mean(results_xgb.error)\n", + "meanerror_xgb" + ] + }, + { + "cell_type": "code", + "execution_count": 576, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.658282
10.562751
21.115470
30.695167
40.526078
......
650.746965
660.647061
671.791030
680.770550
690.816548
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.658282\n", + "1 0.562751\n", + "2 1.115470\n", + "3 0.695167\n", + "4 0.526078\n", + ".. ...\n", + "65 0.746965\n", + "66 0.647061\n", + "67 1.791030\n", + "68 0.770550\n", + "69 0.816548\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 576, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 577, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/xgb.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline lr" + ] + }, + { + "cell_type": "code", + "execution_count": 578, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9925376978865574\n", + "Adjusted R^2: 0.9922880297861076\n", + "MAE: 0.02837607364261138\n", + "MSE: 0.0020482755913549078\n", + "RMSE: 0.04525787877657224\n" + ] + } + ], + "source": [ + "pred = pipeline_lr.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 579, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29151.362385-0.070885
10.65190.657699-0.005799
20.83600.8233900.012610
30.70930.6746660.034634
40.56640.5596960.006704
50.33810.519135-0.181035
60.79950.830816-0.031316
70.40670.3812560.025444
81.01281.0048100.007990
90.30340.2264870.076913
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 1.362385 -0.070885\n", + "1 0.6519 0.657699 -0.005799\n", + "2 0.8360 0.823390 0.012610\n", + "3 0.7093 0.674666 0.034634\n", + "4 0.5664 0.559696 0.006704\n", + "5 0.3381 0.519135 -0.181035\n", + "6 0.7995 0.830816 -0.031316\n", + "7 0.4067 0.381256 0.025444\n", + "8 1.0128 1.004810 0.007990\n", + "9 0.3034 0.226487 0.076913" + ] + }, + "execution_count": 579, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_lr = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_lr.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 580, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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nHvuufH000/Hvzf8O+6YfEd06dIlKz83gxoBAAA00eDBg+ORRx6JiIjly5fHBx988Klh8b333ovp06fH7373u7j11ltjzZo1ERFRVVUV8+fPj2HDhsXYsWNjzJgxMXv27Pjxj38co0ePjoiIH//4xzFo0KCYO3dudO/evd62TZgwIbp06RITJ06MiIiysrL43e9+F7fcckv88Y9/jH79+sWMGTPikUceifvvvz8++OCDOtvYb7/9YubMmXHuoHPj7rvvbvTP55MIpAAAAE100kknxerVq6OioiLmzJkTAwYM+NT1Bw0aFK1bt46DDjoounfvHi+88EJERBx99NEREbFhw4ZYtmxZ/OAHP4gBAwbENddcExs3box//vOf8dxzz8XZZ58dERHnnntutG7dulFt/fznPx/77LNPRER84xvfiIMPPjh+/etfx6RJk6K6ujo++uijOt9z6qmnfvy9R3w+Pvzww0bV+zQu2QUAAGiigoKCGDhwYDz66KPx+OOPxz333POp67dq1SrzesuWLVFY+HE0Ky4uzswrKiqKuXPnZtZbtWpV7LfffhERkSRJpm5BQUGj2rq1RkTEzTffHOXl5dGvX78444wzYsmSJZltb6tNmzYf14vG1aqPM6QAAABZMGjQoJg+fXocdNBB0aFDh09d97HHHoskSWL58uXxyiuvxHHHHVdr+T777BOHHnpoJpD+5S9/iWHDhkVExCmnnJK5PPiJJ56IqqpPf+Zwq1atYvPmzTtc9pe//CW+8Y1vxNlnnx0rV66M9957L7Zs2dKg/maDM6QAAECLsGVzVbM8oqWhzyE9+OCD4+CDD47zzjuv3nUrKytj8ODBUVVVFddff33sv//+ddaZPHlylJaWxj333BOtW7eOn/zkJ1FQUBDXXXddjBkzJqZPnx5du3aNvfba61NrHX744bFu3boYM2ZMnH/++bWWffvb347vf//7se+++0a7du2iS5cuUVFRUW/7s0UgBQAAWoSGhMbtrVi3Ig7Z55AmbzdJkli9enWsXbs2zjjjjHrX79OnTwwaNKjWvJEjR9aaPvzww+P3v/99ne/t0KFD3HfffZnp+p4vuv/++8cf//jHzPRJJ52Ued2vX7/o16/fDr9va/sWLVqUmdft+G5xTu9zPrVeYwikAAAATbRgwYIoLS2N0tLSKCoqiltuuSWWLFkSERHV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rrF58+aYOXNmnHnmmbHPPvvEr371q/jb3/4WX/rSl+Lb3/52tGnTJgs9ibjsssti/Pjx8dnPfjYr29uRzZs3x5w5c6K4uDhKSkripptuir/+9a/RpUuXGDt2bOy3335ZqbNly5a47777YuHChbFmzZpo3bp1fO5zn4tzzjkn+vbtm5UaWzn+GyeNYz8i+8d/Xl+yW1hYGJs3b64zv7KyMlq3bp3VWt/+9rejrKws2rdvH9tn9IKCgli4cGGTtp8kSRQUFERExKGHHhp33313jBgxIj7zmc9k5mfDli1boqioKDp27BiXXHJJrT+sNTU1Wamx3377xZw5c+Kyyy6LfffdNyIinn322TjxxBOzsv2tNm/eHFu2bIl27dpF27ZtM/OLiopijz2yc3K/uLg43n///Wjfvn20a9cuNm7cGEVFRfHRRx9FYWH2Do+CgoI44ogj4g9/+EMsWbIkHnzwwZg0aVIceuihcdBBB8Xtt9/e5Bp//vOfY+7cuVFVVRU9e/aMp59+Olq3bh09evSIAQMGZKEXH5s/f37MmTMnCgoKYvDgwXHppZfGfffdF4MHD44LLrggq4HUP6bGaylvTH/+85/HGWecscM3pm+88YY3pttpKW9M77zzznjllVfi3HPPjfbt20dExOrVq2PmzJnx8ssvx9ixY5tcIyLir3/966cuP+GEE5pc47rrrostW7bEkUceGd///vfjggsuiMsuuywiPv4QN1vH/eTJk+PFF1+M9evXZ/6XDR06NB5//PG48cYb49prr21yjYsuuqjOe5Vly5bF8OHDIyLivvvua3KNbT355JPx0EMPZY7BXr16Rb9+/bJy3G/9HSopKYlbbrklNm7cGBdeeGEsXrw4fvjDH2bl/3FExNKlSzNXrF100UVZf98aETFhwoTYuHFjVFVVxR/+8Ic4+uij4yc/+UksXLgwrrvuuvjZz36WlTo333xzVFdXxze/+c1YsGBBHHXUUXHwwQfHfffdF2VlZXHFFVdkpU4ujv9cHPsRuTn+c3HsR+Tm+M/rQHrZZZfFwIED48tf/nIceOCBERGxZs2aePbZZ7PyR2lbDzzwQFx44YUxceLEOO6447K67YiIPn36xEUXXRTjxo2Lo48+Ojp37hx33nlnXHnllVm9nPKss86K//W//lfcd999mV/2119/PSZMmBBnn312VmqMHTs2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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_lr = results_lr.head(35)\n", + "results_lr.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 581, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_lr.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 582, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.017118101693194786" + ] + }, + "execution_count": 582, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_lr=np.mean(results_lr.error)\n", + "meanerror_lr" + ] + }, + { + "cell_type": "code", + "execution_count": 583, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.644653
10.554524
21.231013
30.662338
40.512779
......
650.773317
660.670450
671.802453
680.725688
690.809162
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.644653\n", + "1 0.554524\n", + "2 1.231013\n", + "3 0.662338\n", + "4 0.512779\n", + ".. ...\n", + "65 0.773317\n", + "66 0.670450\n", + "67 1.802453\n", + "68 0.725688\n", + "69 0.809162\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 583, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 584, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/lr.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline kn" + ] + }, + { + "cell_type": "code", + "execution_count": 585, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.8836213486911326\n", + "Adjusted R^2: 0.8797276391677876\n", + "MAE: 0.11585992831541216\n", + "MSE: 0.031943969462365586\n", + "RMSE: 0.17872875947190364\n" + ] + } + ], + "source": [ + "pred = pipeline_kn.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 586, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29150.959760.33174
10.65190.650380.00152
20.83600.84794-0.01194
30.70930.424640.28466
40.56640.61854-0.05214
50.33810.72774-0.38964
60.79950.706480.09302
70.40670.47320-0.06650
81.01281.15570-0.14290
90.30340.42464-0.12124
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 0.95976 0.33174\n", + "1 0.6519 0.65038 0.00152\n", + "2 0.8360 0.84794 -0.01194\n", + "3 0.7093 0.42464 0.28466\n", + "4 0.5664 0.61854 -0.05214\n", + "5 0.3381 0.72774 -0.38964\n", + "6 0.7995 0.70648 0.09302\n", + "7 0.4067 0.47320 -0.06650\n", + "8 1.0128 1.15570 -0.14290\n", + "9 0.3034 0.42464 -0.12124" + ] + }, + "execution_count": 586, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_kn = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_kn.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 587, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6oAAAJDCAYAAAACQOngAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABG1UlEQVR4nO3de5hVddk//ntgGAgPWQqYUF8zNSs8m5ol4BEURhB8FOQriWVpCnmI4AmUycQTaBqWj1FWlidEBUkEFR4sQ7+eEsXHQ6njM8NBQLM4zzCs3x/+mBzOM7Nnz2dmXq/rmuuatfba6/7cs2Yf3nsddkGWZVkAAABAIlo19gAAAADg4wRVAAAAkiKoAgAAkBRBFQAAgKQUNvYAtmTt2rWxYMGC6NChQ7Ru3bqxhwMAAEAOVVVVxbJly6Jr167Rrl27zW5PMqguWLAgBg8e3NjDAAAAoAHdddddccQRR2w2P8mg2qFDh4j4aNB77rnnDt/v5mdujkuOvqSBRpXfOnpJs45e0qyjlzTr6CXNOnpJs45e0qyjlzTr6CXNOrWtsWTJkhg8eHB19ttUkkF14+G+e+65Z3Tp0mWH77fzHjvXavm6ykcdvaRZRy9p1tFLmnX0kmYdvaRZRy9p1tFLmnX0kmadutbY2qmeLqYEAABAUgRVAAAAkiKoAgAAkJQkz1EFAACoq8rKyigvL4+1a9fWeR09P9kzXnvttRyOqnFq5KvO1mq0bt06dtttt9hjjz2iVasd308qqAIAAM1KeXl57LLLLrH33ntHQUFBndaxaMWi2GuXvXI8svzXyFedLdXIsiwqKyvjvffei/Ly8vjc5z63w+tz6C8AANCsrF27Nnbfffc6h1Ryo6CgIIqKiqJz586xatWqWt1XUAUAAJodITUdtTnkt/o+DTAOAAAAqDNBFQAAaNYqKqtqfZ8dOaezLuvdljlz5sRvfvObWt3nlltuidmzZ+d0HClwMSUAAKBZK2rTOoovn5bz9U6/sW9O1/fqq6/W+j7f//73czqGVAiqAAAADWTEiBFxxBFHxFlnnRUREeecc0784Ac/iIMPPrjGcn//+9/j3nvvjYiIvfbaKxYtWhQvvfRSLF68OAYPHhz77bdf/PSnP421a9fGP//5zxgxYkSccsopMWrUqDjyyCPjyCOPjIsvvjj222+/eO2112L33XePW265JXbbbbd8t5wTDv0FAABoIAMGDIiHH344IiIWLlwYH3zwwWYhNSJi3333jYEDB8bAgQNjwIABERFRUVERM2bMiMGDB8cf/vCHuPrqq+Ohhx6KcePGxS9+8YvN1vH666/H0KFD449//GPsuuuuMX369IZtrgEJqgAAAA3kqKOOiqVLl0Z5eXlMnTo1+vbd8cOFDzrooOrfx48fH3/729/i5z//efzmN7/Z4te97L777vHlL385IiL222+/+Oc//1n/BhqJoAoAANBACgoKol+/fvHII4/EzJkzaxVU27VrV/372WefHS+//HJ07do1Lrjggi0u37Zt2xp1syyr+8AbmXNUAQAAGlD//v3j7LPPjn333Tc6deq01eVat24d69at22z+hx9+GKWlpXH33XdH27ZtY+LEiVFVldsrDqdGUAUAAJq1isqqnF+hd+N6i9q03u5yn/nMZ+Izn/lMnH766dtc7qtf/WqMHDky9thjjxrzd9ttt/iP//iP6N27d+y8885xyCGHxNq1a2P16tX1Gn/KBFUAAKBZ25EwualFKxZt97tUd2S9WZbF0qVLY/ny5XHiiSduc9mvfvWrMWfOnC3eNmrUqBg1alT1dElJSUREXHfdddXzPn7fYcOGbXdsKRNUAQAAGsisWbOipKQkSkpKoqioKK6//vqYN29eRERUbqiMNq3aRERE165dY9y4cY051KQIqgAAAA2kV69e0atXr+rpkSNHVv++I3ttWypX/QUAACApgioAAABJEVQBAABIiqAKANCMVFRu/t2KW5oHkDIXUwIAaEaK2rSO4sun1ZjXEN8fCU3JhvUV0aqwqFb32ZGLHNVlvewYQRUAAGjWWhUWxdvjBuR8vfuMfiDn68ylL37xi/HGG29s9faysrK47bbb4pprrtnhdc6ePTsWLFgQ3//+93MxxK0SVAEAAFqgRYsWRVlZWa3uc8IJJ8QJJ5zQQCP6N0EVAACggYwYMSKOOOKIOOussyIi4pxzzokf/OAHcfDBB2+27KhRo6KgoCDefPPNWLlyZVx44YXRr1+/mDhxYrz00kuxePHiGDx4cHzjG9+IkpKS+PDDD6Ndu3ZxxRVXxJe//OUoLy+PESNGxOrVq7e4/k1dffXVUV5eHj/+8Y+jV69eMX78+NiwYUPst99+cdlll8WPfvSjWLFiRSxbtix69+4dP/jBD+LBBx+MZ599Nq677ro4/vjj47TTTounnnoq/rXqX3HT+Juia9euOfm7uZgSAABAAxkwYEA8/PDDERGxcOHC+OCDD7YZIt977724995743e/+13ccMMNsWzZsoiIqKioiBkzZsTgwYNj5MiRMWLEiHjooYfiJz/5SVx66aUREfGTn/wk+vfvH9OmTYvDDjtsu2MbM2ZMdO3aNcaOHRsREaWlpfG73/0urr/++vjjH/8Yffr0icmTJ8fDDz8cd999d3zwwQebrWO33XaLKVOmxGn9T4vbb7+91n+fralXUL3lllvi1FNPjd69e8dvfvObzW6/9dZb47jjjou+fftG375946677qpPOQAAgCblqKOOiqVLl0Z5eXlMnTo1+vbd9sXN+vfvH23atIk999wzDjvssHjhhRciIuKggw6KiIhVq1bFggUL4j//8z+jb9++cfnll8fq1avjH//4Rzz77LNxyimnRETEaaedFm3atKnVWD//+c/HLrvsEhER3/rWt+Izn/lM/PrXv45x48ZFZWVlrFmzZrP7HHvssR/dd9/Px4cfflirettS50N/n3322XjmmWfi4YcfjvXr18epp54a3bt3j3322ad6mQULFsRNN90Uhx56aE4GCwAA0JQUFBREv3794pFHHomZM2fGr371q20u37p16+rfN2zYEIWFH0W2du3aVc8rKiqKadP+fXXvJUuWxG677RYREVmWVdctKCio1Vg31oiIuO6666KsrCz69OkTJ554YsybN6963R/Xtm3bj+pF7WptT533qB555JFx5513RmFhYbz//vtRVVUV7du3r7HMggULYtKkSVFcXBxXXXVVrFu3rt4DBgAAaEr69+8f9957b+y5557RqVOnbS776KOPRpZlsXDhwnj55Zfj8MMPr3H7LrvsEnvvvXd1UP3LX/4SgwcPjoiIY445pvow48ceeywqKiq2Wat169axfv36Ld72l7/8Jb71rW/FKaecEosXL4733nsvNmzYsEP95kJBtqVYXAs/+9nP4o477ohevXrFtddeW53aV61aFZdcckmMGTMmOnfuHKNGjYrOnTtXHz+9LeXl5XHCCSdE8bji2HmPnXd4LHNL50aPvXvUtZWk6uglzTp6SbOOXtKso5c06+glzTq5rFHSo2SL36NaMrekyfXS2HX0kmadHanR85M94//s+3+qpzu2/XQUFrXbxj3qZn3F2li6bvPzNrdk+LeHx+lnnR7HnXRc9bwV61bELm13qZ6+ruS6+PAfH8YH738QlRWVcf7F58cx3Y6J397+24iIOPe750ZExP+W/m/cdM1NseJfK6KwTWFcOurSOOArB8Sypcvi2iuvjX9++M/44pe/GE/OfjIeefKRzeps9M8P/xmXfOeS2O+L+8WpfU+N3/7yt3HzL2+OiIjZM2fHHbfdETvtslN8+tOfjg8//DDOv+j8WLZ0Wbz0wksxqmRUDCweGDfffnPsudeeMe/peTH5N5Or77+pd//+bsz656zq6ZXLV8b00dNj9uzZ0aVLl83vkOXA6tWrsyFDhmT33nvvVpd59dVXs759++7Q+srKyrL9998/Kysrq9U4xv732FotX1f5qKOXNOvoJc06ekmzjl7SrKOXNOvkukafy6bW+GmoOltiu6RZp6X18j//8z/1rrPwXwvrvY4sy7INGzZkS5YsyU466aRs3bp126wxcuTI7IEHHshJ3W3VaQjbq7HpNtle5qvzOapvvfVWVFRUxJe+9KX4xCc+ESeffHKNL5NdtGhRzJs3L84444yNgbj6+GoAAICWYNasWVFSUhIlJSVRVFQU119/fcybNy8iIio3VEabVh9d8ChXX+uyqRkzZsStt91aXefjPn6ea2rqnBzLy8vjZz/7Wdxzzz0RETF79uwYMGBA9e3t2rWL8ePHx1FHHRVdunSJu+66K0466aT6jxgAAKCJ6NWrV/Tq1at6euTIkdW/L1qxKPbaZa8GrX/qqafGIcce0uB1cq3OQbV79+4xf/786NevX7Ru3TpOPvnk6N27d5x//vkxfPjwOPDAA+Oqq66KCy+8MCorK+Owww6LoUOH5nLsAAAANEP1OhZ3+PDhMXz48BrzJk2aVP17z549o2fPnvUpAQAAQAtT56+nAQAAgIYgqAIAAJAUQRUAAGjWKqoqa32fHbn4UF3Wy47xfTEAAECzVtS6TZx534U5X+/ks27L+Tr5iKAKAADQgH75y1/Go48+GlVVVfGNb3wjBg0aFOeff37stOtOsUv7XeK0006Lhx56KD788MM47rjjYsiQITF69OhYtGhRFBYWxqWXXhrdunWLiRMnxksvvRSLFy+OwYMHx+DBgxu7tQYjqAIAADSQP/3pT7FgwYKYMmVKFBQUxIgRI2L69OnxzjvvxD0P3xOHffGwePDBB+O9996LGTNmRGFhYXz/+9+Po48+OoYOHRplZWUxaNCgmDp1akREVFRUxIwZMxq3qTwQVAEAABrI008/HS+//HL0798/IiLWrl0bWZbF7rvvHnvutWf1cl/+8pejsPCjePbMM8/E1VdfHRERn/3sZ+Pggw+O+fPnR0TEQQcdlOcOGoegCgAA0ECqqqrim9/8ZgwdOjQiIv71r3/FkiVL4qWXXqqxXLt27ap/z7Ksxm1ZlkVVVdVmyzVnrvoLAADQQI4++uiYNm1arFq1KtavXx8XXXRRLFiwYLv3mTJlSkRElJWVxYsvvhiHHHJIHkabDntUAQCAZq2iqrJBrtBbUVUZRa3bbHOZ448/Pl5//fU488wzo6qqKo499tj46le/us37jB49Oq688sp48MEHIyLi6quvjo4dO+Zs3E2BoAoAADRr2wuTW7JoxaLtfpfqjq73e9/7Xnzve9+rMW/OnDmxaMWiiIjo379/9TmsERGdOnWK22+/fbP1DBs2bIfqNQcO/QUAACApgioAAABJEVQBAABIiqAKAAA0O5t+xQuNZ8OGDbW+j6AKAAA0K+3atYv3339fWG1kWZZFRUVFLFy4MHbaaada3ddVfwEAgGalS5cuUV5eHsuWLavzOj5c+2H8s90/cziqxqmRrzpbq1FYWBif/OQnY4899qjV+gRVAACgWWnTpk18/vOfr9c6SuaWRMmhJbkZUCPWyFedXNdw6C8AAABJEVQBAABIiqAKAABAUgRVAAAAkiKoAgAAkBRBFQAAgKQIqgAAACRFUAUAACApgioAAABJEVQBAABIiqAKAABAUgRVAAAAkiKoAgAAkBRBFQAAgKQIqgAAACRFUAUAACApgioAAABJEVQBAABIiqAKAABAUgRVAAAAkiKoAgAAkBRBFQAAgKQIqgAAACRFUAUAACApgioAAABJEVQBAABIiqAKAABAUgRVAAAAkiKoAgAAkBRBFQAAgKQIqgAAACRFUAUAACApgioAAABJEVQBAABIiqAKAABAUuoVVG+55ZY49dRTo3fv3vGb3/xms9tfe+21GDBgQPTs2TNGjx4d69evr085AAAAWoA6B9Vnn302nnnmmXj44YfjgQceiN///vfx9ttv11hmxIgRccUVV8SsWbMiy7KYPHlyvQcMAABA81bnoHrkkUfGnXfeGYWFhfH+++9HVVVVtG/fvvr2hQsXxtq1a+OQQw6JiIj+/fvHzJkz6z1gAAAAmreCLMuy+qzgZz/7Wdxxxx3Rq1evuPbaa6OgoCAiIv7617/GDTfcEPfcc09ERLz77rvxne98J2bNmrXddZaXl8cJJ5wQxeOKY+c9dt7hscwtnRs99u5Rpz5qIx919JJmHb2kWUcvadbRS5p19JJmnVzWKOlREsWXT6sxb/qNfaNkbkmT66Wx6+glzTp6SbNObWusXL4ypo+eHrNnz44uXbpsvkCWA6tXr86GDBmS3XvvvdXzXnjhhWzgwIHV06WlpVnPnj13aH1lZWXZ/vvvn5WVldVqHGP/e2ytlq+rfNTRS5p19JJmHb2kWUcvadbRS5p1cl2jz2VTa/w0VJ0tsV3SrKOXNOu05F62l/nqfOjvW2+9Fa+99lpERHziE5+Ik08+Od54443q2zt16hTLly+vnl62bFl07NixruUAAABoIeocVMvLy2PMmDFRUVERFRUVMXv27Dj88MOrb+/cuXO0bds2XnjhhYiImDp1anTr1q3+IwYAAKBZq3NQ7d69e3Tv3j369esXAwYMiEMPPTR69+4d559/frzyyisRETFhwoS49tpr45RTTok1a9bEkCFDcjZwAAAAmqfC+tx5+PDhMXz48BrzJk2aVP37AQccEFOmTKlPCQAAAFqYOu9RBQAAgIYgqAIAAJAUQRUAoJnbsL4iIj76jtWPTwOkql7nqAIAkL5WhUXx9rgB1dP7jH6gEUcDsH32qAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkFNbnzrfeems8+uijERHRvXv3+OEPf7jZ7Q888EDsuuuuERFx5plnxuDBg+tTEgAAgGauzkF13rx58dRTT8VDDz0UBQUF8e1vfzsef/zxOOmkk6qXWbBgQdx0001x6KGH5mSwAAAANH91DqodOnSIUaNGRVFRUUREfOELX4hFixbVWGbBggUxadKkKCsri69+9asxcuTIaNu2bf1GDAAAQLNWkGVZVt+VlJaWxsCBA+Pee++NvffeOyIiVq1aFZdcckmMGTMmOnfuHKNGjYrOnTvHpZdeut31lZeXxwknnBDF44pj5z123uFxzC2dGz327lHHLnZcPuroJc06ekmzjl7SrKOXNOvoJc06uaxR0qMkii+fVmPe9Bv7xtvjBlRP7zP6gSiZW5KTepuyXdKso5c067TkXlYuXxnTR0+P2bNnR5cuXTZfIKunN998MzvuuOOyBx98cJvLvfrqq1nfvn13aJ1lZWXZ/vvvn5WVldVqLGP/e2ytlq+rfNTRS5p19JJmHb2kWUcvadbRS5p1cl2jz2VTa/xkWZa9dXX/6p+GZLukWUcvadZpyb1sL/PV66q/L7zwQpx77rlx+eWXx+mnn17jtkWLFsWUKVM+HoijsLBe124CAACgBahzUF28eHFcdNFFMWHChOjdu/dmt7dr1y7Gjx8fZWVlkWVZ3HXXXTUutAQAAABbUuddnL/+9a9j3bp1cd1111XPGzhwYMyZMyeGDx8eBx54YFx11VVx4YUXRmVlZRx22GExdOjQnAwaAACA5qvOQXXMmDExZsyYzeYPGjSo+veePXtGz54961oCAACAFqhe56gCAABArgmqAAAAJEVQBQAAICmCKgAAAEkRVAEAAEiKoAoAAEBSBFUAAACSIqgCAACQFEEVAACApAiqAAAAJEVQBQAAICmCKgAAAEkRVAEAAEiKoAoAAEBSBFUAAACSIqgCAACQFEEVAACApAiqAAAAJEVQBQAAICmCKgAAAEkRVAEAAEiKoAoAAEBSBFUAAACSIqgCAACQFEEVAACApAiqAAAAJEVQBQAAICmCKgAAAEkRVAEAAEiKoAoAAEBSBFUAAACSIqgCAACQFEEVAACApAiqAAAAJEVQBQAAICmCKgAAAEkRVAEAAEiKoAoAAEBSBFUAAACSIqgCAACQFEEVAACApAiqAAAAJEVQBQAAICmCKgAAAEkRVAEAAEiKoAoAAEBSBFUAAACSIqgCAACQFEEVAACApAiqAAAAJEVQBQAAICmCKgAAAEkRVAEAAEhKvYLqrbfeGr17947evXvHDTfcsNntr732WgwYMCB69uwZo0ePjvXr19enHAAAAC1AnYPqvHnz4qmnnoqHHnoopk6dGq+++mo8/vjjNZYZMWJEXHHFFTFr1qzIsiwmT55c7wEDAADQvNU5qHbo0CFGjRoVRUVF0aZNm/jCF74QixYtqr594cKFsXbt2jjkkEMiIqJ///4xc+bMeg8YAACA5q0gy7KsvispLS2NgQMHxr333ht77713RET89a9/jRtuuCHuueeeiIh499134zvf+U7MmjVru+srLy+PE044IYrHFcfOe+y8w+OYWzo3euzdoy4t1Eo+6uglzTp6SbOOXtKso5c06+glzTq5rFHSoySKL59WY970G/vG2+MGVE/vM/qBKJlbkpN6m7Jd0qyjlzTrtOReVi5fGdNHT4/Zs2dHly5dNl8gq6c333wzO+6447IHH3ywxvwXXnghGzhwYPV0aWlp1rNnzx1aZ1lZWbb//vtnZWVltRrL2P8eW6vl6yofdfSSZh29pFlHL2nW0UuadfSSZp1c1+hz2dQaP1mWZW9d3b/6pyHZLmnW0UuadVpyL9vLfPW6mNILL7wQ5557blx++eVx+umn17itU6dOsXz58urpZcuWRceOHetTDgAAgBagzkF18eLFcdFFF8WECROid+/em93euXPnaNu2bbzwwgsRETF16tTo1q1b3UcKAABAi1BY1zv++te/jnXr1sV1111XPW/gwIExZ86cGD58eBx44IExYcKEGDNmTKxatSq+/OUvx5AhQ3IyaAAAAJqvOgfVMWPGxJgxYzabP2jQoOrfDzjggJgyZUpdSwAAANAC1escVQAAAMg1QRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQCgTioqq3ZoHgDUVmFjDwAAaJqK2rSO4sun1Zg3/ca+jTQaAJoTe1QBAABIiqAKAABAUgRVAHJqw/qKiIgo6VFSYxoAYEc5RxWAnGpVWBRvjxtQPb3P6AcacTTk24b1FdGqsKjGBxWtCosad1AANDn1DqorV66MgQMHxn/9139Fly5datx26623xgMPPBC77rprRESceeaZMXjw4PqWBAAS5YMKAHKhXkF1/vz5MWbMmCgtLd3i7QsWLIibbropDj300PqUAQAAoAWp1zmqkydPjrFjx0bHjh23ePuCBQti0qRJUVxcHFdddVWsW7euPuUAAABoAeoVVMeNGxdHHHHEFm9btWpVfOlLX4qRI0fGQw89FP/617/iF7/4RX3KAQAA0AIUZFmW1Xclxx9/fNx5552bnaP6cf/zP/8TP/rRj2Lq1KnbXV95eXmccMIJUTyuOHbeY+cdHsfc0rnRY+8eO7x8XeWjjl7SrKOXNOvoJa06JT1KNjtHsWRuSYPUirBdGrNGSY+SKL58Wo1502/sm7ftb7tsme3StGrkq45e0qzTkntZuXxlTB89PWbPnr3lHJnlwHHHHZeVlZXVmLdw4cLs/vvvr55esGBBNmDAgB1aX1lZWbb//vtvts7tGfvfY2u1fF3lo45e0qyjlzTr6CW9Om9d3b/6p6HZLo1bo89lU2v8ZFn+tr/tsnW2S9Opka86ekmzTkvuZXuZr8G+R7Vdu3Yxfvz4KCsriyzL4q677oqTTjqpocoBAADQTOQ8qJ5//vnxyiuvxKc//em46qqr4sILL4xevXpFlmUxdOjQXJcDAACgman396hGRMyZM6f690mTJlX/3rNnz+jZs2cuSgAAANBCNNihvwAAAFAXgioA9VJRWdXYQwAAmpmcHPoLQMtV1KZ1ja/CmH5j30YcDQDQHNijCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJLSJINqRWXVNqcBAABougobewB1UdSmdRRfPq16evqNfRtxNAAAAORSk9yjCgAAQPMlqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUoYXZsL4iIiJKepTUmAYAgFQUNvYAgPxqVVgUb48bUD29z+gHGnE0AACwOXtUARpBRWXVNqeBxucIFIDGY48qQCMoatM6ii+fVj09/ca+jTgaYEscgQLQeOxRBQAAICmCKgAAAEkRVAEAAEiKoAqQABdtAQD4NxdTAkiAi7YAAPybPaoAAAAkRVAFgDza0nfm+h5dAKjJob8AkEebfoduhO/RBYBN2aMKAABAUgRVAKDFc/g1QFoc+gsAtHgOyQZIiz2qAAAAJEVQBQAAICn1DqorV66MPn36RHl5+Wa3vfbaazFgwIDo2bNnjB49OtavX1/fcgAAADRz9Qqq8+fPj0GDBkVpaekWbx8xYkRcccUVMWvWrMiyLCZPnlyfckAduEAIAABNTb2C6uTJk2Ps2LHRsWPHzW5buHBhrF27Ng455JCIiOjfv3/MnDmzPuWAOth4gZCNPwAAkLp6XfV33LhxW71t6dKl0aFDh+rpDh06xHvvvVer9d/8zM2x8x47bza/pEfJ5vPmlsTc0rlRMnfz23ItH3X0kmadptjLlh4vmy3TgD3ZLlvWnLZLc+olHzW29vfK1+tYvrd9RMNtf71sWXPqpbHr6CXNOnpJs05ta6xcvnKbtzfY19NkWbbZvIKCglqt45KjL4kuXbrs0LIlPUqiZG7JDj8510c+6uglzTrNqZca9Rqwlu1Sj3pNfLvUqNfEe8lLjTy9juV720c03PbXSz1rNvFemtPjRS/p1chXnZbcS3l5eUyP6Vu9vcGu+tupU6dYvnx59fSyZcu2eIgwAAAAfFyDBdXOnTtH27Zt44UXXoiIiKlTp0a3bt0aqhwAAADNRM6D6vnnnx+vvPJKRERMmDAhrr322jjllFNizZo1MWTIkFyXAwAAoJnJyTmqc+bMqf590qRJ1b8fcMABMWXKlFyU2KYN6yuiVWFR9THRG6cBAABoehrsYkr51KqwKN4eN6B6ep/RDzTiaAAAAKiPBjtHFQAAAOpCUAUAACApgioAAABJEVQBAABIiqAKAABAUgRVAAAAkiKoAgAAkBRBFQAAgKQIqgAfU1FZtUPzAABoOIWNPQCAlBS1aR3Fl0+rMW/6jX0baTS0FBvWV0SrwqIo6VFSYxoAWipBFQAaWavConh73IDq6X1GP9CIowGAxufQXwAAAJIiqCZmw/qKiIgah38BAAC0JA79bWQVlVVR1KZ19bTDvwAAgJZOUG1km164xUVbAACAls6hvwDb4ZB8AID8skcVYDsckk9z4CtwAGhKBFUAaAF84AJAU+LQX9iCisqqbU4DAAANxx5V2AIXuQIAgMZjjyoAAABJEVQBSN6WDr93SD4ANF8O/QUgeZsejh/hkHwAaM7sUQUAACApgipAM+VwWQCgqXLoL0Az5XBZAKCpskcVgCZpw/qKiIgo6VFSYxoAaPrsUaVJ27C+IloVFkVEzTerG+cBzVerwqJ4e9yA6ul9Rj/QiKMBAHJJUKVJ2/SNaoQ3q7AtGz/I8cEOAJAyQbUFqKisiqI2rbc6DbQc9kK2HJ7r0+Q1GWDHCKotwKYXVHExldqzFwpoajz3p2nT7TLt+lMiorXXF4BNCKqwA+yFAkhHc/rw0OsLwJYJqgBAkyLcATR/vp4GAACApAiqAAAAJEVQBQCSVlFZ1dhDABKwYX1FRESN89NpvpyjuhUuHw8AaXAFY0hfPi5y5vz0lkVQ3YqtXT4+IprFVQYBACBXhEhyTVDdQZs++CI8AAGApqmiqjKKWrfZ6nRL15y+AgmaKkEVAKCFKWrdJs6878Lq6cln3daIo0mPvYPQ+FxMiQbjhHcAaDm87gO5ZI8qDcankQDQcnjdJ9dczLRlE1SBJss5RADQfLnid+1sKdg35bAvqAJNlk/vAZq3Lb3J3lBZEa3a5PZDyqb8Zh422jTYRzTtcC+oAgCQpK298c71h5T23NHQNv0wxIcj2yeoAgBQa95ow47zYUjtCapAk+FNEUA6vPGG9DXl63kIquSMEEFD86YIAGDHNeXreQiq5IwQAQAAzVu+zrcVVAEAAPKoKR+Su+nOqWnXnxIRrXPei6AKAACQR035kNxNNVQvrXKyFgAAYKsqKqt2aF6u6zREDciHeu1RnT59etx2221RWVkZ5557bgwePLjG7bfeems88MADseuuu0ZExJlnnrnZMgAA0Nxt7TthG7qOa4bQVNU5qL733nvx05/+NB588MEoKiqKgQMHxlFHHRX77rtv9TILFiyIm266KQ499NCcDBYAANhxTflcSFq2Oh/6O2/evDj66KNjt912i/bt20fPnj1j5syZNZZZsGBBTJo0KYqLi+Oqq66KdevW1XvAAADAjtl4/uDGHyGVpqLOe1SXLl0aHTp0qJ7u2LFjvPzyy9XTq1atii996UsxcuTI6Ny5c4waNSp+8YtfxKWXXrrDNW5+5ubYeY+dN5u/8ROhbSmZu/1ltnn/HaiRrzoNUWPjOueWzq33+rdVZ2t1c2VrNZvCdtmWpr5dPq6p9dLcH/uNVaep9LI1+f4/jrBdaltHL7WrkYu6KfXSlLdLydySJvdauaN1m8J22Zamtl2a2uNl5fKV27y9zkE1y7LN5hUUFFT/vtNOO8WkSZOqp88777z40Y9+VKugesnRl0SXLl3qNL66PkmnWKchamxcZ8nckrz9rT5etznUacgazWm7NKde8l1HL+nUyff/cYTtkmKNfNXJ9/9aQ9a1XXZsvV4r06xhuzRsjfLy8pge07d6e50P/e3UqVMsX768enrp0qXRsWPH6ulFixbFlClTqqezLIvCQt+GA0C6XC0TANJQ56B6zDHHxNNPPx0ffPBBrFmzJh577LHo1q1b9e3t2rWL8ePHR1lZWWRZFnfddVecdNJJORk0ADSEjVfL3PhT1KZ1Yw8JaMY2rK+IiH/vfdo4DdTj0N9OnTrFpZdeGkOGDInKyso444wz4qCDDorzzz8/hg8fHgceeGBcddVVceGFF0ZlZWUcdthhMXTo0FyOHZodV+aDtHhMAg1p44WONtpn9AONOBo28tyfhnodi1tcXBzFxcU15n38vNSePXtGz54961MCWhQvWJAWj0mAzVVUVjXrI04896fBSaMAAMAO23iaxMdNv7FvI42G5qrO56gCAABAQxBUAQAASIqgCgAAQFIE1Rbo45c+dzl0GopL7gMAUFcuptQCbXolswhXMyP3XDEPAIC6skcVGklFZVVjDwEAAJJkjyo0Epd2BwCALbNHFQAAaJEc4ZYue1QBAIAWyRFu6bJHFQAAgKQIqgAAACRFUAUAACApgioAAABJEVRpUlyZDQAAmr9medXfiqrKKGrdZqvTNF2bXpnNVdkAAKD5aZZBtah1mzjzvgurpyefdVsjjgYAAIDacOgvAAAASRFUAQAASIqgCtSbi1wBAJBLzfIcVSC/Nr3IVYQLXQEAUHf2qBIRH10ZeVvTAAAA+WKPKhHhSskAAEA67FEFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFgMRUVFVucxoAmrvCxh4AAFBTUes2ceZ9F1ZPTz7rtkYcDQDknz2qAAAAJEVQBQAAICmCKgAAAEkRVAEAAEiKoAoAAEBSBFUAAACSIqgCAACQFEEVAACApAiqAAAAJEVQBQAAICmCKgAAAEkRVAEAAEiKoAp1UFFVuUPzAACA2its7AFAU1TUuk2ced+FNeZNPuu2RhoNAAA0L/aoAgAAkBRBFQAAgKQIqgC1tOn5yM5PBgDILeeoAtTSpucoOz8ZgFyoqKqMotZttjoNLYmgCgA0GG+8Ycf5IBT+TVAFSNCW3sx7g79tAlGavPEG2L58ve43pdfKegXV6dOnx2233RaVlZVx7rnnxuDBg2vc/tprr8WYMWNi5cqVccQRR8SPf/zjKCyUjQG2J19fgdSUXrC2RyACoKnK1+t+U3qtrPPFlN5777346U9/GnfffXdMmzYt7rvvvvj73/9eY5kRI0bEFVdcEbNmzYosy2Ly5Mn1HjAAubPxBWvjT1MNqQBA81LnoDpv3rw4+uijY7fddov27dtHz549Y+bMmdW3L1y4MNauXRuHHHJIRET079+/xu0A0NRs6QrPrvoMNCWex2gq6nwc7tKlS6NDhw7V0x07doyXX355q7d36NAh3nvvvbqWS1JzOmQOgO3L16FZtFzOT68978dqx/MYTUVBlmVZXe74X//1X7FmzZq49NJLIyLi/vvvj1deeSWuuuqqiIh48cUXY/z48XHPPfdERMS7774b3/3ud3dor2p5eXmccMIJUTyuOHbeY+fNbh/+1Uvj0zt9snq6qnJdtG7Ttnp63fp10bbw39MfrPlH/Oz/3VKr/rZXI1919FK7Gvmqs2mNutTZtMaO1NGLXvTyb3qpXR291K7GjtTRi1708m96qV2dZt1L5Zpo2+YTNe4zt3RuzC2dW2PeyuUrY/ro6TF79uzo0qXL5oWyOnrwwQezH/3oR9XTt956azZx4sTq6fLy8uzEE0+snn7uueeyc845Z4fWXVZWlu2///5ZWVlZrcY09r/H1mr5uspHnY011q2vqDF/0+lc1WlIH6/xH/deUP3TFOs0xv9YPnr5eI181clHjaa4/Zvj81iW2S4p1Wmu26U5PY81pOa6XRpKc+0lX3Wa0+t+U972+apT2xrby3x1Pkf1mGOOiaeffjo++OCDWLNmTTz22GPRrVu36ts7d+4cbdu2jRdeeCEiIqZOnVrjdnbMpoeuOJQFAABo7up8jmqnTp3i0ksvjSFDhkRlZWWcccYZcdBBB8X5558fw4cPjwMPPDAmTJgQY8aMiVWrVsWXv/zlGDJkSC7HDlBDRVXlZufZOFcJAKDpqdeXmhYXF0dxcXGNeZMmTar+/YADDogpU6bUpwTADttSIBVSofnzIRVA81OvoAoA0Nh8SJWm5vQBQnPqpTmxXZo3QZW82fTJxBMJADRfzekDhObUS3NiuzRvdb6YEtSWC0MBAAA7wh5VSJi90AAAtET2qELC7IUGAKAlskcVAABgKxzh1jgEVQCAHeDNKrRMjnBrHIIqAA3K1wfQXHizCpA/gioADcrXB6TJBwgApMzFlACgBfIBAgAps0cVyAvndgEAsKPsUQXywrldAADsKHtUoYVznhoAAKmxRxVaOOepAQCQGkEVAACApAiqAAAAJEVQBQAAICmCKgAAAEkRVAEAAEiKr6cBAAByatOvv/PVd9SWPaoAAEBObRpKhVRqS1AFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJCUwsYeAORaRVVlTD7rthrTRa3bNOKIAACA2rBHlWZn01AqpAIAQNMiqAIAAJAUQRUAAICkCKoAAAAkRVAFAAAgKYIqAAAASRFUAQAASIqgCgAAQFIEVQAAAJIiqAIAAJCUwrrecdGiRTFixIh4//334/Of/3xMmDAhdtppp82W6d27d3zuc5+LiIg99tgjfv3rX9dvxAAAADRrdd6j+uMf/zjOPvvsmDlzZnTt2jV+8YtfbLbMK6+8EsXFxTFt2rSYNm2akAoAAMB21SmoVlZWxnPPPRc9e/aMiIj+/fvHzJkzN1vulVdeiTfffDP69+8fQ4YMiTfeeKN+owUAAKDZK8iyLKvtnZYuXRpnnHFG/OlPf4qIiPXr18chhxwSCxYsqLHcxIkTo0OHDjFw4MB48skn4yc/+UnMmDEjioqKtrn+8vLyOOGEE6J4XHHsvMfOOzyuuaVzo8fePWrbTq3lo45e0qyjlzTr6CXNOnpJs45e0qyjlzTr6CXNOnpJs05ta6xcvjKmj54es2fPji5dumy+QLYdM2bMyI499tgaP+ecc0527LHHVi9TWVmZde3adXuryoqLi7PXXnttu8uVlZVl+++/f1ZWVrbdZT9u7H+PrdXydZWPOnpJs45e0qyjlzTr6CXNOnpJs45e0qyjlzTr6CXNOrWtsb3Mt92LKZ1yyilxyimn1JhXWVkZRx11VFRVVUXr1q1j2bJl0bFjx83u+/vf/z769OkTn/rUpzaG4igsrPP1mwAAAGgB6nSOaps2beKII46IGTNmRETE1KlTo1u3bpst99xzz8WUKVMiIuLZZ5+NDRs2xD777FOP4QIAANDc1fmqv2PHjo3JkyfHqaeeGs8//3xccsklERFxzz33xC233BIREaNHj4558+ZFnz594vrrr48bb7wxWrXy1a0AAABsXZ2Pw+3cuXP8/ve/32z+oEGDqn/v1KlT/OY3v6lrCQAAAFoguzcBAABIiqAKAABAUgRVAAAAkiKoAgAAkJQkv9S0qqoqIiKWLFlSq/utXL4yysvLG2JIea+jlzTr6CXNOnpJs45e0qyjlzTr6CXNOnpJs45e0qxT2xobs97G7LepgizLspyMLIeef/75GDx4cGMPAwAAgAZ01113xRFHHLHZ/CSD6tq1a2PBggXRoUOHaN26dWMPBwAAgByqqqqKZcuWRdeuXaNdu3ab3Z5kUAUAAKDlcjElAAAAkiKoAgAAkBRBFQAAgKQIqgAAACRFUAUAACApgioAAABJEVQBAABIiqAKAABAUgobewD18dZbb8WsWbNiyZIl0apVq+jYsWMce+yxceCBBzb20GrliSeeiMWLF0f37t3jc5/7XPX8++67L84666yc1SktLY1PfOIT0alTp7j//vvjjTfeiMMOOyxOPfXUnNXIh5dffjkOOuigiIh4+umn48knn4zCwsI46aST4uCDD85prT//+c9x8MEHx6677hpTp06Nl19+Ob7yla/EgAEDcrL+q6++OoYNGxaf/OQnc7I+AABoDprsHtW77rorLrvssoiIOPDAA+MrX/lKRERcccUVcccddzTm0GplwoQJ8Yc//CFKS0tj4MCBMW3atOrb7r333pzV+e1vfxvf+ta3YuDAgfGf//mf8cgjj8TnP//5eOCBB+LnP/95zups6rrrrsv5OseOHRsRH/0PXHPNNbHnnnvGHnvsEVdeeWX84Q9/yFmdcePGxe233x7r1q2Lm2++OaZPnx777rtvPP7443H11VfnpMbUqVPjzDPPjMceeywn69uWp59+Ov76179GRMQdd9wRF1xwQdx6661RUVGRsxpPPPFEjBo1Kr71rW/FBRdcENdcc011TQCoiyeeeKL69/vvvz+GDRsWl156acyYMaMRRwU0tIIsy7LGHkRd9OzZM6ZOnRqf+MQnasxfs2ZNnH766TFz5syc1Fm0aNE2b99rr73qtf7i4uJ46KGHorCwMEpLS+O8886LESNGxCmnnBL9+vWLqVOn1mv9H68zZcqUWL58efTp0yeeeeaZaNu2bVRUVMQZZ5wRDz/8cL1r/Od//udm8+bMmRPHH398RERce+219a4REXH66afHQw89FH379o3f/va38alPfSoiIlauXBlnnHFGzrb9qaeeGtOnT4/WrVtHv379YvLkyVFUVBRVVVXRp0+fePTRR+tdo1+/fjFhwoQoKSmJdevWxdChQ+P444+Pdu3a5aCDf7vhhhvi+eefj/Xr10eXLl2ioKAg+vfvH3PmzImqqqqcBO/bb789XnrppTj22GNjzpw5ccQRR0S7du3i/vvvj29+85tx5pln5qATWronnngiTjzxxIj46A3rn/70p+ojKpra0SHU3p///OeYOXNmjSOpunXrFj179mzsodXK+vXr46677orFixfHiSeeGEcccUT1bRMnToxhw4blpM68efNil112iS996UsxceLEeOONN+Lwww+P8847L1q3bp2TGlty2WWXxU033ZSz9W183Z84cWI8//zzcc4550SWZXHffffFV77ylbj00ktzUmf9+vUxZcqUOOmkk2KXXXaJX/7yl/HKK6/EV77ylfjud78bbdu2rXeNCy64IEaPHh2f/exnczDirVu/fn1MnTo12rVrFz179oxrr702nnvuuejatWuMHDkydtttt3rX2LBhQ9x5550xe/bsWLZsWbRp0yY+97nPxamnnhq9e/eufxMf47FfO83lsd9kD/0tLCyM9evXbzZ/7dq10aZNm5zV+e53vxulpaXRsWPH2DTTFxQUxOzZs+u1/izLoqCgICIi9t5777j99ttj6NCh8elPf7p6fi5s2LAhioqKonPnznHeeefVeLKtqqrKSY3ddtstpk6dGhdccEHsuuuuERHxzDPPxJFHHpmT9W+0fv362LBhQ+y+++7Rvn376vlFRUXRqlXuDhJo165dvP/++9GxY8fYfffdY/Xq1VFUVBRr1qyJwsLcPHQKCgpi3333jT/84Q8xb968uO+++2LcuHGx9957x5577hk33nhjTur8+c9/jmnTpkVFRUV07949nnrqqWjTpk1069Yt+vbtm5MaM2bMiKlTp0ZBQUEMGDAgzj///LjzzjtjwIABceaZZ+Y0qHrBqr3GeNHK9QtWRMTPf/7zOPHEE7f4hvWNN97IyRvWfLxZjcjPG9Z8vFmNyM8b1ltuuSVefvnlOO2006Jjx44REbF06dKYMmVKvPTSSzFy5Mh613juuee2eftXv/rVeteIiLjyyitjw4YNsf/++8cPf/jDOPPMM+OCCy6IiI8+4M3FY3/8+PHx4osvxsqVK6tfxwYNGhQzZ86Ma665Jq644op614iIOOecczZ7v7JgwYIYMmRIRETceeedOakTEfH444/H/fffX/0Y7NGjR/Tp0ydnQXXj/1DPnj3j+uuvj9WrV8fZZ58dc+fOjR/96Ec5eU2eP39+9RFu55xzTk7fs37cmDFjYvXq1VFRURF/+MMf4qCDDoqf/vSnMXv27LjyyivjZz/7Wb1rXHfddVFZWRnf/va3Y9asWXHAAQfEZz7zmbjzzjujtLQ0Lrroohx04rFfW83psd9kg+oFF1wQ/fr1i6997WvRoUOHiIhYtmxZPPPMMzl7woqIuOeee+Lss8+OsWPHxuGHH56z9W7Uq1evOOecc2LUqFFx0EEHxX777Re33HJLXHzxxTk9JPPkk0+O//t//2/ceeed1Q+C119/PcaMGROnnHJKTmqMHDkyunXrFjfffHNcdtllcdRRR8Xvfve7OP3003Oy/o0+9alPRffu3aOgoCDGjh0b1113XTz99NMxfvz46NWrV87qXHzxxXHGGWdE7969Y5999olzzjknvva1r8VTTz0V3/72t3NS4+MffhxzzDFxzDHHRGVlZbzxxhtRVlaWkxob66xYsSJWr14da9eujZUrV8anPvWpWLt2bVRWVuakxrp162LNmjXRvn37WLt2bXz44YcREdG+ffucfoCQjxesiNju0Qz9+vWrd418vGBF5OdFK59vViMa9g1rPt6sRuTnDWs+3qxG5OcN64wZM+LRRx/d7PmkT58+0adPn5w89n/+85/HSy+9FAcddNAWP5zO1f/xggULqo9k6tevX5x77rnRrl27OPfcczerW1dPPvlkTJ8+PT788MM46aST4tlnn41WrVpFt27dcvL8tVGvXr3il7/8ZVxyySXRuXPnyLIsrrjiirj44otzVmP16tWxfPny2GuvvWL16tXVj/u1a9fm7IPjiIg333wzpk+fHhEfBZdp06ZFQUFBdO/ePWdHbHTq1Cl+9atfxQ033BAnn3xyDBo0KHr37h2dO3fOyfo3evXVV2P69OlRVVUV3bt3rz6dbN99983ZB9TPPPNM9f/xscceG4MHD4577rknunfvHqeddlrOgqrHfu00p8d+kw2qxcXFceSRR8bTTz8dS5cujSzL4ogjjohhw4ZFp06dclZn5513jquvvjruv//+BgmqF198cRx++OGx0047Vc87/PDD48EHH8zpubbf//7347nnnqux56SoqCiGDRsW3bt3z1mdr33ta/GlL30pxo4dG3Pnzs3Z3tqP2/hk8fbbb8e//vWviPiol+HDh0ePHj1yVuf444+P/fbbL5544ol4991345BDDomddtoprrvuuuqLOdXX4MGDN5vXpk2b6Nq1a3Tt2jUnNSIizj///Dj55JMjy7IYMWJEnHfeefG1r30tnn766ZxdGKp///4xaNCg+MY3vhFPPfVU9O/fPxYuXBgXXXRR9OnTJyc1IvLzghXx0QvwrFmztvrhRy6e7PPxghWRnxetfLxgReTnDWs+3qxG5OcNaz7erEbk5w1r27ZtY8mSJZudcrNo0aIoKiqq9/ojIiZNmhRDhgyJb37zm3HCCSfkZJ1bkmVZrF69Otq3bx+f/vSnY9KkSTFo0KDYfffdc3o0VUVFRXzqU5+KkSNHVj9nrlq1aotHpNXV4MGD46ijjoqxY8fGf/zHf0S/fv1ip512yunRVIcddlgMHTo0Fi9eHFdeeWVMnDgxHnvssbj22mvjO9/5Ts7qtG/fPv72t7/FfvvtF5/73Odi8eLFsddee8V7772Xs/+xgoKC2GOPPeKGG26I0tLSmDx5cpx33nmxbt262HPPPXN2fZJWrVrFO++8EytWrIgVK1ZEeXl5dOnSJT744IOcbf+qqqp4//33Y/fdd49ly5bF2rVrIyKisrIypx8geOzXXnN57EcGDWTy5MnZ0KFDG3sY/P/WrFmTrVy5MsuyLHv99dezX/3qV9lTTz2V0xrz5s3LfvWrX2Xz5s3LsizLVq5cmb3++us5rVFcXJwtXLhws/n/+7//m5122mk5rfXd7343u//++3O6zo/r06dPtmrVqurpJUuWZMcdd1z28MMPZ/369ctZnd69e2dr167Nsuyjx+VGK1asyE499dSc1fnb3/6WnX322dlDDz2UZVmW0x42GjVqVNanT5/s8MMPzy6++OIsy7Js1qxZWY8ePbK77747JzXOPPPM7M0338yyLMsuuuii6v+3JUuWZH379s1JjSyr+fd55513suuvvz47+eSTs+7du2dnnXVWTmqcdtpp2dtvv53Nnz8/O+igg7KysrIsy7Ls/fffz+m2P/XUU7Ply5dnWfbR32ljbytXrsx69+6dkxp/+ctfsh49emTnnntuNmLEiGzEiBHZueeem/Xo0SN7+umnc1Ijy7Ls7bffzsaPH5+z9W3Jvffem5188snVz5VZlmV///vfsx49emQHHnhgTmrcdddd2cknn5ytX7++et4LL7yQHXfccdl9992Xkxoft27duuzaa6/Nhg0bltP/rY0ef/zx7He/+132zjvvZFmWZW+88Ub2+uuvZ/fee2/Oarz44ovZ17/+9WzYsGHZD3/4w+zrX/969r3vfS/r3r17Nnfu3JzU2NpzyAcffJDNnz8/JzWyLMv+/Oc/Z927d8+OPfbY7PHHH8969eqVDR8+PDvuuOOqn6Pr64EHHsi6d++eff/738969OiRTZ8+PSstLc26d++eTZkyJSc1smzLj/2hQ4c2m8f+W2+9lZfH/vHHH9/kHvtN9mJKQMs0b968GD16dOy99941DvsvLS2Na6+9No4++uic1Vq6dGlMnz49vvWtb+VsnR933333xR133BElJSXxta99LSI++tqtb3/72/H+++/Hyy+/nJM6d999d/zud7+LGTNmVB9V8eKLL8YPfvCDuOCCC3J6/nBFRUXcdNNNsWjRonjrrbfikUceydm6P27NmjWxfPny+OxnPxtvvvlmZFkWX/ziF3Oy7r/+9a8xbNiwOOyww+ITn/hE/OUvf4mDDz44Xn311fjxj3+cs6NQtnbBvH/84x9RVlaWkyM3nnrqqRgzZkxs2LAhrrzyyrjxxhtj//33j1deeSWGDx+esz3qDz74YNxyyy1x6KGHxvz58+Pyyy+PAw88ML75zW/GsGHDcnbkxiOPPBLvvPNOtG7dOj772c9Gp06d4uCDD46HHnooZ1/nlq+vjJs0aVJUVFREcXFxdZ2VK1fG3XffnbO9hL/97W+jdevW1b0sWbIkVqxYES+++GJOe/n436y8vDz++Mc/xjXXXJOzv9mECRPi1VdfjX322SceffTRGDlyZPURARsvtJQrU6dOjfLy8mjXrl2sX78+9thjj/jGN74RTz75ZE56efLJJ6OysjIv/2NPPPFELFq0KHr06BHt27eP559/Pvbbb794/vnnc1Zn4/9x7969Y++9946KiopYtWpVPPbYYznt5fXXX48VK1bE0qVLo7S0NP7f//t/MXDgwJwe5ZKvr3F85513ol27dvGZz3ymus6BBx4Y//jHP+Lcc8/NWY327dtX9zJ//vzo0qVL9elFufLxv9l9990X8+fPj2984xs5+5sJqkCTs27dunj55ZerD/vf+GY1V4cARTT8Fb83Ki0tjaKiohrrW7lyZUyZMiVnL1gRUX3Y10Yb37Dut99+OavxcX/5y1/ikUceiWuuuSan683Xdlm5cmXMmzcv3n333aiqqqp+s7rnnnvmZP0RH71hzeWpFzti+fLl1W9Wv/CFL+R03e+880688cYbccABB1S/YV29enXOLtj08bAyY8aMGDVqVM7DyoQJE2LBggXxhS98oUEDUT7qNKde8vUNCfn4Hxs/fny8+uqredkuDR3u8/U/9tvf/jZ+//vfx4YNG+Loo4+OxYsXx0knnRRz5syJww47LCenFuSjxvbqHHrooTk5XaaxelmyZEmceOKJua2T0/2zAA1s4cKF2/zJlT59+mRdu3bNjj/++Oy4446r8XP88cfnpEa+eslHHdslzTrNqZc+ffpklZWVWZZ9dKj0cccdl82YMSPLsq0fTplijY11Nh6W1xx6aeg6vXv3rnEY45tvvpl9/etfz5555pmcnmLQ3P7H8tFLQ/8fb6yzdu3arLy8PDvkkEOqT2VZt25dVlxc3GRq5KtOc+qlyV5MCWiZGvorozZq6Ct+R+Svl3zU2VKNgoKC6q/gaurbpSF6aaztkusa+aqT5eHr3PJRY2OdjZpDLw1dJ1/fkNDc/sfy0ctGTf0rFvNRI191mlMv9qgCTcqKFSuy4uLi7Pnnn2/wWvPnz8/GjBnTYOvPVy/5qGO7pFmnOfUyceLEbNCgQTUuOPP8889nRx99dHbYYYc1mRr5qtOcesmyjy7W9/e//73GvEWLFmVXX311zmrYLunVyLIsu/nmm7Ozzz67xl711157LRswYEA2ceLEJlMjX3WaUy+CKtDkNHRQyad89ZKPOrZLmnWaUy/5CCv5qJGvOs2pl3yxXdKrkWVZ9uyzz9aYfuutt3J2JeZ81shXnebSi4spAQAAkJRWjT0AAAAA+DhBFQAAgKQIqgAAACRFUAUAACAp/x/8T7erRTRXEQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_kn = results_kn.head(35)\n", + "results_kn.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 588, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_lr.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 589, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.011010857142857142" + ] + }, + "execution_count": 589, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_kn=np.mean(results_kn.error)\n", + "meanerror_kn" + ] + }, + { + "cell_type": "code", + "execution_count": 590, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.644653
10.554524
21.231013
30.662338
40.512779
......
650.773317
660.670450
671.802453
680.725688
690.809162
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.644653\n", + "1 0.554524\n", + "2 1.231013\n", + "3 0.662338\n", + "4 0.512779\n", + ".. ...\n", + "65 0.773317\n", + "66 0.670450\n", + "67 1.802453\n", + "68 0.725688\n", + "69 0.809162\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 590, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 591, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/kn.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline xgbr" + ] + }, + { + "cell_type": "code", + "execution_count": 592, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9993674801009855\n", + "Adjusted R^2: 0.9993463177251821\n", + "MAE: 0.009869758098748365\n", + "MSE: 0.0001736160035471743\n", + "RMSE: 0.013176342570955504\n" + ] + } + ], + "source": [ + "pred = pipeline_xgbr.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 593, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29151.293343-0.001843
10.65190.660147-0.008247
20.83600.8293070.006693
30.70930.735015-0.025715
40.56640.5554470.010953
50.33810.340216-0.002116
60.79950.7850160.014484
70.40670.427782-0.021082
81.01281.035999-0.023199
90.30340.3028000.000600
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 1.293343 -0.001843\n", + "1 0.6519 0.660147 -0.008247\n", + "2 0.8360 0.829307 0.006693\n", + "3 0.7093 0.735015 -0.025715\n", + "4 0.5664 0.555447 0.010953\n", + "5 0.3381 0.340216 -0.002116\n", + "6 0.7995 0.785016 0.014484\n", + "7 0.4067 0.427782 -0.021082\n", + "8 1.0128 1.035999 -0.023199\n", + "9 0.3034 0.302800 0.000600" + ] + }, + "execution_count": 593, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_xgbr = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_xgbr.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 594, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6QAAAJDCAYAAAAcidlTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABDnElEQVR4nO3de3QV5b0//k8EQsTL0aqgQvuz3o61oIh3q4LXoBBB8FiUr1S0tloFRUuhgpJjQVG8Vnu6LNZWK4oICqZeUOHQU0WPFRXFr5dWjd8EUEBry8WQEOb3h4tdAmgS2NmzE16vtbJW5pL5PE9mz85+Z2aeKUiSJAkAAADIsW3SbgAAAABbJ4EUAACAVAikAAAApEIgBQAAIBWt0yxeVVUVCxYsiN122y1atWqVZlMAAADIstra2li6dGl07tw5ioqKNlqeaiBdsGBBDBw4MM0mAAAA0MQmTZoUhx122EbzUw2ku+22W0R82bjdd9+9wT93+0u3xxVHXdFErcpdjVzV0Zf8rKMv+VlHX/Kzjr7kZ52W1Jdc1dGX/KyjL/lZR1/ys05ja3z88ccxcODATPbbUKqBdN1lurvvvnt06tSpwT+3/a7bN2r9zZGLGrmqoy/5WUdf8rOOvuRnHX3JzzotqS+5qqMv+VlHX/Kzjr7kZ53NrfFVt2ga1AgAAIBUCKQAAACkQiAFAAAgFaneQwoAALA5ampqorKyMqqqqrZoO8X/Vhxvv/12llqVXo1c1fmqGkVFRdGpU6do06ZNo7YnkAIAAM1OZWVl7LDDDrHXXntFQUHBZm9n0fJFsecOe2axZenUyFWdTdVIkiQ+/fTTqKysjG9/+9uN2p5LdgEAgGanqqoqdtllly0Ko2RHQUFB7LLLLpt1tlogBQAAmiVhNH9s7r4QSAEAAEiFQAoAALQI1TW1jf6ZhtxzuTnb/TqzZ8+O3/3ud436mTvuuCNmzZqV1XbkA4MaAQAALUJhm1ZRctWMrG+37JY+Wd3eW2+91eifufzyy7PahnwhkAIAAGyh4cOHx2GHHRbf//73IyLivPPOi5/+9Kdx8MEH11nvb3/7W0yePDkiIvbcc89YtGhRvP7667F48eIYOHBg7LfffnHbbbdFVVVV/OMf/4jhw4fHaaedFiNHjowjjjgijjjiiLjssstiv/32i7fffjt22WWXuOOOO2KnnXbKdZezwiW7AAAAW6h///7x+OOPR0TEwoUL47PPPtsojEZE7LvvvjFgwIAYMGBA9O/fPyIiqqur48knn4yBAwfGAw88EGPHjo3HHnssxo0bF//1X/+10TbeeeedGDx4cPzxj3+MHXfcMcrKypq2c01IIAUAANhCRx55ZCxZsiQqKytj+vTp0adPwy/zPeiggzLfT5gwIf7617/Gr371q/jd734XK1eu3Gj9XXbZJQ488MCIiNhvv/3iH//4x5Z3ICUCKQAAwBYqKCiIvn37xhNPPBFPP/10owJpUVFR5vtzzz033njjjejcuXNcfPHFm1y/bdu2deomSbL5DU+Ze0gBAACyoF+/fnHuuefGvvvuGx06dPjK9Vq1ahWrV6/eaP7nn38e5eXl8eCDD0bbtm3jzjvvjNra7I7wm28EUgAAoEWorqnN+oi467Zb2KZVvevtsccesccee8SZZ575tesdfvjhMWLEiNh1113rzN9pp53iP/7jP6JXr16x/fbbR9euXaOqqipWrVq1Re3PZwIpAADQIjQkNG5o0fJF9T6LtCHbTZIklixZEsuWLYuTTz75a9c9/PDDY/bs2ZtcNnLkyBg5cmRmurS0NCIixo8fn5m3/s8OGTKk3rblM4EUAABgC82cOTNKS0ujtLQ0CgsL48Ybb4y5c+dGRETN2ppos02biIjo3LlzjBs3Ls2m5hWBFAAAYAv17NkzevbsmZkeMWJE5vuGnIXdWhllFwAAgFQIpAAAAKRCIAUAACAVAikAQDNUXVP7tdMAzYFBjQAAmqHCNq2i5KoZmekZN54WEV8+mqK0R2lERKxdUx3btC5MoXWQjs15zTdksCHHUtMRSAEAWoBtWhfGB+P615m396hpKbUG0rGp4yAb8v1Y+vd///d49913v3J5RUVF/PrXv47rr7++wducNWtWLFiwIC6//PJsNPErCaQAAAAt2KJFi6KioqJRP3PSSSfFSSed1EQt+heBFAAAYAsNHz48DjvssPj+978fERHnnXde/PSnP42DDz54o3VHjhwZBQUF8d5778WKFSvikksuib59+8add94Zr7/+eixevDgGDhwYxx57bJSWlsbnn38eRUVFcc0118SBBx4YlZWVMXz48Fi1atUmt7+hsWPHRmVlZfznf/5n9OzZMyZMmBBr166N/fbbL6688sq4+uqrY/ny5bF06dLo1atX/PSnP41HH300Xn755Rg/fnyceOKJccYZZ8Tzzz8f/1z5z7h1wq3RuXPnrPzeDGoEAACwhfr37x+PP/54REQsXLgwPvvss68Ni5988klMnjw57rvvvrjpppti6dKlERFRXV0dTz75ZAwcODBGjBgRw4cPj8ceeyx+8YtfxLBhwyIi4he/+EX069cvZsyYEd26dau3baNHj47OnTvHmDFjIiKivLw87rvvvrjxxhvjj3/8Y/Tu3TumTJkSjz/+eDz44IPx2WefbbSNnXbaKaZOnRpn9Dsj7r777kb/fr6KQAoAALCFjjzyyFiyZElUVlbG9OnTo0+fPl+7fr9+/aJNmzax++67R7du3WLevHkREXHQQQdFRMTKlStjwYIF8fOf/zz69OkTV111VaxatSr+/ve/x8svvxynnXZaREScccYZ0aZNm0a19dvf/nbssMMOERFx4YUXxh577BG//e1vY9y4cVFTUxNffPHFRj9z3HHHffmz+347Pv/880bV+zoNumT3jjvuiJkzZ0ZBQUGcddZZMXjw4DrL77rrrpg2bVrsuOOOERFx9tlnx8CBA7PWSAAAgHxWUFAQffv2jSeeeCKefvrpuOeee752/VatWmW+X7t2bbRu/WU0KyoqyswrLCyMGTP+NZr2xx9/HDvttFNERCRJkqlbUFDQqLauqxERMX78+KioqIjevXvHySefHHPnzs1se31t27b9sl40rlZ96j1D+vLLL8dLL70Ujz/+eEybNi3+8Ic/xAcffFBnnQULFsStt94aM2bMiBkzZgijAADAVqdfv34xefLk2H333aNDhw5fu+5TTz0VSZLEwoUL44033ohDDz20zvIddtgh9tprr0wgfeGFFzI565hjjslcHvzMM89EdXX119Zq1apVrFmzZpPLXnjhhbjwwgvjtNNOi8WLF8cnn3wSa9eubVB/s6HeM6RHHHFE3H///dG6dev45JNPora2Ntq1a1dnnQULFsTEiROjoqIiDj/88BgxYkQmQQMAAOTC2jXVTfKIloY+h3SPPfaIPfbYI84888x6162qqor+/ftHdXV1XHfddbHzzjtvtM6ECROitLQ07rnnnmjTpk3cdtttUVBQENdee20MHz48Jk+eHF26dIntttvua2vts88+sXz58hg+fHicddZZdZb9+Mc/jp/97Gex4447xi677BKdO3eOysrK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EEgBAABIhUAKAABAKlo3ZKW77rornnrqqYiI6N69e/zsZz/baPm0adNixx13jIiIs88+OwYOHJjlpgIAANCS1BtI586dG88//3w89thjUVBQED/84Q/j2WefjVNOOSWzzoIFC+LWW2+NQw45pEkbCwAAQMtRbyDdbbfdYuTIkVFYWBgREfvss08sWrSozjoLFiyIiRMnRkVFRRx++OExYsSIaNu2bdO0GAAAgBahIEmSpKErl5eXx4ABA2Ly5Mmx1157RUTEypUr44orrojRo0dHx44dY+TIkdGxY8cYNmxYvdurrKyMk046KUrGlcT2u27f4EbPKZ8TPfbq0eD1N0cuauSqjr7kZx19yc86+pKfdfQlP+u0pL7kqk42a5T2KI2Sq2Zkpstu6RMfjOtfZ529R02L0jmlWam3IfslP+voS37W2Zr7smLZiigbVRazZs2KTp06bbxC0kDvvfdecsIJJySPPvro16731ltvJX369GnQNisqKpL9998/qaioaGgzkiRJkjH/PaZR62+OXNTIVR19yc86+pKfdfQlP+voS37WaUl9yVWdbNfofeX0zFeSJMn7Y/vV+WpK9kt+1tGX/KyzNfelvszXoFF2582bF+eff35cddVVceaZZ9ZZtmjRopg6der6ATdat27QWEkAAABsxeoNpIsXL45LL700br755ujVq9dGy4uKimLChAlRUVERSZLEpEmT6gx4BAAAAJtS76nM3/72t7F69eoYP358Zt6AAQNi9uzZMXTo0OjSpUtcd911cckll0RNTU1069YtBg8e3KSNBgAAoPmrN5COHj06Ro8evdH8c845J/N9cXFxFBcXZ7dlAAAAtGgNuocUAAAAsk0gBQAAIBUCKQAAAKkQSAEAAEiFQAoAAEAqBFIAAABSIZACAACQCoEUAACAVAikAAAApEIgBQAAIBUCKQAAAKkQSAEAAEiFQAoAAEAqBFIAAABSIZACAACQCoEUAACAVAikAAAApEIgBQAAIBUCKQAAAKkQSAEAAEiFQAoAAEAqBFIAAABSIZACAACQCoEUAACAVAikAAAApEIgBQAAIBUCKQAAAKkQSAEAAEiFQAoAAEAqBFIAAABSIZACAACQCoEUAACAVAikAAAApEIgBQAAIBUCKQAAAKkQSAEAAEiFQAoAAEAqBFIAAABSIZACAACQCoEUAACAVAik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N+Kggw6KiIgXX3wx/vSnP0Xr1q3jlFNOiYMPPjhrdf785z/HwQcfHDvuuGNMnz493njjjfjud78b/fv3z1qNsWPHxpAhQ+Lf/u3fsrZNAABo7vL6DOmkSZPiyiuvjIiILl26xHe/+92IiLjmmmvi3nvvTbNpjXbzzTfHAw88EOXl5TFgwICYMWNGZtnkyZOzVuf3v/99XHjhhTFgwID4+c9/Hk888UR8+9vfjmnTpsWvfvWrrNXZ0Pjx47O+zTFjxkTEl6+D66+/PnbffffYdddd49prr40HHnggKzXGjRsXd999d6xevTpuv/32KCsri3333TeeffbZGDt2bFZqRERMnz49zj777HjmmWeyts1NefHFF+O1116LiIh77703Lr744rjrrruiuro6q3Wee+65GDlyZFx44YVx8cUXx/XXX5+pCwCb47nnnst8/8gjj8SQIUNi2LBh8eSTT6bYKqCpFSRJkqTdiK9SXFwc06dPj2233bbO/C+++CLOPPPMePrpp7NWa9GiRV+7fM8999yi7ZeUlMRjjz0WrVu3jvLy8rjgggti+PDhcdppp0Xfvn1j+vTpW7T99etMnTo1li1bFr17946XXnop2rZtG9XV1XHWWWfF448/vsU1fv7zn280b/bs2XHiiSdGRMQNN9ywxTUiIs4888x47LHHok+fPvH73/8+dt5554iIWLFiRZx11llZ2f+nn356lJWVRatWraJv374xZcqUKCwsjNra2ujdu3c89dRTW1wjIqJv375x8803R2lpaaxevToGDx4cJ554YhQVFWVl+xERN910U7zyyiuxZs2a6NSpUxQUFES/fv1i9uzZUVtbm7WAfffdd8frr78exx13XMyePTsOO+ywKCoqikceeSR+8IMfxNlnn52VOmzdnnvuuTj55JMj4ssPpv/zP/+TuUKiuV3tQeP8+c9/jqeffrrOlVHHH398FBcXp920RlmzZk1MmjQpFi9eHCeffHIcdthhmWV33nlnDBkyJGu15s6dGzvssEN85zvfiTvvvDPefffdOPTQQ+OCCy6IVq1aZa3O+q688sq49dZbs7rNdX/377zzznjllVfivPPOiyRJ4uGHH47vfve7MWzYsC2usWbNmpg6dWqccsopscMOO8RvfvObePPNN+O73/1u/PjHP462bdtmoScRF198cYwaNSq++c1vZmV7m7JmzZqYPn16FBUVRXFxcdxwww3xl7/8JTp37hwjRoyInXbaKSt11q5dG/fff3/MmjUrli5dGm3atIlvfetbcfrpp0evXr2yUmMdx3/jpHHsR2T/+M/rS3Zbt24da9as2Wh+VVVVtGnTJqu1fvzjH0d5eXm0b98+NszoBQUFMWvWrC3afpIkUVBQEBERe+21V9x9990xePDg+MY3vpGZnw1r166NwsLC6NixY1xwwQV13lhra2uzUmOnnXaK6dOnx8UXXxw77rhjRES89NJLccQRR2Rl++usWbMm1q5dG7vssku0a9cuM7+wsDC22SY7J/eLiori008/jfbt28cuu+wSq1atisLCwvjiiy+idevsHR4FBQWx7777xgMPPBBz586Nhx9+OMaNGxd77bVX7L777nHLLbdscY0///nPMWPGjKiuro7u3bvH888/H23atInjjz8++vTpk4VefOnJJ5+M6dOnR0FBQfTv3z8uuuiiuP/++6N///5x9tlnZzWQ+sPUeC3lg+mvfvWrOPnkkzf5wfTdd9/1wXQDLeWD6R133BFvvPFGnHHGGdG+ffuIiFiyZElMnTo1Xn/99RgxYsQW14iI+Mtf/vK1yw8//PAtrnHttdfG2rVrY//994+f/exncfbZZ8fFF18cEV/+Ezdbx/2ECRPi1VdfjRUrVmT+lp1zzjnx9NNPx/XXXx/XXHPNFtc477zzNvqssmDBghg0aFBERNx///1bXGN9zz77bDzyyCOZY7BHjx7Ru3fvrBz3615DxcXFceONN8aqVavi3HPPjTlz5sTVV1+dlb/HERHz58/PXLF23nnnZf1za0TE6NGjY9WqVVFdXR0PPPBAHHTQQXHbbbfFrFmz4tprr41f/vKXWakzfvz4qKmpiR/+8Icxc+bMOOCAA2KPPfaI+++/P8rLy+PSSy/NSp1cHP+5OPYjcnP85+LYj8jN8Z/XgfTiiy+Ovn37xtFHHx277bZbREQsXbo0Xnrppay8Ka3voYceinPPPTfGjBkThx56aFa3HRHRs2fPOO+882LkyJFx0EEHxX777Rd33HFHXHbZZVm9nPLUU0+N//N//k/cf//9mRf7O++8E6NHj47TTjstKzVGjBgRxx9/fNx+++1x5ZVXxpFHHhn33XdfnHnmmVnZ/jo777xzdO/ePQoKCmLMmDExfvz4ePHFF2PChAnRs2fPrNS47LLL4qyzzopevXrF3nvvHeedd14cffTR8fzzz8cPf/jDrNSIiDr/5DjmmGPimGOOiZqamnj33XejoqIiazWWL18eq1atiqqqqlixYkXsvPPOUVVVFTU1NVmpERGxevXq+OKLL6Jdu3ZRVVUVn3/+eUREtGvXLmv/KIjI3QfT+q5O6Nu37xbX8MF08/lg2jAt5YPpk08+GU899dRG7yW9e/eO3r17Z+24/9WvfhWvv/56HHTQQZv8J3Q2XscLFizIXJXUt2/fOP/886OoqCjOP//8jWpuiT/96U9RVlYWn3/+eZxyyinx8ssvxzbbbBPHH398Vt6/Ir78DPOb3/wmrrjiiujYsWMkSRLXXHNNXHbZZVnZ/jqrVq2KZcuWxZ577hmrVq3KHPdVVVVZ+yfxe++9F2VlZRHxZTiZMWNGFBQURPfu3bN69UWHDh3innvuiZtuuilOPfXUOOecc6JXr17RsWPHrNV46623oqysLGpra6N79+6ZW8D23XffrP4j+qWXXsq8lo877rgYOHBgPPTQQ9G9e/c444wzshZIc3H85+LYj8jN8Z+LYz8iN8d/XgfSkpKSOOKII+LFF1+MJUuWRJIkcdhhh8WQIUOiQ4cOWa21/fbbx9ixY+ORRx5pkkB62WWXxaGHHhrbbbddZt6hhx4ajz76aFbvh7388svjL3/5S50zIYWFhTFkyJDo3r171uocffTR8Z3vfCfGjBkTc+bMydrZ1/Wte1P44IMP4p///GdEfNmXoUOHRo8ePbJS48QTT4z99tsvnnvuufjoo4+ia9eusd1228X48eMzAyplw8CBAzea16ZNm+jcuXN07tw5KzUuuuiiOPXUUyNJkhg+fHhccMEFcfTRR8eLL76Y1QGa+vXrF+ecc04ce+yx8fzzz0e/fv1i4cKFcemll0bv3r2zVidXH0xfeumlmDlz5lf+kyMbb+o+mDaeD6aN01I+mLZt2zY+/vjjjW6TWbRoURQWFm7Rttc3ceLEGDRoUPzgBz+Ik046KWvbXV+SJLFq1apo165dfOMb34iJEyfGOeecE7vssktWr4yKiKiuro6dd945RowYkXnPXLly5SavMtscAwcOjCOPPDLGjBkT//Ef/xF9+/aN7bbbLutXRnXr1i0GDx4cixcvjmuvvTbuvPPOeOaZZ+KGG26IH/3oR1mp0a5du/jrX/8a++23X3zrW9+KxYsXx5577hmffPJJVl9jBQUFseuuu8ZNN90U5eXlMWXKlLjgggti9erVsfvuu2dl/JBtttkmPvzww1i+fHksX748Kisro1OnTvHZZ59lbd9HfHmF3aeffhq77LJLLF26NKqqqiIioqamJqtXk+Xi+M/FsR+Ru+O/qY/9iBwd/wlsoSlTpiSDBw9OuxkkSfLFF18kK1asSJIkSd55553knnvuSZ5//vms15k7d25yzz33JHPnzk2SJElWrFiRvPPOO1mtUVJSkixcuHCj+f/v//2/5IwzzshqrR//+MfJI488ktVtrq93797JypUrM9Mff/xxcsIJJySPP/540rdv36zV6dWrV1JVVZUkyZfH5TrLly9PTj/99KzV+etf/5qce+65yWOPPZYkSZLVPqwzcuTIpHfv3smhhx6aXHbZZUmSJMnMmTOTHj16JA8++GBWapx99tnJe++9lyRJklx66aWZ19vHH3+c9OnTJys1kqTu7+fDDz9MbrzxxuTUU09Nunfvnnz/+9/PSo0zzjgj+eCDD5L58+cnBx10UFJRUZEkSZJ8+umnWd33p59+erJs2bIkSb78Pa3r24oVK5JevXpt8fZfeOGFpEePHsn555+fDB8+PBk+fHhy/vnnJz169EhefPHFLd7++j744INkwoQJWd3m+iZPnpyceuqpmffJJEmSv/3tb0mPHj2SLl26ZK3OpEmTklNPPTVZs2ZNZt68efOSE044IXn44YezVidJkmT16tXJDTfckAwZMiSrr6v1Pfvss8l9992XfPjhh0mSJMm7776bvPPOO8nkyZOzsv1XX301+d73vpcMGTIk+dnPfpZ873vfS37yk58k3bt3T+bMmZOVGkmSfOV7yGeffZbMnz8/KzX+/Oc/J927d0+OO+645Nlnn0169uyZDB06NDnhhBMy78/ZMG3atKR79+7J5ZdfnvTo0SMpKytLysvLk+7duydTp07NWp1NHf+DBw/O+vHf1Md+kmz6+H///fezevx/1bF/4oknZv3YT5KmPf7zelAjYOs1d+7cGDVqVOy11151LtkvLy+PG264IY466qis1VqyZEmUlZXFhRdemLVtru/hhx+Oe++9N0pLS+Poo4+OiC8fafXDH/4wPv3003jjjTeyUufBBx+M++67L5588snMVRKvvvpq/PSnP42LL744q/f3VldXx6233hqLFi2K999/P5544omsbXt9X3zxRSxbtiy++c1vxnvvvRdJksS///u/Z2Xbr732WgwZMiS6desW2267bbzwwgtx8MEHx1tvvRX/+Z//mbWrSr5q4Lq///3vUVFRkZWrMZ5//vkYPXp0rF27Nq699tq45ZZbYv/9948333wzhg4dmrUz5I8++mjccccdccghh8T8+fPjqquuii5dusQPfvCDGDJkSFauxnjiiSfiww8/jFatWsU3v/nN6NChQxx88MHx2GOPZfURabl4FNvEiROjuro6SkpKMjVWrFgRDz74YNbO+EV8OcJ+q1atMn35+OOPY/ny5fHqq69mrS/r/74qKyvjj3/8Y1x//fVZ/X3dfPPN8dZbb8Xee+8dTz31VIwYMSJzhn/dgEfZMH369KisrIyioqJYs2ZN7LrrrnHsscfGn/70p6z15U9/+lPU1NQ0+Wvsueeei0WLFkWPHj2iXbt28corr8R+++0Xr7zySlaPl3Wv5V69esVee+0V1dXVsXLlynjmmWeyWuedd96J5cuXx5IlS6K8vDz+93//NwYMGJDVq1Zy9XjEDz/8MIqKimKPPfbI1OnSpUv8/e9/j/PPPz9rNdq1a5fpy/z586NTp06Z24KyZf3f2cMPPxzz58+PY489Nmu/M4EUyFurV6+ON954I3PJ/roPptm8rKqpR9hep7y8PAoLC+tsb8WKFTF16tSs/WGKiMwlW+us+2C63377Za3G+l544YV44okn4vrrr8/qdnO1X1asWBFz586Njz76KGprazMfTHffffesbD/iyw+m2bxloiGWLVuW+WC6zz77ZHXbH374Ybz77rtxwAEHZD6Yrlq1KisDJ60fSJ588skYOXJkkwSSm2++ORYsWBD77LNPkwWfXNTIVZ1c9SUXTyTI1WtswoQJ8dZbbzX5fslFgM/V/v/9738ff/jDH2Lt2rVx1FFHxeLFi+OUU06J2bNnR7du3bJyr2ouatRX55BDDsnKbS5p9eXjjz+Ok08+Obt1snq+FSBLFi5c+LVf2dK7d++kc+fOyYknnpiccMIJdb5OPPHErNTIVV9yUcd+yc86LaUvvXv3TmpqapIk+fLy5hNOOCF58sknkyT56ksg87VO7969M5fStYS+5GK/9OrVq87lh++9917yve99L3nppZeydmtAS3uN5aovuXotV1VVJZWVlUnXrl0zt6CsXr06KSkpaTY1clWnJfUlrwc1ArZeTf0opnWaeoTtiNz1JRd1NlWjoKAg82ir5r5fmqIvae2XbNfIRZ0kR49Iy0Wd9X8/LaEvudgvuXgiQUt7jeWqL+s090cX5qJGruq0pL44QwrkpeXLlyclJSXJK6+80uS15s+fn4wePbrJtp+rvuSijv2Sn3VaSl/uvPPO5Jxzzqkz6Msrr7ySHHXUUUm3bt2aVR192Txz585N/va3v9WZt2jRomTs2LFZ2b79kr91br/99uTcc8+tc5b87bffTvr375/ceeedzaZGruq0pL4IpEDeaupAkku56ksu6tgv+VmnpfSlqQNJLuvoS36yX/K3zssvv1xn+v3338/q6Me5qpGrOi2lLwY1AgAAIBXb1L8KAAAAZJ9ACgAAQCoEUgAAAFIhkAIAAJCK/x+flKqUVmqvmgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_xgbr = results_xgbr.head(35)\n", + "results_xgbr.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 595, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_xgbr.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 596, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.0018557211348477257" + ] + }, + "execution_count": 596, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_xgbr=np.mean(results_xgbr.error)\n", + "meanerror_xgbr" + ] + }, + { + "cell_type": "code", + "execution_count": 597, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.642547
10.542795
21.128493
30.693970
40.530295
......
650.748831
660.653880
671.799503
680.727153
690.791244
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.642547\n", + "1 0.542795\n", + "2 1.128493\n", + "3 0.693970\n", + "4 0.530295\n", + ".. ...\n", + "65 0.748831\n", + "66 0.653880\n", + "67 1.799503\n", + "68 0.727153\n", + "69 0.791244\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 597, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 598, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/xgbr.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### data frame errores medios" + ] + }, + { + "cell_type": "code", + "execution_count": 599, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0
xgbr-0.001856
kn0.011011
rf0.005029
lr-0.017118
xgb-0.000248
ridge-0.016882
\n", + "
" + ], + "text/plain": [ + " 0\n", + "xgbr -0.001856\n", + "kn 0.011011\n", + "rf 0.005029\n", + "lr -0.017118\n", + "xgb -0.000248\n", + "ridge -0.016882" + ] + }, + "execution_count": 599, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.DataFrame([[meanerror_xgbr, meanerror_kn, meanerror_rf, meanerror_lr, meanerror_xgb, meanerror_ridge]], \n", + " columns=['xgbr','kn','rf','lr','xgb','ridge']).T\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exporting best model" + ] + }, + { + "cell_type": "code", + "execution_count": 600, + "metadata": {}, + "outputs": [], + "source": [ + "import pickle" + ] + }, + { + "cell_type": "code", + "execution_count": 605, + "metadata": {}, + "outputs": [], + "source": [ + "#Saving the Model\n", + "pickle_out = open(\"../reto_data/outputs/xgb.pkl\", \"wb\") \n", + "pickle.dump(pipeline_xgb, pickle_out) \n", + "pickle_out.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 606, + "metadata": {}, + "outputs": [], + "source": [ + "df_train.to_excel(\"../reto_data/outputs/clean_df.xls\")" + ] + }, + { + "cell_type": "code", + "execution_count": 607, + "metadata": {}, + "outputs": [], + "source": [ + "df=pd.read_excel(\"../reto_data/outputs/clean_df.xls\")" + ] + }, + { + "cell_type": "code", + "execution_count": 608, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsunconsume_100Km
0028.05.02621.51200001.4000
1112.04.23021.51300000.5040
2211.25.53821.51500000.6160
3312.93.93621.51400000.5031
4418.54.54621.51500000.8325
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 distance consume speed temp_inside temp_outside gas_type \\\n", + "0 0 28.0 5.0 26 21.5 12 0 \n", + "1 1 12.0 4.2 30 21.5 13 0 \n", + "2 2 11.2 5.5 38 21.5 15 0 \n", + "3 3 12.9 3.9 36 21.5 14 0 \n", + "4 4 18.5 4.5 46 21.5 15 0 \n", + "\n", + " AC rain sun consume_100Km \n", + "0 0 0 0 1.4000 \n", + "1 0 0 0 0.5040 \n", + "2 0 0 0 0.6160 \n", + "3 0 0 0 0.5031 \n", + "4 0 0 0 0.8325 " + ] + }, + "execution_count": 608, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Conclusiones_\n" + ] + }, + { + "cell_type": "code", + "execution_count": 649, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsunconsume_100Km
distance100.000000-12.89667656.2298827.5178238.817534-5.341141-2.573817-1.9790658.11198199.210074
consume-12.896676100.000000-22.786618-16.062288-32.081059-1.5326979.65914024.811771-17.066738-5.218780
speed56.229882-22.786618100.0000005.9292961.541101-9.736041-3.5408000.9489468.16182855.184655
temp_inside7.517823-16.0622885.929296100.00000035.9500421.01976729.737625-3.69372424.2247946.237325
temp_outside8.817534-32.0810591.54110135.950042100.00000014.87050116.756227-18.63148934.6903413.787710
gas_type-5.341141-1.532697-9.7360411.01976714.870501100.00000010.5285406.0328192.276096-5.534834
AC-2.5738179.659140-3.54080029.73762516.75622710.528540100.00000024.2914718.859801-1.870021
rain-1.97906524.8117710.948946-3.693724-18.6314896.03281924.291471100.000000-11.2649990.912464
sun8.111981-17.0667388.16182824.22479434.6903412.2760968.859801-11.264999100.0000006.424729
consume_100Km99.210074-5.21878055.1846556.2373253.787710-5.534834-1.8700210.9124646.424729100.000000
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside \\\n", + "distance 100.000000 -12.896676 56.229882 7.517823 8.817534 \n", + "consume -12.896676 100.000000 -22.786618 -16.062288 -32.081059 \n", + "speed 56.229882 -22.786618 100.000000 5.929296 1.541101 \n", + "temp_inside 7.517823 -16.062288 5.929296 100.000000 35.950042 \n", + "temp_outside 8.817534 -32.081059 1.541101 35.950042 100.000000 \n", + "gas_type -5.341141 -1.532697 -9.736041 1.019767 14.870501 \n", + "AC -2.573817 9.659140 -3.540800 29.737625 16.756227 \n", + "rain -1.979065 24.811771 0.948946 -3.693724 -18.631489 \n", + "sun 8.111981 -17.066738 8.161828 24.224794 34.690341 \n", + "consume_100Km 99.210074 -5.218780 55.184655 6.237325 3.787710 \n", + "\n", + " gas_type AC rain sun consume_100Km \n", + "distance -5.341141 -2.573817 -1.979065 8.111981 99.210074 \n", + "consume -1.532697 9.659140 24.811771 -17.066738 -5.218780 \n", + "speed -9.736041 -3.540800 0.948946 8.161828 55.184655 \n", + "temp_inside 1.019767 29.737625 -3.693724 24.224794 6.237325 \n", + "temp_outside 14.870501 16.756227 -18.631489 34.690341 3.787710 \n", + "gas_type 100.000000 10.528540 6.032819 2.276096 -5.534834 \n", + "AC 10.528540 100.000000 24.291471 8.859801 -1.870021 \n", + "rain 6.032819 24.291471 100.000000 -11.264999 0.912464 \n", + "sun 2.276096 8.859801 -11.264999 100.000000 6.424729 \n", + "consume_100Km -5.534834 -1.870021 0.912464 6.424729 100.000000 " + ] + }, + "execution_count": 649, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(df_train.corr())*100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* El mejor modelo de prediccion es XGB. Diferentes variables afectan al consumo: velocidad, distancia por supuesto. En cuanto al tipo de combustible, solo afecta un 5,53% al precio." + ] + }, + { + "cell_type": "code", + "execution_count": 645, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "distance 18.639912\n", + "consume 4.899123\n", + "speed 40.820175\n", + "temp_inside 21.938007\n", + "temp_outside 12.228070\n", + "gas_type 1.000000\n", + "AC 0.100877\n", + "rain 0.140351\n", + "sun 0.087719\n", + "consume_100Km 0.883618\n", + "dtype: float64" + ] + }, + "execution_count": 645, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#SP98\n", + "gas_type.get_group(1).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 646, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "distance 21.096250\n", + "consume 4.931250\n", + "speed 43.506250\n", + "temp_inside 21.917429\n", + "temp_outside 10.118750\n", + "gas_type 0.000000\n", + "AC 0.043750\n", + "rain 0.100000\n", + "sun 0.075000\n", + "consume_100Km 1.008933\n", + "dtype: float64" + ] + }, + "execution_count": 646, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#E10\n", + "gas_type.get_group(0).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 644, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume_100Kmspeeddistance
gas_type
01.00893343.50625021.096250
10.88361840.82017518.639912
\n", + "
" + ], + "text/plain": [ + " consume_100Km speed distance\n", + "gas_type \n", + "0 1.008933 43.506250 21.096250\n", + "1 0.883618 40.820175 18.639912" + ] + }, + "execution_count": 644, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg({'consume_100Km':'mean','speed':'mean','distance':'mean' })" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* El consumo de E10es superior pero también la velocidad y la distancia." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": { + "height": "calc(100% - 180px)", + "left": "10px", + "top": "150px", + "width": "402.712px" + }, + "toc_section_display": true, + "toc_window_display": true + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/.ipynb_checkpoints/models - copia-checkpoint.ipynb b/.ipynb_checkpoints/models - copia-checkpoint.ipynb new file mode 100644 index 0000000..b9da565 --- /dev/null +++ b/.ipynb_checkpoints/models - copia-checkpoint.ipynb @@ -0,0 +1,5130 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 289, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib as mpl\n", + "import matplotlib.pylab as pylab\n", + "from sklearn import metrics\n", + "import numpy as np # linear algebra\n", + "import pandas as pd # data processing\n", + "#from sklearn.preprocessing import OneHotEncoder, LabelEncoder\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.decomposition import PCA\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.tree import DecisionTreeRegressor\n", + "from sklearn.ensemble import RandomForestRegressor\n", + "from sklearn.linear_model import LinearRegression\n", + "from xgboost import XGBRegressor\n", + "from sklearn.neighbors import KNeighborsRegressor\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn import metrics\n", + "from sklearn.linear_model import Ridge, Lasso\n", + "from sklearn.ensemble import GradientBoostingRegressor\n", + "from sklearn import metrics\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.linear_model import SGDRegressor\n", + "from sklearn import linear_model\n", + "from scipy import stats" + ] + }, + { + "cell_type": "code", + "execution_count": 290, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidespecialsgas_typeACrainsunrefill litersrefill gas
02852621,512NaNE1000045E10
1124,23021,513NaNE10000NaNNaN
211,25,53821,515NaNE10000NaNNaN
312,93,93621,514NaNE10000NaNNaN
418,54,54621,515NaNE10000NaNNaN
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside specials gas_type AC \\\n", + "0 28 5 26 21,5 12 NaN E10 0 \n", + "1 12 4,2 30 21,5 13 NaN E10 0 \n", + "2 11,2 5,5 38 21,5 15 NaN E10 0 \n", + "3 12,9 3,9 36 21,5 14 NaN E10 0 \n", + "4 18,5 4,5 46 21,5 15 NaN E10 0 \n", + "\n", + " rain sun refill liters refill gas \n", + "0 0 0 45 E10 \n", + "1 0 0 NaN NaN \n", + "2 0 0 NaN NaN \n", + "3 0 0 NaN NaN \n", + "4 0 0 NaN NaN " + ] + }, + "execution_count": 290, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train=pd.read_csv('../reto_data/inputs/measurements.csv')\n", + "df_train.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### drop nan" + ] + }, + { + "cell_type": "code", + "execution_count": 291, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "distance 0\n", + "consume 0\n", + "speed 0\n", + "temp_inside 12\n", + "temp_outside 0\n", + "specials 295\n", + "gas_type 0\n", + "AC 0\n", + "rain 0\n", + "sun 0\n", + "refill liters 375\n", + "refill gas 375\n", + "dtype: int64" + ] + }, + "execution_count": 291, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train.isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 182, + "metadata": {}, + "outputs": [], + "source": [ + "#eliminamos columnas con demasiados elementos vacios\n", + "df_train=df_train.drop(['specials', 'refill liters', 'refill gas'], axis='columns')" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 9 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 distance 388 non-null object\n", + " 1 consume 388 non-null object\n", + " 2 speed 388 non-null int64 \n", + " 3 temp_inside 376 non-null object\n", + " 4 temp_outside 388 non-null int64 \n", + " 5 gas_type 388 non-null object\n", + " 6 AC 388 non-null int64 \n", + " 7 rain 388 non-null int64 \n", + " 8 sun 388 non-null int64 \n", + "dtypes: int64(5), object(4)\n", + "memory usage: 27.4+ KB\n" + ] + } + ], + "source": [ + "df_train.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Categorical and numerical columns" + ] + }, + { + "cell_type": "code", + "execution_count": 184, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Numerical columns: ['speed', 'temp_outside', 'AC', 'rain', 'sun']\n", + "Categorical columns: ['gas_type', 'consume', 'distance', 'temp_inside']\n" + ] + } + ], + "source": [ + "num_cols = list(df_train._get_numeric_data().columns)\n", + "print(\"Numerical columns: \", num_cols)\n", + "\n", + "cat_cols=list(set(df_train.columns) - set(num_cols))\n", + "print(\"Categorical columns: \", cat_cols)" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gas_type > {'E10', 'SP98'}\n", + "\n", + "consume > {'5,9', '5,4', '5,7', '4,5', '5,8', '3,8', '8,7', '3,7', '5,3', '5,5', '5', '4,9', '10,8', '4', '5,6', '5,1', '4,1', '6,3', '7,9', '4,8', '6,2', '9,9', '6', '4,3', '4,2', '7,4', '6,4', '6,5', '3,3', '6,6', '6,1', '5,2', '12,2', '4,4', '3,6', '3,9', '8,1', '7,1', '6,9', '11,5', '9', '4,6', '4,7'}\n", + "\n", + "distance > {'21,6', '5,4', '39,4', '9,8', '4,5', '24,9', '8,7', '5,3', '48,6', '35,8', '5,5', '14,7', '10,8', '6,8', '7,8', '17,3', '7,9', '19', '15,3', '21', '53,2', '16,9', '14,1', '6,1', '12', '34,8', '13', '2', '21,5', '37,2', '22,2', '67,2', '24,7', '12,2', '14,2', '24,5', '13,6', '18,1', '8,3', '40,6', '10,5', '2,4', '16,6', '153,5', '18,8', '81,2', '13,3', '18,7', '21,1', '20,6', '100,9', '18,4', '14,5', '31,9', '32,1', '19,8', '25,9', '5,1', '14', '16,1', '7', '51,6', '129,7', '28,2', '12,5', '44,9', '4,8', '39,5', '28,8', '211', '19,6', '28', '20,9', '14,3', '1,3', '11,9', '22,7', '10,1', '16,7', '43,5', '18,9', '23,5', '13,2', '17,2', '27,3', '17,4', '38,6', '2,1', '17', '25,7', '35,9', '38,5', '101,9', '28,5', '25,5', '36,6', '16', '36,5', '4,9', '16,4', '16,8', '16,3', '21,4', '11,7', '9,9', '12,6', '56,1', '15,4', '9,7', '29,9', '4,2', '12,1', '16,2', '6,7', '2,9', '27,1', '5,2', '1,7', '39', '25,3', '18,5', '18,3', '11,5', '11,6', '22,1', '31,5', '41,9', '13,4', '15,9', '43,7', '11,2', '31,8', '36,9', '20,8', '9,2', '24,8', '13,1', '130,3', '58,7', '22,4', '10,6', '20,1', '26,6', '12,4', '32', '10,2', '4,1', '12,8', '11,3', '32,6', '31,1', '17,9', '44,4', '29', '12,3', '13,9', '6', '7,4', '6,4', '6,6', '26,2', '33,4', '31,4', '11,8', '12,9', '15,7', '25,2', '16,5', '162,7', '12,7', '20', '93,9', '22,9', '216,1'}\n", + "\n", + "temp_inside > {nan, '24', '20,5', '24,5', '22,5', '23,5', '22', '25', '20', '21,5', '23', '19', '25,5', '21'}\n", + "\n" + ] + } + ], + "source": [ + "#visualizar contenido de las columnas categoricas\n", + "for c in cat_cols:\n", + " print(c, \">\", set(df_train[c]))\n", + " print(\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [], + "source": [ + "#convertimos en numéricas las que no son strings\n", + "df_train['temp_inside'] = pd.to_numeric(df_train['temp_inside'], errors='coerce')\n", + "df_train['consume'] = pd.to_numeric(df_train['consume'], errors='coerce')\n", + "df_train['distance'] = pd.to_numeric(df_train['distance'], errors='coerce')" + ] + }, + { + "cell_type": "code", + "execution_count": 187, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Numerical columns: ['distance', 'consume', 'speed', 'temp_inside', 'temp_outside', 'AC', 'rain', 'sun']\n", + "Categorical columns: ['gas_type']\n" + ] + } + ], + "source": [ + "num_cols = list(df_train._get_numeric_data().columns)\n", + "print(\"Numerical columns: \", num_cols)\n", + "\n", + "cat_cols=list(set(df_train.columns) - set(num_cols))\n", + "print(\"Categorical columns: \", cat_cols)" + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{0, 1}" + ] + }, + "execution_count": 188, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#con un diccionario mapeamos y convertimos en numéricos los dos tipos de combustibles\n", + "df_train['gas_type'] = df_train['gas_type'].map({'SP98': 1, 'E10': 0})\n", + "set(df_train['gas_type'])" + ] + }, + { + "cell_type": "code", + "execution_count": 189, + "metadata": {}, + "outputs": [], + "source": [ + "#solo una pequeá cantidad de rows en temp_inside están vacías, las rellenamos con la media de la columna\n", + "temp_inside = df_train['temp_inside'].dropna()\n", + "temp_inside_avg = temp_inside.mean()\n", + "df_train['temp_inside'] = df_train['temp_inside'].fillna(temp_inside_avg)" + ] + }, + { + "cell_type": "code", + "execution_count": 190, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "52" + ] + }, + "execution_count": 190, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train['distance'].count()" + ] + }, + { + "cell_type": "code", + "execution_count": 191, + "metadata": {}, + "outputs": [], + "source": [ + "##muchos nan en distance, eliminaremos\n", + "#print(set(df_train['distance']))" + ] + }, + { + "cell_type": "code", + "execution_count": 192, + "metadata": {}, + "outputs": [], + "source": [ + "#distance = df_train['distance'].dropna()\n", + "#distance_avg = distance.mean()\n", + "#df_train['distance'] = df_train['distance'].fillna(distance_avg)" + ] + }, + { + "cell_type": "code", + "execution_count": 193, + "metadata": {}, + "outputs": [], + "source": [ + "df_train.drop(['distance'], inplace=True, axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 194, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{nan, nan, nan, nan, nan, 5.0, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 9.0, 4.0, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 6.0, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan}\n" + ] + } + ], + "source": [ + "print(set(df_train['consume']))" + ] + }, + { + "cell_type": "code", + "execution_count": 195, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 8 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 consume 49 non-null float64\n", + " 1 speed 388 non-null int64 \n", + " 2 temp_inside 388 non-null float64\n", + " 3 temp_outside 388 non-null int64 \n", + " 4 gas_type 388 non-null int64 \n", + " 5 AC 388 non-null int64 \n", + " 6 rain 388 non-null int64 \n", + " 7 sun 388 non-null int64 \n", + "dtypes: float64(2), int64(6)\n", + "memory usage: 24.4 KB\n" + ] + } + ], + "source": [ + "df_train.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### correlations" + ] + }, + { + "cell_type": "code", + "execution_count": 196, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(8.5, -0.5)" + ] + }, + "execution_count": 196, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.set(style=\"white\")\n", + "# Generate a mask for the upper triangle\n", + "mask = np.zeros_like(df_train.corr(), dtype=np.bool)\n", + "mask[np.triu_indices_from(mask)] = True\n", + "# Set up the matplotlib figure to control size of heatmap\n", + "fig, ax = plt.subplots(figsize=(16,12))\n", + "# Create a custom color palette\n", + "cmap = sns.diverging_palette(255, 10, as_cmap=True) # as_cmap returns a matplotlib colormap object rather than a list of colors\n", + "# Red=10, Green=128, Blue=255\n", + "# Plot the heatmap\n", + "sns.heatmap(df_train.corr(), mask=mask, annot=True, square=True, cmap=cmap , vmin=-1, vmax=1, ax=ax) # annot display corr label\n", + "# Prevent Heatmap Cut-Off Issue\n", + "bottom, top = ax.get_ylim()\n", + "ax.set_ylim(bottom+0.5, top-0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consumespeedtemp_insidetemp_outsidegas_typeACrainsun
consume100.000000-27.261035-18.313129-23.5242856.485230-9.95062615.408254-11.104052
rain15.4082540.948946-1.705006-18.6314896.03281924.291471100.000000-11.264999
gas_type6.485230-9.736041-6.08470214.870501100.00000010.5285406.0328192.276096
AC-9.950626-3.54080025.15768016.75622710.528540100.00000024.2914718.859801
sun-11.1040528.16182810.61454434.6903412.2760968.859801-11.264999100.000000
temp_inside-18.3131296.451800100.00000020.631894-6.08470225.157680-1.70500610.614544
temp_outside-23.5242851.54110120.631894100.00000014.87050116.756227-18.63148934.690341
speed-27.261035100.0000006.4518001.541101-9.736041-3.5408000.9489468.161828
\n", + "
" + ], + "text/plain": [ + " consume speed temp_inside temp_outside gas_type \\\n", + "consume 100.000000 -27.261035 -18.313129 -23.524285 6.485230 \n", + "rain 15.408254 0.948946 -1.705006 -18.631489 6.032819 \n", + "gas_type 6.485230 -9.736041 -6.084702 14.870501 100.000000 \n", + "AC -9.950626 -3.540800 25.157680 16.756227 10.528540 \n", + "sun -11.104052 8.161828 10.614544 34.690341 2.276096 \n", + "temp_inside -18.313129 6.451800 100.000000 20.631894 -6.084702 \n", + "temp_outside -23.524285 1.541101 20.631894 100.000000 14.870501 \n", + "speed -27.261035 100.000000 6.451800 1.541101 -9.736041 \n", + "\n", + " AC rain sun \n", + "consume -9.950626 15.408254 -11.104052 \n", + "rain 24.291471 100.000000 -11.264999 \n", + "gas_type 10.528540 6.032819 2.276096 \n", + "AC 100.000000 24.291471 8.859801 \n", + "sun 8.859801 -11.264999 100.000000 \n", + "temp_inside 25.157680 -1.705006 10.614544 \n", + "temp_outside 16.756227 -18.631489 34.690341 \n", + "speed -3.540800 0.948946 8.161828 " + ] + }, + "execution_count": 197, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "corr = (df_train.corr().sort_values('consume', ascending=False))*100\n", + "corr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " *- El consumo no solo se relaciona con el tipo de combustible, sino con la lluvia y la velocidad, así como la temperatura en el exterior y en el interior*" + ] + }, + { + "cell_type": "code", + "execution_count": 198, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "corr_mat=df_train.corr(method='pearson')\n", + "plt.figure(figsize = (16,5))\n", + "corr_mat['consume'].sort_values(ascending = False).plot(kind = 'bar');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Chequear media de consumo por tipo de combustible y resto de variables" + ] + }, + { + "cell_type": "code", + "execution_count": 199, + "metadata": {}, + "outputs": [], + "source": [ + "gas_type=df_train.groupby('gas_type')" + ] + }, + { + "cell_type": "code", + "execution_count": 200, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consumespeedtemp_insidetemp_outsideACrainsun
gas_type
04.75000043.50625021.99371310.118750.0437500.1000000.075000
14.86206940.82017521.89364712.228070.1008770.1403510.087719
\n", + "
" + ], + "text/plain": [ + " consume speed temp_inside temp_outside AC rain \\\n", + "gas_type \n", + "0 4.750000 43.506250 21.993713 10.11875 0.043750 0.100000 \n", + "1 4.862069 40.820175 21.893647 12.22807 0.100877 0.140351 \n", + "\n", + " sun \n", + "gas_type \n", + "0 0.075000 \n", + "1 0.087719 " + ] + }, + "execution_count": 200, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 201, + "metadata": {}, + "outputs": [], + "source": [ + "#gas_type.get_group(1).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 202, + "metadata": {}, + "outputs": [], + "source": [ + "#gas_type.get_group(0).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 203, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 203, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "gas_type.size().sort_values(ascending=True).plot(kind='barh')\n", + "#'SP98': 1, 'E10': 0" + ] + }, + { + "cell_type": "code", + "execution_count": 292, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 292, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "gas_type[['consume','speed',]].mean().plot(kind='bar')\n", + "#'SP98': 1, 'E10': 0" + ] + }, + { + "cell_type": "code", + "execution_count": 293, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 293, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "gas_type.agg({'consume':'min','speed':'max',}).plot(kind='bar')\n", + "#'SP98': 1, 'E10': 0" + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consumespeed
gas_type
04.088
14.090
\n", + "
" + ], + "text/plain": [ + " consume speed\n", + "gas_type \n", + "0 4.0 88\n", + "1 4.0 90" + ] + }, + "execution_count": 206, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg({'consume':'min','speed':'max', })" + ] + }, + { + "cell_type": "code", + "execution_count": 207, + "metadata": {}, + "outputs": [], + "source": [ + "### El consumo medio es similar, pero la distancia recorrida es mayor con SP98" + ] + }, + { + "cell_type": "code", + "execution_count": 208, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consumespeed
gas_type
04.014
14.016
\n", + "
" + ], + "text/plain": [ + " consume speed\n", + "gas_type \n", + "0 4.0 14\n", + "1 4.0 16" + ] + }, + "execution_count": 208, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg({'consume':'min','speed':'min',})" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consumespeed
gas_type
04.75000043.506250
14.86206940.820175
\n", + "
" + ], + "text/plain": [ + " consume speed\n", + "gas_type \n", + "0 4.750000 43.506250\n", + "1 4.862069 40.820175" + ] + }, + "execution_count": 209, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg({'consume':'mean','speed':'mean', })" + ] + }, + { + "cell_type": "code", + "execution_count": 210, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
gas_type01
consumemin4.0000004.000000
max6.0000009.000000
mean4.7500004.862069
speedmin14.00000016.000000
max88.00000090.000000
mean43.50625040.820175
temp_insidemin21.00000019.000000
max25.00000025.000000
mean21.99371321.893647
temp_outsidemin-5.000000-3.000000
max27.00000031.000000
mean10.11875012.228070
ACmin0.0000000.000000
max1.0000001.000000
mean0.0437500.100877
rainmin0.0000000.000000
max1.0000001.000000
mean0.1000000.140351
sunmin0.0000000.000000
max1.0000001.000000
mean0.0750000.087719
\n", + "
" + ], + "text/plain": [ + "gas_type 0 1\n", + "consume min 4.000000 4.000000\n", + " max 6.000000 9.000000\n", + " mean 4.750000 4.862069\n", + "speed min 14.000000 16.000000\n", + " max 88.000000 90.000000\n", + " mean 43.506250 40.820175\n", + "temp_inside min 21.000000 19.000000\n", + " max 25.000000 25.000000\n", + " mean 21.993713 21.893647\n", + "temp_outside min -5.000000 -3.000000\n", + " max 27.000000 31.000000\n", + " mean 10.118750 12.228070\n", + "AC min 0.000000 0.000000\n", + " max 1.000000 1.000000\n", + " mean 0.043750 0.100877\n", + "rain min 0.000000 0.000000\n", + " max 1.000000 1.000000\n", + " mean 0.100000 0.140351\n", + "sun min 0.000000 0.000000\n", + " max 1.000000 1.000000\n", + " mean 0.075000 0.087719" + ] + }, + "execution_count": 210, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg(['min', 'max','mean']).T" + ] + }, + { + "cell_type": "code", + "execution_count": 211, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consumespeedtemp_insidetemp_outsidegas_typeACrainsun
319NaN9022.0211001
\n", + "
" + ], + "text/plain": [ + " consume speed temp_inside temp_outside gas_type AC rain sun\n", + "319 NaN 90 22.0 21 1 0 0 1" + ] + }, + "execution_count": 211, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_max_speed=df_train[df_train.speed == df_train['speed'].max()]\n", + "df_max_speed" + ] + }, + { + "cell_type": "code", + "execution_count": 212, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consumespeedtemp_insidetemp_outsidegas_typeACrainsun
147NaN1421.934911100010
\n", + "
" + ], + "text/plain": [ + " consume speed temp_inside temp_outside gas_type AC rain sun\n", + "147 NaN 14 21.934911 10 0 0 1 0" + ] + }, + "execution_count": 212, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_min_speed=df_train[df_train.speed == df_train['speed'].min()]\n", + "df_min_speed" + ] + }, + { + "cell_type": "code", + "execution_count": 213, + "metadata": {}, + "outputs": [], + "source": [ + "group_cols = ['gas_type']\n", + "agg_dict = {'speed':['min', 'max','mean','var'],\n", + " 'consume':['min', 'max','mean','var']}\n", + "df_groupby=df_train.groupby(group_cols).agg(agg_dict)" + ] + }, + { + "cell_type": "code", + "execution_count": 214, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['speed', 'speed', 'speed', 'speed', 'consume', 'consume', 'consume',\n", + " 'consume'],\n", + " dtype='object')" + ] + }, + "execution_count": 214, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "level0 = df_groupby.columns.get_level_values(0)\n", + "level0" + ] + }, + { + "cell_type": "code", + "execution_count": 215, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['min', 'max', 'mean', 'var', 'min', 'max', 'mean', 'var'], dtype='object')" + ] + }, + "execution_count": 215, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "level1 = df_groupby.columns.get_level_values(1)\n", + "level1" + ] + }, + { + "cell_type": "code", + "execution_count": 216, + "metadata": {}, + "outputs": [], + "source": [ + "df_groupby.columns = level0 + '_' + level1" + ] + }, + { + "cell_type": "code", + "execution_count": 217, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
gas_type01
speed_min14.00000016.000000
speed_max88.00000090.000000
speed_mean43.50625040.820175
speed_var198.188640173.452102
consume_min4.0000004.000000
consume_max6.0000009.000000
consume_mean4.7500004.862069
consume_var0.3026321.051724
\n", + "
" + ], + "text/plain": [ + "gas_type 0 1\n", + "speed_min 14.000000 16.000000\n", + "speed_max 88.000000 90.000000\n", + "speed_mean 43.506250 40.820175\n", + "speed_var 198.188640 173.452102\n", + "consume_min 4.000000 4.000000\n", + "consume_max 6.000000 9.000000\n", + "consume_mean 4.750000 4.862069\n", + "consume_var 0.302632 1.051724" + ] + }, + "execution_count": 217, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_groupby.T" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### speed outliers" + ] + }, + { + "cell_type": "code", + "execution_count": 218, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable height\n", + "ax = sns.distplot(df_train.speed, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('speed', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of speed', fontsize=20);" + ] + }, + { + "cell_type": "code", + "execution_count": 219, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\_decorators.py:36: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Distribution of consume')" + ] + }, + "execution_count": 219, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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ACYmJoiPjwcAvHjxAoaGhjAzM4OZmVmhxkgf8ZgFEcm6cOECzp07VyzLMjExQUREBC5cuID58+fnOs/UqVOxb98+TJ06tUDL/Omnn7Bu3Tps2LAh1+lbtmzBtWvXsGXLllwf5zd/SkoKVq9ejZcvXwJ4fc0lc3NzODk5oWfPnujZsyecnZ3L1HWqioJhQUSlSrNVYWBggLS0NERFRWlNj42NRVxcHABAqVTizp07+S7v6dOnCA8PhxACR44cka7emtf02NjYQs2fkJCQYxdSWloarly5gm3btmHt2rVFGoeypkR2QyUnJ+Pp06fSN7kpf7GxsVCrinf/almnVr1AbGws/4f0RGxsbLFdk2ndunWwtraWLl8xd+5c/PLLL9L0BQsWaM2/YMECLF++PM/lbdmyRXozV6vV2LJlC4YNG5bn9DePMxRk/qNHj2LcuHF49uwZUlNTkZKSgufPn0s/devWfYfRKDt4zIKISlV6errWGUKamwJpaLYqNPL7PgMA/PHHH9JBc5VKhWPHjmm9+b89/c3lFWR+zfR/8r3BC6JEwsLS0hKWlpa8rk8Baa4NRf/P0NgM9rw2lN4ozi28ihUraoXF22/CtWvX1goMuftqt2nTBocPH4ZKpYKxsTG8vb3znV6zZk08ePAgz/lbt26NI0eO5Dn934rHLIioVAUHB2s9njhxotbj8ePH5/v4bX369JFO8zQ0NESfPn3ynT5u3Lh85+/bt2++0/+tGBZEVKrc3d2l+02bm5vD1dVVa7q9vT1q164N4PVWRb169fJdnpWVFdq1awcDAwP4+PjkOBX27en29vaFmj+3U2v/jRgWRFTqgoODYWhomGOrQmP8+PGoUKGC7FaFRp8+feDo6JjnVsDb0ws7P/EANxHpgLu7O/bu3ZvndHt7e2zdurXAy7OyssLcuXMLPL2w8xO3LIiIqAAYFkREJIthQUREshgWREQki2FBRESyGBZERCSLYUFERLIYFkREJIthQUREshgWREQki2FBRESyGBZERCSLYUFERLIYFkREJIthQUREshgWREQki2FBRESyGBZERCSLYUFERLIYFkREJIthQUREshgWREQki2FBRESyGBZERCSLYUFERLIYFkREJIthQUREshgWREQki2FBRESyGBZERCSLYUFERLIYFkREJIthQUREshgWREQki2FBRESyGBZE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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# box plot of the variable consume\n", + "ax = sns.boxplot(df_train.speed)\n", + "\n", + "# notation indicating an outlier\n", + "ax.annotate('Outlier', xy=(80,0), xytext=(75,-0.05), fontsize=14,\n", + " arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle=\"round\", fc=\"0.8\"))\n", + "ax.annotate('Outlier', xy=(90,0), xytext=(95,-0.05), fontsize=14,\n", + " arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle=\"round\", fc=\"0.8\"))\n", + "\n", + "# xtick, label, and title\n", + "plt.xticks(fontsize=14)\n", + "plt.xlabel('consume', fontsize=14)\n", + "plt.title('Distribution of consume', fontsize=20)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### consume outliers" + ] + }, + { + "cell_type": "code", + "execution_count": 220, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZsAAAEmCAYAAAC0zD1TAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABe7klEQVR4nO3deVgT1/oH8G8CSQj7jgKKgIDIDu5Y1Eq9iloF67Uu1VZtrXVpb13qUq8itoptta2tuNyqrdpaXH/uVWnr0loXCIsLKO4oSwBZA4Qk8/sjMhDZApJE4P08Tx6ZM2dm3oGYN3PmzDkchmEYEEIIIRrE1XUAhBBC2j5KNoQQQjSOkg0hhBCNo2RDCCFE4yjZEEII0ThKNoQQQjSOkg2p04YNG+Dh4aHy6tatG/z9/TFkyBAsW7YMd+7cqbVdRkYGPDw88MEHHzTruMnJybhw4UKTYjxz5kyLHLsxFy5cQHJyMrt86dIleHh44LPPPtPI8VqaTCZDdHQ0goOD4ePjg5EjR+o6JNKO6Os6APJyGzx4MDw9PQEACoUCJSUlSE1NRWxsLA4fPoxvvvkGAwcOZOubmppi9uzZcHFxafKx/vzzT8ycOROffPIJ+vfv32j9Xr16Yfbs2XB2dm7ysZrq559/RmRkJL7//nu2zMHBAbNnz4afn5/Gj98S9u3bh23btsHZ2Rnh4eGwsrLSdUikHaFkQxoUGhqKiIiIWuVnz57FrFmz8J///AeHDh2Ck5MTAGWymTNnTrOOlZ+fD4VCoXb93r17o3fv3s06VlPl5eXVKnN0dGz2uerCjRs3AAD//e9/0a9fPx1HQ9obakYjzTJgwAB8+OGHkEgk2Lhxo67DIWqQSqUAAAsLCx1HQtojSjak2SZNmgSBQIBTp05BJpMBqPu+iUwmw3fffYeRI0fC398fvXr1wrRp03Dx4kW2zqJFi7B48WIAwOrVq+Hh4YGMjAz2vsjPP/+Mjz/+GL6+vujfvz/i4+Nr3bOp6dSpUxg5ciR8fHzwr3/9C5s3b0ZlZaVKHQ8PD4waNarWtgcOHICHhwd27NgBAHjrrbfw3XffAQBmzZoFDw8PAPXfs7l37x7mz5+Pfv36wdvbG6GhoVi7di2Ki4tV6i1atAgeHh4oLCzE8uXL2XspERER+O2339T6GwDAX3/9hXfeeQeBgYHw9fVFeHg4du/ezV4lVv1NDh48CAAYPXo0PDw8cOnSpQb3m5GRgaVLlyIkJAR+fn4YPnw4tm3bVuv3qKnz3blzJyIiIhAQEIDAwEBMmDABJ06cqHOfN2/erLX983/fqr/r5cuXsWXLFrz66qvw9fXF6NGjcf78eQDKpsZhw4bBz88PI0eOxMmTJ2vtt6SkBF9++SVCQ0Ph7e2NV155BcuXL6/z6pdUo2RDmk0oFKJ79+6QSCR1/mevEhUVhQ0bNsDc3BwTJ07E0KFDkZSUhGnTprEfeKGhoRg8eDAAoH///pg9ezZMTU3ZfXz//fdISUnBpEmT0L17d3h5edV7vMTERHz44Yfo1KkTxo8fDw6Hg3Xr1mHhwoXNOs/w8HD06tULABAWFobZs2fXWzcpKQkRERE4duwY/P39MXHiRFhZWeGHH37Av//9bxQUFNTa5p133sH58+cxbNgwjBw5Erdv38aHH36oVkeJnTt3YurUqUhJScFrr72GMWPGoLi4GCtXrsS8efPAMAx7H61bt24AgHHjxmH27NlwcHCod7+3bt3CmDFjsH//fnTv3h0TJkyAgYEBoqOj8emnn2r8fLds2YJVq1YBAN58801ERETg4cOH+Oijj3Do0KFGfy8N+fzzz7Ft2zYMGjQIw4cPx61btzBz5kysWrUKn332GQIDAxEREYGMjAz85z//YZsfAaC4uBjjx4/H1q1b4ejoiMmTJyMgIACxsbEYO3YscnJyXii2No0hpA7ffvst4+7uzuzfv7/BenPnzmXc3d2ZuLg4hmEY5tGjR4y7uzszc+ZMhmEYpri4mOnWrRszceJEle2Sk5MZd3d3Zs6cOWzZ/v37GXd3d2b79u1s2T///MO4u7szfn5+TE5OTp0xnj59WuXY7u7uzI8//sjWKysrYyZPnsy4u7szFy5cYMvd3d2Z119/vdY51RXH88eqGduqVasYhmEYmUzGDBkyhOnevTtz9uxZlX1+8cUXjLu7O7N48WK27JNPPmHc3d2ZN954gyktLWXLDx8+zLi7uzMfffRRrdhqevjwIdO9e3dm4MCBzMOHD9ny0tJS9nwPHjxY63g3btxocL8MwzATJkxgPDw8mN9++40tUygUzNSpUxl3d3fm2rVrGj3fXr16MaGhoUxlZSVblpmZyXh7ezMRERFqndPzf9+qv2tgYCDz+PFjtvyrr75i3N3dGU9PT+bmzZts+YEDBxh3d3dm7dq1bNmKFSsYd3d3ZteuXSrHOnPmDOPu7s7MnTu3nt8ooSsb8kL4fD4AZdNCXRQKBRiGQWZmJsRiMVvu4+ODM2fO4KuvvlLrOIGBgbCxsVGrbufOnTFx4kR22cDAAP/5z38AAEeOHFFrH80hEolw//59DB8+HCEhISrr5s6dCzs7Oxw5coS9d1Jl4sSJMDQ0ZJcHDBgAAHj8+HGDxzt8+DBkMhlmzZqFTp06seWGhobs1cf+/fubfB5ZWVm4evUq+vXrhyFDhrDlHA4HH3/8MWbPng0+n6/R82UYBvn5+Xj06BFb1qFDB5w4cQI///xzk8+ppiFDhsDe3p5dDgwMBAD07duXvfoDAF9fX5W4ZDIZDh06BDc3N5X3F6DstRkYGIjTp0/X+3+hvaPeaOSFlJaWAoDKh0dNpqamCAsLw7FjxzBo0CAEBAQgJCQEgwYNQteuXdU+jqOjo9p1/fz8oKenp1Lm5eUFLpeL1NRUtffTVFVNiT179qy1js/nswn27t27Kh9qz3fdNjExAYBaH9LPqzqXuo7n5uYGU1PTZp1vWloaAMDf37/WOi8vL7YJc+fOnfUe/0XPd9y4cdiyZQvCwsLg4+ODkJAQDBgwAD4+Pk0+n+d17txZZVkoFAKo/R4TCAQqcd27dw8SiQRyuRwbNmyotd+KigrI5XKkpaUhKCjoheNsayjZkBdS9a2v5jfr50VHR8Pb2xsHDhzA5cuXcfnyZXz55Zfw9vbGqlWr2Od4GlL1H18d1tbWtcp4PB4EAgEkEona+2mqqm+0xsbGda63tbUFAJSVlamUV10dVuFwOACU3+7VOV7Vh3Vdx3vw4EEjUddWWFgIoP7zeP74mjjfjz/+GE5OTtizZw+Sk5ORlJSEDRs2wNnZGcuXL0ffvn2bcEaqqpLL856P63lFRUUAgLt377IdRupS9fsjqijZkGYrKChAeno6TE1NG7xK4fF4mDp1KqZOnYonT57gr7/+wsmTJ3HhwgXMmDEDcXFx4PF4LRZX1YdCTcXFxSgrK4OZmZlKeV3P9Tz/4aguIyMjAEB2dnaDcZmbmzdr/w0dz9LSstb6wsLCZh2r6iq16qq1JoVCAalUCgMDA42eL4fDwRtvvIE33ngDeXl5+Pvvv3H69GmcOnUKM2fOxO+//w5LS0s2UT3/d2zu37AhVec7atQorF27tsX339bRPRvSbLGxsZDJZBg2bFitZqsqjx49wrp16/DHH38AAOzt7TF27Fj88MMP6NOnD7Kzs5GRkQGg+hvui0pJSalVJhKJAEClFxuPx6vzQ6nmfYIq6sRWdYWWkJBQa51CoUB8fDwMDQ0b7AXWFFVNU/Hx8bXWPXjwAGKxGG5ubk3eb1XX7ppD81QRiUTw9/dHTEyMxs736dOn2LBhA9tV28rKCiNHjsS3336LiIgIlJWVsT3Eqr6kPP93fPjwYZOOqQ5nZ2fw+Xxcv369zqvOHTt2YOPGjXj69GmLH7stoGRDmuXixYv4/vvvYWhoiBkzZtRbz8DAAFu3bsU333yj0iYvlUohFovB5/PZG//6+soL7eef42iqW7duqTyPUVJSgq+//hocDkdlNAQXFxdkZGTg9u3bbNnjx4/r7FpbFVtD91GCgoLg5OSEU6dO4ezZsyrrvv32W2RmZmLYsGGNNteoa9SoUdDX18emTZtUEqREIsHKlSvZOk3VqVMnBAQE4MKFC+zzJ4AygWzduhUMwyA4OFhj52tkZISffvoJ69evr9V1+smTJwDA3uCvGhap6stMVZybNm1q0jHVIRAIEBYWhvT0dGzfvl1l3aVLl7B27Vrs37+/1tUzUaJmNNKgM2fOsPdlqsZGu3HjBq5evQoDAwOsX7++wW+uNjY2mDJlCrZv344RI0ZgwIAB4HK5OH/+PO7cuYMPPviAbfO3s7MDAPzyyy8oLCzEW2+91ayYO3fujPnz5+PMmTOwsLDAH3/8gYyMDLz33ntsDyMA+Pe//42oqCi89dZbGDFiBKRSKU6cOAF3d3dcvXpVZZ9VscXExODmzZt1PmvD5XKxZs0aTJs2De+//z4GDRqEzp07QyQSITExEa6urs1+1qcunTp1wieffILPPvsM4eHhCA0NhaGhIc6dO4dHjx5h+PDhGD16dLP2HRkZiUmTJmHGjBkIDQ2Fg4MD/vnnH9y4cQOTJ09mf4+aOF8+n4+5c+di1apVGDFiBF577TUYGBjgypUrSElJwahRo9gkM2LECHzzzTf44Ycf8OjRIzg6OuKvv/5CcXGxSo+zlvLJJ59AJBIhOjoacXFx8PX1RXZ2Nk6dOgV9fX18/vnn4HLpO3xdKNmQBsXFxSEuLo5dFgqFcHBwwKRJkzBlypRaPXvqsmDBAjg5OWHv3r04ePAg5HI5unbtijVr1iA8PJyt17NnT0ycOBH/93//h927d6Nfv371Ns81ZODAgejevTs2bdqEx48fo0uXLli1ahXGjh2rUm/SpEmQy+X4+eefsWfPHnTs2BEzZsxA3759a40HFxYWhrNnz+LPP//Ezz//rBJ3TYGBgdi3bx82btyIv//+G+fPn4e9vT1mzpyJd999l233bymTJ09Gly5d8MMPP+DUqVNgGAaurq6YMWMG3njjjWbv18PDA3v37sWGDRvw119/oaSkBI6Ojli8eDEmT57M1tPU+b711luwsrLCTz/9hOPHj6OsrAxdunTB4sWLMWnSJLaetbU1fvrpJ6xbtw7nzp0Dj8fDK6+8goULFzZ4xd1clpaWiI2NxebNm3H69Gns3LkTlpaWePXVV/HBBx+o9LojqjhMY11eCCGEkBdE13uEEEI0jpINIYQQjaNkQwghROMo2RBCCNE46o1Wh/Lycly7dg02NjbN6g1FCCHtkVwuh1gshre3NwwMDFTWUbKpw7Vr12qN6koIIUQ9u3fvRo8ePVTKKNnUoeqJ9t27d6NDhw46joYQQlqHrKwsTJw4sc7pQCjZ1KGq6axDhw5NGtqeEEII6rz9QB0ECCGEaBwlG0IIIRpHyYYQQojGUbIhhBCicZRsCCGEaBwlG0IIIRpHyYYQQojG0XM2hKipRCKFpFzW5O0MDfRhbNgyU0ET0lpRsiFETZJyGXKeSpq8na2FISUb0u5RsiGkiTJyStSu62hrrMFICGk96J4NIYQQjaNkQwghROMo2RBCCNE4SjaEEEI0jpINIYQQjaNkQwghROO0mmykUimWLVuGnj17Ijg4GFu3bq23bmpqKsaNGwc/Pz9EREQgOTmZXSeTybBmzRoEBwcjICAAH374IXJzc9n1IpEIHh4eKq9Ro0Zp9NwIIYTUT6vJZu3atUhMTMT27dsRGRmJmJgYHDt2rFY9iUSC6dOnw8/PDwcOHEBQUBBmzJiBkhLl8w0bNmxAXFwcvvnmG8TGxqKgoAALFixgt09PT4e3tzcuXLjAvnbs2KGt0ySEEPIcrSUbiUSC2NhYLF68GN7e3ggNDcX06dOxa9euWnWPHz8OHo+HRYsWwdXVFUuWLIGJiQlOnDgBAFAoFFi6dCl69OgBNzc3TJ48GVeuXGG3T09Ph5ubG2xsbNiXhYWFtk6VEELIc7SWbFJTUyGVShEUFMSWBQUFISUlBXK5XKVuUlISAgMDweUqw+NwOAgMDIRIJAIAzJs3DwMHDgQA5ObmYu/evejTpw+7fXp6OpydnTV8RoQQQtSlteFqxGIxzMzMIBAI2DJra2tUVlYiLy8Ptra2KnWfTxZWVlZITU1VKVu/fj02bdoEMzMz/PLLL2z5nTt3IBQKMWLECJSUlCAkJAQLFiyAiYmJhs6OEEJIQ7R2ZVNWVgY+X3UwwqplqVSqVt3n64WHh2Pfvn3o3bs3pk6dipKSEpSWliIzMxMKhQJr1qzBqlWrkJCQgHnz5mngrAghhKhDa1c2AoGgVrKoWhYKhWrVNTAwUCnr0qULAGXHgwEDBuDUqVOIiIjAlStXYGRkBD09PQDAmjVrMGbMGDx58gT29vYteVqEEELUoLUrGzs7OxQVFakkEbFYDD6fDzMzs1p1xWKxSllubi5sbGygUChw5swZla7OQqEQDg4OePr0KQDA1NSUTTQA4OrqCgDIzs5u8fMihBDSOK0lG09PT/B4PPYmPwDEx8fDy8sL+vqqF1h+fn4QiURgGAYAwDAMEhIS4O/vDy6Xi6ioKBw5coStX1xcjAcPHsDV1RXJyckICAhQSSw3btyAnp4enJycNHyWhBBC6qK1ZCMUCjF69GhERkYiOTkZcXFx2LZtGyZPngxAeZVTXl4OABg6dCgkEgmioqKQnp6O1atXo7S0FGFhYQCAiRMnYtOmTTh37hxu3bqF+fPno0uXLggJCUG3bt1gZ2eHpUuX4vbt27hy5Qo+/fRTjBkzBpaWlto6XUIIITVo9aHOxYsXw8fHB1OmTMHy5csxa9YsNoH0798fx48fBwAYGxtj8+bNEIlECA8PR0JCArZs2QJjY+VEVNOmTcPkyZOxbNky/Pvf/4a+vj5iYmLA5XLB5/OxdetW6OvrY/z48Zg9ezaCg4OxbNkybZ4qIYSQGjhMVVsVYWVkZGDw4MGIi4uDo6OjrsMhL4mcfAlynkqaPFOnrYUhbC0NNRgZIS+Hhj47aSBOQgghGkfJhhBCiMZRsiGEEKJxlGwIIYRoHCUbQgghGkfJhhBCiMZRsiGEEKJxlGwIIYRoHCUbQgghGkfJhhBCiMZpbT4bQlqLp8XlOPn3ffydkomnxeXg6XER4GGLXt07wNiQp+vwCGmVKNmQVq1EIoWkXNbk7QwN9GFsyK9Vfk6UgQ2xiSiXylXKT19+iDOXH+IVfwd0d7GEHpcaBQhpCko2pFWTlMuQ81TS5O1sLQxVkg3DMNh1MhWxZ27Vuw0D4FziYzzKKcbQPl3A5XKaEzIh7RIlG9ImNGUkZh9XKxgI9FTKDvyRrpJoOlobYdLQbvB2tUZOvgS7f0tF4i3l7LH3nhThz4QMDApyBIdDCYcQdVBbAGmXJOUy5ZQB+RIc//sedhy7wa7zcbXG0rd7oZuTJWQyBSxNDTBvQiBCe3Zi69y8n4+0h091ETohrZJWk41UKsWyZcvQs2dPBAcHY+vWrfXWTU1Nxbhx4+Dn54eIiAgkJyez62QyGdasWYPg4GAEBATgww8/RG5uLrueYRisX78effv2Rc+ePREdHQ25XF7XYUg7VVahbH5Le5iP7Uevs+XO9qYYO9gNxRIpcp5K2FdpWSVGvuICf3cbtu75xMcokUh1ET4hrY5Wk83atWuRmJiI7du3IzIyEjExMTh27FitehKJBNOnT4efnx8OHDiAoKAgzJgxAyUlyqaSDRs2IC4uDt988w1iY2NRUFCABQsWsNvv2LEDBw8exLfffovvvvsOR48exQ8//KC18yStg4JhsPNEKsorlF9ETAx5GNyjM7LzlROk1XwBAIfDwegBrjA1Ut7rkVYqcC7xsc7iJ6Q10VqykUgkiI2NxeLFi+Ht7Y3Q0FBMnz4du3btqlX3+PHj4PF4WLRoEVxdXbFkyRKYmJjgxIkTAACFQoGlS5eiR48ecHNzw+TJk3HlyhV2+x9//BFz5sxBz5490bt3b8yfPx+7d+/W1qmSViL+ZjYyc0sBABwOMKS3EwR8vQa3EfD0MLhHdXPavSdF7D4IIfXTWrJJTU2FVCpFUFAQWxYUFISUlJRaTVxJSUkIDAwE91n3Ug6Hg8DAQIhEIgDAvHnzMHDgQABAbm4u9u7diz59+gAAsrOzkZmZiR49eqgcJysrC5mZmZo8RdKKFEukOHHxAbsc6GGLDlZGam1rb2MMt07m7PLFlCeg2dUJaZjWko1YLIaZmRkEAgFbZm1tjcrKSuTl5dWqa2trq1JmZWWF7OxslbL169cjODgYCQkJWLx4MbstAJXtra2tAQBZWVktd0KkVTv+932UVSifzzE14qOHp12Ttu/j3QHcZz3RMvMkeJhV3OIxEtKWaC3ZlJWVgc9XfYiualkqlapV9/l64eHh2LdvH3r37o2pU6eipKQE5eXlKvtu6DikfcrKK8XF5Cfs8iv+DtDXa9p/BVMjAbxcrdhl0bNu0YSQumkt2QgEglof9lXLQqFQrboGBgYqZV26dIGPjw/Wrl2LsrIynDp1qs7EUt9xSPt08OwdKJ61ejnYGMOpg0mz9uPvZoOqx2wei0sgbsbDpYS0F1pLNnZ2digqKlJJAmKxGHw+H2ZmZrXqVjWHVcnNzYWNjQ0UCgXOnDmj0tVZKBTCwcEBT58+hZ2dHVu/5nEAwMbGBqR9Ez+VIOl29Xujn2/HZj+YaWrER1dHc3aZrm4IqZ/Wko2npyd4PB57kx8A4uPj4eXlBX191YEM/Pz8IBKJ2JuuDMMgISEB/v7+4HK5iIqKwpEjR9j6xcXFePDgAVxdXWFnZwd7e3vEx8erHMfW1hYdO3bU8FmSl118ag77s4+rFWwtDF9ofwE1nru5k1EISXnlC+2PkLZKa8lGKBRi9OjRiIyMRHJyMuLi4rBt2zZMnjwZgPLqo+p+y9ChQyGRSBAVFYX09HSsXr0apaWlCAsLAwBMnDgRmzZtwrlz53Dr1i3Mnz8fXbp0QUhICABg/PjxWLduHS5evIjLly9j3bp17HFI+5VXWI47jwvZ5UFBnRqorR4bC0PYWSoTloJhkPqARhUgpC5aHRtt8eLFWLFiBaZMmQIjIyPMmjWLTSD9+/fH6tWrERERAWNjY2zevBnLly/H3r174eHhgS1btsDY2BgAMG3aNFRWVmLZsmUoLCxEcHAwYmJi2K7S06ZNQ35+PubOnQsul4uIiAhMmzZNm6dKXkIJadW9Gb1drdDR2qhJY6rVx8vFCtn5yvs1N+7lIcDdhsZMI+Q5HIYeEKglIyMDgwcPRlxcHBwdHXUdDmlATr5yOJnGkkZBSQV+PpmKqjf7vAmBsDYXqp1sfFytIJUpUFpWWWubSpkCO45dh7RSAQAYFeICR1tlpwNHW2PYWhjC1vLFmusIaQ0a+uykgThJu5CQmsMmGs8uFnDqaNpi++bpc+HR2YJdvvWwoMX2TUhbQcmGtHklZZVIq3EvJaxflxY/hnuNZHPncQHkckWLH4OQ1oySDWnzUtJzoXjWWtzRyhBunSwa2aLp7CwNYWJYPUDng2waUYCQmijZkDZNKpPj+t3q4ZD83W0bqN18HA5HZby02zTXDSEqKNmQNi3t/lNUVCoHejU14qOLfcvdq3mee2dz9uf7mUWQVtIcSoRUoWRD2iyGYZCUXv1Uv5+bDTt4piZYmQlhaaocUkkmZ3DvSZHGjkVIa0PJhrRZ9zOLUFiiHB5JwNNDty4tf6/meTWvbm4/oqY0QqpQsiFtVmKNscq6O1uCr9/wxGgtoeZ9m0fZxSgto+FrCAEo2ZA2KuepBE+ezaDJ5QC+Xa21clxTIwE6sMPXANfu5jWyBSHtAyUb0iYl3a6+qnF1NIexIb+B2i2ra42rmxv3KNkQAlCyIW1QSVkl0h8VsMv+btqdWsLZvnrKDBoJmhAlSjakzVE+xKn8uaO1kdbHJTM14sPaXDlRn1zBIOUOXd0QQsmGtCmVzz/EqeWrmiouNa5uRGk5DdQkpH2gZEPalLQH2nuIsyEuDtXHTb6Ti0oZPeBJ2jdKNqTNYBgGiTU6Bvh2tdboQ5wNsTQ1gKmRslNChVSuMhU1Ie0RJRvSZjzILGYf4uTzuPDsYqmzWDgcDlwcqpvS/rmWqbNYCHkZaDXZSKVSLFu2DD179kRwcDC2bt1ab93U1FSMGzcOfn5+iIiIQHJyMrtOJpPhm2++wauvvorAwEC8/fbbuHPnDrteJBLBw8ND5TVq1CiNnhvRvZpXNd2drcDnaf4hzobUvG9z6VoW5Aqap5C0X1pNNmvXrkViYiK2b9+OyMhIxMTE4NixY7XqSSQSTJ8+HX5+fjhw4ACCgoIwY8YMlJQoZ0jcsmUL9u/fj5UrV2Lfvn3o0KEDpk+fDolEOTVveno6vL29ceHCBfa1Y8cObZ4q0TJxQRkei5XvD44WH+JsiJ2VIYyFPADKmULTHuTrOCJCdEdryUYikSA2NhaLFy+Gt7c3QkNDMX36dOzatatW3ePHj4PH42HRokVwdXXFkiVLYGJighMnTgAADh48iA8++AD9+/eHi4sLVq5ciYKCAly9ehWAMtm4ubnBxsaGfVlYaH5cLKI7STWGpnF1MGfnltElLocDT+fqpryLKdSURtovrSWb1NRUSKVSBAUFsWVBQUFISUmBXK7aUycpKQmBgYHgcpXhcTgcBAYGQiQSAQBWrlyJ0NBQtj6XywXDMCguVk5YlZ6eDmdnZ02fEnlJ5BeV41aNQS/93HR/VVPFy9mK/fnStSwwDDWlkfZJa8lGLBbDzMwMAoGALbO2tkZlZSXy8vJq1bW1VZ3kysrKCtnZ2QCAvn37wtq6+gNl7969kMlk6NGjBwDgzp07SElJwYgRIzBw4ED897//ZRMRaXvOiR6j6jPcwcYYHayMdBtQDa6OZjDgK+8dZeaV4kEWvQ9J+6S1ZFNWVgY+X7Vpo2pZKpWqVff5egAQHx+P6OhovPfee7Czs0NpaSkyMzOhUCiwZs0arFq1CgkJCZg3b14LnxF5GRQUVyA+NZtdDuqmmZk4m0tfjwufGvePqFcaaa/01amUn58PS8sX60YqEAhqJYuqZaFQqFZdAwMDlbJLly5h5syZGDRoEObMmQMAMDIywpUrV2BkZAQ9PeU3yjVr1mDMmDF48uQJ7O3tX+g8yMvlt0sPIJMrL2vsLA3haGus44hqC3C3xZUbyoR4MSUTb77moeOICNE+ta5sXnnlFUyfPh2HDh1ie4Q1lZ2dHYqKilSSiFgsBp/Ph5mZWa26YrFYpSw3Nxc2NtVDj5w9exbvvvsuBgwYgC+++AKcGg/vmZqasokGAFxdXQGAbYYjbUNRqRRnEzLY5aButirvg5eFb1dr6Osp47r7uBDZ+RIdR0SI9qmVbI4cOYKAgAD873//Q3BwMObOnYvffvutzmat+nh6eoLH47E3+QFlE5iXlxf09VUvsPz8/CASidibqQzDICEhAf7+/gCUHQjmzJmDoUOH4ssvv1TZPjk5GQEBASqJ5caNG9DT04OTk5Pa8ZKX3+Hzd9ihaazMDNClo26GpmmMUKAPvxpjtFFTGmmP1Eo2Li4umDVrFo4ePYq9e/fCzc0NW7ZsQXBwMD755BOcP3++0V42QqEQo0ePRmRkJJKTkxEXF4dt27Zh8uTJAJRXOeXl5QCAoUOHQiKRICoqCunp6Vi9ejVKS0sRFhYGhmGwZMkSdO3aFfPmzUN+fj7EYjG7fbdu3WBnZ4elS5fi9u3buHLlCj799FOMGTPmhZsCycujsKQCh8/dZZdf1quaKn19OrI/Uxdo0h41uYOApaUlrKysYGFhAalUiocPH7JdkS9dutTgtosXL4aPjw+mTJmC5cuXY9asWQgLCwMA9O/fH8ePHwcAGBsbY/PmzRCJRAgPD0dCQgK2bNkCY2Nj3L59G+np6bh+/TpCQkLQv39/9nXkyBHw+Xxs3boV+vr6GD9+PGbPno3g4GAsW7asGb8e8rKKjbuFsgoZAMDWQghXR3PdBtSI3l4dUZULb9zLw9Pict0GRIiWqdVBIC8vDydPnsTJkyeRkJAAd3d3hIWFISoqCh07Kr+xrVmzBvPmzcOFCxfq3Y9QKER0dDSio6NrrUtLS1NZ9vX1xcGDB2vVc3d3r1X3eZ06dcKmTZvUOTXSCmXnS3D8r/vs8pDeTjobcFNd5iYCdHe2wvW7eWAY4PL1LPyrTxddh0WI1qiVbF555RU4ODhg+PDhWLFiBXvDvaa+ffvi1q1bLR4gIc/bffImZHIFAMDVwQzdnS3xWFyq46ga19enIzvXzsWUTEo2pF1RK9ns2bMHvr6+KmVFRUUwNa2+ITtgwAAMGDCgZaMjrVKJRApJuazJ2xka6MO4kWFm7j0pxJ81eqCNedXtpb5XU1Mf74743/9dAwAk3RajtKwSRs/GTiOkrVPrnk3Hjh0xbdo0rF+/ni0bNmwYZsyYgfx8GlyQqJKUy5DzVNLkV2MJimEY7Dh2gx0toIenHTw6t54x7+wsDeHqqOzmL5MzuHqTuuKT9kOtZLN8+XIAwBtvvMGW7d69GzKZDKtWrdJMZKTVy8gpUfuljn+uZSIhVTnFMocDTA7z1GT4GtHXm3qlkfZJrWRz6dIlfPrpp+jUqRNb1qVLFyxZsgTnz5/XWHCEVCmvkGHLoWvs8tA+XeBsb9bAFi+nml2g41OzUS5tenMjIa2RWsnGyMgIGRkZtcqzs7PB41GbM9G8PafTkFtQBgAwM+a3yqsaAOhkZ8IOqVMulbPD2BDS1qmVbMaMGYOlS5di//79SE1NRWpqKg4cOIClS5ciPDxc0zGSdu5hVhEOna2eifWdEV6NdiR4WXE4HIT4O7DL50S1v8QR0hap1Rttzpw5YBgGX331FdshwNLSEpMnT8a7776r0QBJ+6ZQMNi4P5mdUtnLxQqv9ujUyFYvt5BAR/x8Svms2NWbOSiRSFtt8iREXWolGy6Xi48++ggfffQR8vPzwefzYWz88o2uS9qeIxfuss+mcLkczIzwbTVdnevjYGOMrp3Mkf6oADK5An+nZGJIbxq3j7RtaiUbQDkh2bVr1yCTyWqNg1azlxohLeVRdjF+OnaDXR77qhucXtLBNptqQIAD0h8VAFA2pVGyIW2dWslmy5YtWLduHczMzGBkpDoLIofDoWRDWpxcrsDXexIglSlHCnCxN8O4NjQPzCv+Dth25DoYBkhOz0V+UTksTQ0a35CQVkqtZLN9+3YsWLAA06ZN03Q8hAAA9v1xG7ceFgAA9PU4+M+EQPD0tTaxrMZZmQnh42qN5PRcMAxwPvExRoXUHgaKkLZCrf+9lZWVGDJkiKZjIQSAcoKxPaeqB1ud8K9uL+1cNS8iJIB6pZH2Q61kM2rUKOzevbvROWsIeVGVMjnW/5LATvXs4WSBiEFuOo5KM/r52rMzeN56WICMnGIdR0SI5qjVjPb06VOcOnUKR44cgYODQ60HOXfv3q2R4Ej788upNNzPLAIA8Hl6+Hh8IPS4rbv3WX1MDPno2b0DO2zNqUsPMXWkl46jIkQz1Eo2Li4ueP/99zUdC2nn7j4uxP7fb7PLbw/vDnubtt3FfkhvJzbZ/H71Id4a5tmm7k0RUkWtZDN79mz2Z5lMBj09vWY96yCVShEVFYWTJ0+Cz+fj7bffrveh0NTUVCxfvhypqalwdXXFihUr2GkOZDIZvv/+e/zf//0fCgoK4Ovri2XLlrHz7DAMg6+//hqxsbGQyWR44403MH/+fOjp6TU5ZqIdlTI5th25jmfPbsK3qzWGBzvrNigtCPCwhbWZAXILy1FYIsXl61kI9rPXdViEtDi1v0Lt3r0br732Gvz9/ZGRkYFly5Zh3bp1UCgUah9s7dq1SExMxPbt2xEZGYmYmBgcO3asVj2JRILp06fDz88PBw4cQFBQEGbMmIGSEuXowFu2bMH+/fuxcuVK7Nu3Dx06dMD06dMhkUgAADt27MDBgwfx7bff4rvvvsPRo0fxww8/qB0n0b7Tlx4iM085AZpQoIe54wLAbaPNZzXpcTkI7VX9jM3xv+/pMBpCNEetZLN9+3b873//w6xZs6Cvr7wYCg4Oxv79+/H111+rdSCJRILY2FgsXrwY3t7eCA0NxfTp07Fr165adY8fPw4ej4dFixbB1dUVS5YsgYmJCU6cOAEAOHjwID744AP0798fLi4uWLlyJQoKCnD16lUAwI8//og5c+agZ8+e6N27N+bPn0/3lV5imbmluJD0hF2eOtIbdpaGOoxIu4b0dmITa3J6Lu49KdRxRIS0PLWSzZ49e7By5UqMHj2abT4bOnQo1q5di0OHDql1oNTUVEilUgQFBbFlQUFBSElJgVwuV6mblJSEwMBAcLnK8DgcDgIDAyESiQAAK1euRGhoaPVJcLlgGAbFxcXIzs5GZmYmevTooXKcrKwsZGbS/CEvG4WCwVlRBqr6OQa42+BffdrX0/Q2FkKVqQeOnL+rw2gI0Qy1kk1WVha6dOlSq7xDhw4oKipS60BisRhmZmYQCARsmbW1NSorK5GXl1errq2trUqZlZUVsrOVw7H37dsX1tbW7Lq9e/dCJpOhR48eEIvFAKCyfVXdrKwstWIl2pNyJxd5heUAAD6Pi9n/9m/1Y581x+uvuLA//5mQgYLiCh1GQ0jLUyvZ+Pv7Y//+/SplCoUC//vf/9ib9o0pKysDn686sm3VslQqVavu8/UAID4+HtHR0XjvvfdgZ2eH8vJylX03dByiW5LySly+Xv0FYGR/F9hatJ/ms5o8u1iiaydzAEClTIFDZ9N1GxAhLUytZPPpp5/i0KFDGD16NKRSKZYvX47Q0FCcP38eS5YsUetAAoGg1od91bJQKFSrroGB6thRly5dwrvvvotBgwZhzpw5AOpOLPUdh+jWxZRMduwzKzMDvNarfTWf1cThcDD21eqHV4//fQ9FpfTliLQdanV9dnNzw2+//YbDhw/j7t27kMvleO211/D666/XGpizPnZ2digqKoJUKmUTglgsBp/Ph5mZWa26Vc1hVXJzc2FjY8Munz17FnPmzMHgwYPxxRdfsE0vdnZ2bP2q2Kr2VXN7oltZeaVIffCUXX79FZd2/3xJH++O6NzBBA+zilFWIcfhc3cwaVjTZiQtkUghKW/aVNOGBvo0nw7ROLWnGBAIBBg7dmyzD+Tp6QkejweRSITevXsDUDaBeXl5sT3cqvj5+SEmJgYMw4DD4YBhGCQkJLDP5CQlJWHOnDkYOnQoVq9erfL8jJ2dHezt7REfHw8nJyf2OLa2tujYsSOI7jEMg7+Sq3ufudibwb2zhQ4jejlwuRz8e7A7vtwdDwA4dO4OwoKdmzQatKRchpynkiYd19bCkJIN0Ti1ks2AAQMavGn7559/NroPoVCI0aNHIzIyEmvWrIFYLMa2bdsQFRUFQHn1YWJiAgMDAwwdOhRfffUVoqKiMGHCBMTGxqK0tBRhYWFgGAZLlixB165dMW/ePHbmUADs9uPHj8e6devQsWNH6OnpYd26dZg8ebI6p0q04EFWMbLylB+IXA4HwX70JaBKf38H7Pv9Nu5nFqFCKsfuk6mY82//Ju8nI6dErXqOtm17hAby8lAr2Xz00UcqyzKZDI8ePcLBgwdrrWvI4sWLsWLFCkyZMgVGRkaYNWsWwsLCAAD9+/fH6tWrERERAWNjY2zevBnLly/H3r174eHhgS1btsDY2Bi3bt1Cerry5mlISIjK/letWoWxY8di2rRpyM/Px9y5c8HlchEREUHTI7wkGIbBP9equ6B7uVrB1EjQwBbtix6Xg6kjvfDfLRcBAGcuP8Cwfl3Q1dFct4ER8oLUSjbh4eF1lgcEBGDLli0YM2aMWgcTCoWIjo5GdHR0rXVpaWkqy76+vjh48GCteu7u7rXqPk9PTw+LFi3CokWL1IqLaM+9zCK2q7O+HhdB3Wwb2aL9CfCwRWA3WySk5kDBABtiE7HuwxDo6bXve1qkdXuhd6+LiwuuX7/eUrGQNo5hGMTfzGGXvV2tYGTAa2CL9mtGuA/4zzpM3H1ciINn7+g4IkJejFpXNhcvXqxVVlpaip9//hlubm1zrhHS8jJyStib13pcDvzdqHdgfeytjfHmEA/8dPwmAGD3yZvw7WpNHSlIq6VWsnnnnXdqlfF4PPj4+GDVqlUtHhRpm0S3qq9qPJ0tYSSkq5qGhA/sin+uZeLWwwLI5Ayid17F+o8GwNSIeo6R1ketZJOamqrpOEgbl19UjkfZyh5SHCjHQCMN09fjYsGkHvho3Z8oLZchJ1+Cz3dcRtSMvuDp03QZpHVRK9k8evRI7R126tSp2cGQtis5PZf92dnejHqgqamDlRE+fDMAn++4AgC4fjcP635OwPyJQdRhgLQqaiWb1157jX3OhmGU4/M+/9xN1QOYN2/ebOEQSWtXLpUh7UH181C+btYN1CaA6kgArg7meONVN+x7NovphaQnqJQpMHWkF/RrJBwDgR6klfI690eIrqmVbL7++mts2LABCxYsQEBAAPh8Pq5fv47PPvsMI0aMwNChQzUdJ2nFqu45AMox0Oyt1RviqD17fiSAQA8bPBaXsFNIX7qehbzCckz8lwcMBMr/xhYmAlTK1Z/MkBBtUivZREdHY926dQgICGDLevTogaioKLz//vv0wCRp0M371Vc1Xi5W7XIKgeaqORJAgLsNikuluHZXOSVHekYBNuxNwvBgZ5ga8WFhQk2T5OWlVqNvSUlJrQnOAKCwsBCVlZUtHhRpO8QFZcgtKAOg7O7s9mwYfdJ0HA4HIQEO6Nndji3LLyrHvt9vI+vZlNqEvKzUurIZNWoUFi5ciLlz56Jbt25gGAYpKSnYsGEDJkyYoOkYSSuWWuOqxsXBDAZ8tcd+JXXgcDjo1b0DzIwE+P3qIygYBmUVMhw8ewdGQh56eNo1vhNCdECt//mffPIJ+Hw+1qxZg4KCAgBAx44dMWPGDEycOFGT8ZFWTC5XIO1h9TQCnl0sdRhN2+LhZAETQx5OXLyPcqkcCgWDn47fxMOsYoT26qzr8AipRa1kw+PxsHDhQixYsABPnz6FgYEBDA3b54yKRH33no1cDADGhjwaYbiF2dsYY+xgNxz76z7yi5Tjzf2ZkIGMnBIMCHSgq0jyUlG7o35qaiqWLVuGDz/8EMXFxdi1axfOnz+vydhIK3fzXnUTmqeTJXUM0ABTIwHGDOoKZ3tTtiw9owAH/khHiYRm+iQvD7WSzfnz5/Hmm29CLpcjKSkJUqkU+fn5mDlzJo4cOaLpGEkrVFhSgYfZxexyN2pC0xg+Tw/D+nbB8H5d2LKnxRU48OcdFJVW6C4wQmpQK9msX78eixcvVpkVc+7cuVi6dCk2btyo0QBJ61RzxAAHG2Maz0vDOBwORr7igreHd4ceV3kFWSyR4v/O3UVpGfUYJbqnVrK5e/cu+vXrV6s8ODgYjx8/VvtgUqkUy5YtQ8+ePREcHIytW7fWWzc1NRXjxo2Dn58fIiIikJycXGe9mJgYzJ8/X6UsJycHHh4eKq8ePXqoHSd5cSl3qpONe2dz3QXSzgR2s8VbwzzZhFNUKsWRC3dpZAGic2olG0dHRyQmJtYq//3335s0FtratWuRmJiI7du3IzIyEjExMTh27FitehKJBNOnT4efnx8OHDiAoKAgzJgxAyUlqlPdHj16FBs2bKi1fXp6OqytrXHhwgX29dtvv6kdJ3kxuYVl1YNucgAXezMdR9S+eDhZ4F99nFB1iyyvsBynLz+E4tlQU4TogtrTQi9cuBApKSmQy+XYv38/Hj16hN9++w1ffPGFWgeSSCSIjY3Fpk2b4O3tDW9vb0yfPh27du3C8OHDVeoeP34cPB4PixYtApfLxZIlS3D27FmcOHECY8eOhUwmQ1RUFA4ePFhnsktPT4eLiwtsbGhkYV2Iv5nN/tzJ1oQdToVoj7O9GQYFdcLvV5WD6N7PLMLVG9no5dVBx5GR9kqtK5vQ0FD8/PPPKCgogJubG/78808oFArs3r0bw4YNU+tAqampkEqlCAoKYsuCgoLYBFZTUlISAgMDweUqw+NwOAgMDIRIJAKgTFxpaWmIjY1VGUKnSnp6OpydndWKi7S8KzWSjasjXdXoimcXS5WpHK7ezMYTcUkDWxCiOWp95Vy6dCnee+89rF27ttkHEovFMDMzg0BQPX6TtbU1KisrkZeXB1tbW5W6zycLKysrdl4dU1NT7Nmzp95j3blzBwYGBoiIiIBYLEaPHj2waNEi2NnR09Walp0vwb0nRQAALkc5aoA6LEwEMBC0vTladH1efXw6IuepBI/FpWAAnL78EG8O8YCA1/Z+1+TlplayOX36NN5///0XOlBZWRn4fNUeSVXLUqlUrbrP16vPnTt34OzsjE8//RQKhQLr1q3De++9h/3790Nfn5p0NOmvpCfsz462Jk16sFBSLkN5hfo3slvLkPq6PC8uh4PQXk749XQayqVylJRV4mJKJgYGOrbI/glRl1qfBG+//TZWrFiByZMnw8HBQeXqBFBvwjSBQFArWVQtC4VCteoaGBioEy7i4uLA4/HYhLVhwwb0798fIpEIPXv2VGsfpHkuJFX3TuzaxEE3yypkTeqm21qG1Nf1eRkLeQgJcMSpSw8AKCdgc+tkDgcbGtGBaE+9yeb8+fPo3bs3+Hw+vv32WwDAX3/9VaueuhOm2dnZoaioCFKplE0CYrEYfD4fZmZmteqKxWKVstzcXLVv+BsZqc6XYmVlBXNzc2RnZ9ezBWkJ2fkS3H5UAEA5wnPNp9qbouaw+g1pbUPq6/K8ujqa4fYjU7aJ85zoMcaFurf4cQipT70dBObOnYu8POW8Gfb29ti3bx/i4uJqvc6cOaPWgTw9PcHj8dib/AAQHx8PLy+vWk1bfn5+EIlE7KygDMMgISEB/v7+jR5HLBYjKChI5ThZWVl4+vQpXFxc1IqVNE/VxF4A4OpoTmNzvUSU0xM4sjN75heVs/PiEKIN9X4aWFpaYtmyZfD29kZmZiaOHj1aq7mryocfftjogYRCIUaPHo3IyEisWbMGYrEY27ZtQ1RUFABlkjAxMYGBgQGGDh2Kr776ClFRUZgwYQJiY2NRWlqKsLCwRo9jY2MDLy8vrFq1CpGRkWAYBp999hn69euH7t27N7o9ab7L17PYn71daHial42xkIcenrb455ry73T5ehYG0b0boiX1Xtl8+eWXEAgESEhIAAAkJibi6tWrtV7x8fFqH2zx4sXw8fHBlClTsHz5csyaNYtNIP3798fx48cBAMbGxti8eTNEIhHCw8ORkJCALVu2wNhYvTbmr7/+Gs7Ozpg2bRrefvttdO7cGevXr1c7TtJ0xRIprt+r/qZMY6G9nPzcbNihgyoq5TgrytBxRKS9qPfKJiAgAN9//z0A4NVXX0VMTAwsLCxe6GBCoRDR0dGIjo6utS4tLU1l2dfXFwcPHmx0n2vWrKlVZmlpiS+//LL5gZImi7+ZDYVC2ezpYm8GE0M+Ckto1OGXjb4eF328O+DUpYcAgL9TMjEqxBW2ljRlCNEstR7q/P3331840ZC27VKNJjR/dxq54WXW1dEc1ubKnp2VMgWO/XVPxxGR9kDt+WwIqU+lTI741Bx22c+Nks3LjMPhoLdXR3b5XOJjFBTTVAREsyjZkBeWcicPZRUyAICdpSEcbIwa2YLomlMHE9iYKzv8VMoUOHrhro4jIm0dJRvywmr2Quvt1YFm5GwFOBwOArtVDxF19K97kJTTvDdEcyjZkBfCMIzK/RoaVbj1cHEwg5WZ8t5NaVklfvvngY4jIm0ZJRvyQu49KUJuQRkAwEjIg5eLlY4jIuricjgI8Xdglw+dvYNK2cs/1hxpnSjZkBdS86qmRzc79gl10joEeNjC7NlzN/lF5fgznp67IZpBnwzkhVy+Xj1ETW9qQmt1ePpcvNbbiV0+ePYOO0wUIS2Jkg1pttyCMqRnFAJQDrxZ84YzaT0GBDhA+GzOnUfZxbh2h8ZMIy2Pkg1ptis3qpvQfFytYSTk6TAa0lyGBjwMDKqeJuToX9QNmrQ8Sjak2f6hXmhtxvDg6plx/7mWxXb6IKSlULIhzVJWIUPy7Vx2mZJN6+bUwRS+Xa0BAAoFg5MX7+s2INLmULIhzSJKy4Hs2WySXTqawo4Gcmz1wmpc3fz2zwPqBk1aFCUb0iyXnhs1gLR+fbw6wPrZQ54FJRX4KzmzkS0IUR8lG9JkcgWDqzerp9imJrS2QU+Pi6F9u7DLx2i8NNKCKNmQJkt7kI+iUuVcNRYmAnR1NNdtQKTFDOnjBH095dh2qQ+e4n5mkY4jIm2FVpONVCrFsmXL0LNnTwQHB2Pr1q311k1NTcW4cePg5+eHiIgIJCcn11kvJiYG8+fPr1W+c+dOhISEICAgAIsXL4ZEImmx82jvLj/XC43LpYE32woLEwP08a6efoA6CpCWotVks3btWiQmJmL79u2IjIxETEwMjh07VqueRCLB9OnT4efnhwMHDiAoKAgzZsxASUmJSr2jR49iw4YNtbY/deoUvv76ayxfvhw//fQTUlJS6pzRkzSPysCb3akJra2p2ZT2R/wjlD+bPoKQF6G1ZCORSBAbG4vFixfD29sboaGhmD59Onbt2lWr7vHjx8Hj8bBo0SK4urpiyZIlMDExwYkTJwAAMpkMy5cvx5IlS9CpU6da2//444+YNGkSBg8eDB8fH6xYsQIHDx5EaWmpxs+zrXsiLkFGjjLp83l68HWz1nFE5EVYmAhg8Gz0gCq+Xa1hb62ck0hSLsP5xMe6CI20MVpLNqmpqZBKpQgKCmLLgoKCkJKSArlctYtlUlISAgMDweUqw+NwOAgMDIRIJAKgTFxpaWmIjY1FQECAyrZyuRwpKSno2bMnW+bv7w+5XI6bN29q6vTajcs1Rg0IcLeBAV9fh9GQliAplyEnX8K+xE/L0N/Pnl1/5PxdlfVVrxKJVIdRk9ZGa58UYrEYZmZmEAgEbJm1tTUqKyuRl5cHW1tblbrOzs4q21tZWSE1NRUAYGpqij179tR5nKKiIlRUVKjsT19fH+bm5sjKyqpzG6I+mrum7SmrkKG0THXiNPfOFtDjciBXMLiXWYTEWzmwtzFWqWNrYQhjQ742QyWtmNaSTVlZGfh81Tdm1bJUKlWr7vP16lJeXq6y76ZuT+pXVCrFjXv57HJPTzsdRkNaWlXzaBUXBzPcflQAAPg9PgMDAx3ZdY62qomHkMZorRlNIBDU+rCvWhYKhWrVNTAwUOs4Nffd1O1J/eJTs6FQKIef9+hsAQtT+n22Zd41JsK79fAppJU0ogBpPq0lGzs7OxQVFakkAbFYDD6fDzMzs1p1xWKxSllubi5sbGwaPY65uTkEAgFyc6vH7ZLJZCgoKFBpWiNN93yXZ9K2dbQ2goWJ8stbpUzBXuUQ0hxaSzaenp7g8XjsTX4AiI+Ph5eXF/T1VVvz/Pz8IBKJ2EmcGIZBQkIC/P39Gz0Ol8uFj48P4uPj2bLExETo6enB09OzZU6mHaqUKRCfmsMuU7Jp+zgcjso039fu5tHEaqTZtJZshEIhRo8ejcjISCQnJyMuLg7btm3D5MmTASivcqrutwwdOhQSiQRRUVFIT0/H6tWrUVpairCwMLWONWHCBGzbtg2nTp1CSkoKIiMjMWbMGBgZGWns/Nq6a3dyUfbseQtbS0M4dTDRcUREGzyclB0FAOVkeTlPaeoB0jxafahz8eLF8PHxwZQpU7B8+XLMmjWLTSD9+/fH8ePHAQDGxsbYvHkzRCIRwsPDkZCQgC1btsDYWL2bksOHD8fMmTOxYsUKvPPOO/D29saiRYs0dl7twT/XVKd/5nBo1ID2wICvj66dzNnl63dpFk/SPFp9SEIoFCI6OhrR0dG11qWlpaks+/r64uDBg43us76RAd577z289957zQuUqJArGFxMqU42fbypCa098XK2QtqDpwCA248KEFzjGRxC1EUDcZJGpd7Px9PiCgCAmTEfXi40akB70sHKEFbPph6QyRW49SzxENIUlGxIo/5OfsL+3NfHnm3DJ+0Dh8OBl3N1R4Hr96ijAGk6SjakQQoFo5Jsgn07NlCbtFXuThbQ11N+XOQVluNhdrGOIyKtDSUb0qBbj54it1DZS9DEkA9vV2pCa48EPD241egocPl6dv2VCakDJRvSoL+Sqq9q+nh3YL/dkvan5jM3yem5tcZTI6Qh9MlB6sUwzzWhUS+kds3WQghrc+XQUjK5An/VeG8Q0hhKNqRe6RkF7EN8RkIefLs2PlwQabs4HI7KeGlxVx5CLlfoMCLSmtBkJKReFxKrv7n6uVnjaVF5o9sYCPRowMY2zMPJAv9cy0S5VI7cwnL8cy2LrniJWijZkDrJFQz+TMhgl906mSPnqaTR7SxMBKikb7ttlr4eF96u1rh6U9lB4NDZdEo2RC2UbEidkm6Lkf/sSsZYyIOhgFdrvpO6VI0STNoub1criNJyIFcwSH3wFKn389Gti6WuwyIvObpnQ+r0x9VH7M9+7jbg0oOc5BkjAx783avv3x06e0eH0ZDWgpINqUVSXom/a4yFFuhBHQOIqv41ms4upjxBVl6pDqMhrQElG1LL38mZ7E1+R1tjdLSiqRmIqg5WRujurGw6UzDAgT/TdRwRedlRsiG1/F6jCa2fT0eaToDUaWifLuzPpy89QE5+4x1ISPtFyYaoyMmXIOWOckptLgfo7UVjoZG6dXe2hOezjgEyOYNfz9zScUTkZUbJhqj4I776qsbfwxbm1LuM1IPD4WDSsG7s8pkrD5GZS/duSN20mmykUimWLVuGnj17Ijg4GFu3bq23bmpqKsaNGwc/Pz9EREQgOTlZZf3x48fx2muvwc/PDzNnzkReXvUMgiKRCB4eHiqvUaNGaey82gq5gsFvlx6wy4N7dNJhNKQ18O1qA9+uysFZFQoGe06nNbIFaa+0mmzWrl2LxMREbN++HZGRkYiJicGxY8dq1ZNIJJg+fTr8/Pxw4MABBAUFYcaMGSgpUT7nkZycjEWLFmHmzJn49ddfUVJSgoULF7Lbp6enw9vbGxcuXGBfO3bs0NZptlrxN7MhfjY8jakRH319qAmNNG7Cv6qvbv6Mf4RHNP0AqYPWko1EIkFsbCwWL14Mb29vhIaGYvr06di1a1etusePHwePx8OiRYvg6uqKJUuWwMTEBCdOnAAA7Nq1C0OGDEFERAS6deuGtWvX4sKFC3jwQPmtPD09HW5ubrCxsWFfFhYW2jrVVuv43/fYn1/r1Rk8fT0dRkNaCy8XKwQ8e+5GwQA/Hruh44jIy0hrySY1NRVSqRRBQUFsWVBQEFJSUiCXq46llZSUhMDAQHC5yvA4HA4CAwMhEonY9T179mTrd+zYEQ4ODuz69PR0ODs7a/qU2pQnuSVISMsBAHA4wNC+XXQbEGlVJg3zZH++dD0LomfvJUKqaC3ZiMVimJmZQSCovuFsbW2NyspKlfstVXVtbW1VyqysrJCdrRyPKScnp8H1d+7cQUpKCkaMGIGBAwfiv//9L4qL6dK+If939g6qZvoN6maHDvRsDWkC984WGNyz+h7f1v9LQaWMxsgj1bSWbMrKysDn81XKqpalUqladavqlZeX17u+tLQUmZmZUCgUWLNmDVatWoWEhATMmzevpU+pzSgqleLMlepeaKNDXHUYDWmtpoR1h1CgHG7xUXYJ9sZRV2hSTWsDcQoEglpJpWpZKBSqVdfAwKDR9UZGRrhy5QqMjIygp6e857BmzRqMGTMGT548gb09jVD7vBMX77EjBjjbm8LXjaZ+Jk1nYWqAScO6YeuhawCAvXG30M/XHl06muo4MvIy0NqVjZ2dHYqKilSShFgsBp/Ph5mZWa26YrFYpSw3Nxc2Njbs+tzc3HrXm5qasokGAFxdld/Uq5rZSLWyChn+7+xddnn0gK40YgBptuHBLujmpOyMI5Mz+Gp3PCpofiMCLSYbT09P8Hg89iY+AMTHx8PLywv6+qoXWH5+fhCJRGCe3URgGAYJCQnw9/dn18fHx7P1MzMz8eTJE/j7+yM5ORkBAQEqieXGjRvQ09ODk5OTBs+wdTr+1z0US5RfAGwtDRES4KDjiEhrpsflYO64APD1lR8t9zOL8MP/XdNxVORloLVkIxQKMXr0aERGRiI5ORlxcXHYtm0bJk+eDEB5lVNerpw/ZejQoZBIJIiKikJ6ejpWr16N0tJShIWFAQDGjx+Po0ePIjY2Fmlpafjkk08QEhKCLl26oFu3brCzs8PSpUtx+/ZtXLlyBZ9++inGjBkDS0uac6Om8goZDp6tHkDx34PdoK9Hg0qQF9PJzgTTR/uwyycu3sepGg8Lk/ZJq58sixcvho+PD6ZMmYLly5dj1qxZbALp378/jh8/DgAwNjbG5s2bIRKJEB4ejoSEBGzZsgXGxsYAgICAAERFRSEmJgZvvvkmTExMEB0dDUDZUWDr1q3Q19fH+PHjMXv2bAQHB2PZsmXaPNVW4dC5OygsUV7VWJsL8WqPzjqOiLQVQ/s4qczguXFfEpJuixvYgrR1Wp2pUygUIjo6mk0MNaWlqQ5z4evri4MHD9a7r/DwcISHh9e5rlOnTti0adOLBdvGFRRX4MAft9nlN1/zAE+frmpIy+BwOPhwXACeiEtw70kR5AoGq7Zdwsr3+sHTmVoY2iP6dGmnfj6VirIK5Y3bzh1MENqTxkEjLUso0MeyqX1gaarsRVoulWP51otIvEUPfLZHlGzaofRHBTh58T67PGV4d+jRvRqiATYWQqx6vx/MjZUPc5dVyLBi6z84cfE+2wGItA/0CdPOyBUMNu5PYkcLCOxmi56edroNirRpnexMsGpmP1iZKa9w5AoGG/cl4Ytd8SgsqdBxdERbKNm0M4fP3cHtRwUAAJ4+FzPCfei5GqJxTh1M8eXcEJUHPM8nPsbM6DgcOX8XlTJ6Fqet02oHAaI7JRIpbj8qwE/Hb7JlYf26QJ/LrXc6XwOBHjuyACEvytpciC8/DMHWQyn47R9lV+hiSSW2HErBvt9v47VenRHaqzONy9dGUbJpJwqKKxCzPxkyuXJwRHsbI/T0tEPO0/rnjbcwEaBSToMpkpYj4Olh9lh/9PHuiJgDyewXnfyicvx65hZi427By8UKgR62CHC3hYuDGbhcuvJuCyjZtBO7f0tFZp5yyl49Lgch/o7IzKs/0QDKZEOIJvTwtEPMwldx4uJ97Pv9NgqKlfduGAa4dicP1+7k4afjN2FkoA9nBzO4OJjBuaMpOlgZoaO1ESxMDCgJtTKUbNqBw+fv4ELSE3b5FX8H9mYtIbrC5+lhVIgrhgc74/L1LPx26QFEaTmo2UmttFzGJh+VbfW5sLMygpWpAcxNBDAzFsDcRADzZ/8aGfBgINCDUKAPoUAfBgJ98PW5dH9ShyjZtHEXUzLxvxpjU3l0tkB3eqiO6EiJRApJuaxWeVdHc3R1NMfT4nLcuJePG/fycONePopKpXXsBZDKFHiUXdykKai5HMBAoA8DvjIBGRo8/y8PQoE+TAx5sDQTwsrUAJZmBrAyNYCBgD4qXxT9BtuwqzezsXbnVfabYmc7EwwMcqRvd0RnJOWyBu8TAoBbJ3O4dTLH66+4oLBEisLSCtzPLMITcSnyi8qRV1iOsoraCasxCkZ5/LqSXWPMjQVwsDWGvbURHG2N4WhrAhcHM1iZGdD/JzVRsmmjLqY8wRe74tkOAbYWQrwV5sm2jRPyIixMBDAQ6DVesR4ZOSVq1/V3s0F3ZyuUllWy21VI5SgqrYCkXIayChkkFTKUlT/7t6IS+npcVMoUkFbKUVYhR7lU9kIzhxaUVKCgpALX76o255kZ8+HqYA5XRzO4Prs6s7UQUgKqAyWbNoZhGBw+fxc/HL7GXtHYWRpi/sQgyOQKSjakxUjKZSivUL9rfEt2pRfw9WDDN6x3vY+rFfT0uODW+NCXyRWokCoTT3nVvxVylD37t1wqU/4fKanA06IKFBRXoKC4HAUlFZDJ6x7toLBEioS0HCSkVQ/BY24sgHtnc7h3toBbJwvY2xipxFGToYE+jA35da5rayjZtCGlZZXYuC8J5xIfs2X21kaImtEPABptviCkKcoqZCgtq1S7vra70jcUH0+fC54+HybP5SsLEwGkMoXKdgoFg8KSCogLypBbUAZxQRmy8yV4Ii6tc2K4gpIKXL6Rjcs3lHNqCQX6cLY3haujOdw7mas0vdlaGFKyIa1LfGo2vtubhNyCMrbMw8kCy6b2hpmxoN4HNwl5Ueo2iemqK31Tmuxqxvj8doYGPHTuwEPnDspREBiGQWGJFEKBHu5lFuF+ZhEeZRVD+lxzXVmF7Fmnh3wAgKkRH53sTBDgbgMT7/aRaABKNq1eekYB9pxKw6XrWSrlQ/t2wXujvcHTb367OiGkfhwOB+YmAvi4WsHXzQalZZV4mF2MvIIyPMktxZPcUmTmltbqzFBUKsX1u3m4fjcPv5xKQ7culgjwsEGghy1cHczb7PNDWk02UqkUUVFROHnyJPh8Pt5++228++67ddZNTU3F8uXLkZqaCldXV6xYsQK+vr7s+uPHj2P9+vXIyclBv379sGrVKlhZWQFQfuP4+uuvERsbC5lMhjfeeAPz58+Hnl7b+OBVKBik3MnF/t9vQ3RLdUIqE0M+PnjDF/39aHpnQrSNy+HAxsIQNhaG8HOzAcMwKCiuQIa4BA+zivFYXKLSUUGuYNjEs+tEKkwMefB2tYZfV2v4utnA0da4zXQ20GqyWbt2LRITE7F9+3ZkZWVh4cKFsLe3x/Dhw1XqSSQSTJ8+HWFhYfj888+xZ88ezJgxA6dPn4axsTGSk5OxaNEirFixAt27d8dnn32GhQsX4ocffgAA7NixAwcPHsS3334LhUKB+fPnw8LCAu+99542T7dFyRUM0h89xYWkJ7iQ+Bi5heW16oT27Iwpw7vDnJ78J+SlwOFwYGFqAAtTA/i4WkOuUCArV4KH2cXIylNe/dRULKnExZRMXEzJBABYmgrg29UG3Z0t4epoDmd701bbWqG1ZCORSBAbG4tNmzbB29sb3t7emD59Onbt2lUr2Rw/fhw8Hg+LFi0Cl8vFkiVLcPbsWZw4cQJjx47Frl27MGTIEERERABQJrGBAwfiwYMHcHJywo8//og5c+agZ8+eAID58+dj3bp1rSbZyBUMsvNL8SirGPezinDzWXtvXc8WcDlAfz8HjHnVDS4OZjqIlhCiLj0uFw62xnCwNYajrTEEPD1kiEuQkJaDxFviWr1F84sq8GdCBv5MyAAA6Otx0LmDKVwdzOBoa4yO1kboaG2MDlaGMOC/3HdFtBZdamoqpFIpgoKC2LKgoCBs3LgRcrlcpYkrKSkJgYGB4HKVMyBwOBwEBgZCJBJh7NixSEpKwtSpU9n6HTt2hIODA0QiEQwMDJCZmYkePXqoHCcrKwuZmZno2LGjRs+zsKQCGTklkCsUkMkZyOXKfxUKBjK5AnKFAnI5g4pKOUrLKyEpk6G0vBIlZZXILyxHXlE58gvL6u1qWcXEkIdX/B0waoAr7K2NNXpOhBDNMDMWwK2zBQYFdQLDMHiYXYzk27lIThcj5U5erd50MjmDu48LcfdxYa19mRrxlcP2GAtgZqz8WSjQh4CvBwFPDwZ8vWc/60NPjwMulwMuhwM97rOfucqfrcyEsLOsv1t5c2kt2YjFYpiZmUEgqG7isba2RmVlJfLy8mBra6tS19nZWWV7KysrpKamAgBycnJU6letz87OhlisvIdRc721tTUAICsrS61kI5fL2fpNkfbwKdb9nAC5hrp3mpsI4NnFCr2626G7ixX0uBwoyguQkVHQ6LZ5heXIKyxDU/q+ZGVWQCpXoKxcpvZ2zdmGjkXHao/HyskuhrxcCKmkepxCPQABznwEODtAEWqPR1nFSH3wFA+e9XZr6PGFPAmQJ653tdo4HGDCkG4Y1KPpU8VXfWZWfYbWpLVkU1ZWBj5f9U9RtSyVStWqW1WvvLy83vXl5eUq+27oOPWpSlgTJ05Uq742iQD8rOsgCCFt2qo4YNULbC8Wi+Hk5KRSprVkIxAIan3YVy0LhUK16hoYGDS6vmZi4fF4DR6nPt7e3ti9ezdsbGzaTA82QgjRNLlcDrFYDG9v71rrtJZs7OzsUFRUBKlUyiYEsVgMPp8PMzOzWnWrri6q5ObmwsbGhl2fm5tb53o7Ozt22cjIiD0OAHb7xhgYGKjc8yGEEKKe569oqnC1FYCnpyd4PB5EIhFbFh8fDy8vL+jrq+Y8Pz8/iEQiMM8G92IYBgkJCfD392fXx8fHs/UzMzPx5MkT+Pv7w87ODvb29irr4+PjYWtrq/HOAYQQQuqmtWQjFAoxevRoREZGIjk5GXFxcdi2bRsmT54MQHn1UXW/ZejQoZBIJIiKikJ6ejpWr16N0tJShIWFAQDGjx+Po0ePIjY2Fmlpafjkk08QEhKCLl26sOvXrVuHixcv4vLly1i3bh17HEIIIdrHYRim4T62LaisrAwrVqzAqVOnYGRkhKlTp7JdmD08PLB69Wr22Znk5GQsX74c6enp8PDwwIoVK1TaAase2iwoKEC/fv0QFRUFS0vlpGByuRxffPEF9u/fDy6Xi4iICCxYsIDtSk0IIUS7tJpsCCGEtE/0VZ8QQojGUbIhhBCicZRsCCGEaBwlm2aSSqVYtmwZevbsieDgYGzdulXXIbWohw8f4v3330fPnj0REhKCNWvWoKJCOUjg48ePMXXqVPj7+2PYsGE4e/asjqNtWZ9++ineeustdjk1NRXjxo2Dn58fIiIikJycrMPoWk5lZSVWr16N3r17o3fv3li+fDn7AHRb/BsXFhZi/vz56NWrF1555RV8+eWX7LAqBQUFmDt3LgIDA/Hqq6/i4MGDOo72xUilUowYMQJ///03W9bYOWr6fU7JpplqTpcQGRmJmJgYHDt2TNdhtQipVIr3338ffD4fe/bswZdffokzZ85g/fr1YBgGH3zwAczNzbFv3z6Eh4dj7ty5ePToka7DbhEXL17E3r172eWq6S78/Pxw4MABBAUFYcaMGSgpUX/2x5fV2rVrcfr0aWzcuBExMTE4f/48vv/++zb7N46MjER2djZ27dqFL774AocOHcL27dsBAIsWLUJBQQF++eUXfPDBB/jvf/+LhIQEHUfcPBUVFfj4449x+/ZtlfKGzlEr73OGNFlpaSnj4+PD/PXXX2zZ999/z7z55ps6jKrlXLlyhfHy8mJKSkrYssOHDzP9+vVj/v77b8bHx4cpLi5m102ZMoVZt26dLkJtUaWlpczgwYOZN998k5k0aRLDMAyzd+9eZuDAgYxcLmcYhmEUCgXz2muvMbGxsboM9YUVFhYyXl5ezIULF9iy/fv3M9OmTWuzf+PAwEDm9OnT7PLq1auZadOmMQ8ePGDc3d2Z+/fvs+uWLFnCzJs3TxdhvpDbt28zr7/+OjNy5EjG3d2d/Yxq7By18T6nK5tmqG+6hJSUlDpHO21tXFxcsGXLFna4H0A5zUNRURGSkpLQvXt3GBtXT2sQFBSExMREHUTastavX49evXqhV69ebFlD0120ZvHx8RAKhejXrx9bFhERgf/9739t9m9sbm6Ow4cPo6ysDNnZ2Th//jy8vLyQlJQEGxsblWFWWuv5Xr58Gb1798avv/6qUt7YOWrjfU7Jphkamy6htbO0tFT5EFIoFNi1axf69esHsVhc5/QOTZ2O4WUjEolw8uRJfPLJJyrl9Z1vdna2NsNrcQ8fPoS9vT2OHj2K4cOHY9CgQYiOjoZUKm2zf+Ply5fj8uXLCAwMREhICKytrTFnzpw2db4TJkzAkiVLag063Ng5auN9/nJP7faSasp0CW3B6tWrcfPmTezbtw/bt29nR9OuwufzUVlZWc/WLz+pVIqlS5diyZIltQaFbWy6i9aqtLQUGRkZ2LVrFyIjI1FaWorIyEjIZDKUlZW1ub8xoEyw3bt3x6xZs1BSUoKoqChER0fD3Ny8zr9xZWUlGIYBh8PRUcQtp773cdU5auN9TsmmGZoyXUJrxjAMPvvsM/zyyy/45ptv4ObmBoFAUOumYc3pH1qj77//Hk5OThg2bFitdY1Nd9Fa6evro6SkBF988QU6d+4MAFi4cCEWLlyI8PDwNvc3fvjwIT7//HP8/vvv6NChAwDl33bq1Kn46KOP6v0bt4VEAzT8PuZwOFp5n1OyaYamTJfQWikUCixduhRHjhzB+vXrERoaCkB57lUzplapOf1Da3TkyBGIxWIEBAQAUHYJlsvlCAgIwIgRIxqc7qK1srW1hb6+PptoAMDZ2RkVFRWwsbHBrVu3VOq39nO+du0aTExM2EQDKOetksvlkEql9U5Z0lY0NC1L1XpNv8/pnk0zNGW6hNZqzZo1OHLkCDZs2IAhQ4aw5X5+fkhNTYVEUj09bXx8PDv9Q2u0c+dOHD16FIcOHcKhQ4cwduxYeHt749ChQ41Od9Fa+fv7QyaTIS0tjS27c+cOjIyM4O/v3+b+xra2tigqKkJOTg5bdufOHQBASEgIsrOzkZGRwa6Lj4+Hn5+f1uPUFH9//wbPUSvv8xbr19bOLFu2jBk2bBiTlJTEnDlzhgkMDGSOHTum67BahEgkYtzd3ZnNmzczOTk5Ki+ZTMaEhYUxc+bMYW7dusVs3ryZ8fPzYx49eqTrsFvMunXr2K7PxcXFTJ8+fZjIyEjm9u3bzGeffcb07dtXpVtwazVz5kwmPDycSUlJYa5cucIMGjSIWb16dZv8G1dWVjKvv/46M2XKFObmzZuMSCRiRo4cySxYsIBhGIaZOnUqM2HCBObmzZvMvn37GG9vbyYhIUHHUb+Yml2fGabhc9TG+5ySTTNJJBJm4cKFjL+/PxMcHMz88MMPug6pxaxZs4Zxd3ev81VZWcncv3+fmThxIuPt7c2EhYUx58+f13XILapmsmEYhklKSmJGjx7NeHt7M2PGjGFSUlJ0GF3LKS4uZhYtWsQEBgYyvXr1Yj7//HOmoqKCYRimTf6Ns7KymLlz5zK9evVigoODmaioKKasrIxhGIbJzc1lZsyYwfj4+DCDBg1iDh06pONoX9zzyaaxc9T0+5ymGCCEEKJxdM+GEEKIxlGyIYQQonGUbAghhGgcJRtCCCEaR8mGEEKIxlGyIYQQonGUbAhpZ/7++294eHjoOgzSzlCyIYQQonGUbAghhGgcJRtCtGj37t0YPHgwfHx8MHLkSPzxxx/IyMiAh4cHDh8+jJCQEPTo0QMrV65UmT/m6tWreOONN+Dr64vhw4fj0KFDKvv99ddfMXjwYAQEBGD8+PFITk5m15WUlODjjz9GQEAA/vWvf+H69evaOl1CqrXo4DeEkHpdv36d8fLyYk6fPs1kZGQwGzduZHx9fZkbN24w7u7uzJAhQ5grV64w//zzD/PKK68wa9euZRiGYXJycpiAgABmx44dzP3795ljx44xQUFBTFxcHMMwDBMXF8f07duXOX36NHPv3j1m48aNjL+/P5Odnc0wDMN8/PHHzKhRo5hr164x586dY/r168e4u7vr7PdA2idKNoRoyalTpxgvLy/mxo0bDMMwjFwuZ86fP8/cvn2bcXd3Z06dOsXW3bdvH9OrVy9GLpcz69evZ95//32VfW3YsIGZPHkywzAMM378eGb79u0q6ydNmsR89913TFFREePp6cn8888/7LqdO3dSsiFa1zYmXyGkFejfvz+6d++O0aNHw93dHa+++ireeOMNdjbIqsnbAOXEXgUFBcjNzcXdu3dx/vx5lfUymQyWlpYAlPOyrFu3Dt988w27XiqVokOHDrh37x7kcjm6deumsm9CtI2SDSFaIhQK8euvvyI+Ph5//PEHTp48iV27dmH37t0AAD09PbauQqEAAHC5XMhkMgwfPhwffPCByv64XOUtV7lcjk8++QT9+/dXWW9oaIjMzEwAYCfFAtBmJvgjrQt1ECBES0QiETZu3IgePXpgwYIFOHHiBKytrXHu3DkAUJlu+9q1a7C2toaVlRWcnZ3x4MEDODk5sa8LFy5g3759AJTTOWdlZams37ZtGy5fvgwXFxfweDykpKSw+75586Z2T5wQULIhRGsMDAywceNG7NmzBxkZGfj999+RmZkJCwsLAMDnn3+OlJQUXLx4Ed9++y0mTJgADoeDCRMm4MaNG/jqq69w//59nDx5El988QXs7OwAAO+88w527tyJgwcP4uHDh/juu++wf/9+uLi4wNjYGK+//jo+++wzJCYm4p9//sHGjRt1+Wsg7RRNnkaIFh0+fBgxMTHIyMiAra0tpk6digEDBmDw4MH4z3/+g507d0Iul+PNN9/E3Llz2aayixcv4ssvv0RaWhpsbGwwadIkTJs2jd3vzp07sWPHDuTk5MDFxQUff/wxBgwYAAAoLy9HVFQUTpw4AXNzc0ycOBFr165FWlqaTn4HpH2iZEOIjmVkZGDw4ME4deoUnJycdB0OIRpBzWiEEEI0jpINIYQQjaNmNEIIIRpHVzaEEEI0jpINIYQQjaNkQwghROMo2RBCCNE4SjaEEEI0jpINIYQQjft/uUFsxNlkDUgAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable consume\n", + "ax = sns.distplot(df_train.speed, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('speed', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of consume', fontsize=20);" + ] + }, + { + "cell_type": "code", + "execution_count": 221, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\_decorators.py:36: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Distribution of consume')" + ] + }, + "execution_count": 221, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# box plot of the variable consume\n", + "ax = sns.boxplot(df_train.consume)\n", + "\n", + "# notation indicating an outlier\n", + "ax.annotate('Outlier', xy=(9,0), xytext=(8,-0.05), fontsize=14,\n", + " arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle=\"round\", fc=\"0.8\"))\n", + "\n", + "# xtick, label, and title\n", + "plt.xticks(fontsize=14)\n", + "plt.xlabel('consume', fontsize=14)\n", + "plt.title('Distribution of consume', fontsize=20)" + ] + }, + { + "cell_type": "code", + "execution_count": 222, + "metadata": {}, + "outputs": [], + "source": [ + "q_low = df_train[\"consume\"].quantile(0.01)\n", + "q_hi = df_train[\"consume\"].quantile(0.99)\n", + "\n", + "df_train = df_train[(df_train[\"consume\"] < q_hi) & (df_train[\"consume\"] > q_low)]" + ] + }, + { + "cell_type": "code", + "execution_count": 223, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable consume\n", + "ax = sns.distplot(df_train.consume, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('consume', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of consume', fontsize=20);" + ] + }, + { + "cell_type": "code", + "execution_count": 224, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consumespeedtemp_insidetemp_outsidegas_typeACrainsun
consume100.000000-28.91594712.699392-23.33800115.593358-16.87898935.445878-10.107974
rain35.44587818.864880-10.850518-26.58972722.1719794.615385100.000000-11.516336
gas_type15.593358-15.5396741.74924131.526720100.0000004.54809822.17197923.831729
temp_inside12.699392-5.555860100.00000028.4618211.74924135.159893-10.8505181.735559
sun-10.107974-10.8036561.73555928.15002023.83172924.184306-11.516336100.000000
AC-16.878989-2.14290435.15989336.9977064.548098100.0000004.61538524.184306
temp_outside-23.338001-14.51432828.461821100.00000031.52672036.997706-26.58972728.150020
speed-28.915947100.000000-5.555860-14.514328-15.539674-2.14290418.864880-10.803656
\n", + "
" + ], + "text/plain": [ + " consume speed temp_inside temp_outside gas_type \\\n", + "consume 100.000000 -28.915947 12.699392 -23.338001 15.593358 \n", + "rain 35.445878 18.864880 -10.850518 -26.589727 22.171979 \n", + "gas_type 15.593358 -15.539674 1.749241 31.526720 100.000000 \n", + "temp_inside 12.699392 -5.555860 100.000000 28.461821 1.749241 \n", + "sun -10.107974 -10.803656 1.735559 28.150020 23.831729 \n", + "AC -16.878989 -2.142904 35.159893 36.997706 4.548098 \n", + "temp_outside -23.338001 -14.514328 28.461821 100.000000 31.526720 \n", + "speed -28.915947 100.000000 -5.555860 -14.514328 -15.539674 \n", + "\n", + " AC rain sun \n", + "consume -16.878989 35.445878 -10.107974 \n", + "rain 4.615385 100.000000 -11.516336 \n", + "gas_type 4.548098 22.171979 23.831729 \n", + "temp_inside 35.159893 -10.850518 1.735559 \n", + "sun 24.184306 -11.516336 100.000000 \n", + "AC 100.000000 4.615385 24.184306 \n", + "temp_outside 36.997706 -26.589727 28.150020 \n", + "speed -2.142904 18.864880 -10.803656 " + ] + }, + "execution_count": 224, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "corr = (df_train.corr().sort_values('consume', ascending=False))*100\n", + "corr" + ] + }, + { + "cell_type": "code", + "execution_count": 225, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(8.5, -0.5)" + ] + }, + "execution_count": 225, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnUAAAJpCAYAAADL48S0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAACCKklEQVR4nO3dd3yN5//H8ddJIoQIQhLEHm1pS4fZ2rMURVXVVtVBomYFsWrv2l2K2jsoYpeWGjG+tg67yCCDJGSd3x/a83MkDiU5xznezz7O49H7Otc59+c6Mj75XPd13Qaj0WhEREREROyak60DEBEREZEnp6RORERExAEoqRMRERFxAErqRERERByAkjoRERERB6CkTkRERMQBKKkTEREReUK3bt2iUaNGXL58OdVzp06d4t1336V+/foMHDiQpKQkAK5cuUKbNm146623+Oyzz4iNjX2iGJTUiYiIiDyB//3vf3zwwQecP38+zef79u3LoEGD2LRpE0ajkWXLlgEwbNgwWrduTXBwMC+99BIzZ858ojiU1ImIiIg8gWXLljFkyBC8vb1TPff3339z+/ZtXnnlFQCaN29OcHAwiYmJHDhwgPr165u1PwmXJ3q1iIiIiAOKiYkhJiYmVbuHhwceHh5mbSNHjnzg+4SFheHl5WU69vLyIjQ0lMjISNzd3XFxcTFrfxJK6kRERMQu/FGlvtXOFfx+I6ZPn56q3c/PD39//0d+n7TuxmowGB7Y/iSU1ImIiIjcp0OHDjRr1ixV+/1Vuofx8fEhIiLCdBweHo63tzeenp7cunWL5ORknJ2dTe1PQkmdiIiI2AeD9ZYCpDXN+jh8fX3JnDkzBw8e5PXXXycoKIhq1aqRKVMmypUrx4YNG2jcuLGp/UlooYSIiIhIOuvSpQvHjh0DYMKECYwePZoGDRoQHx9P+/btARgyZAjLli2jYcOGhISE0KNHjyc6p8GY1qSuiIiIyFPmj2oNrXaukrs2WO1c6UWVOhEREREHoKRORERExAFooYSIiIjYB6cn2/LD0alSJyIiIuIAVKkTERERu2Cw4pYm9kifjoiIiIgDUKVORERE7IOuqbNIlToRERERB6BKnYiIiNiHJ7zhvaNTpU5ERETEAahSJyIiIvbBSbUoS/TpiIiIiDgAVepERETEPuiaOotUqRMRERFxAKrUiYiIiF0wqFJnkSp1IiIiIg5AlToRERGxD1r9apE+HREREREHoKRORERExAFo+lVERETsgxZKWKRKnYiIiIgDUKVORERE7IOTKnWWqFInIiIi4gBUqRMRERH7YFAtyhJ9OiIiIiIOQJU6ERERsQsGXVNnkSp1IiIiIg5AlToRERGxD9qnziJV6kREREQcgCp1IiIiYh+0+tUifToiIiIiDkCVOhEREbEPWv1qkSp1IiIiIg5AlToRERGxD1r9apEqdSIiIiIOQJU6ERERsQsGJ9WiLNGnIyIiIuIAlNSJiIiIOABNv4qIiIh90EIJi1SpExEREXEAqtSJiIiIfdBCCYv06YiIiIg4AFXqRERExD7omjqLVKkTERERcQCq1ImIiIh9UKXOIlXqRERERByAKnUiIiJiF3SbMMv06YiIiIg4AFXqRERExD7omjqLVKkTERERcQCq1ImIiIh9cFKlzhJV6kREREQcgCp1IiIiYh8MqkVZok9HRERExAEoqRMRERFxAJp+FREREfughRIWqVInIiIi4gBUqRMRERH7oM2HLVKlTkRERMQBqFInIiIidsHwlG5psm7dOmbNmkViYiIdO3akTZs2pudOnTpFQECA6fjGjRvkyJGDn376iaCgICZMmEDu3LkBqFGjBj179nzsOJTUiYiIiDym0NBQJk+ezKpVq3B1daVVq1ZUrFiREiVKAFCqVCnWrFkDQHx8PO+99x5Dhw4F4NixYwQEBNCoUaN0ieXpTHlFRERE7udksN7jEe3Zs4dKlSqRM2dOsmbNSv369QkODk6z7zfffEP58uUpV64ccDepCwoKokmTJvTp04fo6Ogn+3ie6NUiIiIiDigmJobLly+nesTExJj1CwsLw8vLy3Ts7e1NaGhomu+3bNky/Pz8TG1eXl74+/uzZs0a8uXLx5dffvlEMWv6VUREROyDFVe/zps3j+nTp6dq9/Pzw9/f33RsNBpT9TGkEee6deuoU6eO6fo5gBkzZpj+/6OPPqJOnTpPFLOSOhEREZH7dOjQgWbNmqVq9/DwMDv28fEhJCTEdBwWFoa3t3eq123dupVPPvnEdHzz5k1WrlxJx44dgbvJoYvLk6VlSupERETEPjhZ76oxDw+PVAlcWt544w2mTZvGjRs3cHNzY/PmzQwfPtysj9Fo5MSJE7z66qumtqxZs/L999/z6quvUrZsWRYsWEDdunWfKGYldSIiIiKPycfHh549e9K+fXsSExNp0aIFZcqUoUuXLnTv3p2XX36ZGzdukClTJjJnzmx6nbOzM1999RVDhw7l9u3bFClShHHjxj1RLAZjWpPBIiIiIk+ZC359rXauwtPHW+1c6UWrX0VEREQcgKZfRURExC4Y/sP+cc8imyR1RqORCRMmsHXrVpydnXn//fepVq0agwcPJioqiqxZszJw4EDKlClDQEAA7u7unDhxgtDQULp168a7777Lb7/9xvjxd0ujOXLkYOLEicTFxdG+fXu2b98OwLRp0wDw9/fnzTffpGbNmoSEhODl5UXr1q2ZP38+165dY8yYMVSoUIELFy4wdOhQoqKiyJIlC4MGDaJ06dK2+IhERERE/hObTL8GBwdz6NAh1q1bx/Lly1m1ahWffvop7dq1Y926dfTv35/PP/+chIQEAK5du8aiRYuYNWuW6SLCmTNnMnToUFatWkXNmjU5efKkxXNGRERQo0YN0y7PW7duZdGiRfj7+zNv3jwA+vXrR9++fVm9ejXDhw9/ovuviYiIiFiTTSp1Bw4coEGDBri6uuLq6sqiRYuoWbMm9erVA+CVV14hR44cnD17FoA333wTg8HAc889R1RUFAC1a9fGz8+POnXqULt2bd58800uX75s8bzVqlUDwNfXl9dffx2A/PnzExMTQ2xsLMePH6d///6m/nFxcURGRpIrV670/ghERETkvzJoKYAlNknq7t9c79KlS6l2ZDYajSQnJwOYlgDfu0Nzx44dqVmzJjt27GD8+PEcPXqUJk2amL1PUlKS2blcXV1N/+/s7Gx2vpSUFFxdXU033YW7FcKcOXM+5ihFRERErMcmKW/58uXZsmULiYmJxMfH06NHDwwGA5s3bwbgyJEjREREULJkyQe+x3vvvUdsbCwdO3akY8eOnDx5Eg8PD6Kjo7lx4wYJCQn88ssvjxxT9uzZKVKkiCmp2717N23atHmygYqIiEj6MRis97BDNqnU1a1bl+PHj9O8eXNSUlJo3749FStWZOjQoUybNo1MmTIxbdo0s8ra/Xr16kVAQAAuLi5kzpyZYcOGkT17djp37kyLFi3ImzcvL7/88n+Ka/z48QwdOpTvv/+eTJkyMXny5DTv3yYiIiLytNHmwyIiImIXLvYaYLVzFZo0ymrnSi+64lBERETEAWjzYREREbEPWv1q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KnUiIiIiDkCVOhEREbELuqTOMlXqRERERByAkjoRERERB6DpVxEREbELmn61TJU6EREREQegSp2IiIjYhRSV6ixSpU5ERETEAahSJyIiInZBhTrLVKkTERERcQCq1ImIiIhdUKXOMlXqRERERByAKnUiIiJiF7T61TJV6kREREQcgCp1IiIiYhdUqLNMlToRERERB6BKnYiIiNgFVeosU6VORERExAGoUiciIiJ2QatfLVOlTkRERMQBKKkTERERcQCafhURERG7oNlXy1SpExEREXEAqtSJiIiIXVClzjJV6kREREQcgCp1IiIiYhe0pYllqtSJiIiIOABV6kRERMQuqFBnmSp1IiIiIg5AlToRERGxC6rUWaZKnYiIiIgDUKVORERE7IJWv1qmpM4ORUdHkyNHDluHkW6uXLli8fn8+fNbKRIRyxztew9g5cqVlCxZkjJlygAwceJEChcuTIsWLWwcmYj8V0rq7MipU6fo2bMnt2/fZunSpbRt25avvvqKF1980dahPZG2bdtiMBi4c+cO169fp2DBgjg5OXHx4kUKFizIpk2bbB1iuvj7778JDAzk77//ZsGCBfTp04dRo0ZRoEABW4f2xBISEpg9ezbnzp1j8ODBzJ07l48//hhXV1dbh5YuHPV7b/78+axdu5axY8ea2qpVq8aYMWNISEigdevWNowu/Zw8eZKvv/6a6OhojPdUen788UcbRpV+fvnlFyZPnkxMTAxGoxGj0YjBYGDbtm22Di3dqVBnmZI6OzJixAhmzJhB79698fHxYejQoQwZMoQVK1bYOrQnsn37dgB69uxJmzZtKFeuHABHjx7l+++/t2Vo6Wrw4MF07tyZiRMn4uXlRaNGjejXrx8LFy60dWhP7Msvv8TT05OTJ0/i7OzMxYsXGThwIOPHj7d1aOnCUb/3VqxYwcKFC3F3dze1lS9fnu+++46OHTs6TFLXr18/3n//fUqWLInBYLB1OOluxIgRBAQEOOz45NFpoYQdiY+Pp3jx4qbjN998k4SEBBtGlL7++usvU0IHUKZMGc6dO2fDiNJXZGQkVapUMf0V3bJlS27dumXrsNLFiRMn6NWrFy4uLri5uTF27FhOnTpl67DSjaN+7zk5OZkldP/y9PTEyclxfj1kyZKFtm3bUrFiRSpUqGB6OIpcuXJRs2ZNChQogK+vr+nhiIxG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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.set(style=\"white\")\n", + "# Generate a mask for the upper triangle\n", + "mask = np.zeros_like(df_train.corr(), dtype=np.bool)\n", + "mask[np.triu_indices_from(mask)] = True\n", + "# Set up the matplotlib figure to control size of heatmap\n", + "fig, ax = plt.subplots(figsize=(10,10))\n", + "# Create a custom color palette\n", + "cmap = sns.diverging_palette(255, 10, as_cmap=True) # as_cmap returns a matplotlib colormap object rather than a list of colors\n", + "# Red=10, Green=128, Blue=255\n", + "# Plot the heatmap\n", + "sns.heatmap(df_train.corr(), mask=mask, annot=True, square=True, cmap=cmap , vmin=-1, vmax=1, ax=ax) # annot display corr label\n", + "# Prevent Heatmap Cut-Off Issue\n", + "bottom, top = ax.get_ylim()\n", + "ax.set_ylim(bottom+0.5, top-0.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Al eliminar los outliers, los datos tienen más sentido. Aunque seguimos comprobando que ambos tipos de combustible tienen un onsumo muy similar" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Feature selection.2" + ] + }, + { + "cell_type": "code", + "execution_count": 226, + "metadata": {}, + "outputs": [], + "source": [ + "X = df_train[['speed', 'temp_inside', 'temp_outside',\n", + " 'gas_type', 'AC', 'rain', 'sun']].values\n", + "y = df_train['consume'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 227, + "metadata": {}, + "outputs": [], + "source": [ + "X_train,X_test,y_train,y_test = train_test_split(X,y, random_state=9, train_size = 0.8)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Models pipelines" + ] + }, + { + "cell_type": "code", + "execution_count": 228, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# We train different model to see which give us less error\n", + "models = { \"ridge\": Ridge(),\n", + " \"lasso\": Lasso(),\n", + " \"sgd\": SGDRegressor(),\n", + " \"knn\": KNeighborsRegressor(),\n", + " \"gradient\": GradientBoostingRegressor(),\n", + " \"rdm\": RandomForestRegressor(),}" + ] + }, + { + "cell_type": "code", + "execution_count": 229, + "metadata": {}, + "outputs": [], + "source": [ + "# Building pipelins of standard scaler and model for varios regressors.\n", + "\n", + "pipeline_lr=Pipeline([(\"scalar1\",StandardScaler()),\n", + " (\"lr_classifier\",LinearRegression())])\n", + "\n", + "pipeline_dt=Pipeline([(\"scalar2\",StandardScaler()),\n", + " (\"dt_classifier\",DecisionTreeRegressor())])\n", + "\n", + "pipeline_rf=Pipeline([(\"scalar3\",StandardScaler()),\n", + " (\"rf_classifier\",RandomForestRegressor())])\n", + "\n", + "pipeline_kn=Pipeline([(\"scalar4\",StandardScaler()),\n", + " (\"rf_classifier\",KNeighborsRegressor())])\n", + "\n", + "pipeline_xgb=Pipeline([(\"scalar5\",StandardScaler()),\n", + " (\"rf_classifier\",XGBRegressor())])\n", + "\n", + "pipeline_ridge=Pipeline([(\"scalar6\",StandardScaler()),\n", + " (\"rf_classifier\",Ridge())])\n", + "\n", + "pipeline_lasso=Pipeline([(\"scalar7\",StandardScaler()),\n", + " (\"rf_classifier\",Lasso())])\n", + "\n", + "pipeline_xgbr=Pipeline([(\"scalar8\",StandardScaler()),\n", + " (\"rf_classifier\",GradientBoostingRegressor())])" + ] + }, + { + "cell_type": "code", + "execution_count": 230, + "metadata": {}, + "outputs": [], + "source": [ + "# List of all the pipelines\n", + "pipelines = [pipeline_lr, pipeline_dt, pipeline_rf, pipeline_kn, \n", + " pipeline_xgb, pipeline_ridge,pipeline_lasso, pipeline_xgbr]" + ] + }, + { + "cell_type": "code", + "execution_count": 231, + "metadata": {}, + "outputs": [], + "source": [ + "# Dictionary of pipelines and model types for ease of reference\n", + "pipe_dict = {0: \"LinearRegression\", 1: \"DecisionTree\", 2: \"RandomForest\",\n", + " 3: \"KNeighbors\", 4: \"XGBRegressor\", 5:\"Ridge\", 6:\"Lasso\",\n", + " 7:'GradientBoostingRegressor'}" + ] + }, + { + "cell_type": "code", + "execution_count": 232, + "metadata": {}, + "outputs": [], + "source": [ + "# Fit the pipelines\n", + "for pipe in pipelines:\n", + " pipe.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 233, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "LinearRegression: -0.293633 \n", + "DecisionTree: -0.293782 \n", + "RandomForest: -0.264978 \n", + "KNeighbors: -0.236464 \n", + "XGBRegressor: -0.291459 \n", + "Ridge: -0.282854 \n", + "Lasso: -0.209605 \n", + "GradientBoostingRegressor: -0.308575 \n" + ] + } + ], + "source": [ + "cv_results_rms = []\n", + "for i, model in enumerate(pipelines):\n", + " cv_score = cross_val_score(model, X_train,y_train,scoring=\"neg_root_mean_squared_error\", cv=10)\n", + " cv_results_rms.append(cv_score)\n", + " print(\"%s: %f \" % (pipe_dict[i], cv_score.mean()))" + ] + }, + { + "cell_type": "code", + "execution_count": 234, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar1', StandardScaler()),\n", + " ('lr_classifier', LinearRegression())]) R^2: 0.15044146252622004\n", + "Adjusted R^2: -0.22124039761855863\n", + "MAE: 0.1646025546947217\n", + "MSE: 0.06489683272369152\n", + "RMSE: 0.254748567657782\n", + "Pipeline(steps=[('scalar2', StandardScaler()),\n", + " ('dt_classifier', DecisionTreeRegressor())]) R^2: 1.0\n", + "Adjusted R^2: 1.0\n", + "MAE: 0.0\n", + "MSE: 0.0\n", + "RMSE: 0.0\n", + "Pipeline(steps=[('scalar3', StandardScaler()),\n", + " ('rf_classifier', RandomForestRegressor())]) R^2: 0.7702545454545455\n", + "Adjusted R^2: 0.6697409090909092\n", + "MAE: 0.06833333333333332\n", + "MSE: 0.017549999999999993\n", + "RMSE: 0.13247641299491766\n", + "Pipeline(steps=[('scalar4', StandardScaler()),\n", + " ('rf_classifier', KNeighborsRegressor())]) R^2: 0.10545454545454558\n", + "Adjusted R^2: -0.28590909090909067\n", + "MAE: 0.14166666666666672\n", + "MSE: 0.06833333333333333\n", + "RMSE: 0.2614064523559687\n", + "Pipeline(steps=[('scalar5', StandardScaler()),\n", + " ('rf_classifier',\n", + " XGBRegressor(base_score=0.5, booster='gbtree',\n", + " colsample_bylevel=1, colsample_bynode=1,\n", + " colsample_bytree=1, gamma=0, gpu_id=-1,\n", + " importance_type='gain',\n", + " interaction_constraints='',\n", + " learning_rate=0.300000012, max_delta_step=0,\n", + " max_depth=6, min_child_weight=1, missing=nan,\n", + " monotone_constraints='()', n_estimators=100,\n", + " n_jobs=8, num_parallel_tree=1, random_state=0,\n", + " reg_alpha=0, reg_lambda=1, scale_pos_weight=1,\n", + " subsample=1, tree_method='exact',\n", + " validate_parameters=1, verbosity=None))]) R^2: 0.9999951882527967\n", + "Adjusted R^2: 0.9999930831133952\n", + "MAE: 0.00029098987579345703\n", + "MSE: 3.6756402247798786e-07\n", + "RMSE: 0.0006062705851993711\n", + "Pipeline(steps=[('scalar6', StandardScaler()), ('rf_classifier', Ridge())]) R^2: 0.14999634607235757\n", + "Adjusted R^2: -0.22188025252098598\n", + "MAE: 0.16138220158431818\n", + "MSE: 0.06493083467502825\n", + "RMSE: 0.25481529521405943\n", + "Pipeline(steps=[('scalar7', StandardScaler()), ('rf_classifier', Lasso())]) R^2: 0.0\n", + "Adjusted R^2: -0.4375\n", + "MAE: 0.15277777777777754\n", + "MSE: 0.0763888888888889\n", + "RMSE: 0.27638539919628335\n", + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9999999989126355\n", + "Adjusted R^2: 0.9999999984369135\n", + "MAE: 4.928139442269182e-06\n", + "MSE: 8.30625716773691e-11\n", + "RMSE: 9.113866999104667e-06\n" + ] + } + ], + "source": [ + "for i, model in enumerate(pipelines):\n", + " pred = model.predict(X_train)\n", + " print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + " print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + " print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + " print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + " print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 235, + "metadata": {}, + "outputs": [], + "source": [ + "# List of all the pipelines\n", + "pipelines = [pipeline_lr, pipeline_dt, pipeline_rf, pipeline_kn, \n", + " pipeline_xgb, pipeline_ridge,pipeline_lasso, pipeline_xgbr]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline ridge" + ] + }, + { + "cell_type": "code", + "execution_count": 236, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.14999634607235757\n", + "Adjusted R^2: -0.22188025252098598\n", + "MAE: 0.16138220158431818\n", + "MSE: 0.06493083467502825\n", + "RMSE: 0.25481529521405943\n" + ] + } + ], + "source": [ + "pred = pipeline_ridge.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 237, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
05.05.095087-0.095087
15.04.9820500.017950
25.05.017402-0.017402
35.05.170163-0.170163
45.05.183476-0.183476
55.04.9225670.077433
65.05.173586-0.173586
75.04.9026530.097347
85.04.9472970.052703
95.05.182642-0.182642
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 5.0 5.095087 -0.095087\n", + "1 5.0 4.982050 0.017950\n", + "2 5.0 5.017402 -0.017402\n", + "3 5.0 5.170163 -0.170163\n", + "4 5.0 5.183476 -0.183476\n", + "5 5.0 4.922567 0.077433\n", + "6 5.0 5.173586 -0.173586\n", + "7 5.0 4.902653 0.097347\n", + "8 5.0 4.947297 0.052703\n", + "9 5.0 5.182642 -0.182642" + ] + }, + "execution_count": 237, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_ridge = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_ridge.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 238, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5oAAAHXCAYAAADdrCUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAydUlEQVR4nO3de5hVdaE//vcwMCCgaaigUl9L6XRBybtUipl38AZ4QVJTs/yWmKYEKcl0QsOsED2dc8xOnUwLxQQlUUv5YSl6zEoJK7vilxEU0FAQcWDYvz98mCNymQ2umb0HXq/n4Xlm1lqftd7svWbv/d5r7bVrSqVSKQAAAFCQDpUOAAAAwJZF0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoTq21opXrFiROXPmZKeddkptbW1rbQYAAIAKaGpqyqJFi9K3b9906dJlrXmtVjTnzJmT4cOHt9bqAQAAqAK33npr9t9//7WmtVrR3GmnnZo32qtXr7e9vuseuy4XH3zx215PkWQqj0zlq8ZcMpVHpvJVYy6ZyiNT+aoxl0zlkal81ZhLpvIUlen555/P8OHDm7vfm7Va0VxzumyvXr3Su3fvt72+7jt2L2Q9RZKpPDKVrxpzyVQemcpXjblkKo9M5avGXDKVR6byVWMumcpTdKb1fVTSxYAAAAAolKIJAABAoRRNAAAACtVqn9HckNWrV2fx4sVZsmRJmpqayh539DuOzh//+MdWTLbptoRMtbW12X777bPjjjumQwfvOwAAAG9fmxfNhoaG1NTUZPfdd0+nTp1SU1NT1rj5S+dn1213beV0m6a9ZyqVSlm5cmVeeOGFNDQ05N3vfncrpwMAALYGbX4I69VXX81uu+2Wurq6sksmraOmpiZ1dXXZbbfd8uqrr1Y6DgAAsIWoyLmSTtGsLu4PAACgSFXRMBpXtvxZzc05RbWc9W6KGTNm5Ac/+MEmjZk4cWIefPDBQnMAAABUszb/jOb61HWqzfGX3lX4eqd968RC1/f0009v8pgvfOELhWYAAACodlVRNCtp5MiR2X///XPaaaclSc4888xcdtll6dev31rL/fWvf82kSZOSJLvuumvmz5+f//nN/+SlhS9l+PDh6dOnTyZMmJAVK1bk5ZdfzsiRI3Psscdm9OjROfDAA3PggQfmwgsvTJ8+ffLHP/4xPXr0yMSJE7P99tu39X8ZAACgVVXFqbOVNGTIkNx9991Jkueeey4vvfTSOiUzSfbcc8+cfvrpOf300zNkyJAkSePrjZk+fXqGDx+eW265JePGjcuUKVNy1VVX5d///d/XWcef/vSnnHPOOfnZz36W7bbbLtOmTWvd/xwAAEAFbPVF86CDDsrChQvT0NCQqVOn5sQTyz/d9gN9P9D887XXXpu//OUv+c53vpMf/OAH672Ka48ePfLBD34wSdKnT5+8/PLLb/8/AAAAUGW2+qJZU1OTk046Kffcc0/uu+++TSqanTt3bv75jDPOyOzZs9O3b99ccMEFLS5fU1OTUqm0+cEBAACqVFlFc8aMGRk8eHCOOeaYjBs3rrUztbnBgwdn0qRJ6dWrV3r27LnB5Wpra7Nq1ap1pi9ZsiRz587NF77whQwYMCCPPPJImpqKveItAABAe9HixYDmzZuXsWPHZvLkyenRo0fOPvvsPPTQQxkwYEBb5GsTu+yyS3bZZZecfPLJG13ugAMOyKhRo7LjjjuuNX377bfPKaeckoEDB6Z79+758Ic/nBUrVmT58uWtGRsAAKAqtVg0f/GLX+S4445Lr169kiQTJkxY6xTQIjSubCr8q0jWrLeuU+1GlymVSlm4cGEWL16cI444YqPLHnDAAZkxY0bz7/OXzm/+efTo0Rk9enTz7/X19UmS8ePHN09789gRI0aU9X8AAABob1osms8++2w6deqU8847L4sWLcrHP/7xXHzxxYWGaKkMJm+Uul233bXw9d5///2pr69PfX196urqcs0112TWrFnrLNe3b99cddVVm7R9AACArVFNqYUr0owZMya/+93v8qMf/Shdu3bN5z73uQwaNCiDBw/e6IobGhryiU98IsdfdXy679i9efrR7zg6/2fP/7PJQZe+vjTbdt52k8e1pi0p07N/fTb3v3x/KyRKZs6dmcN2P6xV1r25qjFTUp25ZCqPTOWrxlwylaetM110wCV5Z7d3rDP9pVdfzvW/nlCRTOWqxlwylUem8rVlrg09HiTV/5iwJWdatnhZpl0xLQ8++GB69+699sxSCyZMmFD62te+1vz7LbfcUho7dmxLw0rz5s0rve997yvNmzdvrel/+MMfWhy7Ps+98txmjWtNW1Kmzb1fyjH2/xvbauveXNWYqVSqzlwylUem8lVjLpnKU4lMg744dZ1/lc5UjmrMJVN5ZCpfW+da3+NBe3hM2JIzbajzlUqlUotXnf34xz+ehx9+OK+88kqampryq1/9Kh/60IfedvsFAABgy9TiZzT79euXT3/60znjjDOycuXKfPSjH82QIUPaIhsAAADtUItFM0mGDh2aoUOHtnYWAAAAtgAtnjoLAAAAm6IqiubqVY0tLrOpX21S7nor6V/+5V82On/evHm5/PLLN2mdjzz0SCZOnPh2YgEAALwtZZ0629o6dKzL368q/nOf773ip4Wvsy3Nnz8/8+bN26QxHx3w0ew6aNNLOQAAQFGqomhW0siRI7P//vvntNNOS5KceeaZueyyy9KvX791lh09enRqamry5z//OcuWLcuwc4blU6d/KjfccEOefPLJLFiwIMOHD8/HPvax1NfXZ8mSJenSpUu+8pWv5IMf/GAaGhoycuTILF++fL3rf6tx48aloaEhX/3qV3PMMcfk2muvzerVq9OnT5988YtfzOWXX56lS5dm0aJFGThwYC677LLcN+2+/Hn2nzN+/PgcfvjhOeGEE/Lwww/ntddeyzXXXJO+ffsWfhsCAAC8WVWcOltJQ4YMyd13350kee655/LSSy9ttAS+8MILmTRpUn74wx/mPyf+ZxYtWpQkaWxszPTp0zN8+PCMGjUqI0eOzJQpU/K1r30tl1xySZLka1/7WgYPHpy77ror++67b4vZxowZk759+2bs2LFJkrlz5+aHP/xhrrnmmvzsZz/LoEGDcvvtt+fuu+/Oj3/847z00kvrrGP77bfPHXfckdNPPz033njjJt8+AAAAm2qrL5oHHXRQFi5cmIaGhkydOjUnnnjiRpcfPHhwOnXqlF69eqVvv775zW9+kyTZe++9kySvvvpq5syZky9/+cs58cQTc+mll2b58uX55z//mccffzzHHntskuSEE05Ip06dNinre97znmy77bZJkvPOOy+77LJL/uu//itXXXVVVq5cmddee22dMYccckiSpE+fPlmyZMkmbQ8AAGBzbPWnztbU1OSkk07KPffck/vuuy/f+973Nrp8bW1t88+rV69Ox45v3IRdunRpnlZXV5e77rqrebnnn38+22+/fZKkVCo1b7empmaTsq7ZRpKMHz8+8+bNy6BBg3LEEUdk1qxZzet+s86dOzdvDwAAoC1s9Uc0kzeOUk6aNCm9evVKz549N7rsvffem1KplOeeey5/nPPH7LfffmvN33bbbbP77rs3F81HHnkkw4cPT5J85CMfaT5N9+c//3kaGzd+Vdza2tqsWrVqvfMeeeSRnHfeeTn22GOzYMGCvPDCC1m9enVZ/18AAIDWtNUf0UySXXbZJbvssktOPvnkFpddsWJFhgwZksbGxlx6xaXZYYcd1lnm2muvTX19fb73ve+lU6dOmTBhQmpqanLllVdm5MiRmTRpUvbaa69069Zto9vaY489snTp0owcOTJDhw5da95nP/vZfOlLX8p2222XHj16pG/fvmloaNi0/zgAAEArqIqiuXpVY6t8FcnqVY3p0LFuo8uUSqUsXLgwixcvzhFHHNHiOo855pgMHjw4STJ/6fwkyYgRI9ZaZo899siPfvSjdcb27NkzN998c/PvV1999Ua3tcMOO+RnP/tZ8+8HHXRQ88+DBg3KoEGD1hmz+16759wzzk2SzJgxY62xbx4PAADQWqqiaLZUBpM3St2u227a90OWs977778/9fX1qa+vT11dXa655prMmjVrneVa62tBpk+fvsGrwb75c54AAADtRVUUzUo65phjcswxxzT/PmrUqDbd/nHHHZfjjjuuTbcJAADQmlwMCAAAgEIpmgAAABRK0QQAAKBQiiYAAACFqoqi2di0ssVlNvWKs+WuFwAAgGJVxVVn62o75dTb/m/h6739tP8ofJ0AAABsXFUUzUr77ne/m3vvvTdNTU352Mc+lmHDhuX888/PDjvskM6dO+eEE07IlClTsmTJknz84x/PWWedlSuuuCL/r+H/pUtdl1xyySU59NBDc8MNN+TJJ5/MggULMnz48AwfPrzS/zUAAIA2t9UXzV/+8peZM2dO7rjjjtTU1GTkyJGZNm1a/vGPf+R73/teevfunTvvvDMvvPBCpk+fno4dO+YLX/hCDj744IwdOjZNS5oybNiwTJ06NUnS2NiY6dOnV/Y/BQAAUEFbfdF89NFHM3v27AwePDhJsmLFipRKpfTo0SO9e/duXu6DH/xgOnZ84+Z67LHHMm7cuCzN0rzrXe9Kv3798tRTTyVJ9t5777b/TwAAAFSRrb5oNjU15eyzz84555yTJHnllVfy/PPP58knn1xruS5dujT/XCqV1ppXKpXS1NS0znIAAABbo6q46mwlHXzwwbnrrrvy6quvZtWqVfn85z+fOXPmtDjmjjvu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X87y5ctz9dVX5/LLLy974xcffHF69+5dftoybe7O1ppkKo9M5avGXDKVR6byVWMumcojU/mqMZdM5ZGpfNWYS6bybG6mhoaGTMu09c7baNH8wQ9+0PzznXfemccff3yTSiYAAABbH9+jCQAAQKE2ekTzzQYPHpzBgwe3ZhYAAAC2AI5oAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAocoqmhMnTsxxxx2XgQMH5gc/+EFrZwIAAKAd69jSAo8//ngee+yx3H333Vm1alWOO+64DBgwIO9973vbIh8AAADtTItHNA888MDcfPPN6dixY1588cU0NTWla9eubZENAACAdqisU2c7deqU66+/PgMHDkz//v3Ts2fP1s4FAABAO9XiqbNrXHTRRTn//PNzwQUX5Pbbb89pp51W1rjrHrsu3XfsvsH59YfVlxth7XEzN29cWeuuwkzJ5uWSqcwxVZgpsZ+XPUam8sZUYabEfl72GJnKG1OFmRL7edljZCpvTBVmSuznZY/ZgjItW7xsg/NaLJp/+9vf0tjYmA984APZZpttctRRR+WZZ54pe+MXH3xxevfuXfby5drcna01yVQemcpXjblkKo9M5avGXDKVR6byVWMumcojU/mqMZdM5dncTA0NDZmWaeud1+Kpsw0NDRkzZkwaGxvT2NiYBx98MPvtt99mBQEAAGDL1+IRzQEDBuSpp57KSSedlNra2hx11FEZOHBgW2QDAACgHSrrM5oXXXRRLrrootbOAgAAwBag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eGusGgAAgCpx6623Zv/9919rWqsVzRUrVmTOnDnZaaedUltb2xqbAAAAoEKampqyaNGi9O3bN126dFlrXqsVTQAAALZOLgYEAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAoVMdKB1ifv/3tb7n//vvz/PPPp0OHDtl5551zyCGHZK+99qp0tKrywAMPZMGCBRkwYEDe/e53N0+/7bbbctppp1Us19y5c7PNNtukZ8+emTx5cp555pnsu+++Oe644yqW6a3Gjx+f0aNHV2z7s2fPzt57750kefTRR/PQQw+lY8eOOfLII9OvX7+K5frVr36Vfv36ZbvttsvUqVMze/bsfOhDH8qQIUMqkmfcuHEZMWJE3vGOd1Rk+xvz6KOPpkuXLtlnn33y/e9/P48//nj69u2bz3zmM6mrq6tIpgceeCAPPPBAFi1alE6dOuXd7353jj322Oyzzz4VyQMAbL1qSqVSqdIh3uzWW2/N7bffnqOPPjo77bRTkmTRokX5+c9/nhNOOCHnnntuhRNWh29+85uZM2dO9thjj9x7770ZNWpUTjzxxCTJySefnClTplQk13//93/nRz/6UVavXp2DDz44CxYsyJFHHpkZM2Zk3333zec///k2z/TlL395nWkzZszI4YcfniT5+te/3taRmu+jW2+9NZMmTWouclOmTMkpp5yST37yk22e6aqrrsof//jHTJgwIbfeemt+//vf5xOf+ER++ctfpnfv3hkzZkybZ9p///3To0ePXHrppTnqqKPafPsb8o1vfCNPPPFEVq1ald69e6empiaDBw/OjBkz0tTUlHHjxrV5phtvvDFPPvlkDjnkkMyYMSP7779/unTpksmTJ+fss8/Oqaee2uaZANhy/OpXv8p999231oGgQw89NEcffXSlo1WNVatW5dZbb82CBQtyxBFHZP/992+ed8MNN2TEiBEVyTVr1qxsu+22+cAHPpAbbrghzzzzTPbbb7+ce+65qa2tbbXtVt0RzZtvvjlTp07NNttss9b0c845JyeffHLFiub8+fM3On/XXXdtoyRveOihhzJlypR07NgxZ555Zs4999zU1dXl2GOPTSXfO/jpT3+a6dOnZ/HixRk0aFAee+yxdO7cOaecckqGDh1akaK5/fbbZ+rUqbnggguy3XbbJUkee+yxHHjggW2e5a1uv/323Hzzzdlhhx2SJEOHDs3QoUMrUjQfeeSRTJs2LbW1tZk5c2Zuv/321NXV5bTTTsugQYPaPE+S9O7dO9/85jdTX1+fm266Keecc04OP/zwdOnSpSJ51vjVr36Vu+66K42NjRkwYEAefvjhdOrUKYceemjzGz5tbfr06Zk6dWpqamoyZMiQnH/++bn55pszZMiQnHrqqRUtml6ctMyLk7fni1/8Yr797W9XbPsPPPBAjjjiiCTJ5MmT88tf/rL5LJVKnc2zatWq3HHHHTnyyCOz7bbb5rvf/W5+//vf50Mf+lA++9nPpnPnzm2e6YILLsgVV1yRd73rXW2+7Q1ZtWpVpk6dmi5duuToo4/O17/+9fz6179O3759M2rUqGy//fYVybV69ercfPPNefDBB9c6S+W4447LwIED2zzPxIkTM3v27JxwwgnZeeedkyQLFy7MHXfckSeffDKjRo1q80y//vWvNzr/gAMOaKMk/+vKK6/M6tWr8773vS9f+tKXcuqpp+aCCy5I8sZBjko8ll977bX57W9/m2XLlmXnnXdOjx49MmzYsNx33325+uqr85WvfKXVtl11RbNjx45ZtWrVOtNXrFiRTp06VSDRGz772c9m7ty52XnnndcpcjU1NXnwwQfbNE+pVEpNTU2SZPfdd8+NN96Yc845J+985zubp1fC6tWrU1dXl9122y3nnnvuWk9kTU1NFck0atSoHHroobnuuuvyxS9+MQcddFB++MMf5uSTT65InuSNJ7bVq1enR48e6dq1a/P0urq6dOhQmY9Od+nSJS+++GLzg9Dy5ctTV1eX1157LR07VuahoqamJnvuuWduueWWzJo1K7fddluuuuqq7L777unVq1e+9a1vVSRXqVTK0qVLs3z58qxYsSLLli3LDjvskBUrVmTlypUVyfT666/ntddeS9euXbNixYosWbIkSdK1a9eK7VNJdb44mTp16kbnn3TSSW2S4828OCnfmWeeuc7z3Jw5c3LWWWcleeMN67b2ne98J0cccURuuOGGPPHEEznzzDNTKpVy22235Zlnnskll1zS5pnW/G0dffTRueaaa7J8+fKcccYZmTlzZi6//PKKPH4+9dRTOe+883L66afnzDPPrOjrujXGjBmT5cuXp7GxMbfcckv23nvvTJgwIQ8++GCuvPLKXH/99RXJNX78+KxcuTKf/vSnc//99+f9739/dtlll9x8882ZO3dum79xP3369Nx7773rPJ8MGjQogwYNqshj+Xe+8508+eST2Xvvvdf72rwSjwVz5szJ3XffneSN55JPfepT6dKlSz71qU9V7EDQQw89lGnTpmXJkiU58sgj8/jjj6dDhw459NBDW/35ruqK5gUXXJCTTjop/fv3X+vU2ccee6wiD9Rr/OQnP8kZZ5yRsWPHZr/99qtYjjWOOeaYnHnmmRk9enT23nvv9OnTJxMnTsyFF16YxsbGiuU66qij8slPfjI333xz8wujP/3pTxkzZkyOPfbYiuXq379/PvCBD2Ts2LGZOXNmxUrvGjvssEMGDBiQmpqajB07NuPHj8+jjz6aa6+9Nsccc0xFMl144YUZOnRoBg4cmPe+970588wz079//zz88MP59Kc/XZFMb35Q/shHPpKPfOQjWblyZZ555pnMmzevIpmS5Pzzz89RRx2VUqmUkSNH5txzz03//v3z6KOPVuzzrIMHD86wYcPysY99LA8//HAGDx6c5557Lp///OcrdkQ6qc4XJ4899ljuv//+Df6tVaJoenFSvmOOOSbf/e53c/HFF2e33XZLqVTKV77ylVx44YUVy7TGL37xi0yePLn5TdbDDjssgwYNqsjrlz//+c+ZNm1akjeO/Nx1112pqanJgAEDKnaUtWfPnvne976Xb3zjGznqqKMybNiwDBw4MLvttltF8iTJ008/nWnTpqWpqSkDBgzIpEmTkiR77rlnxc5QSd54nFrzmHDIIYdk+PDh+clPfpIBAwbkhBNOaPOi2blz5zz//PPrnME3f/78il2X4KabbspZZ52Vs88+O5/4xCcqkuGtSqVSli9fnq5du+ad73xnbrrppgwbNiw9evSo6IGgxsbG7LDDDhk1alTz8/Grr7663oN7Raq6onn88cfnwAMPzKOPPpqFCxemVCpl//33z4gRI9KzZ8+K5erevXvGjRuXyZMnV0XRvPDCC7PffvulW7duzdP222+/3Hnnnfn+979fsVxf+MIX8utf/3qtU6rq6uoyYsSIDBgwoGK5kjdOoZ04cWLzBYoqac27bH//+9/zyiuvJHnjdrroooty2GGHVSTT4Ycfnj59+uSBBx7Is88+mw9/+MPp1q1bxo8f33zhorY2fPjwdaZ16tQpffv2Td++fSuQ6A0nnnhijj766DQ1NaVbt2454IAD8vDDD+eyyy7LRz/60Ypk+sxnPpO99torf/jDHzJ69Oj0798/r776aq655pr8y7/8S0UyJdX54mT8+PFZsmRJ9ttvvwwdOrQiGd7Ki5PyDR8+PAcddFDGjh2bU045JSeddFK6detW0Y9DLF++PIsXL86uu+6a5cuXNxfNFStWVOyMkK5du+Yvf/lL+vTpk3e/+91ZsGBBdt1117zwwgsV+9urqanJjjvumG984xuZO3dubr/99px77rl5/fXX06tXr+aS15Y6dOiQf/zjH1m6dGmWLl2ahoaG9O7dOy+99FJF9/Ompqa8+OKL6dGjRxYtWpQVK1YkSVauXFmRfWr06NEZPnx4dt9997UOBM2dO7ci17pI3ng9cPXVV+enP/1p1RTNT37ykzn55JNTX1+f/v37p2fPnrnpppvy6U9/Oi+++GJFMp1xxhk54YQTMn369JxyyilJkt/+9re57LLLms+caS1VdzEgALYcs2bNyhVXXLHBFycHH3xwRXItXLgw06ZNy3nnnVeR7b/Vbbfdlu9///vNL06SN67AvubFyezZs9s8049//OP88Ic/zPTp05vfPHzzi5NKX2CqsbEx3/72tzN//vz87W9/yz333FOxLF/+8pczZ86cLFiwIP37988NN9yQn//85/n617+ez3zmMxk2bFibZ/rd736XESNGZN99980222yTRx55JP369cvTTz+dr371qxV58/ekk05a76nr//znPzNv3ryKvKn58MMPZ8yYMVm9enWuvPLKfOtb38r73ve+/P73v89FF11UsaP3d955ZyZOnJh99tknTz31VC699NLstddeOfvsszNixIiKnD1zzz335B//+Edqa2vzrne9Kz179ky/fv0yZcqUin3bQTV+A8NNN92UxsbGHH/88c2Zli1blh//+Mf5zGc+U5FM//3f/53a2trm2+n555/P0qVL89vf/rZVbydFE4BW9frrr2f27NnNZ6mseXFSqaMq1XZxtzXmzp2burq6tba/bNmy3HHHHfnUpz5VkUxrju6ssebFSZ8+fSqSZ30eeeSR3HPPPbn66qsrHSWvvfZaFi9enHe9613585//nFKpVNEzCpYtW5ZZs2bl2WefTVNTU3bcccd87GMfS69evSqS56GHHqr42U0tWbx4cZ544on06dMne+yxR0Wz/OMf/8gzzzyT97///dl9993T2NiY5cuXV+QCRd/85jfz9NNP573vfW+mT5+e0aNHV/zbDqrxGxhkWlvVnToLwJZjTanbbbfd1voc1uLFi5NUptRV28XdkrVPJX5rEa7UV/vMnz8/HTp0WCdPt27dMn/+/IoV8rfmec973pMLL7yweXolcr05U21tbebPn5/u3bs3z6tkprd+1GD16tUVy9SnT5+NvtFT6ftujTVHViu9n3fu3HmtLGssX77ctx1UcaapU6emtra2qjJV6nZSNAFoNdVY6qrt4m5Jdd5O1ZhpQ7lqamqar8buttpwJrdT+8hUjbmq8dsOqjXTGtWUqWK3UwkAWsnSpUtLxx9/fOmJJ56odJS1PPXUU6UxY8ZUOkazarydqjFTqVSduWQqj0zlq7ZcN9xwQ2nYsGGlp556qnnaE088UTr44INL++67r0wyrZeiCUCrqrZSV62q8XaqxkylUnXmkqk8MpWv2nLNmjWr9Ne//nWtafPnzy+NGzeuQolkKlelMrkYEAAAAIXq0PIiAAAAUD5FEwAAgEIpmgAAABRK0QQAAKBQiiYAAACF+v8BVDFzTOp6v/0AAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_ridge = results_ridge.head(35)\n", + "results_ridge.plot(kind='bar',figsize=(16,8))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 239, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_ridge.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 240, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4.440892098500626e-16" + ] + }, + "execution_count": 240, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_ridge=np.mean(results_ridge.error)\n", + "meanerror_ridge" + ] + }, + { + "cell_type": "code", + "execution_count": 241, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
05.257896
15.244015
25.097875
35.188044
45.062894
55.152970
65.026716
\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 5.257896\n", + "1 5.244015\n", + "2 5.097875\n", + "3 5.188044\n", + "4 5.062894\n", + "5 5.152970\n", + "6 5.026716" + ] + }, + "execution_count": 241, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 242, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/ridge.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline rf" + ] + }, + { + "cell_type": "code", + "execution_count": 243, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.7702545454545455\n", + "Adjusted R^2: 0.6697409090909092\n", + "MAE: 0.06833333333333332\n", + "MSE: 0.017549999999999993\n", + "RMSE: 0.13247641299491766\n" + ] + } + ], + "source": [ + "pred = pipeline_rf.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 244, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
05.05.000.00
15.05.03-0.03
25.05.000.00
35.05.000.00
45.05.000.00
55.05.12-0.12
65.05.09-0.09
75.05.000.00
85.05.000.00
95.05.01-0.01
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 5.0 5.00 0.00\n", + "1 5.0 5.03 -0.03\n", + "2 5.0 5.00 0.00\n", + "3 5.0 5.00 0.00\n", + "4 5.0 5.00 0.00\n", + "5 5.0 5.12 -0.12\n", + "6 5.0 5.09 -0.09\n", + "7 5.0 5.00 0.00\n", + "8 5.0 5.00 0.00\n", + "9 5.0 5.01 -0.01" + ] + }, + "execution_count": 244, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_rf = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_rf.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 245, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5oAAAHXCAYAAADdrCUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAxt0lEQVR4nO3de5hVdaE//vdwGRDQNFRQqa+ldEXJu1SKeb/gDfCC5D3Tb4mXlKAkmRIMs0LyeM4xLdO0VExQErWUH5aix8zUsLKL4pcRFNBQEHFg2L8/fJgjcpkNrpm9gdfreXiembXWZ6337Fns2e+91l6rplQqlQIAAAAFaVPpAAAAAGxYFE0AAAAKpWgCAABQKEUTAACAQimaAAAAFKpdS6148eLFmT59erbaaqu0bdu2pTYDAABABTQ2Nmbu3Lnp1atXOnbsuMK8Fiua06dPz+DBg1tq9QAAAFSBW265JbvvvvsK01qsaG611VZNG+3evfv7Xt9Vj12VC/a+4H2vp0gylUem8lVjLpnKI1P5qjGXTOWRqXzVmEum8shUvmrMJVN5isr08ssvZ/DgwU3d791arGguP122e/fu6dGjx/teX5ctuxSyniLJVB6ZyleNuWQqj0zlq8ZcMpVHpvJVYy6ZyiNT+aoxl0zlKTrTqj4q6WJAAAAAFErRBAAAoFCKJgAAAIVqsc9ors6yZcsyb968zJ8/P42NjWWPO+QDh+Svf/1rCyZbextCprZt22bzzTfPlltumTZtvO8AAAC8f61eNOvr61NTU5Ptt98+7du3T01NTVnjZi2YlW033baF062d9T1TqVTKkiVL8sorr6S+vj4f/vCHWzgdAACwMWj1Q1hvvvlmtttuu9TW1pZdMmkZNTU1qa2tzXbbbZc333yz0nEAAIANREXOlXSKZnXx+wAAAIpUFQ2jYUnzn9Vcl1NUy1nv2pgyZUpuuOGGtRozbty4PPjgg4XmAAAAqGat/hnNValt3zZHXnRX4eud9IOjC13fs88+u9Zjzj///EIzAAAAVLuqKJqVNHTo0Oy+++454YQTkiQnn3xyLr744vTu3XuF5f75z3/m1ltvTZJsu+22mTVrVv7nj/+T1+a8lsGDB6dnz54ZO3ZsFi9enNdffz1Dhw7NYYcdluHDh2fPPffMnnvumXPPPTc9e/bMX//613Tt2jXjxo3L5ptv3to/MgAAQIuqilNnK2nAgAG5++67kyQvvfRSXnvttZVKZpLsuOOOOfHEE3PiiSdmwIABSZKGtxsyefLkDB48ODfffHNGjRqVCRMmZPTo0fnP//zPldbxt7/9Laeffnp+/etfZ7PNNsukSZNa9ocDAACogI2+aO61116ZM2dO6uvrM3HixBx9dPmn236y1yebvr7yyivzj3/8I9dcc01uuOGGVV7FtWvXrvnUpz6VJOnZs2def/319/8DAAAAVJmNvmjW1NTkmGOOyT333JP77rtvrYpmhw4dmr4+6aST8swzz6RXr14555xzml2+pqYmpVJp3YMDAABUqbKK5pQpU9K/f/8ceuihGTVqVEtnanX9+/fPrbfemu7du6dbt26rXa5t27ZZunTpStPnz5+fGTNm5Pzzz0/fvn3zyCOPpLGx2CveAgAArC+avRjQzJkzM3LkyIwfPz5du3bNqaeemoceeih9+/ZtjXytYptttsk222yTY489do3L7bHHHhk2bFi23HLLFaZvvvnmOe6443LEEUekS5cu+cxnPpPFixdn0aJFLRkbAACgKjVbNH/729/m8MMPT/fu3ZMkY8eOXeEU0CI0LGks/FYky9db277tGpcplUqZM2dO5s2blwMPPHCNy+6xxx6ZMmVK0/ezFsxq+nr48OEZPnx40/d1dXVJkjFjxjRNe/fYIUOGlPUzAAAArG+aLZovvvhi2rdvnzPPPDNz587NF77whVxwwQWFhmiuDCbvlLptN9228PXef//9qaurS11dXWpra3PFFVdk2rRpKy3Xq1evjB49eq22DwAAsDGqKTVzRZoRI0bkT3/6U37+85+nU6dO+cpXvpJ+/fqlf//+a1xxfX19DjjggBw5+sh02bJL0/RDPnBI/s+O/2etgy54e0E27bDpWo9rSRtSphf/+WLuf/3+FkiUTJ0xNfttv1+LrHtdVWOmpDpzyVQemcpXjblkKk9rZzpvjwvzwc4fWGn6a2++nh/9YWxFMpWrGnPJVB6ZyteauVb3fJBU/3PChpxp4byFmXTJpDz44IPp0aPHijNLzRg7dmzpsssua/r+5ptvLo0cObK5YaWZM2eWPvaxj5Vmzpy5wvS//OUvzY5dlZfeeGmdxrWkDSnTuv5eyjHy/xvZYuteV9WYqVSqzlwylUem8lVjLpnKU4lM/b42caV/lc5UjmrMJVN5ZCpfa+da1fPB+vCcsCFnWl3nK5VKpWavOvuFL3whDz/8cN544400Njbm97//fT796U+/7/YLAADAhqnZz2j27t07X/rSl3LSSSdlyZIl+dznPpcBAwa0RjYAAADWQ80WzSQZOHBgBg4c2NJZAAAA2AA0e+osAAAArI2qKJrLljY0u8za3tqk3PVW0sc//vE1zp85c2a++c1vrtU6H3nokYwbN+79xAIAAHhfyjp1tqW1aVeb50cX/7nPj17yq8LX2ZpmzZqVmTNnrtWYz/X9XLbtt/alHAAAoChVUTQraejQodl9991zwgknJElOPvnkXHzxxendu/dKyw4fPjw1NTX5+9//noULF2bQ6YNy2omn5eqrr85TTz2V2bNnZ/Dgwfn85z+furq6zJ8/Px07dsy3vvWtfOpTn0p9fX2GDh2aRYsWrXL97zVq1KjU19fn29/+dg499NBceeWVWbZsWXr27Jmvfe1r+eY3v5kFCxZk7ty5OeKII3LxxRfnvkn35e/P/D1jxozJ/vvvn6OOOioPP/xw3nrrrVxxxRXp1atX4Y8hAADAu1XFqbOVNGDAgNx9991JkpdeeimvvfbaGkvgK6+8kltvvTU33nhj/nvcf2fu3LlJkoaGhkyePDmDBw/OsGHDMnTo0EyYMCGXXXZZLrzwwiTJZZddlv79++euu+7Krrvu2my2ESNGpFevXhk5cmSSZMaMGbnxxhtzxRVX5Ne//nX69euX22+/PXfffXd+8Ytf5LXXXltpHZtvvnnuuOOOnHjiibn22mvX+vEBAABYWxt90dxrr70yZ86c1NfXZ+LEiTn66KPXuHz//v3Tvn37dO/ePb1698of//jHJMnOO++cJHnzzTczffr0fOMb38jRRx+diy66KIsWLcq///3vPP744znssMOSJEcddVTat2+/Vlk/8pGPZNNNN02SnHnmmdlmm23yk5/8JKNHj86SJUvy1ltvrTRmn332SZL07Nkz8+fPX6vtAQAArIuN/tTZmpqaHHPMMbnnnnty33335frrr1/j8m3btm36etmyZWnX7p2HsGPHjk3Tamtrc9dddzUt9/LLL2fzzTdPkpRKpabt1tTUrFXW5dtIkjFjxmTmzJnp169fDjzwwEybNq1p3e/WoUOHpu0BAAC0ho3+iGbyzlHKW2+9Nd27d0+3bt3WuOy9996bUqmUl156KX+d/tfstttuK8zfdNNNs/322zcVzUceeSSDBw9Oknz2s59tOk33N7/5TRoa1nxV3LZt22bp0qWrnPfII4/kzDPPzGGHHZbZs2fnlVdeybJly8r6eQEAAFrSRn9EM0m22WabbLPNNjn22GObXXbx4sUZMGBAGhoactElF2WLLbZYaZkrr7wydXV1uf7669O+ffuMHTs2NTU1ufTSSzN06NDceuut2WmnndK5c+c1bmuHHXbIggULMnTo0AwcOHCFeWeffXa+/vWvZ7PNNkvXrl3Tq1ev1NfXr90PDgAA0AKqomguW9rQIrciWba0IW3a1a5xmVKplDlz5mTevHk58MADm13noYcemv79+ydJZi2YlSQZMmTICsvssMMO+fnPf77S2G7duuWmm25q+v7yyy9f47a22GKL/PrXv276fq+99mr6ul+/funXr99KY7bfafuccdIZSZIpU6asMPbd4wEAAFpKVRTN5spg8k6p23bTtbs/ZDnrvf/++1NXV5e6urrU1tbmiiuuyLRp01ZarqVuCzJ58uTVXg323Z/zBAAAWF9URdGspEMPPTSHHnpo0/fDhg1r1e0ffvjhOfzww1t1mwAAAC3JxYAAgPXKsqX/ezG9uv3qVjkdgMra6I9oAgDrlzbtavP86AErTW+J6z0AsG4c0QQAAKBQiiYAAACFqoqi2dC4pNll1vaKs+WuFwAAgGJVxWc0a9u2z/G3/d/C13v7Cf9V+DoBAABYs6oompX24x//OPfee28aGxvz+c9/PoMGDcpZZ52VLbbYIh06dMhRRx2VCRMmZP78+fnCF76QU045JZdcckn+X/3/S8fajrnwwguz77775uqrr85TTz2V2bNnZ/DgwRk8eHClfzQAAIBWt9EXzd/97neZPn167rjjjtTU1GTo0KGZNGlSXnjhhVx//fXp0aNH7rzzzrzyyiuZPHly2rVrl/PPPz977713Rg4cmcb5jRk0aFAmTpyYJGloaMjkyZMr+0MBAABU0EZfNB999NE888wz6d+/f5Jk8eLFKZVK6dq1a3r06NG03Kc+9am0a/fOw/XYY49l1KhRWZAF+dCHPpTevXvn6aefTpLsvPPOrf9DAAAAVJGNvmg2Njbm1FNPzemnn54keeONN/Lyyy/nqaeeWmG5jh07Nn1dKpVWmFcqldLY2LjScgAAQMtatrQhbdrVJknq9qtb5XRaX1VcdbaS9t5779x111158803s3Tp0nz1q1/N9OnTmx1zxx13JElmzpyZJ598Mp/5zGdaIS0AAPBubdrV5vnRA1b6p2RW1kZ/RHP//ffP3/72txx//PFpbGzMPvvskz322GONYy655JJceumluW38bWnftn1GjRqVrbfeupUSAwAAVLeqKJoNjUta5FYkDY1LUtu2fbPLfeUrX8lXvvKVFaZNmTKl6ev+/fs3fYYzSbp165Zrr702sxbMWuH+nkOGDCkgNQAAwPqtKk6dLacMzlowq0XWCwAAQLGqomgCAACw4VA0AQAAKFRFiuayZcsqsVlWw+8DAAAoUqsXzc6dO+ell15KQ0PDSvejpHWVSqU0NDTkpZdeSufOnSsdBwAA2EC0+lVne/TokXnz5uXFF1/M0qVLyx43f/H8vN7x9RZMtvY2hEzt2rXLBz7wgWy55ZYtmAoAANiYtHrRbNOmTbbeeuu1vu9k3dS61O1S1zKh1pFMAAAAK3MxIAAAAAqlaAIAAFAoRRMAAIBCKZoAAAAUStEEAACgUIomAAAAhVI0AQAAKJSiCQAAQKEUTQAAAAqlaAIAAFAoRROAFrVsacMK39ftV7faeQDAhqFdpQMAsGFr0642z48esMp5H73kV62cBgBoDY5oAgAAUChFE4CN0rtP23U6LwAbutb+u+fUWQA2Sqs7pdfpvABsiFr7754jmgAAABRK0QQAAKBQiiYAAACFUjShgtxfEACADZGLAUEFub8gAAAbIkc0gZW47QMAAO+HI5rAStz2AQCA96OsonnKKafk1VdfTbt27yz+ne98J717927RYAAAAKyfmi2apVIpzz//fKZOndpUNAEAAGB1mv2M5vPPP5+ampqcddZZOeqoo3LzzTe3Rq6q5bNrAADrzmsp2Dg0e4jyjTfeSJ8+fVJXV5fFixfnlFNOyUc+8pF87nOfa418Vcdn14BqtmxpQ9q0q02y8gu45dMBKslrKdg4NFs0d9lll+yyyy5Jkk6dOmXgwIF56KGHyi6aVz12Vbps2WW188/b48J8sPMHVpreuOTttG3foen7d79gemPRa/nh4z8qa/vrYnWZmlM3ta74MO9SzmPVmo+TTO8/U3Nacp+qxkzJ+vX7q8ZMa3oBV6nfXXPs5/+rGvepSmZ69/bKHlMFv7ukel63VOM+tSbV8Purlsep2jO1dq51eT5I7FPlWtfHaeG8haudV1MqlUprGvzEE09kyZIl6dOnT5LkhhtuyNy5c/P1r399jRutr6/PAQcckAcffDA9evRY47JHXnTXStMm/eDoit5fcFWZktXnaq134dbmsZJpRetTpsR+/l4yrWx9z5TYz99LppWt75kS+/l7ybSy9T1TYj9/r40l05o6X7Of0VywYEG+973v5e23387ChQszYcKEHHTQQescBgAAgA1bs6fOfuELX8jTTz+dY445JsuWLctJJ53UdCotAAAAvFdZ9yu54IILcsEFF7RwFAAAADYEzZ46CwAAAGtD0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAAClV20bziiisyfPjwlswCAADABqCsovnoo49mwoQJLZ0FAACADUCzRXP+/PkZO3ZszjnnnNbIAwAAwHqu2aJ56aWX5sILL8xmm23WGnkAAABYz7Vb08zx48dnm222SZ8+fXLnnXeu0waueuyqdNmyy2rn1+1Xt07rrZu6buPKWncVZkrWLZdMZY6pwkyJ/bzsMTKVN6YKMyX287LHyFTemCrMlNjPyx4jU3ljqjBTYj8ve8wGlGnhvIWrnbfGojl58uTMnTs3Rx99dF5//fUsWrQol19+eb75zW+WvfEL9r4gPXr0KD9tmdZ1Z2tJMpVHpvJVYy6ZyiNT+aoxl0zlkal81ZhLpvLIVL5qzCVTedY1U319fSZl0irnrbFo3nDDDU1f33nnnXn88cfXqmQCAACw8XEfTQAAAAq1xiOa79a/f//079+/JbMAAACwAXBEEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAocoqmuPGjcvhhx+eI444IjfccENLZwIAAGA91q65BR5//PE89thjufvuu7N06dIcfvjh6du3bz760Y+2Rj4AAADWM80e0dxzzz1z0003pV27dnn11VfT2NiYTp06tUY2AAAA1kNlnTrbvn37/OhHP8oRRxyRPn36pFu3bi2dCwAAgPVUs6fOLnfeeeflrLPOyjnnnJPbb789J5xwQlnjrnrsqnTZsstq59ftV1duhBXHTV23cWWtuwozJeuWS6Yyx1RhpsR+XvYYmcobU4WZEvt52WNkKm9MFWZK7Odlj5GpvDFVmCmxn5c9ZgPKtHDewtXOa7Zo/utf/0pDQ0M++clPZpNNNsnBBx+c5557ruyNX7D3BenRo0fZy5drXXe2liRTeWQqXzXmkqk8MpWvGnPJVB6ZyleNuWQqj0zlq8ZcMpVnXTPV19dnUiatcl6zp87W19dnxIgRaWhoSENDQx588MHstttu6xQEAACADV+zRzT79u2bp59+Osccc0zatm2bgw8+OEcccURrZAMAAGA9VNZnNM8777ycd955LZ0FAACADUBZV50FAACAcimaAAAAFErRBAAAoFCKJgAAAIVSNAEAACiUogkAAEChFE0AAAAKpWgCAABQKEUTAACAQimaAAAAFErRBAAAoFCKJgAAAIVSNAEAACiUogkAAEChFE0AAAAKpWgCAABQKEUTAACAQimaAAAAFErRBAAAoFCK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5c7b48J8sPMHVpreuOTttG3fYZVj3l7yVjq032Sl6VNnTM3UGVPXmKscq8u0plxvL307HdqtPP21t/6dH/3PuPedaU25VpuphR+nDT1TkbnWaT9v4X3Kfi5T0bns5+8/14awT1U002p+d0nL71Pr3euW9ej35/9eeZmKzLXB7Of2qfIyvY/HaeG8hZl0yaQ8+OCD6dGjxwrzmi2aEyZMyBNPPJHRo0cnSa655pqUSqWce+65a9zo8qK5qo2ui7qpdanbr+59r6dI7810/G3/d6Vlbj/hv1ox0frxOFWDasyUrB/7VDVmqgYylW992KeqMVM1kKl81Zhrfcjk/96qVWOmpDpzyVSeov7vranzNXsxoM9+9rO5+uqr89prr2WTTTbJb37zm1x22WVlxN+4NDQuWeUvo6FxSWrbtq9AIgCA9YfXUrBhabZoduvWLRdeeGFOOeWULFmyJAMHDszOO+/cGtnWK6t7AvTECADQPK+lYMPSbNFMkiOPPDJHHnlkS2cBAABgA1BW0QRInNYEAEB5mr29CcByTmsCAKAcjmhClXL0EACA9ZUjmlClHD0EAGB9pWgCAABQKEUTAACAQimaAAAAFErRBAAAoFCuOgsA7+KKzwBsTFrq754jmgDwLq74DMDGpKX+7imaAAAAFMqpswBUjNNUAWDD5IgmABXjNFUA2DApmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABRK0QQAAKBQiiYAAACFUjQBAAAolKIJAABAoRRNAAAACqVoAgAAUChFEwAAgEIpmgAAABSqXUutuLGxMUny8ssvF7K+hfMWpr6+vpB1FUWm8shUvmrMJVN5ZCpfNeaSqTwyla8ac8lUHpnKV425ZCpPUZmWd73l3e/dakqlUul9b2EVnnjiiQwePLglVg0AAECVuOWWW7L77ruvMK3FiubixYszffr0bLXVVmnbtm1LbAIAAIAKaWxszNy5c9OrV6907NhxhXktVjQBAADYOLkYEAAAAIVSNAEAACiUogkAAEChFE0AAAAKpWgCAABQKEUTAACAQimaAAAAFErRBAAAoFDtKh1gVf71r3/l/vvvz8svv5w2bdpk6623zj777JOddtqp0tGqygMPPJDZs2enb9+++fCHP9w0/bbbbssJJ5xQsVwzZszIJptskm7dumX8+PF57rnnsuuuu+bwww+vWKb3GjNmTIYPH16x7T/zzDPZeeedkySPPvpoHnroobRr1y4HHXRQevfuXbFcv//979O7d+9sttlmmThxYp555pl8+tOfzoABAyqSZ9SoURkyZEg+8IEPVGT7a/Loo4+mY8eO2WWXXfLTn/40jz/+eHr16pUvf/nLqa2trUimBx54IA888EDmzp2b9u3b58Mf/nAOO+yw7LLLLhXJAwBsvGpKpVKp0iHe7ZZbbsntt9+eQw45JFtttVWSZO7cufnNb36To446KmeccUaFE1aH73//+5k+fXp22GGH3HvvvRk2bFiOPvroJMmxxx6bCRMmVCTXz372s/z85z/PsmXLsvfee2f27Nk56KCDMmXKlOy666756le/2uqZvvGNb6w0bcqUKdl///2TJN/97ndbO1LT7+iWW27Jrbfe2lTkJkyYkOOOOy5f/OIXWz3T6NGj89e//jVjx47NLbfckj//+c854IAD8rvf/S49evTIiBEjWj3T7rvvnq5du+aiiy7KwQcf3OrbX53vfe97eeKJJ7J06dL06NEjNTU16d+/f6ZMmZLGxsaMGjWq1TNde+21eeqpp7LPPvtkypQp2X333dOxY8eMHz8+p556ao4//vhWzwTAhuP3v/997rvvvhUOBO2777455JBDKh2taixdujS33HJLZs+enQMPPDC7775707yrr746Q4YMqUiuadOmZdNNN80nP/nJXH311Xnuueey22675Ywzzkjbtm1bbLtVd0TzpptuysSJE7PJJpusMP3000/PscceW7GiOWvWrDXO33bbbVspyTseeuihTJgwIe3atcvJJ5+cM844I7W1tTnssMNSyfcOfvWrX2Xy5MmZN29e+vXrl8ceeywdOnTIcccdl4EDB1akaG6++eaZOHFizjnnnGy22WZJksceeyx77rlnq2d5r9tvvz033XRTtthiiyTJwIEDM3DgwIoUzUceeSSTJk1K27ZtM3Xq1Nx+++2pra3NCSeckH79+rV6niTp0aNHvv/976euri7XXXddTj/99Oy///7p2LFjRfIs9/vf/z533XVXGhoa0rdv3zz88MNp37599t1336Y3fFrb5MmTM3HixNTU1GTAgAE566yzctNNN2XAgAE5/vjjK1o0vThpnhcn78/Xvva1/PCHP6zY9h944IEceOCBSZLx48fnd7/7XdNZKpU6m2fp0qW54447ctBBB2XTTTfNj3/84/z5z3/Opz/96Zx99tnp0KFDq2c655xzcskll+RDH/pQq297dZYuXZqJEyemY8eOOeSQQ/Ld7343f/jDH9KrV68MGzYsm2++eUVyLVu2LDfddFMefPDBFc5SOfzww3PEEUe0ep5x48blmWeeyVFHHZWtt946STJnzpzccccdeeqppzJs2LBWz/SHP/xhjfP32GOPVkryvy699NIsW7YsH/vYx/L1r389xx9/fM4555wk7xzkqMRz+ZVXXpknn3wyCxcuzNZbb52uXbtm0KBBue+++3L55ZfnW9/6Vottu+qKZrt27bJ06dKVpi9evDjt27evQKJ3nH322ZkxY0a23nrrlYpcTU1NHnzwwVbNUyqVUlNTkyTZfvvtc+211+b000/PBz/4wabplbBs2bLU1tZmu+22yxlnnLHCH7LGxsaKZBo2bFj23XffXHXVVfna176WvfbaKzfeeGOOPfbYiuRJ3vnDtmzZsnTt2jWdOnVqml5bW5s2bSrz0emOHTvm1VdfbXoSWrRoUWpra/PWW2+lXbvKPFXU1NRkxx13zM0335xp06bltttuy+jRo7P99tune/fu+cEPflCRXKVSKQsWLMiiRYuyePHiLFy4MFtssUUWL16cJUuWVCTT22+/nbfeeiudOnXK4sWLM3/+/CRJp06dKrZPJdX54mTixIlrnH/MMce0So538+KkfCeffPJKf+emT5+eU045Jck7b1i3tmuuuSYHHnhgrr766jzxxBM5+eSTUyqVctttt+W5557LhRde2OqZlv/fOuSQQ3LFFVdk0aJFOemkkzJ16tR885vfrMjz59NPP50zzzwzJ554Yk4++eSKvq5bbsSIEVm0aFEaGhpy8803Z+edd87YsWPz4IMP5tJLL82PfvSjiuQaM2ZMlixZki996Uu5//7784lPfCLbbLNNbrrppsyYMaPV37ifPHly7r333pX+nvTr1y/9+vWryHP5Nddck6eeeio777zzKl+bV+K5YPr06bn77ruTvPO35LTTTkvHjh1z2mmnVexA0EMPPZRJkyZl/vz5Oeigg/L444+nTZs22XfffVv8713VFc1zzjknxxxzTPr06bPCqbOPPfZYRZ6ol/vlL3+Zk046KSNHjsxuu+1WsRzLHXrooTn55JMzfPjw7LzzzunZs2fGjRuXc889Nw0NDRXLdfDBB+eLX/xibrrppqYXRn/7298yYsSIHHbYYRXL1adPn3zyk5/MyJEjM3Xq1IqV3uW22GKL9O3bNzU1NRk5cmTGjBmTRx99NFdeeWUOPfTQimQ699xzM3DgwBxxxBH56Ec/mpNPPjl9+vTJww8/nC996UsVyfTuJ+XPfvaz+exnP5slS5bkueeey8yZMyuSKUnOOuusHHzwwSmVShk6dGjOOOOM9OnTJ48++mjFPs/av3//DBo0KJ///Ofz8MMPp3///nnppZfy1a9+tWJHpJPqfHHy2GOP5f7771/t/7VKFE0vTsp36KGH5sc//nEuuOCCbLfddimVSvnWt76Vc889t2KZlvvtb3+b8ePHN73Jut9++6Vfv34Vef3y97//PZMmTUryzpGfu+66KzU1Nenbt2/FjrJ269Yt119/fb73ve/l4IMPzqBBg3LEEUdku+22q0ieJHn22WczadKkNDY2pm/fvrn11luTJDvuuGPFzlBJ3nmeWv6csM8++2Tw4MH55S9/mb59++aoo45q9aLZoUOHvPzyyyudwTdr1qyKXZfguuuuyymnnJJTTz01BxxwQEUyvFepVMqiRYvSqVOnfPCDH8x1112XQYMGpWvXrhU9ENTQ0JAtttgiw4YNa/p7/Oabb67y4F6Rqq5oHnnkkdlzzz3z6KOPZs6cOSmVStl9990zZMiQdOvWrWK5unTpklGjRmX8+PFVUTTPPffc7LbbbuncuXPTtN122y133nlnfvrTn1Ys1/nnn58//OEPK5xSVVtbmyFDhqRv374Vy5W8cwrtuHHjmi5QVEnL32V7/vnn88YbbyR553E677zzst9++1Uk0/7775+ePXvmgQceyIsvvpjPfOYz6dy5c8aMGdN04aLWNnjw4JWmtW/fPr169UqvXr0qkOgdRx99dA455JA0Njamc+fO2WOPPfLwww/n4osvzuc+97mKZPryl7+cnXbaKX/5y18yfPjw9OnTJ2+++WauuOKKfPzjH69IpqQ6X5yMGTMm8+fPz2677ZaBAwdWJMN7eXFSvsGDB2evvfbKyJEjc9xxx+WYY45J586dK/pxiEWLFmXevHnZdttts2jRoqaiuXjx4oqdEdKpU6f84x//SM+ePfPhD384s2fPzrbbbptXXnmlYv/3ampqsuWWW+Z73/teZsyYkdtvvz1nnHFG3n777XTv3r2p5LWmNm3a5IUXXsiCBQuyYMGC1NfXp0ePHnnttdcqup83Njbm1VdfTdeuXTN37twsXrw4SbJkyZKK7FPDhw/P4MGDs/32269wIGjGjBkVudZF8s7rgcsvvzy/+tWvqqZofvGLX8yxxx6burq69OnTJ926dct1112XL33pS3n11Vcrkumkk07KUUcdlcmTJ+e4445Lkjz55JO5+OKLm86caSlVdzEgADYc06ZNyyWXXLLaFyd77713RXLNmTMnkyZNyplnnlmR7b/Xbbfdlp/+9KdNL06Sd67AvvzFyTPPPNPqmX7xi1/kxhtvzOTJk5vePHz3i5NKX2CqoaEhP/zhDzNr1qz861//yj333FOxLN/4xjcyffr0zJ49O3369MnVV1+d3/zmN/nud7+bL3/5yxk0aFCrZ/rTn/6UIUOGZNddd80mm2ySRx55JL17986zzz6bb3/72xV58/eYY45Z5anr//73vzNz5syKvKn58MMPZ8SIEVm2bFkuvfTS/OAHP8jHPvax/PnPf855551XsaP3d955Z8aNG5dddtklTz/9dC666KLstNNOOfXUUzNkyJCKnD1zzz335IUXXkjbtm3zoQ99KN26dUvv3r0zYcKEit3toBrvwHDdddeloaEhRx55ZFOmhQsX5he/+EW+/OUvVyTTz372s7Rt27bpcXr55ZezYMGCPPnkky36OCmaALSot99+O88880zTWSrLX5xU6qhKtV3cbbkZM2aktrZ2he0vXLgwd9xxR0477bSKZFp+dGe55S9OevbsWZE8q/LII4/knnvuyeWXX17pKHnrrbcyb968fOhDH8rf//73lEqlip5RsHDhwkybNi0vvvhiGhsbs+WWW+bzn/98unfvXpE8Dz30UMXPbmrOvHnz8sQTT6Rnz57ZYYcdKprlhRdeyHPPPZdPfOIT2X777dPQ0JBFixZV5AJF3//+9/Pss8/mox/9aCZPnpzhw4dX/G4H1XgHBplWVHWnzgKw4Vhe6rbbbrsVPoc1b968JJUpddV2cbdkxVOJ31uEK3Vrn1mzZqVNmzYr5encuXNmzZpVsUL+3jwf+chHcu655zZNr0Sud2dq27ZtZs2alS5dujTNq2Sm937UYNmyZRXL1LNnzzW+0VPp391yy4+sVno/79ChwwpZllu0aJG7HVRxpokTJ6Zt27ZVlalSj5OiCUCLqcZSV20Xd0uq83Gqxkyry1VTU9N0NXaP1eozeZzWj0zVmKsa73ZQrZmWq6ZMFXucSgDQQhYsWFA68sgjS0888USlo6zg6aefLo0YMaLSMZpU4+NUjZlKperMJVN5ZCpfteW6+uqrS4MGDSo9/fTTTdOeeOKJ0t57713addddZZJplRRNAFpUtZW6alWNj1M1ZiqVqjOXTOWRqXzVlmvatGmlf/7znytMmzVrVmnUqFEVSiRTuSqVycWAAAAAKFSb5hcBAACA8imaAAAAFErRBAAAoFCKJgAAAIVSNAEAACjU/w/4PdqOWOCwCQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_rf = results_rf.head(35)\n", + "results_rf.plot(kind='bar',figsize=(16,8))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 246, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_rf.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 247, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.011666666666666678" + ] + }, + "execution_count": 247, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_rf=np.mean(results_rf.error)\n", + "meanerror_rf" + ] + }, + { + "cell_type": "code", + "execution_count": 248, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
05.7
15.5
25.0
35.2
45.0
55.0
65.0
\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 5.7\n", + "1 5.5\n", + "2 5.0\n", + "3 5.2\n", + "4 5.0\n", + "5 5.0\n", + "6 5.0" + ] + }, + "execution_count": 248, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 249, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../rf.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline kn" + ] + }, + { + "cell_type": "code", + "execution_count": 250, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.10545454545454558\n", + "Adjusted R^2: -0.28590909090909067\n", + "MAE: 0.14166666666666672\n", + "MSE: 0.06833333333333333\n", + "RMSE: 0.2614064523559687\n" + ] + } + ], + "source": [ + "pred = pipeline_kn.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 251, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
05.05.00.0
15.05.00.0
25.05.00.0
35.05.2-0.2
45.05.2-0.2
55.05.00.0
65.05.2-0.2
75.05.00.0
85.05.00.0
95.05.2-0.2
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 5.0 5.0 0.0\n", + "1 5.0 5.0 0.0\n", + "2 5.0 5.0 0.0\n", + "3 5.0 5.2 -0.2\n", + "4 5.0 5.2 -0.2\n", + "5 5.0 5.0 0.0\n", + "6 5.0 5.2 -0.2\n", + "7 5.0 5.0 0.0\n", + "8 5.0 5.0 0.0\n", + "9 5.0 5.2 -0.2" + ] + }, + "execution_count": 251, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_kn = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_kn.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 252, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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stb2vb0KMVOWFWYumXIjU+4KMZdMuclHpm7XTdrkv3xnykUh5pIpNzLlrq5zbe71oD68JuzImbbU+bIsy2q8dLZp06bRvn372HvvvSMi4tRTT405c+ZEnz59PnUD3mCnBiXx1ui+yfa3wcHDfpt8nyl94QtfiDfeeGOL6+fPnx8/+9nP4uabb855ny8890Is/OfCuPrqq1NEBAAA2GY13gzo5JNPjunTp8eHH34YVVVV8fzzz8fhhx9eF9k+8xYuXBjz58/fpjFf6/A1JRMAAMirGs9otmvXLi699NI477zzYs2aNfG1r30t+vZNf/YxXwYPHhxHHXVUnHPOORERMWDAgLjhhhuiXbt2m2w7dOjQKCoqijfffDMqKiqi30X94sJzL4xx48bFK6+8EosWLYr+/fvHCSecEKWlpbFs2bJo3Lhx3HTTTXHYYYdFeXl5DB48OFasWLHZ/X/SqFGjory8PL797W9H586d49Zbb41169ZF69at47rrrosbb7wxli9fHu+++2507do1brjhhniq7Kl4c86bMWbMmDjllFOiR48eMX369Fi5cmXccsst0aZNm+SPIQAAwMfVWDQjIs4666w466yzajtLXvTt2zfGjRsX55xzTixYsCDef//9rZbAd955Jx566KF47733olfvXtH11K4REVFZWRmTJ0+OiIhzzz03RowYEYcddlj84x//iCuuuCKmTJkS3/3ud6NPnz7x9a9/PSZNmhTjx4/farbhw4fHT37ykxg5cmT88Y9/jHnz5sX//M//xO677x6//OUvo1u3btG7d+9Yvnx5dOjQIS6++OJN9tGkSZN45JFH4te//nXceeedMW7cuE/xaAEAANSsxktnd3THHntsLFmyJMrLy2PSpEnRs2fPrW7fp0+faNiwYbRo0SLatGsTf/7znyMiom3bthER8dFHH8XcuXPjW9/6VvTs2TOuv/76WLFiRfz73/+OF198Mc4888yIiOjRo0c0bNhwm7IedNBBsfvu6+8oe8kll8R+++0Xv/zlL2P06NGxZs2aWLly5SZjTjzxxIiIaN26dSxbtmybjgcAALA9cjqjuSMrKiqKXr16xRNPPBFPPfVU3HXXXVvdvri4uPrrdevWRYMG6x/Cxo0bVy8rKSmJxx57rHq7xYsXR5MmTSIiIvt/nyZTVFRU40fEfNKGY0REjBkzJubP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FWIumXIjU+4KMZdMuZEpd4WYS6bcyJS7QswlU262N1N5eXmURdlm1+V019k///nPceGFF8b1118fvXv33q4QAAAAfDbUeEZz0aJFccUVV8TYsWOjffv2dZEJAACAeqzGovnLX/4yVq9eHWPGjKledu6550a/fv1qNRgAAAD1U41Fc/jw4TF8+PC6yAIAAMAOIKf3aAIAAECuFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJLKuWhWVFREt27dory8vDbzAAAAUM/lVDRnz54d/fr1i3nz5tVyHAAAAOq7nIrmww8/HCNHjoxmzZrVdh4AAADquQa5bDR69OjazgEAAMAOIqei+WncNuu22K3pbltcX9qxdLv2W/rs9o3Lad8FmCli+3LJlOOYAswUYZ7nPEam3MYUYKYI8zznMTLlNqYAM0WY5zmPkSm3MQWYKcI8z3nMDpSpYmnFFtfVetG85rhromXLlsn3u72TrTbJlBuZcleIuWTKjUy5K8RcMuVGptwVYi6ZciNT7goxl0y52d5M5eXlURZlm13n400AAABIStEEAAAgqW26dHbatGm1lQMAAIAdhDOaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomALBDqKxas13rgB3Tlv7dez2oGw3yHQAAIIWS4oZx9vj/2uy6h8/5WR2nAfJtS68JXg/qhjOaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQVE5Fs6ysLLp06RKnn356PPDAA7WdCQAAgHqsQU0bvPPOOzF27Nh49NFHo6SkJM4999w49thj49BDD62LfAAAANQzNZ7RnDFjRhx33HHRpEmT2GWXXeKMM86Ip556qi6yAQAAUA8VZVmWbW2DO++8M1asWBHXXnttRERMmDAh5syZE9/97ne3uuPy8vI49dRTo/vo7rFb0922uN1VR18be++65ybLq9asjuKGjTY7ZvWaldGo4c6bLH923rPx7Lxnt5orF1vKtLVctZ1pa7nqVaa1q6NRg02Xv7/y3/HjP95eUJlS5tph5nkhPn+FOM8LMVOhzvNanlM7zDwvxEzmeU6ZtpYrr/O8EJ8/mXLLVKjz3O8tuWUqxDn1KTJVLK2IsmFlMXXq1GjZsuVG62osmv/93/8dK1eu3Kho/vWvf43vfOc7Wz3ohqK5uYNuj9JnS6O0Y+mn3k9KMuXmk5nOHv9fm2zz8Dk/q8NEuWWKyH+uQlAfnr9CUB8yFeo8L8Q5JdPm1Yd5Xig8f7mRKTf15fW8EMiUm1SZttb5arx0tnnz5rF06dLq75csWRLNmjX71KEAAADYMdVYNI8//viYOXNmvP/++7Fy5cr4/e9/HyeddFJdZAMAAKAeqvGus82bN49rr702zj///FizZk2cddZZ0bZt27rIBgAAQD1UY9GMiOjevXt07969trMAAACwA6jx0lkAAADYFoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJNch3AD5bKqvWxMPn/Gyzy0uKG+Yh0ZYzbViXr1yFqBCfP3JTqPO8EOeUTKTm+SOlQn09h09yRpM6taUXv3y+KG7t2F6sN1aIzx+5KdR5XohzSiZS8/yRUqG+nsMnKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJBUg9racVVVVURELF68OMn+KpZWRHl5eZJ9pSJTbmTKXSHmkik3MuWuEHPJlBuZcleIuWTKjUy5K8RcMuUmVaYNXW9D9/u4oizLsk99hM146aWXon///rWxawAAAArEAw88EEcdddRGy2qtaK5atSrmzp0b++67bxQXF9fGIQAAAMiTqqqqePfdd6NNmzbRuHHjjdbVWtEEAADgs8nNgAAAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAkmqQ7wCb889//jOmTJkSixcvjp122imaNWsWJ554YhxxxBH5jlZQnnnmmVi0aFF06NAhPve5z1UvHz9+fJxzzjl5yzVv3rzYeeedo3nz5jFhwoR444034qtf/Wp06dIlb5kKzZw5c6Jt27YRETFz5sx47rnnokGDBnH66adHu3bt8pbr+eefj3bt2sUee+wRkyZNijlz5sThhx8effv2zUueUaNGxaBBg2LPPffMy/EBANg+BXdG84EHHojrrrsuIiKOOOKIOPzwwyMi4qabboq77747n9EKyg9+8IO4//77Y968eXHuuefGY489Vr3uoYceyluue++9Ny655JI499xz41vf+lY88cQTcdBBB8Vvf/vbuOOOO/KW65PGjBmT1+OPHDkyItbP95tvvjlatGgRTZs2jREjRsT999+fl0yjR4+OO++8M1avXh233XZblJWVxaGHHhpPP/10jBo1Ki+ZJk2aFGeffXb8/ve/z8vxt2bmzJnxl7/8JSIi7r777hg4cGD85Cc/icrKyrxleuaZZ2Lo0KFxySWXxMCBA+Pmm2+uzggAUJeKsizL8h3i484444yYNGlS7LzzzhstX7lyZfTu3TueeuqpvORauHDhVtfvv//+dZRkve7du8fEiROjQYMGMW/evLj44otj8ODBceaZZ0avXr1i0qRJdZrn47keeeSRWLp0aXTr1i1mzZoVjRo1isrKyjjrrLPi8ccfr/NM3/rWtzZZNm3atDjllFMiIuJ73/teXUeK3r17x8SJE6Nnz55x7733xl577RURERUVFXHWWWflZZ536dIlysrKori4OHr16hUPP/xwlJSURFVVVXTr1i2efPLJOs/Uq1ev+MEPfhClpaWxevXquOiii+KUU06Jxo0b13mWj/v+978fL730UqxduzZatmwZRUVF0adPn5g2bVpUVVXlpZjfeeed8corr8SJJ54Y06ZNi6OOOioaN24cEyZMiAsuuCDOPvvsOs8EnxXPPPNMnHbaaRERMWHChPjDH/5QfZWKq3nYUTz//PPx1FNPbXTF4UknnRRnnHFGvqMVjLVr18YDDzwQixYtitNOOy2OOuqo6nXjxo2LQYMG5SXXjBkzYvfdd48vfelLMW7cuHjjjTfiyCOPjIsvvjiKi4tr7bgFd+lsgwYNYu3atZssX7VqVTRs2DAPida7/PLLY968edGsWbP4ZDcvKiqKqVOn1mmeLMuiqKgoIiJatWoVd955Z1x00UWx9957Vy/Ph3Xr1kVJSUkccMABcfHFF0ejRo2q11VVVeUlU5MmTWLSpEkxcODA2GOPPSIiYtasWXHMMcfkJU/E+heidevWxT777BO77LJL9fKSkpLYaaf8XGjQuHHjeO+996JZs2axzz77xIoVK6KkpCRWrlwZDRrk56WiqKgoDj300Lj//vtjxowZMX78+Bg9enS0atUqWrRoET/84Q/zkuv555+Pxx57LCorK6NDhw4xffr0aNiwYZx00knRs2fPvGSaPHlyTJo0KYqKiqJv375x2WWXxX333Rd9+/aNs88+O69F0y8nNfPLyadz3XXXxY9+9KO8Hf+OO+6I0047LcaNGxcvvfRSDBgwILIsi/Hjx8cbb7wR1157bZ1nWrt2bTzyyCNx+umnx+677x4///nP469//Wscfvjhcfnll2/0/+e6MnDgwBg2bFgceOCBdX7sLVm7dm1MmjQpGjduHGeccUZ873vfiz/96U/Rpk2bGDJkSDRp0iQvudatWxf33XdfTJ06Nd59991o2LBhfO5zn4suXbpE165d6zzP7bffHnPmzIkePXpEs2bNIiJiyZIl8cgjj8Qrr7wSQ4YMqfNMf/rTn7a6/uijj66jJP/fiBEjYt26dfH5z38+vvnNb8bZZ58dAwcOjIj1Jzny8Vp+6623xssvvxwVFRXVv+P169cvnnrqqbj55pvjpptuqrVjF1zRHDhwYPTq1Svat28f++67b0REvPvuuzFr1qy8vFBv8Jvf/CbOO++8GDlyZBx55JF5y7FB586dY8CAATF06NBo27ZttG7dOm6//fa48sor83rpXqdOneI//uM/4r777qv+x/T666/H8OHD48wzz8xLpiFDhsRJJ50Ut912W1x33XVx7LHHxq9+9avo3bt3XvJEROy1117RoUOHKCoqipEjR8aYMWNi5syZceutt0bnzp3zkunKK6+Ms846K7p27RoHH3xwDBgwINq3bx/Tp0+PSy+9NC+ZPv5HneOPPz6OP/74WLNmTbzxxhsxf/78vGTakGv58uWxYsWKWLVqVVRUVMRee+0Vq1atijVr1uQl0+rVq2PlypWxyy67xKpVq2LZsmUREbHLLrvk7Y8XEYX5y0lNV3z06tWrTnJ8nF9OcjdgwIBN/qA6d+7cOP/88yMi4r777stHrIiIePrpp2PChAnVJa5jx47RrVu3vPz+suHf1hlnnBG33HJLrFixIs4777x49tln48Ybb8zLH+pmz55d/faaAQMG5PUEwgbDhw+PFStWRGVlZdx///3Rtm3bGDt2bEydOjVGjBgRP/7xj/OSa8yYMbFmzZq49NJLY8qUKfHFL34x9ttvv7jvvvti3rx5ccUVV9RpnsmTJ8eTTz65yf9PunXrFt26dcvLa/kdd9wRr7zySrRt23azJ4Hy8Vowd+7c6qv3evXqFRdeeGE0btw4Lrzwwk0y1pXnnnsuysrKYtmyZXH66afHiy++GDvttFOcdNJJtf7/u4Irmt27d49jjjkmZs6cGUuWLIksy+Koo46KQYMGRfPmzfOWa7fddotRo0bFhAkTCqJoXnnllXHkkUfGrrvuWr3syCOPjEcffTSv72W9+uqr409/+tNGf+kuKSmJQYMGRYcOHfKWq3379vGlL30pRo4cGc8++2zezq5usOHF76233ooPP/wwItY/TldddVV07NgxL5lOOeWUaN26dTzzzDPxr3/9K7785S/HrrvuGmPGjKm+cVFd69+//ybLGjZsGG3atIk2bdrkIdF6l112WXTq1CmyLIvBgwfHxRdfHO3bt4+ZM2fm7cZJffr0iX79+sUJJ5wQ06dPjz59+sSCBQviiiuuiG7duuUlU0Rh/nIya9asmDJlyhb/qJOPoumXk9x17tw5fv7zn8c111wTBxxwQGRZFjfddFNceeWVecu0YsWKWLp0aey///6xYsWK6qK5atWqvF0R8uabb0ZZWVlErD/z89hjj0VRUVF06NAhb5fzNm/ePO666674/ve/H506dYp+/fpF165d44ADDshLnoiIV199NcrKyqKqqio6dOhQfZ+LQw89NG9XqESsf53a8Jpw4oknRv/+/eM3v/lNdOjQIXr06FHnRbNRo0axePHiTd4qtnDhwigpKanTLBv84he/iPPPPz8uuOCCOPXUU/OS4ZOyLIsVK1bELrvsEnvvvXf84he/iH79+sU+++yT1ysOKysrY6+99oohQ4ZU///4o48+2uxVpEll8Bnz8MMPZxdddFG+Y1DPrVy5MquoqMiyLMtef/317K677sqmT5+e10wzZszI7rrrrmzGjBlZlmVZRUVF9vrrr+c1U/fu3bMFCxZssvx///d/sx49euQh0XqXX355NmHChLwd/5O6deuWffTRR9XfL168ODv55JOzxx9/POvVq1deMnXt2jVbtWpVlmXrXzc3WL58edalS5e8ZNrg73//e3beeedlEydOzLIsy9tjtMHQoUOzbt26ZUceeWR25ZVXZlmWZVOmTMk6duyYPfjgg3nJdPbZZ2dvvvlmlmVZdsUVV1T/O1y8eHHWs2fPvGT6+PP09ttvZ7fcckvWqVOnrEOHDtk555yTl0w9evTI3nrrrWz27NlZ27Zts/nz52dZlmXvvfdeXud5ly5dsqVLl2ZZtv452/DYVVRUZF27dq3zPC+88ELWsWPH7MILL8wGDx6cDR48OLvwwguzjh07ZjNnzqzzPBu89dZb2a233pq343/SQw89lHXq1Kn6/8NZlmX/+Mc/so4dO2ZHHHFEXjI98MADWadOnbK1a9dWL/vzn/+cnXzyydn48eNr9dgFdzMgAHYcM2bMiGHDhkWrVq02ejvEvHnz4nvf+14cd9xxecm1ZMmSKCsri0suuSQvx/+k8ePHx9133x2lpaXRvn37iFj/UV+XXnppvPfeezFnzpw6z/Tggw/Gr371q5g8eXL1VSovv/xy3HDDDTFw4MC832CqsrIyfvSjH8XChQvjn//8ZzzxxBN5zROx/saFS5cujQMPPDDefPPNyLIsvvCFL+Qly1/+8pcYNGhQfPWrX42dd945XnjhhWjXrl28+uqr8e1vfzsvVxlt6WaF//73v2P+/Pl5uXpm+vTpMXz48Fi3bl2MGDEifvjDH8bnP//5+Otf/xpXXXVV3s7eP/roo3H77bfHV77ylZg9e3Zcf/31ccQRR8QFF1wQgwYNysvVM0888US8/fbbUVxcHAceeGA0b9482rVrFxMnTszbx+oV4kf9/eIXv4jKysro3r17daaKiop48MEH4z//8z/zkunee++N4uLi6sdp8eLFsXz58nj55Zdr9XFSNAGoVatXr445c+ZUvx1iwy8n+brcqtDuIr7BvHnzoqSkZKPjV1RUxCOPPBIXXnhhXjKVl5dHy5Ytq7/f8MtJ69at85Jnc1544YV44okn4uabb85bhkKdUxUVFTFjxoz417/+FVVVVdG0adM44YQTokWLFnnJ89xzz+X1bTS5WLp0abz00kvRunXrOOSQQ/Ka5e2334433ngjvvjFL0arVq2isrIyVqxYkZcbFP3gBz+IV199NQ4++OCYPHlyDB06tPrS4g130s9Hprlz58YhhxwSTz75ZAwZMkSmAstUcO/RBGDHseEX8AMOOGCj92EtXbo0IvLzC3ih3UU8YuP3OX2ytHTq1KnO82zIsdNOO22SZ9ddd42FCxfmrTx9Ms9BBx0UV155ZfVyc2q9DY/HJ9/Tvm7durw9f61bt95qKc9Hps3l2XBmNd/zvFGjRhtl2WDFihV1nuu5556r/li9AQMGxMUXXxwlJSVx5pln5vV95IWYadKkSVFcXFxQmfL1OCmaANSaQvwFvNDuIh5RmI9TIWbaUq6ioqLqj/0yp9YrxMepEOdUIWYqxFxZAX6sXqFm2qCQMuXtcarVd4AC8Jm2fPnyrHv37tlLL72U7ygbmT17djZ8+PB8x6hWiI9TIWbKssLNZU7VTKbcFVqucePGZf369ctmz55dveyll17KjjvuuOyrX/2qTDJtlvdoAlCr5syZExMmTIjvfve7+Y5S0ArxcSrETBGFm6vQFOLjJFPuCi3XzJkzo1mzZhu9d3XRokVx9913x7Bhw2SSaROKJgAAAEntVPMmAAAAkDtFEwAAgKQUTQAAAJJSNAEAAEjq/wJWgFpQC3RLwQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_kn = results_kn.head(35)\n", + "results_kn.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 253, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_kn.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 254, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.008333333333333415" + ] + }, + "execution_count": 254, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_kn=np.mean(results_kn.error)\n", + "meanerror_kn" + ] + }, + { + "cell_type": "code", + "execution_count": 255, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
05.2
15.2
25.0
35.2
45.0
55.0
65.0
\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 5.2\n", + "1 5.2\n", + "2 5.0\n", + "3 5.2\n", + "4 5.0\n", + "5 5.0\n", + "6 5.0" + ] + }, + "execution_count": 255, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 256, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/kn.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline xgb" + ] + }, + { + "cell_type": "code", + "execution_count": 257, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9999951882527967\n", + "Adjusted R^2: 0.9999930831133952\n", + "MAE: 0.00029098987579345703\n", + "MSE: 3.6756402247798786e-07\n", + "RMSE: 0.0006062705851993711\n" + ] + } + ], + "source": [ + "pred = pipeline_xgb.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 258, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
05.05.000068-0.000068
15.05.000068-0.000068
25.05.000068-0.000068
35.05.000068-0.000068
45.05.000068-0.000068
55.05.000153-0.000153
65.05.000153-0.000153
75.05.000068-0.000068
85.05.000068-0.000068
95.05.000068-0.000068
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 5.0 5.000068 -0.000068\n", + "1 5.0 5.000068 -0.000068\n", + "2 5.0 5.000068 -0.000068\n", + "3 5.0 5.000068 -0.000068\n", + "4 5.0 5.000068 -0.000068\n", + "5 5.0 5.000153 -0.000153\n", + "6 5.0 5.000153 -0.000153\n", + "7 5.0 5.000068 -0.000068\n", + "8 5.0 5.000068 -0.000068\n", + "9 5.0 5.000068 -0.000068" + ] + }, + "execution_count": 258, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_xgb = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_xgb.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 259, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5oAAAJDCAYAAABqs2vYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAzkUlEQVR4nO3deZzVdd3//9cIDKioqAio2JdUrBShcsVUcENkX0xZLty95JviTqAgTFdgmOUSWTfL1ExNxQSdREnh0kTgMjMhzKVUvBgWEQ1lHGBg+Pz+4Md8RZY54HvmHPB+v9283eCc8znnycxxmAdnmaIsy7IAAACARHbK9wAAAAB2LEITAACApIQmAAAASQlNAAAAkqpfW1e8cuXKmDt3buyzzz5Rr1692roZAAAA8qCqqio++OCDaNOmTTRq1GiD82otNOfOnRsDBw6srasHAACgADzwwANx5JFHbnBarYXmPvvsU32jLVq0+MLXd9us2+LKY6/8wteTkk25sSl3hbjLptzYlLtC3GVTbmzKXSHusik3NuWuEHfZlJtUmxYvXhwDBw6sbr/PqrXQXP902RYtWkTLli2/8PU1bto4yfWkZFNubMpdIe6yKTc25a4Qd9mUG5tyV4i7bMqNTbkrxF025Sb1pk29VNKbAQEAAJCU0AQAACApoQkAAEBStfYazc1Zu3ZtLF26NJYtWxZVVVU5H3f6HqfH66+/XovLtt6OsKlevXrRpEmTaNq0aey0k393AAAAvrg6D82ysrIoKiqKVq1aRYMGDaKoqCin4xYuXxj77bZfLa/bOtv7pizLYvXq1fH+++9HWVlZfOUrX6nldQAAwJdBnT+E9emnn8b+++8fxcXFOUcmtaOoqCiKi4tj//33j08//TTfcwAAgB1EXp4r6SmahcXnAwAASElhAAAAkFRBhGbl6prfFGhbXguZy/VujWnTpsU999yzVcfcfvvtMXXq1KQ7AAAAClmdvxnQphQ3qBfdr3k8+fWW/rRn0ut77bXXtvqYK664IukGAACAQlcQoZlPQ4cOjSOPPDLOPvvsiIgYNGhQXHvttdGuXbsNLvevf/0rHnrooYiI2G+//WLhwoXxP3/9n/hoyUcxcODAaN26ddx6662xcuXK+Pjjj2Po0KFxxhlnxPDhw+Poo4+Oo48+Oi677LJo3bp1vP7667H33nvH7bffHk2aNKnrPzIAAECtKoinzuZT375944knnoiIiAULFsRHH320UWRGRBx88MHRr1+/6NevX/Tt2zciIipXVcbkyZNj4MCBcf/998eYMWNi4sSJMXbs2PjFL36x0XW88cYbcf7558cf//jH2H333aO0tLR2/3AAAAB58KUPzWOOOSaWLFkSZWVlMWnSpOjZM/en236jzTeqf33zzTfHP//5z7jjjjvinnvu2eSPC9l7773j0EMPjYiI1q1bx8cff/zF/wAAAAAF5ksfmkVFRdGrV6948skn4+mnn96q0GzYsGH1rwcMGBBz5syJNm3axODBg2u8fFFRUWRZtu3DAQAACtSX/jWaERF9+vSJAQMGxMEHHxzNmzff7OXq1asXq1at2uj0ZcuWxbx58+LBBx+Mhg0bxvjx46OqKu073gIAAGwvCiI0K1dXJX+H2PXXW9ygXo2X23fffWPfffeN3r17b/FyRx11VAwbNiyaNm26welNmjSJ7373u9G1a9do3LhxfPOb34yVK1dGRUXFF9oPAACwPSqI0MwlBhcuX7jVP0szl+vNsiyWLFkSS5cujVNPPXWLlz3qqKNi2rRpG2xab/jw4TF8+PDq35eUlERExLhx46pP++yxQ4YMqXEbAADA9qggQjOfpkyZEiUlJVFSUhLFxcVx0003xYwZMza6XJs2bWLs2LF5WAgAALB9+dKHZufOnaNz587Vvx82bFge1wAAAGz/cnrX2WnTpkWfPn2ic+fOMWbMmNreBAAAwHasxtCcP39+jB49On7xi19EaWlp/OMf/4jnn3++LrYBAACwHarxqbPPPPNMdOnSJVq0aBEREbfeeusGPw8SAAAAPqsoy7JsSxcYPXp0NGjQIN5999344IMP4qSTToorr7wyioqKtnjFZWVlccopp0T3sd2jcdPG1aefvsfp8X8O/j9bPXT5quWxW8Pdtvq42rQjbXrvX+/FlI+n1MKiiOfmPRcdW3WsleveVoW4KaIwd9mUG5tyV4i7bMpNXW+6/KirYq9d99jo9KrVq6Jeg43/0fuTio/ilpd+VhfTauTzlxubclOImyLqdtfmvh5EFP7XhEL8/KXaVL60PEpHlMbUqVOjZcuWG56Z1WDEiBFZly5dsg8//DBbsWJFdv7552d/+MMfajosmz9/fnbIIYdk8+fP3+D0f/zjHxtdtmr1qhqvb1vU1vWut+CTBbV6/dtiWzdt6vOSyuj/Hl1r172tCnFTlhXmLptyY1PuCnGXTbnJx6ZuV0/a6L8sy7K3x/TZ6L9C4vOXG5tyU4ibsqzud23q68H28DWhED9/qTZtrvmyLMtqfOps06ZNo3379rHXXntFRMQpp5wSc+bMiT59+nzhAl5vp/rF8c7Yvsmub70DR/wh+XWm9LWvfS3efPPNzZ4/f/78+OUvfxk33nhjztf54vMvxsK3F8YVV1yRYiIAAMBWq/HNgE466aSYPn16fPLJJ1FVVRUvvPBCHHbYYXWx7Utv4cKFMX/+/K065jsdviMyAQCAvKrxEc127drFRRddFAMGDIjVq1fHd77znejbN/2jj/kydOjQOPLII+Pss8+OiIhBgwbFtddeG+3atdvossOHD4+ioqJ46623ory8PPqf3z/O63dejB8/Pl599dVYtGhRDBw4MI4//vgoKSmJZcuWRaNGjeKGG26IQw89NMrKymLo0KFRUVGxyev/vDFjxkRZWVn84Ac/iM6dO8fNN98ca9eujdatW8fVV18d119/fSxfvjw++OCD6Nq1a1x77bXxdOnT8dact2LcuHFx8sknR48ePWL69OmxYsWKuOmmm6JNmzbJP4YAAACfVWNoRkSceeaZceaZZ9b2lrzo27dvjB8/Ps4+++xYsGBBfPTRR1uMwPfffz8eeuih+PDDD6NX717R9ZSuERFRWVkZkydPjoiIfv36xahRo+LQQw+Nf/3rX3HppZfGlClT4oc//GH06dMnvvvd78akSZPi4Ycf3uK2kSNHxs9//vMYPXp0/M///E/Mmzcv/vu//zt22223+M1vfhPdunWL3r17x/Lly6NDhw5xwQUXbHQdTZo0iUcffTR+97vfxZ133hnjx4//Ah8tAACAmtX41Nkd3THHHBNLliyJsrKymDRpUvTs2XOLl+/Tp080aNAgWrRoEW3atYm//vWvERHRtm3biIj49NNPY+7cuXHddddFz54945prromKior497//HS+99FKcccYZERHRo0ePaNCgwVZt/epXvxq77bbuHWUvvPDC2HfffeM3v/lNjB07NlavXh0rVqzY6JgTTjghIiJat24dy5Yt26rbAwAA2BY5PaK5IysqKopevXrFk08+GU8//XTcddddW7x8vXr1qn+9du3aqF9/3YewUaNG1acVFxfH448/Xn25xYsXR5MmTSIiIvv/f5pMUVFRjT8i5vPW30ZExLhx42L+/PnRrVu3OPXUU2PGjBnV1/1Z63/m6dbeFgAAwLb60j+iGbHuUcqHHnooWrRoEc2bN9/iZZ966qnIsiwWLFgQr899PY444ogNzt9tt92iVatW1aH54osvxsCBAyMi4rjjjosnnngiIiL+9Kc/RWVl5RZvq169erFmzZpNnvfiiy/GhRdeGGeccUYsWrQo3n///Vi7dm1Of14AAIDaVBCPaK5dU1krP4pk7ZrK2Kl+cY2X23fffWPfffeN3r1713jZlStXRt++faOysjKuGXFN7Lnnnhtd5uabb46SkpK46667okGDBnHrrbdGUVFRjBo1KoYOHRoPPfRQHH744bHrrrtu8bYOOuigWL58eQwdOnSj18hecskl8f3vfz9233332HvvvaNNmzZRVlZW434AAIDaVhChmUsMLly+MPbbbb/k15tlWSxZsiSWLl0ap556ao2X79y5c/XPEF24fGFERAwZMmSDyxx00EHxu9/9bqNjmzdvHvfdd1/172v6+Zh77rln/PGPf6z+/THHHFP9627dukW3bt02OqbV4a3iggHr3hRo2rRpGxz72eMBAABqS0GEZj5NmTIlSkpKoqSkJIqLi+Omm26KGTNmbHS52vqxIJMnT44777xzk+d99nWeAAAA24svfWh27tw5OnfuXP37YcOG1entd+nSJbp06VKntwkAAFCbvBkQAAAASQlNAAAAkhKaAAAAJCU0AQAASKogQrOyanWNl9naH22S6/UCAACQVkG862xxvQZx1sP/N/n1PnL2L5NfJwAAAFtWEKGZb7/61a/iqaeeiqqqqjj++OOjf//+cfHFF8eee+4ZDRs2jB49esTEiRNj2bJlcdJJJ8U555wTI0aMiP8t+99oVNworrrqqjjxxBNj/Pjx8eqrr8aiRYti4MCBMXDgwHz/0QAAAOrclz40//znP8fcuXPj0UcfjaKiohg6dGiUlpbGu+++G3fddVe0bNkyHnvssXj//fdj8uTJUb9+/bjiiivi2GOPjdFnjo6qZVXRv3//mDRpUkREVFZWxuTJk/P7hwIAAMijL31ozpw5M+bMmRN9+vSJiIiVK1dGlmWx9957R8uWLasvd+ihh0b9+us+XLNmzYoxY8bE8lgeBxxwQLRr1y5mz54dERFt27at+z8E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SEpoAgAAkJTQBAAAICmhCQAAQFJCEwAAgKSEJgAAAEkJTQAAAJISmgAAACQlNAEAAEhKaAIAAJBU/dq64qqqqoiIWLx4cZLrK19aHmVlZUmuKxWbcmNT7gpxl025sSl3hbjLptzYlLtC3GVTbmzKXSHusik3qTatb7317fdZRVmWZV/4Fjbh5ZdfjoEDB9bGVQMAAFAgHnjggTjyyCM3OK3WQnPlypUxd+7c2GeffaJevXq1cRMAAADkSVVVVXzwwQfRpk2baNSo0Qbn1VpoAgAA8OXkzYAAAABISmgCAACQlNAEAAAgKaEJAABAUkITAACApIQmAAAASQlNAAAAkhKaAAAAJFU/3wM25e23344pU6bE4sWLY6eddopmzZrFCSecEIcffni+pxWUZ599NhYtWhQdOnSIr3zlK9WnP/zww3H22Wfnbde8efNi5513jubNm8eECRPizTffjG9/+9vRpUuXvG0qNHPmzIm2bdtGRMTMmTPj+eefj/r168dpp50W7dq1y9uuF154Idq1axe77757TJo0KebMmROHHXZY9O3bNy97xowZE0OGDIk99tgjL7cPAMC2KbhHNB944IG4+uqrIyLi8MMPj8MOOywiIm644Ya4++678zmtoPzkJz+J+++/P+bNmxf9+vWLxx9/vPq8hx56KG+77r333rjwwgujX79+cd1118WTTz4ZX/3qV+MPf/hD3HHHHXnb9Xnjxo3L6+2PHj06Itbd32+88cZo0aJFNG3aNEaNGhX3339/XjaNHTs27rzzzli1alXcdtttUVpaGgcffHA888wzMWbMmLxsmjRpUpx11lnxpz/9KS+3vyUzZ86Mv/3tbxERcffdd8fgwYPj5z//eVRWVuZt07PPPhvDhw+PCy+8MAYPHhw33nhj9UYAgLpUlGVZlu8Rn3X66afHpEmTYuedd97g9BUrVkTv3r3j6aefzsuuhQsXbvH8/fbbr46WrNO9e/eYOHFi1K9fP+bNmxcXXHBBDB06NM4444zo1atXTJo0qU73fHbXo48+GkuXLo1u3brFrFmzomHDhlFZWRlnnnlmPPHEE3W+6brrrtvotGnTpsXJJ58cERE/+tGP6npS9O7dOyZOnBg9e/aMe++9N/bcc8+IiCgvL48zzzwzL/fzLl26RGlpadSrVy969eoVjzzySBQXF0dVVVV069YtnnrqqTrf1KtXr/jJT34SJSUlsWrVqjj//PPj5JNPjkaNGtX5ls/68Y9/HC+//HKsWbMmWrZsGUVFRdGnT5+YNm1aVFVV5SXM77zzznj11VfjhBNOiGnTpsWRRx4ZjRo1igkTJsS5554bZ511Vp1vgi+LZ599Nk499dSIiJgwYUL8+c9/rn6WimfzsKN44YUX4umnn97gGYcnnnhinH766fmeVjDWrFkTDzzwQCxatChOPfXUOPLII6vPGz9+fAwZMiQvu2bMmBG77bZbfOMb34jx48fHm2++GUcccURccMEFUa9evVq73YJ76mz9+vVjzZo1G52+cuXKaNCgQR4WrXPJJZfEvHnzolmzZvH5Ni8qKoqpU6fW6Z4sy6KoqCgiIlq1ahV33nlnnH/++bHXXntVn54Pa9eujeLi4th///3jggsuiIYNG1afV1VVlZdNTZo0iUmTJsXgwYNj9913j4iIWbNmxdFHH52XPRHrvhCtXbs29t5779hll12qTy8uLo6ddsrPEw0aNWoUH374YTRr1iz23nvvqKioiOLi4lixYkXUr5+fLxVFRUVx8MEHx/333x8zZsyIhx9+OMaOHRutWrWKFi1axE9/+tO87HrhhRfi8ccfj8rKyujQoUNMnz49GjRoECeeeGL07NkzL5smT54ckyZNiqKioujbt29cfPHFcd9990Xfvn3jrLPOymto+uakZr45+WKuvvrquOWWW/J2+3fccUeceuqpMX78+Hj55Zdj0KBBkWVZPPzww/Hmm2/GVVddVeeb1qxZE48++micdtppsdtuu8WvfvWr+Pvf/x6HHXZYXHLJJRv8/VxXBg8eHCNGjIgDDjigzm97c9asWROTJk2KRo0axemnnx4/+tGP4i9/+Uu0adMmhg0bFk2aNMnLrrVr18Z9990XU6dOjQ8++CAaNGgQX/nKV6JLly7RtWvXOt9z++23x5w5c6JHjx7RrFmziIhYsmRJPProo/Hqq6/GsGHD6nzTX/7yly2ef9RRR9XRkv9n1KhRsXbt2jjkkEPi+9//fpx11lkxePDgiFj3IEc+vpbffPPN8corr0R5eXn193j9+/ePp59+Om688ca44YYbau22Cy40Bw8eHL169Yr27dvHPvvsExERH3zwQcyaNSsvX6jX+/3vfx8DBgyI0aNHxxFHHJG3Het17tw5Bg0aFMOHD4+2bdtG69at4/bbb4/LLrssr0/d69SpU/zHf/xH3HfffdX/M73xxhsxcuTIOOOMM/KyadiwYXHiiSfGbbfdFldffXUcc8wx8dvf/jZ69+6dlz0REXvuuWd06NAhioqKYvTo0TFu3LiYOXNm3HzzzdG5c+e8bLrsssvizDPPjK5du8aBBx4YgwYNivbt28f06dPjoosuysumz/6jznHHHRfHHXdcrF69Ot58882YP39+Xjat37V8+fKoqKiIlStXRnl5eey5556xcuXKWL16dV42rVq1KlasWBG77LJLrFy5MpYtWxYREbvsskve/vEiojC/OanpGR+9evWqkx2f5ZuT3A0aNGijf1CdO3dunHPOORERcd999+VjVkREPPPMMzFhwoTqiOvYsWN069YtL9+/rP9/6/TTT4+bbropKioqYsCAAfHcc8/F9ddfn5d/qJs9e3b1y2sGDRqU1wcQ1hs5cmRUVFREZWVl3H///dG2bdu49dZbY+rUqTFq1Kj42c9+lpdd48aNi9WrV8dFF10UU6ZMia9//eux7777xn333Rfz5s2LSy+9tE73TJ48OZ566qmN/j7p1q1bdOvWLS9fy++444549dVXo23btpt8ECgfXwvmzp1b/ey9Xr16xXnnnReNGjWK8847b6ONdeX555+P0tLSWLZsWZx22mnx0ksvxU477RQnnnhirf99V3Ch2b179zj66KNj5syZsWTJksiyLI488sgYMmRING/ePG+7GjduHGPGjIkJEyYURGhedtllccQRR8Suu+5afdoRRxwRjz32WF5fy3rFFVfEX/7ylw3+pbu4uDiGDBkSHTp0yNuu9u3bxze+8Y0YPXp0PPfcc3l7dHW99V/83nnnnfjkk08iYt3H6fLLL4+OHTvmZdPJJ58crVu3jmeffTbee++9+OY3vxm77rprjBs3rvqNi+rawIEDNzqtQYMG0aZNm2jTpk0eFq1z8cUXR6dOnSLLshg6dGhccMEF0b59+5g5c2be3jipT58+0b9//zj++ONj+vTp0adPn1iwYEFceuml0a1bt7xsiijMb05mzZoVU6ZM2ew/6uQjNH1zkrvOnTvHr371q7jyyitj//33jyzL4oYbbojLLrssb5sqKipi6dKlsd9++0VFRUV1aK5cuTJvzwh56623orS0NCLWPfLz+OOPR1FRUXTo0CFvT+dt3rx53HXXXfHjH/84OnXqFP3794+uXbvG/vvvn5c9ERGvvfZalJaWRlVVVXTo0KH6fS4OPvjgvD1DJWLd16n1XxNOOOGEGDhwYPz+97+PDh06RI8ePeo8NBs2bBiLFy/e6KViCxcujOLi4jrdst6vf/3rOOecc+Lcc8+NU045JS8bPi/LsqioqIhddtkl9tprr/j1r38d/fv3j7333juvzzisrKyMPffcM4YNG1b99/Gnn366yWeRJpXBl8wjjzySnX/++fmewXZuxYoVWXl5eZZlWfbGG29kd911VzZ9+vS8bpoxY0Z21113ZTNmzMiyLMvKy8uzN954I6+bunfvni1YsGCj0//3f/8369GjRx4WrXPJJZdkEyZMyNvtf163bt2yTz/9tPr3ixcvzk466aTsiSeeyHr16pWXTV27ds1WrlyZZdm6r5vrLV++POvSpUteNq33z3/+MxswYEA2ceLELMuyvH2M1hs+fHjWrVu37Igjjsguu+yyLMuybMqUKVnHjh2zBx98MC+bzjrrrOytt97KsizLLr300ur/DxcvXpz17NkzL5s++3l69913s5tuuinr1KlT1qFDh+zss8/Oy6YePXpk77zzTjZ79uysbdu22fz587Msy7IPP/wwr/fzLl26ZEuXLs2ybN3nbP3Hrry8POvatWud73nxxRezjh07Zuedd142dOjQbOjQodl5552XdezYMZs5c2ad71nvnXfeyW6++ea83f7nPfTQQ1mnTp2q/x7Osiz717/+lXXs2DE7/PDD87LpgQceyDp16pStWbOm+rS//vWv2UknnZQ9/PDDtXrbBfdmQADsOGbMmBEjRoyIVq1abfByiHnz5sWPfvSjOPbYY/Oya8mSJVFaWhoXXnhhXm7/8x5++OG4++67o6SkJNq3bx8R637U10UXXRQffvhhzJkzp843Pfjgg/Hb3/42Jk+eXP0slVdeeSWuvfbaGDx4cN7fYKqysjJuueWWWLhwYbz99tvx5JNP5nVPxLo3Lly6dGkccMAB8dZbb0WWZfG1r30tL1v+9re/xZAhQ+Lb3/527LzzzvHiiy9Gu3bt4rXXXosf/OAHeXmW0eberPDf//53zJ8/Py/Pnpk+fXqMHDky1q5dG6NGjYqf/vSnccghh8Tf//73uPzyy/P26P1jjz0Wt99+e3zrW9+K2bNnxzXXXBOHH354nHvuuTFkyJC8PHvmySefjHfffTfq1asXBxxwQDRv3jzatWsXEydOzNuP1SvEH/X361//OiorK6N79+7Vm8rLy+PBBx+M//zP/8zLpnvvvTfq1atX/XFavHhxLF++PF555ZVa/TgJTQBq1apVq2LOnDnVL4dY/81Jvp5uVWjvIr7evHnzori4eIPbLy8vj0cffTTOO++8vGwqKyuLli1bVv9+/TcnrVu3zsueTXnxxRfjySefjBtvvDFvGwr1PlVeXh4zZsyI9957L6qqqqJp06Zx/PHHR4sWLfKy5/nnn8/ry2hysXTp0nj55ZejdevWcdBBB+V1y7vvvhtvvvlmfP3rX49WrVpFZWVlVFRU5OUNin7yk5/Ea6+9FgceeGBMnjw5hg8fXv3U4vXvpJ+PTXPnzo2DDjoonnrqqRg2bJhNBbap4F6jCcCOY/034Pvvv/8Gr8NaunRpROTnG/BCexfxiA1f5/T5aOnUqVOd71m/Y6eddtpoz6677hoLFy7MWzx9fs9Xv/rVuOyyy6pPd59aZ/3H4/OvaV+7dm3ePn+tW7feYpTnY9Om9qx/ZDXf9/OGDRtusGW9ioqKOt/1/PPPV/9YvUGDBsUFF1wQxcXFccYZZ+T1deSFuGnSpElRr169gtqUr4+T0ASg1hTiN+CF9i7iEYX5cSrETZvbVVRUVP1jv9yn1inEj1Mh3qcKcVMh7soK8MfqFeqm9QppU94+TrX6ClAAvtSWL1+ede/ePXv55ZfzPWUDs2fPzkaOHJnvGdUK8eNUiJuyrHB3uU/VzKbcFdqu8ePHZ/37989mz55dfdrLL7+cHXvssdm3v/1tm2zaJK/RBKBWzZkzJyZMmBA//OEP8z2loBXix6kQN0UU7q5CU4gfJ5tyV2i7Zs6cGc2aNdvgtauLFi2Ku+++O0aMGGGTTRsRmgAAACS1U80XAQAAgNwJTQAAAJISmgAAACQlNAEAAEjq/wNiRHmQVZzvSwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_xgb = results_xgb.head(35)\n", + "results_xgb.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 260, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_xgb.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 261, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6.357828776041666e-07" + ] + }, + "execution_count": 261, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_xgb=np.mean(results_xgb.error)\n", + "meanerror_xgb" + ] + }, + { + "cell_type": "code", + "execution_count": 262, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
05.998207
15.907369
25.000068
35.000153
45.000068
55.000068
65.000068
\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 5.998207\n", + "1 5.907369\n", + "2 5.000068\n", + "3 5.000153\n", + "4 5.000068\n", + "5 5.000068\n", + "6 5.000068" + ] + }, + "execution_count": 262, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 263, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/xgb.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline lr" + ] + }, + { + "cell_type": "code", + "execution_count": 264, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.15044146252622004\n", + "Adjusted R^2: -0.22124039761855863\n", + "MAE: 0.1646025546947217\n", + "MSE: 0.06489683272369152\n", + "RMSE: 0.254748567657782\n" + ] + } + ], + "source": [ + "pred = pipeline_lr.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 265, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
05.05.094013-0.094013
15.04.9819510.018049
25.05.018049-0.018049
35.05.173203-0.173203
45.05.190083-0.190083
55.04.9136100.086390
65.05.181448-0.181448
75.04.8905820.109418
85.04.9369150.063085
95.05.186591-0.186591
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 5.0 5.094013 -0.094013\n", + "1 5.0 4.981951 0.018049\n", + "2 5.0 5.018049 -0.018049\n", + "3 5.0 5.173203 -0.173203\n", + "4 5.0 5.190083 -0.190083\n", + "5 5.0 4.913610 0.086390\n", + "6 5.0 5.181448 -0.181448\n", + "7 5.0 4.890582 0.109418\n", + "8 5.0 4.936915 0.063085\n", + "9 5.0 5.186591 -0.186591" + ] + }, + "execution_count": 265, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_lr = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_lr.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 266, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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z+g6W/fWKsZMWVacuWTKR6b8ijGXTPkUIlPPqyZt8K/QmfIoxlwy5SNTfvWda2PPBw3hOWFbzrSpzpdlWVbrqbMtWrSITp06xR577BERESeeeGLMmjUr+vTp84kb8Do7NC6NN6/vm2x963zm2t8mX2dKn/vc5+L111/f5Py5c+fGT3/607jhhhtyr/OF516Ief+aF1dccUWKiAAAAFus1psBHX/88TF16tT44IMPorq6Op5//vk4+OCD6yPbdm/evHkxd+7cLRrzlc5fUTIBAICCqvWIZseOHePiiy+Oc845J1atWhVf+cpXom/f9EcfC2XYsGFx2GGHxVlnnRUREQMHDoxrrrkmOnbsuMGyI0aMiJKSknjjjTeisrIy+l/QP84/+/wYN25cvPLKKzF//vwYMGBAHHPMMVFWVhZLliyJZs2axXXXXRcHHXRQVFRUxLBhw2LZsmUbXf/HjRkzJioqKuLb3/52dOvWLW666aZYs2ZNtGvXLq666qr41re+FUuXLo133303evToEddcc008Uf5EvDHrjRg7dmyccMIJcdppp8XUqVNj+fLlceONN0b79u2TP4YAAAAfVWvRjIg488wz48wzz6zrLAXRt2/fGDduXJx11lnx9ttvx3vvvbfZEvjOO+/E+PHjY/HixdH7jN7R48QeERFRVVUVkydPjoiIs88+O0aNGhUHHXRQ/POf/4zLLrssnnzyyfjud78bffr0ia9+9asxadKkeOCBBzabbeTIkfHjH/84Ro8eHX/84x9jzpw58T//8z+x6667xi9+8Yvo2bNnnHHGGbF06dLo3LlzXHjhhRuso3nz5vHQQw/Fr3/967jjjjti3Lhxn+DRAgAAqF2tp85u64488shYuHBhVFRUxKRJk+L000/f7PJ9+vSJJk2aROvWraN9x/bx5z//OSIiOnToEBERH374YcyePTu++c1vxumnnx5XX311LFu2LP7zn//Eiy++GKeeempERJx22mnRpEmTLcq6//77x667rr2j7EUXXRR77713/OIXv4jrr78+Vq1aFcuXL99gzLHHHhsREe3atYslS5Zs0fYAAAC2Rq4jmtuykpKS6N27dzz22GPxxBNPxJ133rnZ5Rs1alTz9Zo1a6Jx47UPYbNmzWqmlZaWxiOPPFKz3IIFC6J58+YREZH9v0+TKSkpqfUjYj5u3TYiIsaOHRtz586Nnj17xkknnRTTpk2rWfdHrfvM0y3dFgAAwNba7o9oRqw9Sjl+/Pho3bp1tGrVarPLPv7445FlWbz99tvx99l/j0MPPXS9+bvuumu0bdu2pmi+8MILMWDAgIiIOProo+PRRx+NiIjf//73UVVVtdltNWrUKFavXr3ReS+88EJcdNFFceqpp8b8+fPjnXfeiTVr1uT6/wIAANSlojiiuWZ1VZ18FMma1VWxQ+PSWpfbe++9Y++9944zzjij1mVXrFgRffv2jaqqqrj62qtj991332CZm266KcrKyuLOO++MJk2axM033xwlJSUxatSoGDZsWIwfPz4OOeSQ2HnnnTe7rQMOOCCWLl0aw4YN2+Aa2UsvvTS+8Y1vxG677RZ77rlntG/fPioqKmrNDwAAUNeKomjmKYPzls6LfXbdJ/l6syyLhQsXxqJFi+Kkk06qdflu3brVfIbovKXzIiJiyJAh6y1zwAEHxK9//esNxrZq1Sruueeemu9r+3zM3XffPX73u9/VfH/kkUfWfN2zZ8/o2bPnBmPaHtI2Ljxn7U2BpkyZst7Yj44HAACoK0VRNAvpySefjLKysigrK4vS0tK48cYbY9q0aRssV1cfCzJ58uS44447Njrvo9d5AgAANBTbfdHs1q1bdOvWreb74cOH1+v2u3fvHt27d6/XbQIAANQlNwMCAAAgKUUTAACApBRNAAAAklI0AQAASKooimZV9apal9nSjzbJu14AAADSKoq7zpY2ahL9Hvi/ydf74Fk/Tb5OAAAANq8oimah/exnP4vHH388qqur45hjjon+/fvHJZdcErvvvns0bdo0TjvttJg4cWIsWbIkjj/++Dj33HPj2muvjf+t+N9oVtosrrzyyjjuuONi3Lhx8corr8T8+fNjwIABMWDAgEL/1wAAAOrddl80//CHP8Ts2bPjoYceipKSkhg2bFiUl5fHW2+9FXfeeWe0adMmHn744XjnnXdi8uTJ0bhx47jiiiviqKOOitFnjo7qJdXRv3//mDRpUkREVFVVxeTJkwv7nwIAACig7b5oTp8+PWbNmhV9+vSJiIgVK1ZElmWx5557Rps2bWqWO+igg6Jx47UP14wZM2LMmDGxNJbGfvvtFx07doyZM2dGRESHDh3q/z8BAABQRLb7olldXR3nnXdeXHDBBRER8cEHH8SCBQvilVde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AICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkchfNG2+8MUaMGFGXWQAAANgG5Cqa06dPj4kTJ9Z1FgAAALYBtRbNJUuWxM033xyDBg2qjzwAAAA0cI1rW2DUqFFx5ZVXxvz587dqA7fMuCV2abHLJueXdSnbqvWWPbt143KtuwgzRWxdLplyjinCTBH289xjZMo3pggzRdjPc4+RKd+YIswUYT/PPUamfGOKMFOE/Tz3mG0oU+Wiyk3O22zRnDBhQuy9997RqVOnePjhh7dq40OPGhpt2rTZqrGbs7U7W12SKR+Z8ivGXDLlI1N+xZhLpnxkyq8Yc8mUj0z5FWMumfLZ2kwVFRVRHuUbnbfZojl58uR499134/TTT4/3338/li1bFjfccEN861vf2qogAAAAbPs2WzTvvvvumq8ffvjhePHFF5VMAAAANsvnaAIAAJBUrTcDWqdPnz7Rp0+fuswCAADANsARTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASCpX0bz11luje/fu0aNHj7j77rvrOhMAAAANWOPaFnjxxRdjxowZ8eijj8bq1auje/fu0blz5/jMZz5TH/kAAABoYGo9onnEEUfEPffcE40bN47FixdHdXV17LTTTvWRDQAAgAYo16mzTZo0idtuuy169OgRnTp1ilatWtV1LgAAABqoWk+dXefyyy+PSy65JAYNGhQPPvhgnHXWWbnG3TLjltilxS6bnF/WpSxvhPXHPbt143KtuwgzRWxdLplyjinCTBH289xjZMo3pggzRdjPc4+RKd+YIswUYT/PPUamfGOKMFOE/Tz3mG0oU+Wiyk3Oq7Vo/utf/4qqqqr4whe+EDvuuGN07do1Xn/99dwbH3rU0GjTpk3u5fPa2p2tLsmUj0z5FWMumfKRKb9izCVTPjLlV4y5ZMpHpvyKMZdM+WxtpoqKiiiP8o3Oq/XU2YqKihg5cmRUVVVFVVVVPPPMM3HooYduVRAAAAC2fbUe0ezcuXPMnDkzevfuHY0aNYquXbtGjx496iMbAAAADVCuazQvv/zyuPzyy+s6CwAAANuAXHedBQAAgLwUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASKpxnoV+/OMfx+OPPx4REZ07d45vfOMbdRoKAACAhqvWI5rTpk2LqVOnxsSJE2PSpEnx6quvxlNPPVUf2QAAAGiAaj2iuddee8WIESOitLQ0IiIOOOCAmDdvXp0HAwAAoGGqtWi2a9eu5us5c+bE5MmTY/z48bk3cMuMW2KXFrtscn5Zl7Lc61pv3LNbNy7XuoswU8TW5ZIp55gizBRhP889RqZ8Y4owU4T9PPcYmfKNKcJMEfbz3GNkyjemCDNF2M9zj9mGMlUuqtzkvFzXaEZE/OMf/4hLL700hg8fHm3bts298aFHDY02bdrkXj6vrd3Z6pJM+ciUXzHmkikfmfIrxlwy5SNTfsWYS6Z8ZMqvGHPJlM/WZqqoqIjyKN/ovFx3nf3zn/8c559/flx99dVxxhlnbFUIAAAAtg+1HtGcP39+XHbZZXHzzTdHp06d6iMTAAAADVitRfMXv/hFrFy5MsaOHVsz7eyzz47+/fvXaTAAAAAaplqL5siRI2PkyJH1kQUAAIBtQK5rNAEAACAvRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJLKXTQrKyujZ8+eUVFRUZd5AAAAaOByFc2ZM2dG//79Y86cOXUcBwAAgIYuV9F88MEHY/To0dGyZcu6zgMAAEAD1zjPQtdff/1Wb+CWGbfELi122eT8si5lW7Xesme3blyudRdhpoityyVTzjFFmCnCfp57jEz5xhRhpgj7ee4xMuUbU4SZIuznucfIlG9MEWaKsJ/nHrMNZapcVLnJebmK5icx9Kih0aZNm+Tr3dqdrS7JlI9M+RVjLpnykSm/YswlUz4y5VeMuWTKR6b8ijGXTPlsbaaKioooj/KNznPXWQAAAJJSNAEAAEhK0QQAACCpLbpGc8qUKXWVAwAAgG2EI5oAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAANucqupVWzSdtBoXOgAAAEBqpY2aRL8H/u8G0x8866cFSLP9cUQTAACApBRNAAAAklI0AQAASErRBAAAIClFEwDYJmzuTpLuMglQv9x1FgDYJmzqDpMR7jIJUN8c0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQatKrqVVs0HQCAute40AEAPonSRk2i3wP/d4PpD5710wKkAQDYtKrqVVHaqEnu6Q2ZoglFant6IgIA2B5sT2+QK5pQpLanJyIAALYtrtEESMx1owDA9s4RTYDEHI0GALZ3uY5olpeXR/fu3ePkk0+O++67r64zAQAA0IDVekTznXfeiZtvvjkefvjhKC0tjbPPPjuOPPLIOPDAA+sjHwBQhNywDIDNqbVoTps2LY466qho3rx5RESccsop8cQTT8TgwYPrOluD4g8uANsTp4izPfD6DrZeSZZl2eYWuOOOO2LZsmVx5ZVXRkTEhAkTYtasWfHd7353syuuqKiIE088MXpd3yt2abHLJpe7/PArY4+dP7XB9OpVK6NRk6YbHbNy9cpo2njDee8t/0/c9sdbN5srj01l2lyuus60uVwy1U2mlLns5588l0x1kyllLvv5J88lU91kSpnLfv7Jc8lUN5lS5rKff/Jc20umykWVUX5teTzzzDPRpk2b9ebVWjT/+7//O5YvX75e0fzrX/8a3/nOdza70XVFc2Mb3Rplz5ZFWZeymu+L4V3Uj2cqBh/NVCzvwjWEn93GMkUUPlcxaAg/v2LQEDIV635ejPuUTBvXEPbzYlHsPz+vETatGPcpz+f5NYSfXzFI9bPbXOer9WZArVq1ikWLFtV8v3DhwmjZsmWtG6XwNvWHwqkeALB98xoBqGu1Fs2jjz46pk+fHu+9914sX748fv/738dxxx1XH9kAAABogGq9GVCrVq3iyiuvjHPPPTdWrVoVZ555ZnTo0KE+sgEAANAA1Vo0IyJ69eoVvXr1qussAAAAbANqPXUWAAAAtoSiCQAAQFK5Tp0tNlXVqzZ6u10fngsAAFB4DbJouiU3ANsTb7ACxc7zVMNVVz87p84CQJHzBitQ7DxPNVx19bNrkEc0AQDYtjgiBtsWRRMAoA4pUPk4IpbPpvandfM8XhQLp84CANQhBYqUNrff2KcoJo5oUq+8qwsUO89TAPDJKZrUq2J8V9cpKPl5Ad5wFet+Xoz7VDE+TwFAQ+PUWbZ7TkHJzwvwhqtY93P7FABsmxRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIqnFdrbi6ujoiIhYsWJBkfZWLKqOioiLJulKRKR+Z8ivGXDLlI1N+xZhLpnxkyq8Yc8mUj0z5FWMumfJJlWld11vX/T6qJMuy7BNvYSNeeumlGDBgQF2sGgAAgCJx3333xWGHHbbetDormitWrIjZs2fHXnvtFY0aNaqLTQAAAFAg1dXV8e6770b79u2jWbNm682rs6IJAADA9snNgAAAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAkmpc6AAb869//SuefPLJWLBgQeywww7RsmXLOPbYY+OQQw4pdLSi8vTTT8f8+fOjc+fO8elPf7pm+gMPPBBnnXVWwXLNmTMndtxxx2jVqlVMmDAhXn/99fjyl78c3bt3L1imYjNr1qzo0KFDRERMnz49nnvuuWjcuHGcfPLJ0bFjx4Llev7556Njx46x2267xaRJk2LWrFlx8MEHR9++fQuSZ8yYMTFkyJD41Kc+VZDtAwCwdYruiOZ9990XV111VUREHHLIIXHwwQdHRMR1110Xd911VyGjFZUf/OAHce+998acOXPi7LPPjkceeaRm3vjx4wuW65e//GVcdNFFcfbZZ8c3v/nNeOyxx2L//feP3/72t3H77bcXLNfHjR07tqDbHz16dESs3d9vuOGGaN26dbRo0SJGjRoV9957b0EyXX/99XHHHXfEypUr45Zbbony8vI48MAD46mnnooxY8YUJNOkSZOiX79+8fvf/74g29+c6dOnx1/+8peIiLjrrrti0KBB8eMf/ziqqqoKlunpp5+OESNGxEUXXRSDBg2KG264oSYjAEB9KsmyLCt0iI865ZRTYtKkSbHjjjuuN3358uVxxhlnxBNPPFGQXPPmzdvs/H322aeekqzVq1evmDhxYjRu3DjmzJkTF154YQwbNixOPfXU6N27d0yaNKle83w010MPPRSLFi2Knj17xowZM6Jp06ZRVVUVZ555Zjz66KP1numb3/zmBtOmTJkSJ5xwQkREfO9736vvSHHGGWfExIkT4/TTT49f/vKXsfvuu0dERGVlZZx55pkF2c+7d+8e5eXl0ahRo+jdu3c8+OCDUVpaGtXV1dGzZ894/PHH6z1T79694wc/+EGUlZXFypUr44ILLogTTjghmjVrVu9ZPur73/9+vPTSS7F69epo06ZNlJSURJ8+fWLKlClRXV1dkGJ+xx13xCuvvBLHHntsTJkyJQ477LBo1qxZTJgwIc4777zo169fvWeC7cXTTz8dJ510UkRETJgwIf7whz/UnKXibB62Fc8//3w88cQT651xeNxxx8Upp5xS6GhFY/Xq1XHffffF/Pnz46STTorDDjusZt64ceNiyJAhBck1bdq02HXXXeMLX/hCjBs3Ll5//fU49NBD48ILL4xGjRrV2XaL7tTZxo0bx+rVqzeYvmLFimjSpEkBEq116aWXxpw5c6Jly5bx8W5eUlISzzzzTL3mybIsSkpKIiKibdu2cccdd8QFF1wQe+yxR830QlizZk2UlpbGvvvuGxdeeGE0bdq0Zl51dXVBMjVv3jwmTZoUgwYNit122y0iImbMmBFHHHFEQfJErH0iWrNmTey5556x00471UwvLS2NHXYozIkGzZo1i8WLF0fLli1jzz33jGXLlkVpaWksX748GjcuzFNFSUlJHHjggXHvvffGtGnT4oEHHojrr78+2rZtG61bt44f/vCHBcn1/PPPxyOPPBJVVVXRuXPnmDp1ajRp0iSOO+64OP300wuSafLkyTFp0qQoKSmJvn37xiWXXBL33HNP9O3bN/r161fQounFSe28OPlkrrrqqvjRj35UsO3ffvvtcdJJJ8W4cePipZdeioEDB0aWZfHAAw/E66+/HldeeWW9Z1q9enU89NBDcfLJJ8euu+4aP/vZz+Kvf/1rHHzwwXHppZeu9/e5vgwaNCiuvfba2G+//ep925uyevXqmDRpUjRr1ixOOeWU+N73vhd/+tOfon379jF8+PBo3rx5QXKtWbMm7rnnnnjmmWfi3XffjSZNmsSnP/3p6N69e/To0aPe89x6660xa9asOO2006Jly5YREbFw4cJ46KGH4pVXXonhw4fXe6Y//elPm51/+OGH11OS/9+oUaNizZo18dnPfja+8Y1vRL9+/WLQoEERsfYgRyGey2+66aZ4+eWXo7KysuY1Xv/+/eOJJ56IG264Ia677ro623bRFc1BgwZF7969o1OnTrHXXntFRMS7774bM2bMKMgT9Tq/+c1v4pxzzonRo0fHoYceWrAc63Tr1i0GDhwYI0aMiA4dOkS7du3i1ltvjcGDBxf01L2uXbvG1772tbjnnntqfplee+21GDlyZJx66qkFyTR8+PA47rjj4pZbbomrrroqjjzyyPjVr34VZ5xxRkHyRETsvvvu0blz5ygpKYnRo0fH2LFjY/r06XHTTTdFt27dCpJp8ODBceaZZ0aPHj3iM5/5TAwcODA6deoUU6dOjYsvvrggmT76ps7RRx8dRx99dKxatSpef/31mDt3bkEyrcu1dOnSWLZsWaxYsSIqKytj9913jxUrVsSqVasKkmnlypWxfPny2GmnnWLFihWxZMmSiIjYaaedCvbmRURxvjip7YyP3r1710uOj/LiJL+BAwdu8Ibq7Nmz49xzz42IiHvuuacQsSIi4qmnnooJEybUlLguXbpEz549C/L6Zd3v1imnnBI33nhjLFu2LM4555x49tln41vf+lZB3qibOXNmzeU1AwcOLOgBhHVGjhwZy5Yti6qqqrj33nujQ4cOcfPNN8czzzwTo0aNittuu60gucaOHRurVq2Kiy++OJ588sn4/Oc/H3vvvXfcc889MWfOnLjsssvqNc/kyZPj8ccf3+DvSc+ePaNnz54FeS6//fbb45VXXokOHTps9CBQIZ4LZs+eXXP2Xu/eveP888+PZs2axfnnn79Bxvry3HPPRXl5eSxZsiROPvnkePHFF2OHHXaI4447rs7/3hVd0ezVq1ccccQRMX369Fi4cGFkWRaHHXZYDBkyJFq1alWwXLvsskuMGTMmJkyYUBRFc/DgwXHooYfGzjvvXDPt0EMPjYcffrig17JeccUV8ac//Wm9d7pLS0tjyJAh0blz54Ll6tSpU3zhC1+I0aNHx7PPPluwo6vrrHvye/PNN+ODDz6IiLWP0+WXXx5dunQpSKYTTjgh2rVrF08//XT8+9//ji9+8Yux8847x9ixY2tuXFTfBgwYsMG0Jk2aRPv27aN9+/YFSLTWJZdcEl27do0sy2LYsGFx4YUXRqdOnWL69OkFu3FSnz59on///nHMMcfE1KlTo0+fPvH222/HZZddFj179ixIpojifHEyY8aMePLJJzf5pk4hiqYXJ/l169Ytfvazn8XQoUNj3333jSzL4rrrrovBgwcXLNOyZcti0aJFsc8++8SyZctqiuaKFSsKdkbIG2+8EeXl5RGx9sjPI488EiUlJdG5c+eCnc7bqlWruPPOO+P73/9+dO3aNfr37x89evSIfffdtyB5IiJeffXVKC8vj+rq6ujcuXPNfS4OPPDAgp2hErH2eWrdc8Kxxx4bAwYMiN/85jfRuXPnOO200+q9aDZt2jQWLFiwwaVi8+bNi9LS0nrNss7Pf/7zOPfcc+O8886LE088sSAZPi7Lsli2bFnstNNOsccee8TPf/7z6N+/f+y5554FPeOwqqoqdt999xg+fHjN3+MPP/xwo2eRJpXBdubBBx/MLrjggkLHoIFbvnx5VllZmWVZlr322mvZnXfemU2dOrWgmaZNm5bdeeed2bRp07Isy7LKysrstddeK2imXr16ZW+//fYG0//3f/83O+200wqQaK1LL700mzBhQsG2/3E9e/bMPvzww5rvFyxYkB1//PHZo48+mvXu3bsgmXr06JGtWLEiy7K1z5vrLF26NOvevXtBMq3zj3/8IzvnnHOyiRMnZlmWFewxWmfEiBFZz549s0MPPTQbPHhwlmVZ9uSTT2ZdunTJ7r///oJk6tevX/bGG29kWZZll112Wc3v4YIFC7LTTz+9IJk++nN66623shtvvDHr2rVr1rlz5+yss84qSKbTTjste/PNN7OZM2dmHTp0yObOnZtlWZYtXry4oPt59+7ds0WLFmVZtvZntu6xq6yszHr06FHveV544YWsS5cu2fnnn58NGzYsGzZsWHb++ednXbp0yaZPn17vedZ58803s5tuuqlg2/+48ePHZ127dq35O5xlWfbPf/4z69KlS3bIIYcUJNN9992Xde3aNVu9enXNtD//+c/Z8ccfnz3wwAN1uu2iuxkQANuOadOmxbXXXhtt27Zd73KIOXPmxPe+97046qijCpJr4cKFUV5eHhdddFFBtv9xDzzwQNx1111RVlYWnTp1ioi1H/V18cUXx+LFi2PWrFn1nun++++PX/3qVzF58uSas1RefvnluOaaa2LQoEEFv8FUVVVV/OhHP4p58+bFv/71r3jssccKmidi7Y0LFy1aFPvtt1+88cYbkWVZfO5znytIlr/85S8xZMiQ+PKXvxw77rhjvPDCC9GxY8d49dVX49vf/nZBzjLa1M0K//Of/8TcuXMLcvbM1KlTY+TIkbFmzZoYNWpU/PCHP4zPfvaz8de//jUuv/zygh29f/jhh+PWW2+NL33pSzFz5sy4+uqr45BDDonzzjsvhgwZUpCzZx577LF46623olGjRrHffvtFq1atomPHjjFx4sSCfaxeMX7U389//vOoqqqKXr161WSqrKyM+++/P/7rv/6rIJl++ctfRqNGjWoepwULFsTSpUvj5ZdfrtPHSdEEoE6tXLkyZs2aVXM5xLoXJ4U63arY7iK+zpw5c6K0tHS97VdWVsZDDz0U559/fkEyVVRURJs2bWq+X/fipF27dgXJszEvvPBCPPbYY3HDDTcULEOx7lOVlZUxbdq0+Pe//x3V1dXRokWLOOaYY6J169YFyfPcc88V9DKaPBYtWhQvvfRStGvXLg444ICCZnnrrbfi9ddfj89//vPRtm3bqKqqimXLlhXkBkU/+MEP4tVXX43PfOYzMXny5BgxYkTNqcXr7qRfiEyzZ8+OAw44IB5//PEYPny4TEWWqeiu0QRg27HuBfi+++673nVYixYtiojCvAAvtruIR6x/ndPHS0vXrl3rPc+6HDvssMMGeXbeeeeYN29ewcrTx/Psv//+MXjw4Jrp9qm11j0eH7+mfc2aNQX7+bVr126zpbwQmTaWZ92R1ULv502bNl0vyzrLli2r91zPPfdczcfqDRw4MC688MIoLS2NU089taDXkRdjpkmTJkWjRo2KKlOhHidFE4A6U4wvwIvtLuIRxfk4FWOmTeUqKSmp+dgv+9Raxfg4FeM+VYyZijFXVoQfq1esmdYppkwFe5zq9ApQALZrS5cuzXr16pW99NJLhY6ynpkzZ2YjR44sdIwaxfg4FWOmLCveXPap2smUX7HlGjduXNa/f/9s5syZNdNeeuml7Kijjsq+/OUvyyTTRrlGE4A6NWvWrJgwYUJ897vfLXSUolaMj1MxZooo3lzFphgfJ5nyK7Zc06dPj5YtW6537er8+fPjrrvuimuvvVYmmTagaAIAAJDUDrUvAgAAAPkpmgAAACSlaAIAAJCUogkAAEBS/x+ie/MBveAjMAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_lr = results_lr.head(35)\n", + "results_lr.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 267, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_lr.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 268, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4.440892098500626e-16" + ] + }, + "execution_count": 268, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_lr=np.mean(results_lr.error)\n", + "meanerror_lr" + ] + }, + { + "cell_type": "code", + "execution_count": 269, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
05.272622
15.254613
25.097628
35.200779
45.062655
55.158872
65.022119
\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 5.272622\n", + "1 5.254613\n", + "2 5.097628\n", + "3 5.200779\n", + "4 5.062655\n", + "5 5.158872\n", + "6 5.022119" + ] + }, + "execution_count": 269, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 270, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/lr.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline kn" + ] + }, + { + "cell_type": "code", + "execution_count": 271, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.10545454545454558\n", + "Adjusted R^2: -0.28590909090909067\n", + "MAE: 0.14166666666666672\n", + "MSE: 0.06833333333333333\n", + "RMSE: 0.2614064523559687\n" + ] + } + ], + "source": [ + "pred = pipeline_kn.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 272, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
05.05.00.0
15.05.00.0
25.05.00.0
35.05.2-0.2
45.05.2-0.2
55.05.00.0
65.05.2-0.2
75.05.00.0
85.05.00.0
95.05.2-0.2
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 5.0 5.0 0.0\n", + "1 5.0 5.0 0.0\n", + "2 5.0 5.0 0.0\n", + "3 5.0 5.2 -0.2\n", + "4 5.0 5.2 -0.2\n", + "5 5.0 5.0 0.0\n", + "6 5.0 5.2 -0.2\n", + "7 5.0 5.0 0.0\n", + "8 5.0 5.0 0.0\n", + "9 5.0 5.2 -0.2" + ] + }, + "execution_count": 272, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_kn = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_kn.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 273, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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stb2vb0KMVOWFWYumXIjU+4KMZdMuclHpm7XTdrkv3xnykUh5pIpNzLlrq5zbe71oD68JuzImbbU+bIsy2q8dLZp06bRvn372HvvvSMi4tRTT405c+ZEnz59PnUD3mCnBiXx1ui+yfa3wcHDfpt8nyl94QtfiDfeeGOL6+fPnx8/+9nP4uabb855ny8890Is/OfCuPrqq1NEBAAA2GY13gzo5JNPjunTp8eHH34YVVVV8fzzz8fhhx9eF9k+8xYuXBjz58/fpjFf6/A1JRMAAMirGs9otmvXLi699NI477zzYs2aNfG1r30t+vZNf/YxXwYPHhxHHXVUnHPOORERMWDAgLjhhhuiXbt2m2w7dOjQKCoqijfffDMqKiqi30X94sJzL4xx48bFK6+8EosWLYr+/fvHCSecEKWlpbFs2bJo3Lhx3HTTTXHYYYdFeXl5DB48OFasWLHZ/X/SqFGjory8PL797W9H586d49Zbb41169ZF69at47rrrosbb7wxli9fHu+++2507do1brjhhniq7Kl4c86bMWbMmDjllFOiR48eMX369Fi5cmXccsst0aZNm+SPIQAAwMfVWDQjIs4666w466yzajtLXvTt2zfGjRsX55xzTixYsCDef//9rZbAd955Jx566KF47733olfvXtH11K4REVFZWRmTJ0+OiIhzzz03RowYEYcddlj84x//iCuuuCKmTJkS3/3ud6NPnz7x9a9/PSZNmhTjx4/farbhw4fHT37ykxg5cmT88Y9/jHnz5sX//M//xO677x6//OUvo1u3btG7d+9Yvnx5dOjQIS6++OJN9tGkSZN45JFH4te//nXceeedMW7cuE/xaAEAANSsxktnd3THHntsLFmyJMrLy2PSpEnRs2fPrW7fp0+faNiwYbRo0SLatGsTf/7znyMiom3bthER8dFHH8XcuXPjW9/6VvTs2TOuv/76WLFiRfz73/+OF198Mc4888yIiOjRo0c0bNhwm7IedNBBsfvu6+8oe8kll8R+++0Xv/zlL2P06NGxZs2aWLly5SZjTjzxxIiIaN26dSxbtmybjgcAALA9cjqjuSMrKiqKXr16xRNPPBFPPfVU3HXXXVvdvri4uPrrdevWRYMG6x/Cxo0bVy8rKSmJxx57rHq7xYsXR5MmTSIiIvt/nyZTVFRU40fEfNKGY0REjBkzJubP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FWIumXIjU+4KMZdMuZEpd4WYS6bcyJS7QswlU262N1N5eXmURdlm1+V019k///nPceGFF8b1118fvXv33q4QAAAAfDbUeEZz0aJFccUVV8TYsWOjffv2dZEJAACAeqzGovnLX/4yVq9eHWPGjKledu6550a/fv1qNRgAAAD1U41Fc/jw4TF8+PC6yAIAAMAOIKf3aAIAAECuFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJLKuWhWVFREt27dory8vDbzAAAAUM/lVDRnz54d/fr1i3nz5tVyHAAAAOq7nIrmww8/HCNHjoxmzZrVdh4AAADquQa5bDR69OjazgEAAMAOIqei+WncNuu22K3pbltcX9qxdLv2W/rs9o3Lad8FmCli+3LJlOOYAswUYZ7nPEam3MYUYKYI8zznMTLlNqYAM0WY5zmPkSm3MQWYKcI8z3nMDpSpYmnFFtfVetG85rhromXLlsn3u72TrTbJlBuZcleIuWTKjUy5K8RcMuVGptwVYi6ZciNT7goxl0y52d5M5eXlURZlm13n400AAABIStEEAAAgqW26dHbatGm1lQMAAIAdhDOaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomALBDqKxas13rgB3Tlv7dez2oGw3yHQAAIIWS4oZx9vj/2uy6h8/5WR2nAfJtS68JXg/qhjOaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQVE5Fs6ysLLp06RKnn356PPDAA7WdCQAAgHqsQU0bvPPOOzF27Nh49NFHo6SkJM4999w49thj49BDD62LfAAAANQzNZ7RnDFjRhx33HHRpEmT2GWXXeKMM86Ip556qi6yAQAAUA8VZVmWbW2DO++8M1asWBHXXnttRERMmDAh5syZE9/97ne3uuPy8vI49dRTo/vo7rFb0922uN1VR18be++65ybLq9asjuKGjTY7ZvWaldGo4c6bLH923rPx7Lxnt5orF1vKtLVctZ1pa7nqVaa1q6NRg02Xv7/y3/HjP95eUJlS5tph5nkhPn+FOM8LMVOhzvNanlM7zDwvxEzmeU6ZtpYrr/O8EJ8/mXLLVKjz3O8tuWUqxDn1KTJVLK2IsmFlMXXq1GjZsuVG62osmv/93/8dK1eu3Kho/vWvf43vfOc7Wz3ohqK5uYNuj9JnS6O0Y+mn3k9KMuXmk5nOHv9fm2zz8Dk/q8NEuWWKyH+uQlAfnr9CUB8yFeo8L8Q5JdPm1Yd5Xig8f7mRKTf15fW8EMiUm1SZttb5arx0tnnz5rF06dLq75csWRLNmjX71KEAAADYMdVYNI8//viYOXNmvP/++7Fy5cr4/e9/HyeddFJdZAMAAKAeqvGus82bN49rr702zj///FizZk2cddZZ0bZt27rIBgAAQD1UY9GMiOjevXt07969trMAAACwA6jx0lkAAADYFoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJNch3AD5bKqvWxMPn/Gyzy0uKG+Yh0ZYzbViXr1yFqBCfP3JTqPO8EOeUTKTm+SOlQn09h09yRpM6taUXv3y+KG7t2F6sN1aIzx+5KdR5XohzSiZS8/yRUqG+nsMnKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJBUg9racVVVVURELF68OMn+KpZWRHl5eZJ9pSJTbmTKXSHmkik3MuWuEHPJlBuZcleIuWTKjUy5K8RcMuUmVaYNXW9D9/u4oizLsk99hM146aWXon///rWxawAAAArEAw88EEcdddRGy2qtaK5atSrmzp0b++67bxQXF9fGIQAAAMiTqqqqePfdd6NNmzbRuHHjjdbVWtEEAADgs8nNgAAAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAkmqQ7wCb889//jOmTJkSixcvjp122imaNWsWJ554YhxxxBH5jlZQnnnmmVi0aFF06NAhPve5z1UvHz9+fJxzzjl5yzVv3rzYeeedo3nz5jFhwoR444034qtf/Wp06dIlb5kKzZw5c6Jt27YRETFz5sx47rnnokGDBnH66adHu3bt8pbr+eefj3bt2sUee+wRkyZNijlz5sThhx8effv2zUueUaNGxaBBg2LPPffMy/EBANg+BXdG84EHHojrrrsuIiKOOOKIOPzwwyMi4qabboq77747n9EKyg9+8IO4//77Y968eXHuuefGY489Vr3uoYceyluue++9Ny655JI499xz41vf+lY88cQTcdBBB8Vvf/vbuOOOO/KW65PGjBmT1+OPHDkyItbP95tvvjlatGgRTZs2jREjRsT999+fl0yjR4+OO++8M1avXh233XZblJWVxaGHHhpPP/10jBo1Ki+ZJk2aFGeffXb8/ve/z8vxt2bmzJnxl7/8JSIi7r777hg4cGD85Cc/icrKyrxleuaZZ2Lo0KFxySWXxMCBA+Pmm2+uzggAUJeKsizL8h3i484444yYNGlS7LzzzhstX7lyZfTu3TueeuqpvORauHDhVtfvv//+dZRkve7du8fEiROjQYMGMW/evLj44otj8ODBceaZZ0avXr1i0qRJdZrn47keeeSRWLp0aXTr1i1mzZoVjRo1isrKyjjrrLPi8ccfr/NM3/rWtzZZNm3atDjllFMiIuJ73/teXUeK3r17x8SJE6Nnz55x7733xl577RURERUVFXHWWWflZZ536dIlysrKori4OHr16hUPP/xwlJSURFVVVXTr1i2efPLJOs/Uq1ev+MEPfhClpaWxevXquOiii+KUU06Jxo0b13mWj/v+978fL730UqxduzZatmwZRUVF0adPn5g2bVpUVVXlpZjfeeed8corr8SJJ54Y06ZNi6OOOioaN24cEyZMiAsuuCDOPvvsOs8EnxXPPPNMnHbaaRERMWHChPjDH/5QfZWKq3nYUTz//PPx1FNPbXTF4UknnRRnnHFGvqMVjLVr18YDDzwQixYtitNOOy2OOuqo6nXjxo2LQYMG5SXXjBkzYvfdd48vfelLMW7cuHjjjTfiyCOPjIsvvjiKi4tr7bgFd+lsgwYNYu3atZssX7VqVTRs2DAPida7/PLLY968edGsWbP4ZDcvKiqKqVOn1mmeLMuiqKgoIiJatWoVd955Z1x00UWx9957Vy/Ph3Xr1kVJSUkccMABcfHFF0ejRo2q11VVVeUlU5MmTWLSpEkxcODA2GOPPSIiYtasWXHMMcfkJU/E+heidevWxT777BO77LJL9fKSkpLYaaf8XGjQuHHjeO+996JZs2axzz77xIoVK6KkpCRWrlwZDRrk56WiqKgoDj300Lj//vtjxowZMX78+Bg9enS0atUqWrRoET/84Q/zkuv555+Pxx57LCorK6NDhw4xffr0aNiwYZx00knRs2fPvGSaPHlyTJo0KYqKiqJv375x2WWXxX333Rd9+/aNs88+O69F0y8nNfPLyadz3XXXxY9+9KO8Hf+OO+6I0047LcaNGxcvvfRSDBgwILIsi/Hjx8cbb7wR1157bZ1nWrt2bTzyyCNx+umnx+677x4///nP469//Wscfvjhcfnll2/0/+e6MnDgwBg2bFgceOCBdX7sLVm7dm1MmjQpGjduHGeccUZ873vfiz/96U/Rpk2bGDJkSDRp0iQvudatWxf33XdfTJ06Nd59991o2LBhfO5zn4suXbpE165d6zzP7bffHnPmzIkePXpEs2bNIiJiyZIl8cgjj8Qrr7wSQ4YMqfNMf/rTn7a6/uijj66jJP/fiBEjYt26dfH5z38+vvnNb8bZZ58dAwcOjIj1Jzny8Vp+6623xssvvxwVFRXVv+P169cvnnrqqbj55pvjpptuqrVjF1zRHDhwYPTq1Svat28f++67b0REvPvuuzFr1qy8vFBv8Jvf/CbOO++8GDlyZBx55JF5y7FB586dY8CAATF06NBo27ZttG7dOm6//fa48sor83rpXqdOneI//uM/4r777qv+x/T666/H8OHD48wzz8xLpiFDhsRJJ50Ut912W1x33XVx7LHHxq9+9avo3bt3XvJEROy1117RoUOHKCoqipEjR8aYMWNi5syZceutt0bnzp3zkunKK6+Ms846K7p27RoHH3xwDBgwINq3bx/Tp0+PSy+9NC+ZPv5HneOPPz6OP/74WLNmTbzxxhsxf/78vGTakGv58uWxYsWKWLVqVVRUVMRee+0Vq1atijVr1uQl0+rVq2PlypWxyy67xKpVq2LZsmUREbHLLrvk7Y8XEYX5y0lNV3z06tWrTnJ8nF9OcjdgwIBN/qA6d+7cOP/88yMi4r777stHrIiIePrpp2PChAnVJa5jx47RrVu3vPz+suHf1hlnnBG33HJLrFixIs4777x49tln48Ybb8zLH+pmz55d/faaAQMG5PUEwgbDhw+PFStWRGVlZdx///3Rtm3bGDt2bEydOjVGjBgRP/7xj/OSa8yYMbFmzZq49NJLY8qUKfHFL34x9ttvv7jvvvti3rx5ccUVV9RpnsmTJ8eTTz65yf9PunXrFt26dcvLa/kdd9wRr7zySrRt23azJ4Hy8Vowd+7c6qv3evXqFRdeeGE0btw4Lrzwwk0y1pXnnnsuysrKYtmyZXH66afHiy++GDvttFOcdNJJtf7/u4Irmt27d49jjjkmZs6cGUuWLIksy+Koo46KQYMGRfPmzfOWa7fddotRo0bFhAkTCqJoXnnllXHkkUfGrrvuWr3syCOPjEcffTSv72W9+uqr409/+tNGf+kuKSmJQYMGRYcOHfKWq3379vGlL30pRo4cGc8++2zezq5usOHF76233ooPP/wwItY/TldddVV07NgxL5lOOeWUaN26dTzzzDPxr3/9K7785S/HrrvuGmPGjKm+cVFd69+//ybLGjZsGG3atIk2bdrkIdF6l112WXTq1CmyLIvBgwfHxRdfHO3bt4+ZM2fm7cZJffr0iX79+sUJJ5wQ06dPjz59+sSCBQviiiuuiG7duuUlU0Rh/nIya9asmDJlyhb/qJOPoumXk9x17tw5fv7zn8c111wTBxxwQGRZFjfddFNceeWVecu0YsWKWLp0aey///6xYsWK6qK5atWqvF0R8uabb0ZZWVlErD/z89hjj0VRUVF06NAhb5fzNm/ePO666674/ve/H506dYp+/fpF165d44ADDshLnoiIV199NcrKyqKqqio6dOhQfZ+LQw89NG9XqESsf53a8Jpw4oknRv/+/eM3v/lNdOjQIXr06FHnRbNRo0axePHiTd4qtnDhwigpKanTLBv84he/iPPPPz8uuOCCOPXUU/OS4ZOyLIsVK1bELrvsEnvvvXf84he/iH79+sU+++yT1ysOKysrY6+99oohQ4ZU///4o48+2uxVpEll8Bnz8MMPZxdddFG+Y1DPrVy5MquoqMiyLMtef/317K677sqmT5+e10wzZszI7rrrrmzGjBlZlmVZRUVF9vrrr+c1U/fu3bMFCxZssvx///d/sx49euQh0XqXX355NmHChLwd/5O6deuWffTRR9XfL168ODv55JOzxx9/POvVq1deMnXt2jVbtWpVlmXrXzc3WL58edalS5e8ZNrg73//e3beeedlEydOzLIsy9tjtMHQoUOzbt26ZUceeWR25ZVXZlmWZVOmTMk6duyYPfjgg3nJdPbZZ2dvvvlmlmVZdsUVV1T/O1y8eHHWs2fPvGT6+PP09ttvZ7fcckvWqVOnrEOHDtk555yTl0w9evTI3nrrrWz27NlZ27Zts/nz52dZlmXvvfdeXud5ly5dsqVLl2ZZtv452/DYVVRUZF27dq3zPC+88ELWsWPH7MILL8wGDx6cDR48OLvwwguzjh07ZjNnzqzzPBu89dZb2a233pq343/SQw89lHXq1Kn6/8NZlmX/+Mc/so4dO2ZHHHFEXjI98MADWadOnbK1a9dWL/vzn/+cnXzyydn48eNr9dgFdzMgAHYcM2bMiGHDhkWrVq02ejvEvHnz4nvf+14cd9xxecm1ZMmSKCsri0suuSQvx/+k8ePHx9133x2lpaXRvn37iFj/UV+XXnppvPfeezFnzpw6z/Tggw/Gr371q5g8eXL1VSovv/xy3HDDDTFw4MC832CqsrIyfvSjH8XChQvjn//8ZzzxxBN5zROx/saFS5cujQMPPDDefPPNyLIsvvCFL+Qly1/+8pcYNGhQfPWrX42dd945XnjhhWjXrl28+uqr8e1vfzsvVxlt6WaF//73v2P+/Pl5uXpm+vTpMXz48Fi3bl2MGDEifvjDH8bnP//5+Otf/xpXXXVV3s7eP/roo3H77bfHV77ylZg9e3Zcf/31ccQRR8QFF1wQgwYNysvVM0888US8/fbbUVxcHAceeGA0b9482rVrFxMnTszbx+oV4kf9/eIXv4jKysro3r17daaKiop48MEH4z//8z/zkunee++N4uLi6sdp8eLFsXz58nj55Zdr9XFSNAGoVatXr445c+ZUvx1iwy8n+brcqtDuIr7BvHnzoqSkZKPjV1RUxCOPPBIXXnhhXjKVl5dHy5Ytq7/f8MtJ69at85Jnc1544YV44okn4uabb85bhkKdUxUVFTFjxoz417/+FVVVVdG0adM44YQTokWLFnnJ89xzz+X1bTS5WLp0abz00kvRunXrOOSQQ/Ka5e2334433ngjvvjFL0arVq2isrIyVqxYkZcbFP3gBz+IV199NQ4++OCYPHlyDB06tPrS4g130s9Hprlz58YhhxwSTz75ZAwZMkSmAstUcO/RBGDHseEX8AMOOGCj92EtXbo0IvLzC3ih3UU8YuP3OX2ytHTq1KnO82zIsdNOO22SZ9ddd42FCxfmrTx9Ms9BBx0UV155ZfVyc2q9DY/HJ9/Tvm7durw9f61bt95qKc9Hps3l2XBmNd/zvFGjRhtl2WDFihV1nuu5556r/li9AQMGxMUXXxwlJSVx5pln5vV95IWYadKkSVFcXFxQmfL1OCmaANSaQvwFvNDuIh5RmI9TIWbaUq6ioqLqj/0yp9YrxMepEOdUIWYqxFxZAX6sXqFm2qCQMuXtcarVd4AC8Jm2fPnyrHv37tlLL72U7ygbmT17djZ8+PB8x6hWiI9TIWbKssLNZU7VTKbcFVqucePGZf369ctmz55dveyll17KjjvuuOyrX/2qTDJtlvdoAlCr5syZExMmTIjvfve7+Y5S0ArxcSrETBGFm6vQFOLjJFPuCi3XzJkzo1mzZhu9d3XRokVx9913x7Bhw2SSaROKJgAAAEntVPMmAAAAkDtFEwAAgKQUTQAAAJJSNAEAAEjq/wJWgFpQC3RLwQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_kn = results_kn.head(35)\n", + "results_kn.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 274, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_lr.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 275, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.008333333333333415" + ] + }, + "execution_count": 275, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_kn=np.mean(results_kn.error)\n", + "meanerror_kn" + ] + }, + { + "cell_type": "code", + "execution_count": 276, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
05.272622
15.254613
25.097628
35.200779
45.062655
55.158872
65.022119
\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 5.272622\n", + "1 5.254613\n", + "2 5.097628\n", + "3 5.200779\n", + "4 5.062655\n", + "5 5.158872\n", + "6 5.022119" + ] + }, + "execution_count": 276, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 277, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/kn.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline xgbr" + ] + }, + { + "cell_type": "code", + "execution_count": 278, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'pipeline_gbr' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mpred\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpipeline_gbr\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpipelines\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m\"R^2:\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mmetrics\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mr2_score\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpred\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Adjusted R^2:\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m1\u001b[0m \u001b[1;33m-\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0mmetrics\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mr2_score\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpred\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m*\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_train\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_train\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0mX_test\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"MAE:\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mmetrics\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmean_absolute_error\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpred\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"MSE:\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mmetrics\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmean_squared_error\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpred\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'pipeline_gbr' is not defined" + ] + } + ], + "source": [ + "pred = pipeline_gbr.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 279, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
05.05.00.0
15.05.00.0
25.05.00.0
35.05.2-0.2
45.05.2-0.2
55.05.00.0
65.05.2-0.2
75.05.00.0
85.05.00.0
95.05.2-0.2
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 5.0 5.0 0.0\n", + "1 5.0 5.0 0.0\n", + "2 5.0 5.0 0.0\n", + "3 5.0 5.2 -0.2\n", + "4 5.0 5.2 -0.2\n", + "5 5.0 5.0 0.0\n", + "6 5.0 5.2 -0.2\n", + "7 5.0 5.0 0.0\n", + "8 5.0 5.0 0.0\n", + "9 5.0 5.2 -0.2" + ] + }, + "execution_count": 279, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_xgbr = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_xgbr.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 280, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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stb2vb0KMVOWFWYumXIjU+4KMZdMuclHpm7XTdrkv3xnykUh5pIpNzLlrq5zbe71oD68JuzImbbU+bIsy2q8dLZp06bRvn372HvvvSMi4tRTT405c+ZEnz59PnUD3mCnBiXx1ui+yfa3wcHDfpt8nyl94QtfiDfeeGOL6+fPnx8/+9nP4uabb855ny8890Is/OfCuPrqq1NEBAAA2GY13gzo5JNPjunTp8eHH34YVVVV8fzzz8fhhx9eF9k+8xYuXBjz58/fpjFf6/A1JRMAAMirGs9otmvXLi699NI477zzYs2aNfG1r30t+vZNf/YxXwYPHhxHHXVUnHPOORERMWDAgLjhhhuiXbt2m2w7dOjQKCoqijfffDMqKiqi30X94sJzL4xx48bFK6+8EosWLYr+/fvHCSecEKWlpbFs2bJo3Lhx3HTTTXHYYYdFeXl5DB48OFasWLHZ/X/SqFGjory8PL797W9H586d49Zbb41169ZF69at47rrrosbb7wxli9fHu+++2507do1brjhhniq7Kl4c86bMWbMmDjllFOiR48eMX369Fi5cmXccsst0aZNm+SPIQAAwMfVWDQjIs4666w466yzajtLXvTt2zfGjRsX55xzTixYsCDef//9rZbAd955Jx566KF47733olfvXtH11K4REVFZWRmTJ0+OiIhzzz03RowYEYcddlj84x//iCuuuCKmTJkS3/3ud6NPnz7x9a9/PSZNmhTjx4/farbhw4fHT37ykxg5cmT88Y9/jHnz5sX//M//xO677x6//OUvo1u3btG7d+9Yvnx5dOjQIS6++OJN9tGkSZN45JFH4te//nXceeedMW7cuE/xaAEAANSsxktnd3THHntsLFmyJMrLy2PSpEnRs2fPrW7fp0+faNiwYbRo0SLatGsTf/7znyMiom3bthER8dFHH8XcuXPjW9/6VvTs2TOuv/76WLFiRfz73/+OF198Mc4888yIiOjRo0c0bNhwm7IedNBBsfvu6+8oe8kll8R+++0Xv/zlL2P06NGxZs2aWLly5SZjTjzxxIiIaN26dSxbtmybjgcAALA9cjqjuSMrKiqKXr16xRNPPBFPPfVU3HXXXVvdvri4uPrrdevWRYMG6x/Cxo0bVy8rKSmJxx57rHq7xYsXR5MmTSIiIvt/nyZTVFRU40fEfNKGY0REjBkzJubP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FWIumXIjU+4KMZdMuZEpd4WYS6bcyJS7QswlU262N1N5eXmURdlm1+V019k///nPceGFF8b1118fvXv33q4QAAAAfDbUeEZz0aJFccUVV8TYsWOjffv2dZEJAACAeqzGovnLX/4yVq9eHWPGjKledu6550a/fv1qNRgAAAD1U41Fc/jw4TF8+PC6yAIAAMAOIKf3aAIAAECuFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJJSNAEAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAklI0AQAASErRBAAAIClFEwAAgKQUTQAAAJLKuWhWVFREt27dory8vDbzAAAAUM/lVDRnz54d/fr1i3nz5tVyHAAAAOq7nIrmww8/HCNHjoxmzZrVdh4AAADquQa5bDR69OjazgEAAMAOIqei+WncNuu22K3pbltcX9qxdLv2W/rs9o3Lad8FmCli+3LJlOOYAswUYZ7nPEam3MYUYKYI8zznMTLlNqYAM0WY5zmPkSm3MQWYKcI8z3nMDpSpYmnFFtfVetG85rhromXLlsn3u72TrTbJlBuZcleIuWTKjUy5K8RcMuVGptwVYi6ZciNT7goxl0y52d5M5eXlURZlm13n400AAABIStEEAAAgqW26dHbatGm1lQMAAIAdhDOaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomALBDqKxas13rgB3Tlv7dez2oGw3yHQAAIIWS4oZx9vj/2uy6h8/5WR2nAfJtS68JXg/qhjOaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQVE5Fs6ysLLp06RKnn356PPDAA7WdCQAAgHqsQU0bvPPOOzF27Nh49NFHo6SkJM4999w49thj49BDD62LfAAAANQzNZ7RnDFjRhx33HHRpEmT2GWXXeKMM86Ip556qi6yAQAAUA8VZVmWbW2DO++8M1asWBHXXnttRERMmDAh5syZE9/97ne3uuPy8vI49dRTo/vo7rFb0922uN1VR18be++65ybLq9asjuKGjTY7ZvWaldGo4c6bLH923rPx7Lxnt5orF1vKtLVctZ1pa7nqVaa1q6NRg02Xv7/y3/HjP95eUJlS5tph5nkhPn+FOM8LMVOhzvNanlM7zDwvxEzmeU6ZtpYrr/O8EJ8/mXLLVKjz3O8tuWUqxDn1KTJVLK2IsmFlMXXq1GjZsuVG62osmv/93/8dK1eu3Kho/vWvf43vfOc7Wz3ohqK5uYNuj9JnS6O0Y+mn3k9KMuXmk5nOHv9fm2zz8Dk/q8NEuWWKyH+uQlAfnr9CUB8yFeo8L8Q5JdPm1Yd5Xig8f7mRKTf15fW8EMiUm1SZttb5arx0tnnz5rF06dLq75csWRLNmjX71KEAAADYMdVYNI8//viYOXNmvP/++7Fy5cr4/e9/HyeddFJdZAMAAKAeqvGus82bN49rr702zj///FizZk2cddZZ0bZt27rIBgAAQD1UY9GMiOjevXt07969trMAAACwA6jx0lkAAADYFoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJNch3AD5bKqvWxMPn/Gyzy0uKG+Yh0ZYzbViXr1yFqBCfP3JTqPO8EOeUTKTm+SOlQn09h09yRpM6taUXv3y+KG7t2F6sN1aIzx+5KdR5XohzSiZS8/yRUqG+nsMnKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJCUogkAAEBSiiYAAABJKZoAAAAkpWgCAACQlKIJAABAUoomAAAASSmaAAAAJKVoAgAAkJSiCQAAQFKKJgAAAEkpmgAAACSlaAIAAJBUg9racVVVVURELF68OMn+KpZWRHl5eZJ9pSJTbmTKXSHmkik3MuWuEHPJlBuZcleIuWTKjUy5K8RcMuUmVaYNXW9D9/u4oizLsk99hM146aWXon///rWxawAAAArEAw88EEcdddRGy2qtaK5atSrmzp0b++67bxQXF9fGIQAAAMiTqqqqePfdd6NNmzbRuHHjjdbVWtEEAADgs8nNgAAAAEhK0QQAACApRRMAAICkFE0AAACSUjQBAABIStEEAAAgKUUTAACApBRNAAAAkmqQ7wCb889//jOmTJkSixcvjp122imaNWsWJ554YhxxxBH5jlZQnnnmmVi0aFF06NAhPve5z1UvHz9+fJxzzjl5yzVv3rzYeeedo3nz5jFhwoR444034qtf/Wp06dIlb5kKzZw5c6Jt27YRETFz5sx47rnnokGDBnH66adHu3bt8pbr+eefj3bt2sUee+wRkyZNijlz5sThhx8effv2zUueUaNGxaBBg2LPPffMy/EBANg+BXdG84EHHojrrrsuIiKOOOKIOPzwwyMi4qabboq77747n9EKyg9+8IO4//77Y968eXHuuefGY489Vr3uoYceyluue++9Ny655JI499xz41vf+lY88cQTcdBBB8Vvf/vbuOOOO/KW65PGjBmT1+OPHDkyItbP95tvvjlatGgRTZs2jREjRsT999+fl0yjR4+OO++8M1avXh233XZblJWVxaGHHhpPP/10jBo1Ki+ZJk2aFGeffXb8/ve/z8vxt2bmzJnxl7/8JSIi7r777hg4cGD85Cc/icrKyrxleuaZZ2Lo0KFxySWXxMCBA+Pmm2+uzggAUJeKsizL8h3i484444yYNGlS7LzzzhstX7lyZfTu3TueeuqpvORauHDhVtfvv//+dZRkve7du8fEiROjQYMGMW/evLj44otj8ODBceaZZ0avXr1i0qRJdZrn47keeeSRWLp0aXTr1i1mzZoVjRo1isrKyjjrrLPi8ccfr/NM3/rWtzZZNm3atDjllFMiIuJ73/teXUeK3r17x8SJE6Nnz55x7733xl577RURERUVFXHWWWflZZ536dIlysrKori4OHr16hUPP/xwlJSURFVVVXTr1i2efPLJOs/Uq1ev+MEPfhClpaWxevXquOiii+KUU06Jxo0b13mWj/v+978fL730UqxduzZatmwZRUVF0adPn5g2bVpUVVXlpZjfeeed8corr8SJJ54Y06ZNi6OOOioaN24cEyZMiAsuuCDOPvvsOs8EnxXPPPNMnHbaaRERMWHChPjDH/5QfZWKq3nYUTz//PPx1FNPbXTF4UknnRRnnHFGvqMVjLVr18YDDzwQixYtitNOOy2OOuqo6nXjxo2LQYMG5SXXjBkzYvfdd48vfelLMW7cuHjjjTfiyCOPjIsvvjiKi4tr7bgFd+lsgwYNYu3atZssX7VqVTRs2DAPida7/PLLY968edGsWbP4ZDcvKiqKqVOn1mmeLMuiqKgoIiJatWoVd955Z1x00UWx9957Vy/Ph3Xr1kVJSUkccMABcfHFF0ejRo2q11VVVeUlU5MmTWLSpEkxcODA2GOPPSIiYtasWXHMMcfkJU/E+heidevWxT777BO77LJL9fKSkpLYaaf8XGjQuHHjeO+996JZs2axzz77xIoVK6KkpCRWrlwZDRrk56WiqKgoDj300Lj//vtjxowZMX78+Bg9enS0atUqWrRoET/84Q/zkuv555+Pxx57LCorK6NDhw4xffr0aNiwYZx00knRs2fPvGSaPHlyTJo0KYqKiqJv375x2WWXxX333Rd9+/aNs88+O69F0y8nNfPLyadz3XXXxY9+9KO8Hf+OO+6I0047LcaNGxcvvfRSDBgwILIsi/Hjx8cbb7wR1157bZ1nWrt2bTzyyCNx+umnx+677x4///nP469//Wscfvjhcfnll2/0/+e6MnDgwBg2bFgceOCBdX7sLVm7dm1MmjQpGjduHGeccUZ873vfiz/96U/Rpk2bGDJkSDRp0iQvudatWxf33XdfTJ06Nd59991o2LBhfO5zn4suXbpE165d6zzP7bffHnPmzIkePXpEs2bNIiJiyZIl8cgjj8Qrr7wSQ4YMqfNMf/rTn7a6/uijj66jJP/fiBEjYt26dfH5z38+vvnNb8bZZ58dAwcOjIj1Jzny8Vp+6623xssvvxwVFRXVv+P169cvnnrqqbj55pvjpptuqrVjF1zRHDhwYPTq1Svat28f++67b0REvPvuuzFr1qy8vFBv8Jvf/CbOO++8GDlyZBx55JF5y7FB586dY8CAATF06NBo27ZttG7dOm6//fa48sor83rpXqdOneI//uM/4r777qv+x/T666/H8OHD48wzz8xLpiFDhsRJJ50Ut912W1x33XVx7LHHxq9+9avo3bt3XvJEROy1117RoUOHKCoqipEjR8aYMWNi5syZceutt0bnzp3zkunKK6+Ms846K7p27RoHH3xwDBgwINq3bx/Tp0+PSy+9NC+ZPv5HneOPPz6OP/74WLNmTbzxxhsxf/78vGTakGv58uWxYsWKWLVqVVRUVMRee+0Vq1atijVr1uQl0+rVq2PlypWxyy67xKpVq2LZsmUREbHLLrvk7Y8XEYX5y0lNV3z06tWrTnJ8nF9OcjdgwIBN/qA6d+7cOP/88yMi4r777stHrIiIePrpp2PChAnVJa5jx47RrVu3vPz+suHf1hlnnBG33HJLrFixIs4777x49tln48Ybb8zLH+pmz55d/faaAQMG5PUEwgbDhw+PFStWRGVlZdx///3Rtm3bGDt2bEydOjVGjBgRP/7xj/OSa8yYMbFmzZq49NJLY8qUKfHFL34x9ttvv7jvvvti3rx5ccUVV9RpnsmTJ8eTTz65yf9PunXrFt26dcvLa/kdd9wRr7zySrRt23azJ4Hy8Vowd+7c6qv3evXqFRdeeGE0btw4Lrzwwk0y1pXnnnsuysrKYtmyZXH66afHiy++GDvttFOcdNJJtf7/u4Irmt27d49jjjkmZs6cGUuWLIksy+Koo46KQYMGRfPmzfOWa7fddotRo0bFhAkTCqJoXnnllXHkkUfGrrvuWr3syCOPjEcffTSv72W9+uqr409/+tNGf+kuKSmJQYMGRYcOHfKWq3379vGlL30pRo4cGc8++2zezq5usOHF76233ooPP/wwItY/TldddVV07NgxL5lOOeWUaN26dTzzzDPxr3/9K7785S/HrrvuGmPGjKm+cVFd69+//ybLGjZsGG3atIk2bdrkIdF6l112WXTq1CmyLIvBgwfHxRdfHO3bt4+ZM2fm7cZJffr0iX79+sUJJ5wQ06dPjz59+sSCBQviiiuuiG7duuUlU0Rh/nIya9asmDJlyhb/qJOPoumXk9x17tw5fv7zn8c111wTBxxwQGRZFjfddFNceeWVecu0YsWKWLp0aey///6xYsWK6qK5atWqvF0R8uabb0ZZWVlErD/z89hjj0VRUVF06NAhb5fzNm/ePO666674/ve/H506dYp+/fpF165d44ADDshLnoiIV199NcrKyqKqqio6dOhQfZ+LQw89NG9XqESsf53a8Jpw4oknRv/+/eM3v/lNdOjQIXr06FHnRbNRo0axePHiTd4qtnDhwigpKanTLBv84he/iPPPPz8uuOCCOPXUU/OS4ZOyLIsVK1bELrvsEnvvvXf84he/iH79+sU+++yT1ysOKysrY6+99oohQ4ZU///4o48+2uxVpEll8Bnz8MMPZxdddFG+Y1DPrVy5MquoqMiyLMtef/317K677sqmT5+e10wzZszI7rrrrmzGjBlZlmVZRUVF9vrrr+c1U/fu3bMFCxZssvx///d/sx49euQh0XqXX355NmHChLwd/5O6deuWffTRR9XfL168ODv55JOzxx9/POvVq1deMnXt2jVbtWpVlmXrXzc3WL58edalS5e8ZNrg73//e3beeedlEydOzLIsy9tjtMHQoUOzbt26ZUceeWR25ZVXZlmWZVOmTMk6duyYPfjgg3nJdPbZZ2dvvvlmlmVZdsUVV1T/O1y8eHHWs2fPvGT6+PP09ttvZ7fcckvWqVOnrEOHDtk555yTl0w9evTI3nrrrWz27NlZ27Zts/nz52dZlmXvvfdeXud5ly5dsqVLl2ZZtv452/DYVVRUZF27dq3zPC+88ELWsWPH7MILL8wGDx6cDR48OLvwwguzjh07ZjNnzqzzPBu89dZb2a233pq343/SQw89lHXq1Kn6/8NZlmX/+Mc/so4dO2ZHHHFEXjI98MADWadOnbK1a9dWL/vzn/+cnXzyydn48eNr9dgFdzMgAHYcM2bMiGHDhkWrVq02ejvEvHnz4nvf+14cd9xxecm1ZMmSKCsri0suuSQvx/+k8ePHx9133x2lpaXRvn37iFj/UV+XXnppvPfeezFnzpw6z/Tggw/Gr371q5g8eXL1VSovv/xy3HDDDTFw4MC832CqsrIyfvSjH8XChQvjn//8ZzzxxBN5zROx/saFS5cujQMPPDDefPPNyLIsvvCFL+Qly1/+8pcYNGhQfPWrX42dd945XnjhhWjXrl28+uqr8e1vfzsvVxlt6WaF//73v2P+/Pl5uXpm+vTpMXz48Fi3bl2MGDEifvjDH8bnP//5+Otf/xpXXXVV3s7eP/roo3H77bfHV77ylZg9e3Zcf/31ccQRR8QFF1wQgwYNysvVM0888US8/fbbUVxcHAceeGA0b9482rVrFxMnTszbx+oV4kf9/eIXv4jKysro3r17daaKiop48MEH4z//8z/zkunee++N4uLi6sdp8eLFsXz58nj55Zdr9XFSNAGoVatXr445c+ZUvx1iwy8n+brcqtDuIr7BvHnzoqSkZKPjV1RUxCOPPBIXXnhhXjKVl5dHy5Ytq7/f8MtJ69at85Jnc1544YV44okn4uabb85bhkKdUxUVFTFjxoz417/+FVVVVdG0adM44YQTokWLFnnJ89xzz+X1bTS5WLp0abz00kvRunXrOOSQQ/Ka5e2334433ngjvvjFL0arVq2isrIyVqxYkZcbFP3gBz+IV199NQ4++OCYPHlyDB06tPrS4g130s9Hprlz58YhhxwSTz75ZAwZMkSmAstUcO/RBGDHseEX8AMOOGCj92EtXbo0IvLzC3ih3UU8YuP3OX2ytHTq1KnO82zIsdNOO22SZ9ddd42FCxfmrTx9Ms9BBx0UV155ZfVyc2q9DY/HJ9/Tvm7durw9f61bt95qKc9Hps3l2XBmNd/zvFGjRhtl2WDFihV1nuu5556r/li9AQMGxMUXXxwlJSVx5pln5vV95IWYadKkSVFcXFxQmfL1OCmaANSaQvwFvNDuIh5RmI9TIWbaUq6ioqLqj/0yp9YrxMepEOdUIWYqxFxZAX6sXqFm2qCQMuXtcarVd4AC8Jm2fPnyrHv37tlLL72U7ygbmT17djZ8+PB8x6hWiI9TIWbKssLNZU7VTKbcFVqucePGZf369ctmz55dveyll17KjjvuuOyrX/2qTDJtlvdoAlCr5syZExMmTIjvfve7+Y5S0ArxcSrETBGFm6vQFOLjJFPuCi3XzJkzo1mzZhu9d3XRokVx9913x7Bhw2SSaROKJgAAAEntVPMmAAAAkDtFEwAAgKQUTQAAAJJSNAEAAEjq/wJWgFpQC3RLwQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_xgbr = results_xgbr.head(35)\n", + "results_xgbr.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 281, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_xgbr.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 282, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.008333333333333415" + ] + }, + "execution_count": 282, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_xgbr=np.mean(results_xgbr.error)\n", + "meanerror_xgbr" + ] + }, + { + "cell_type": "code", + "execution_count": 283, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
05.999976
15.398925
25.000002
35.308656
45.000002
55.000002
65.000002
\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 5.999976\n", + "1 5.398925\n", + "2 5.000002\n", + "3 5.308656\n", + "4 5.000002\n", + "5 5.000002\n", + "6 5.000002" + ] + }, + "execution_count": 283, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 284, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/xgbr.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### data frame errores medios" + ] + }, + { + "cell_type": "code", + "execution_count": 285, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0
xgbr-8.333333e-03
kn-8.333333e-03
rf-1.166667e-02
lr4.440892e-16
xgb6.357829e-07
ridge4.440892e-16
\n", + "
" + ], + "text/plain": [ + " 0\n", + "xgbr -8.333333e-03\n", + "kn -8.333333e-03\n", + "rf -1.166667e-02\n", + "lr 4.440892e-16\n", + "xgb 6.357829e-07\n", + "ridge 4.440892e-16" + ] + }, + "execution_count": 285, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.DataFrame([[meanerror_xgbr, meanerror_kn, meanerror_rf, meanerror_lr, meanerror_xgb, meanerror_ridge]], \n", + " columns=['xgbr','kn','rf','lr','xgb','ridge']).T\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exporting best model" + ] + }, + { + "cell_type": "code", + "execution_count": 286, + "metadata": {}, + "outputs": [], + "source": [ + "import pickle" + ] + }, + { + "cell_type": "code", + "execution_count": 287, + "metadata": {}, + "outputs": [], + "source": [ + "#Saving the Model\n", + "pickle_out = open(\"../reto_data/outputs/xgbr.pkl\", \"wb\") \n", + "pickle.dump(pipeline_xgbr, pickle_out) \n", + "pickle_out.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 288, + "metadata": {}, + "outputs": [], + "source": [ + "df_train.to_excel(\"../reto_data/outputs/clean_df.xls\")" + ] + }, + { + "cell_type": "code", + "execution_count": 297, + "metadata": {}, + "outputs": [], + "source": [ + "df=pd.read_excel(\"../reto_data/outputs/clean_df.xls\")" + ] + }, + { + "cell_type": "code", + "execution_count": 298, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0consumespeedtemp_insidetemp_outsidegas_typeACrainsun
0052621.934911120000
1754021.93491160000
23152921.934911100000
34152921.93491170100
47452521.93491161000
58754520.000000111010
610256221.93491191010
711764223.00000041010
813462621.93491151000
913662521.93491151010
1015152821.93491190000
1115356121.93491160110
1216458021.93491130000
1318557321.934911120000
1421152220.000000121000
1522153221.93491191000
1623154321.93491111000
1723256921.93491181000
1823655521.93491190000
1924754221.934911100000
2025653121.934911120000
2125862221.934911140000
2225954121.93491180000
2326054521.93491170000
2428853022.000000171000
2530153522.000000151101
2635753521.934911181000
2735853322.000000241001
2836754821.934911311100
2938055221.934911271000
3038752525.000000301100
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 consume speed temp_inside temp_outside gas_type AC rain \\\n", + "0 0 5 26 21.934911 12 0 0 0 \n", + "1 7 5 40 21.934911 6 0 0 0 \n", + "2 31 5 29 21.934911 10 0 0 0 \n", + "3 41 5 29 21.934911 7 0 1 0 \n", + "4 74 5 25 21.934911 6 1 0 0 \n", + "5 87 5 45 20.000000 11 1 0 1 \n", + "6 102 5 62 21.934911 9 1 0 1 \n", + "7 117 6 42 23.000000 4 1 0 1 \n", + "8 134 6 26 21.934911 5 1 0 0 \n", + "9 136 6 25 21.934911 5 1 0 1 \n", + "10 151 5 28 21.934911 9 0 0 0 \n", + "11 153 5 61 21.934911 6 0 1 1 \n", + "12 164 5 80 21.934911 3 0 0 0 \n", + "13 185 5 73 21.934911 12 0 0 0 \n", + "14 211 5 22 20.000000 12 1 0 0 \n", + "15 221 5 32 21.934911 9 1 0 0 \n", + "16 231 5 43 21.934911 1 1 0 0 \n", + "17 232 5 69 21.934911 8 1 0 0 \n", + "18 236 5 55 21.934911 9 0 0 0 \n", + "19 247 5 42 21.934911 10 0 0 0 \n", + "20 256 5 31 21.934911 12 0 0 0 \n", + "21 258 6 22 21.934911 14 0 0 0 \n", + "22 259 5 41 21.934911 8 0 0 0 \n", + "23 260 5 45 21.934911 7 0 0 0 \n", + "24 288 5 30 22.000000 17 1 0 0 \n", + "25 301 5 35 22.000000 15 1 1 0 \n", + "26 357 5 35 21.934911 18 1 0 0 \n", + "27 358 5 33 22.000000 24 1 0 0 \n", + "28 367 5 48 21.934911 31 1 1 0 \n", + "29 380 5 52 21.934911 27 1 0 0 \n", + "30 387 5 25 25.000000 30 1 1 0 \n", + "\n", + " sun \n", + "0 0 \n", + "1 0 \n", + "2 0 \n", + "3 0 \n", + "4 0 \n", + "5 0 \n", + "6 0 \n", + "7 0 \n", + "8 0 \n", + "9 0 \n", + "10 0 \n", + "11 0 \n", + "12 0 \n", + "13 0 \n", + "14 0 \n", + "15 0 \n", + "16 0 \n", + "17 0 \n", + "18 0 \n", + "19 0 \n", + "20 0 \n", + "21 0 \n", + "22 0 \n", + "23 0 \n", + "24 0 \n", + "25 1 \n", + "26 0 \n", + "27 1 \n", + "28 0 \n", + "29 0 \n", + "30 0 " + ] + }, + "execution_count": 298, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": { + "height": "calc(100% - 180px)", + "left": "10px", + "top": "150px", + "width": "402.712px" + }, + "toc_section_display": true, + "toc_window_display": true + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/.ipynb_checkpoints/models-checkpoint.ipynb b/.ipynb_checkpoints/models-checkpoint.ipynb new file mode 100644 index 0000000..eabf939 --- /dev/null +++ b/.ipynb_checkpoints/models-checkpoint.ipynb @@ -0,0 +1,16617 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 232, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd \n", + "import numpy as np \n", + "import matplotlib.pyplot as plt \n", + "%matplotlib inline\n", + "%config InlineBackend.figure_formats = ['retina']\n", + "import seaborn as sns\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")\n", + "from sklearn.preprocessing import LabelEncoder\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.metrics import mean_squared_error" + ] + }, + { + "cell_type": "code", + "execution_count": 409, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidespecialsgas_typeACrainsunrefill litersrefill gas
02852621,512NaNE1000045E10
1124,23021,513NaNE10000NaNNaN
211,25,53821,515NaNE10000NaNNaN
312,93,93621,514NaNE10000NaNNaN
418,54,54621,515NaNE10000NaNNaN
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside specials gas_type AC \\\n", + "0 28 5 26 21,5 12 NaN E10 0 \n", + "1 12 4,2 30 21,5 13 NaN E10 0 \n", + "2 11,2 5,5 38 21,5 15 NaN E10 0 \n", + "3 12,9 3,9 36 21,5 14 NaN E10 0 \n", + "4 18,5 4,5 46 21,5 15 NaN E10 0 \n", + "\n", + " rain sun refill liters refill gas \n", + "0 0 0 45 E10 \n", + "1 0 0 NaN NaN \n", + "2 0 0 NaN NaN \n", + "3 0 0 NaN NaN \n", + "4 0 0 NaN NaN " + ] + }, + "execution_count": 409, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train=pd.read_csv('../reto_data/inputs/measurements.csv')\n", + "df_train.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 410, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidespecialsgas_typeACrainsunrefill litersrefill gas
028.05.02621.512NaNE1000045.0E10
112.04.23021.513NaNE10000NaNNaN
211.25.53821.515NaNE10000NaNNaN
312.93.93621.514NaNE10000NaNNaN
418.54.54621.515NaNE10000NaNNaN
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside specials gas_type AC \\\n", + "0 28.0 5.0 26 21.5 12 NaN E10 0 \n", + "1 12.0 4.2 30 21.5 13 NaN E10 0 \n", + "2 11.2 5.5 38 21.5 15 NaN E10 0 \n", + "3 12.9 3.9 36 21.5 14 NaN E10 0 \n", + "4 18.5 4.5 46 21.5 15 NaN E10 0 \n", + "\n", + " rain sun refill liters refill gas \n", + "0 0 0 45.0 E10 \n", + "1 0 0 NaN NaN \n", + "2 0 0 NaN NaN \n", + "3 0 0 NaN NaN \n", + "4 0 0 NaN NaN " + ] + }, + "execution_count": 410, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train_2=pd.read_excel('../reto_data/inputs/measurements2.xlsx')\n", + "df_train_2.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### First visualizations" + ] + }, + { + "cell_type": "code", + "execution_count": 411, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 12 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 distance 388 non-null object\n", + " 1 consume 388 non-null object\n", + " 2 speed 388 non-null int64 \n", + " 3 temp_inside 376 non-null object\n", + " 4 temp_outside 388 non-null int64 \n", + " 5 specials 93 non-null object\n", + " 6 gas_type 388 non-null object\n", + " 7 AC 388 non-null int64 \n", + " 8 rain 388 non-null int64 \n", + " 9 sun 388 non-null int64 \n", + " 10 refill liters 13 non-null object\n", + " 11 refill gas 13 non-null object\n", + "dtypes: int64(5), object(7)\n", + "memory usage: 36.5+ KB\n" + ] + } + ], + "source": [ + "df_train.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 412, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 12 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 distance 388 non-null float64\n", + " 1 consume 388 non-null float64\n", + " 2 speed 388 non-null int64 \n", + " 3 temp_inside 376 non-null float64\n", + " 4 temp_outside 388 non-null int64 \n", + " 5 specials 93 non-null object \n", + " 6 gas_type 388 non-null object \n", + " 7 AC 388 non-null int64 \n", + " 8 rain 388 non-null int64 \n", + " 9 sun 388 non-null int64 \n", + " 10 refill liters 13 non-null float64\n", + " 11 refill gas 13 non-null object \n", + "dtypes: float64(4), int64(5), object(3)\n", + "memory usage: 36.5+ KB\n" + ] + } + ], + "source": [ + "df_train_2.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 413, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
speedtemp_outsideACrainsun
count388.000000388.000000388.000000388.000000388.000000
mean41.92783511.3582470.0773200.1237110.082474
std13.5985246.9915420.2674430.3296770.275441
min14.000000-5.0000000.0000000.0000000.000000
25%32.7500007.0000000.0000000.0000000.000000
50%40.50000010.0000000.0000000.0000000.000000
75%50.00000016.0000000.0000000.0000000.000000
max90.00000031.0000001.0000001.0000001.000000
\n", + "
" + ], + "text/plain": [ + " speed temp_outside AC rain sun\n", + "count 388.000000 388.000000 388.000000 388.000000 388.000000\n", + "mean 41.927835 11.358247 0.077320 0.123711 0.082474\n", + "std 13.598524 6.991542 0.267443 0.329677 0.275441\n", + "min 14.000000 -5.000000 0.000000 0.000000 0.000000\n", + "25% 32.750000 7.000000 0.000000 0.000000 0.000000\n", + "50% 40.500000 10.000000 0.000000 0.000000 0.000000\n", + "75% 50.000000 16.000000 0.000000 0.000000 0.000000\n", + "max 90.000000 31.000000 1.000000 1.000000 1.000000" + ] + }, + "execution_count": 413, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 414, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsideACrainsunrefill liters
count388.000000388.000000388.000000376.000000388.000000388.000000388.000000388.00000013.000000
mean19.6528354.91237141.92783521.92952111.3582470.0773200.1237110.08247437.115385
std22.6678371.03317213.5985241.0104556.9915420.2674430.3296770.2754418.587282
min1.3000003.30000014.00000019.000000-5.0000000.0000000.0000000.00000010.000000
25%11.8000004.30000032.75000021.5000007.0000000.0000000.0000000.00000037.600000
50%14.6000004.70000040.50000022.00000010.0000000.0000000.0000000.00000038.000000
75%19.0000005.30000050.00000022.50000016.0000000.0000000.0000000.00000039.000000
max216.10000012.20000090.00000025.50000031.0000001.0000001.0000001.00000045.000000
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside \\\n", + "count 388.000000 388.000000 388.000000 376.000000 388.000000 \n", + "mean 19.652835 4.912371 41.927835 21.929521 11.358247 \n", + "std 22.667837 1.033172 13.598524 1.010455 6.991542 \n", + "min 1.300000 3.300000 14.000000 19.000000 -5.000000 \n", + "25% 11.800000 4.300000 32.750000 21.500000 7.000000 \n", + "50% 14.600000 4.700000 40.500000 22.000000 10.000000 \n", + "75% 19.000000 5.300000 50.000000 22.500000 16.000000 \n", + "max 216.100000 12.200000 90.000000 25.500000 31.000000 \n", + "\n", + " AC rain sun refill liters \n", + "count 388.000000 388.000000 388.000000 13.000000 \n", + "mean 0.077320 0.123711 0.082474 37.115385 \n", + "std 0.267443 0.329677 0.275441 8.587282 \n", + "min 0.000000 0.000000 0.000000 10.000000 \n", + "25% 0.000000 0.000000 0.000000 37.600000 \n", + "50% 0.000000 0.000000 0.000000 38.000000 \n", + "75% 0.000000 0.000000 0.000000 39.000000 \n", + "max 1.000000 1.000000 1.000000 45.000000 " + ] + }, + "execution_count": 414, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train_2.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 415, + "metadata": {}, + "outputs": [], + "source": [ + "## ambas tablas son iguales, ignoramos la 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Pandas profiling for better visualization" + ] + }, + { + "cell_type": "code", + "execution_count": 416, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas_profiling\n", + "from pandas_profiling import ProfileReport" + ] + }, + { + "cell_type": "code", + "execution_count": 417, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "aea4f7d782324fb78a1036bdcdd32421", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Summarize dataset: 0%| | 0/25 [00:00" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 417, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "profile = ProfileReport(df_train, title=\"Pandas Profiling Report\", explorative=True)\n", + "profile" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### drop nan" + ] + }, + { + "cell_type": "code", + "execution_count": 418, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "distance 0\n", + "consume 0\n", + "speed 0\n", + "temp_inside 12\n", + "temp_outside 0\n", + "specials 295\n", + "gas_type 0\n", + "AC 0\n", + "rain 0\n", + "sun 0\n", + "refill liters 375\n", + "refill gas 375\n", + "dtype: int64" + ] + }, + "execution_count": 418, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train.isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 419, + "metadata": {}, + "outputs": [], + "source": [ + "df_train=df_train.drop(['specials', 'refill liters', 'refill gas'], axis='columns')" + ] + }, + { + "cell_type": "code", + "execution_count": 420, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 9 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 distance 388 non-null object\n", + " 1 consume 388 non-null object\n", + " 2 speed 388 non-null int64 \n", + " 3 temp_inside 376 non-null object\n", + " 4 temp_outside 388 non-null int64 \n", + " 5 gas_type 388 non-null object\n", + " 6 AC 388 non-null int64 \n", + " 7 rain 388 non-null int64 \n", + " 8 sun 388 non-null int64 \n", + "dtypes: int64(5), object(4)\n", + "memory usage: 27.4+ KB\n" + ] + } + ], + "source": [ + "df_train.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Categorical and numerical columns" + ] + }, + { + "cell_type": "code", + "execution_count": 421, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Numerical columns: ['speed', 'temp_outside', 'AC', 'rain', 'sun']\n", + "Categorical columns: ['consume', 'distance', 'gas_type', 'temp_inside']\n" + ] + } + ], + "source": [ + "num_cols = list(df_train._get_numeric_data().columns)\n", + "print(\"Numerical columns: \", num_cols)\n", + "\n", + "cat_cols=list(set(df_train.columns) - set(num_cols))\n", + "print(\"Categorical columns: \", cat_cols)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Explore categorical columns" + ] + }, + { + "cell_type": "code", + "execution_count": 422, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "consume > {'5,8', '4', '10,8', '5,7', '4,1', '4,3', '3,6', '6,3', '3,8', '6,6', '6,2', '4,6', '12,2', '5,9', '6,4', '5,1', '7,1', '5,6', '8,1', '3,3', '4,7', '6', '3,7', '5,4', '5,2', '6,1', '11,5', '4,5', '5,3', '4,4', '3,9', '9,9', '6,9', '9', '7,9', '5,5', '8,7', '5', '4,9', '4,8', '7,4', '6,5', '4,2'}\n", + "\n", + "distance > {'32,6', '11,3', '12,8', '12,7', '25,2', '41,9', '12,6', '129,7', '16,1', '6,8', '22,7', '31,9', '211', '29,9', '31,1', '16,6', '6', '11,8', '24,7', '6,7', '6,1', '32', '4,5', '9,8', '22,9', '23,5', '26,2', '40,6', '31,8', '9,2', '38,6', '14,1', '13,3', '10,5', '18,4', '56,1', '48,6', '16,4', '19,8', '43,7', '13,4', '20,9', '13,2', '39,5', '28,8', '10,1', '21,1', '15,4', '2', '2,1', '18,1', '39,4', '20,6', '22,1', '12', '11,2', '58,7', '12,3', '16,3', '12,2', '14,5', '6,4', '16,8', '25,9', '12,1', '44,4', '16,2', '5,2', '216,1', '28,5', '14,3', '5,3', '11,7', '13,9', '25,3', '28', '38,5', '20', '14', '14,2', '31,5', '51,6', '11,6', '21,5', '10,6', '7,9', '7,8', '17,2', '13', '27,3', '7', '5,5', '15,3', '4,9', '20,8', '7,4', '4,8', '18,9', '4,2', '18,3', '12,4', '27,1', '13,1', '22,4', '153,5', '18,8', '16,9', '24,8', '8,3', '5,4', '35,9', '36,6', '101,9', '9,7', '26,6', '25,5', '15,7', '1,3', '67,2', '21', '17,4', '8,7', '21,4', '28,2', '16,5', '1,7', '15,9', '13,6', '10,8', '130,3', '31,4', '93,9', '19', '4,1', '37,2', '17,3', '24,5', '6,6', '20,1', '17,9', '29', '21,6', '11,9', '81,2', '19,6', '10,2', '100,9', '33,4', '5,1', '35,8', '44,9', '14,7', '2,9', '43,5', '11,5', '18,5', '22,2', '18,7', '24,9', '36,9', '9,9', '53,2', '12,5', '16', '25,7', '162,7', '39', '17', '2,4', '34,8', '12,9', '36,5', '32,1', '16,7'}\n", + "\n", + "gas_type > {'E10', 'SP98'}\n", + "\n", + "temp_inside > {'22,5', nan, '23,5', '25', '19', '22', '21', '25,5', '23', '24,5', '20', '24', '20,5', '21,5'}\n", + "\n" + ] + } + ], + "source": [ + "for c in cat_cols:\n", + " print(c, \">\", set(df_train[c]))\n", + " print(\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 423, + "metadata": {}, + "outputs": [], + "source": [ + "df_train['temp_inside'] = pd.to_numeric(df_train['temp_inside'], errors='coerce')\n", + "df_train['consume'] = pd.to_numeric(df_train['consume'], errors='coerce')\n", + "df_train['distance'] = pd.to_numeric(df_train['distance'], errors='coerce')" + ] + }, + { + "cell_type": "code", + "execution_count": 424, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Numerical columns: ['distance', 'consume', 'speed', 'temp_inside', 'temp_outside', 'AC', 'rain', 'sun']\n", + "Categorical columns: ['gas_type']\n" + ] + } + ], + "source": [ + "num_cols = list(df_train._get_numeric_data().columns)\n", + "print(\"Numerical columns: \", num_cols)\n", + "\n", + "cat_cols=list(set(df_train.columns) - set(num_cols))\n", + "print(\"Categorical columns: \", cat_cols)" + ] + }, + { + "cell_type": "code", + "execution_count": 425, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{0, 1}" + ] + }, + "execution_count": 425, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train['gas_type'] = df_train['gas_type'].map({'SP98': 1, 'E10': 0})\n", + "set(df_train['gas_type'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### gas_type" + ] + }, + { + "cell_type": "code", + "execution_count": 426, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvEAAAHuCAYAAAAWUFMyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAABYlAAAWJQFJUiTwAAAhJ0lEQVR4nO3de5BW9X3H8c+yyGUhGhHxCgpy8YoJBrXTEDWo1EzRjpOawRQFi5eYGRyjwZqJEYOX6GhHqVinRk27WgtkUEedjBPviPEKsRTxghiVWC4KWnG56O72j8xuQnZRzF6e/eHr9Zee8ztnv+cf5+0zv+c8VY2NjY0BAACK0a3SAwAAAJ+PiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAoTPdKD9AV/d3f/V1WrFiRmpqa7LPPPpUeBwCA7dSbb76Zurq67L333rnnnnu2+ToR34oVK1bkww8/zIcffphVq1ZVehwAALZzK1as+FzrRXwrampq8uGHH+ZLX/pSDjjggEqPAwDAdmrp0qX58MMPU1NT87muE/Gt2GeffbJq1aoccMABqa2trfQ4AABspyZOnJhnn332c2/h9sVWAAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAoTPdKD8AXx/gL7q30CLCF+647qdIjAMBfxCfxAABQGBEPAACFEfEAAFAYEQ8AAIUR8QAAUBgRDwAAhRHxAABQGBEPAACFEfEAAFAYEQ8AAIUR8QAAUBgRDwAAhRHxAABQGBEPAACFEfEAAFAYEQ8AAIUR8QAAUBgRDwAAhRHxAABQGBEPAACFEfEAAFAYEQ8AAIUR8QAAUBgRDwAAhRHxAABQGBEPAACFEfEAAFAYEQ8AAIUR8QAAUBgRDwAAhRHxAABQGBEPAACFEfEAAFAYEQ8AAIUR8QAAUBgRDwAAhRHxAABQGBEPAACFEfEAAFAYEQ8AAIUR8QAAUBgRDwAAheneHjepr6/PXXfdlbvvvjvLly9PfX19Bg4cmG9961uZMmVKevbsucX6xYsXZ9asWVm8eHHq6uoydOjQnHbaaRk/fnyr93/jjTfyL//yL3nhhRfy/vvvZ9CgQTnllFPy3e9+N926+f8QAAC+WNoc8fX19Tn33HPz2GOPpaamJoceemi6d++eF198MTNnzszjjz+ef//3f0/v3r2TJAsWLMjZZ5+dhoaGjB49Or17985vfvObXHjhhVm2bFnOP//8Le7/8ssv57vf/W7Wr1+fUaNG5ZBDDskzzzyTyy+/PC+++GKuvfbatj4CAAAUpc0RP3fu3Dz22GMZMWJEbrnlluy2225JkrVr1+bcc8/NokWLctNNN+WCCy7Ixo0b88Mf/jBJctttt+XII49Mkrz11luZOHFibr755hx33HE5+OCDkySNjY2ZNm1a1q9fn2uuuSYnnXRS870nTZqU++67L8cdd1zGjRvX1scAAIBitHkvyt13350k+dGPftQc8EnSr1+/TJ8+PUnywAMPJEnuvffevPfeexk/fnxzwCfJoEGDcuGFFyZJamtrm48vWLAgr7zySg4//PDmgP/ze//pegAA+CJoc8TvvPPOGTJkSEaOHNni3L777pskWb16dZJk/vz5SZKxY8e2WHvMMcekuro6TzzxRPOxpvXHHntsi/WjRo3KLrvskhdeeCHr169v62MAAEAx2hzxN998c371q1+lpqamxbnFixcnSXbfffckyWuvvZYkGT58eIu1ffv2zYABA7J27dq8++67SZJly5ZtdX2SDB48OA0NDXn99dfb+hgAAFCMDnu1S2NjY2644YYkyfHHH58kWbNmTZJk1113bfWapuNNEd/0Cf62rgcAgC+CDov4f/7nf85zzz2X/v37Z8qUKUmSDRs2JEl69erV6jVNx+vq6v6i9QAA8EXQIRF/ww035N/+7d/So0ePXH/99enXr1+SpLq6OlVVVamqqvrU6xsaGprXJ9nm9QAA8EXQrhH/ySef5Cc/+Uluuumm9OzZMzfeeGNGjx7dfL53795pbGzMpk2bWr1+48aNSZI+ffo0r//T45+1HgAAvgjaLeI/+uijnHPOOZk9e3Z23HHH3HrrrTnqqKO2WDNgwIAkf9wb/+f+fM980/qt7Xn/rD32AACwPWqXiP/ggw8yceLEzJ8/P3vssUfuvPPOLT6BbzJs2LAkafVtMuvXr8/q1avTr1+/9O/ff4v1TW+p+VONjY1Zvnx5qqurs99++7XHYwAAQBHaHPGbN2/OWWedlSVLlmTo0KH5r//6r62+EnLMmDFJkoceeqjFuUceeST19fVbfHrftP7hhx9usX7hwoVZu3ZtDjvssPTt27etjwEAAMVoc8TPnDkzv/3tb7PHHnuktra2+Z3wrRk3blx22WWX3H333Xn88cebj7/99tu57rrrUlVVlUmTJjUfP/zwwzNs2LAsWLAgc+bMaT6+du3aXHbZZUmSyZMnt/URAACgKN3bcvG6detSW1ubJOnXr1+uvPLKra699tpr07dv38yYMSNTp07N2WefndGjR6dPnz55+umns2HDhpx//vnZf//9m6/p1q1brrzyypx++um55JJL8stf/jIDBgzIs88+mw8++CCnnHJKvvnNb7blEQAAoDhtivjnnnuu+Q0xS5YsyZIlS7a69tprr02SjB07NrW1tZk1a1ZefPHFNDY2ZsSIEZk0aVJOOOGEFteNHDkyc+fOzcyZM/PMM8/ktddeyz777JMf/OAH+fu///u2jA8AAEVqU8Qff/zxeeWVVz73daNGjcqtt966zeuHDh2amTNnfu6/AwAA26MO+8VWAACgY4h4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAAChM90oPAAC0bvwF91Z6BGjhvutOqvQIxCfxAABQHBEPAACFEfEAAFAYEQ8AAIUR8QAAUBgRDwAAhRHxAABQGBEPAACFEfEAAFCYDvnF1nnz5uXiiy/OnXfema997WtbnPvf//3fHH300Vu9dtSoUbnrrru2OLZq1arMmjUrCxYsyJo1a7LHHnvkxBNPzJlnnpkePXp0xCMAAECX1e4Rv2jRosyYMWOr51966aUkyYgRIzJ8+PAW5wcPHrzFv69cuTLf+c53snLlyhx44IE56KCDsnDhwsycOTNPP/10brvttuywww7t+xAAANCFtWvEP/jgg7n44otTV1e31TVLly5NkkyZMiUnnnjiZ95z+vTpWblyZc4777yce+65SZK6urp8//vfz1NPPZXa2tqcccYZ7fMAAABQgHbZE79y5cpMmzYtU6dOTUNDQ/r377/VtU2fxB900EGfed/ly5fnsccey6BBg3LOOec0H6+pqckVV1yR6urq3HHHHW1/AAAAKEi7RPz111+fe++9NwcffHBmz56dIUOGbHXt0qVLU1NT02LbTGuefPLJNDY25phjjkm3bluOuueee+bAAw/M73//+yxbtqzNzwAAAKVol4gfMmRIrr766sydOzcjRozY6rr3338/77zzTgYPHpzbb789J554Yg499NB8/etfzyWXXJJVq1Ztsb4pzocNG7bVv5skr776ans8BgAAFKFd9sSfddZZ27SuaT/8kiVL8uqrr2b06NHZfffds3jx4syZMyePPvpo/uM//qM5zlevXp0kGTBgQKv323XXXZMk7777blsfAQAAitEhr5jcmqb98MOHD89NN92UgQMHJvnDF1UvueSS3H///bnwwgszb968JMmGDRuSJL169Wr1fk3HP+2LtAAAsL3p1IifNGlSjj/++PTp0yf9+vVrPl5TU5PLL788zz33XJYsWZLf/va3+cpXvpLq6uokSVVV1afet6GhoUPnBgCArqRTf7G1uro6AwcO3CLgm/Tu3TtHHnlkkj9st2k6liQbN25s9X5Nx2tqajpiXAAA6JI6NeI/S9OrKZu20TTthd/anvc1a9ZssQ4AAL4IOjXib7zxxkydOjWvvPJKq+dXrFiRJNl9992T/PGtNFt7heTrr7+eJK3+8isAAGyvOjXiX3nllTz44IP51a9+1eLce++9lwULFmSHHXbIEUcckSQZM2ZMkuTRRx9tse/9nXfeydKlS7PXXntl6NChHT88AAB0EZ0a8d/5zneSJLfffnteeOGF5uMfffRRfvSjH2X9+vX59re/3fzqyIEDB2bMmDFZvnx5brjhhub1dXV1+fGPf5z6+vpMnjy5Mx8BAAAqrlPfTvP1r389kydPzu23355/+Id/yKhRo7Lzzjvn+eefz7p16/K1r30tF1100RbXXHrppZkwYUJuvvnmPPLIIxk8eHAWLlyYNWvW5Bvf+EYmTJjQmY8AAAAV16kRnyT/9E//lEMPPTR33HFHXnrppTQ0NGTQoEGZMmVKTj/99Oywww5brB84cGDmzp2bmTNn5oknnsibb76ZgQMH5rTTTsvpp5+e7t07/REAAKCiOqSAa2trP/X8CSeckBNOOGGb77fHHnvkqquuautYAACwXehSr5gEAAA+m4gHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCdEjEz5s3LyNGjMjzzz/f6vk33ngjP/jBD3LUUUfl0EMPzfjx41NbW5uGhoZW169atSo/+clPMnbs2IwcOTLjxo3LrFmzsnnz5o4YHwAAurR2j/hFixZlxowZWz3/8ssv59vf/nYeeOCB7LnnnhkzZkxWrlyZyy+/PNOmTWuxfuXKlTnllFMye/bs7Ljjjjn66KPz0UcfZebMmfnHf/zHfPzxx+39CAAA0KV1b8+bPfjgg7n44otTV1fX6vnGxsZMmzYt69evzzXXXJOTTjopSbJ27dpMmjQp9913X4477riMGzeu+Zrp06dn5cqVOe+883LuuecmSerq6vL9738/Tz31VGpra3PGGWe052MAAECX1i6fxK9cuTLTpk3L1KlT09DQkP79+7e6bsGCBXnllVdy+OGHNwd8kvTr1y/Tp09PktTW1jYfX758eR577LEMGjQo55xzTvPxmpqaXHHFFamurs4dd9zRHo8AAADFaJeIv/7663Pvvffm4IMPzuzZszNkyJBW182fPz9Jcuyxx7Y4N2rUqOyyyy554YUXsn79+iTJk08+mcbGxhxzzDHp1m3LUffcc88ceOCB+f3vf59ly5a1x2MAAEAR2iXihwwZkquvvjpz587NiBEjtrquKbaHDx/e6vnBgwenoaEhr7/++hbrhw0bttW/mySvvvrqXzw7AACUpl32xJ911lnbtG716tVJkl133bXV803H33333S3WDxgwYJvWAwDAF0Gnvid+w4YNSZJevXq1er7peNMXYz/vegAA+CLo1Iivrq5OklRVVX3quqb3xX/e9QAA8EXQqRHfu3fvJMnGjRtbPd90vE+fPp9rfU1NTbvOCQAAXVmnRnzT3vat7WFfs2ZNkj/udd/W9VvbMw8AANujTo34prfMtPZKyMbGxixfvjzV1dXZb7/9PnN9kua32GztbTcAALA96tSIHzNmTJLk4YcfbnFu4cKFWbt2bQ477LD07dt3i/WPPvpoi33v77zzTpYuXZq99torQ4cO7eDJAQCg6+jUiD/88MMzbNiwLFiwIHPmzGk+vnbt2lx22WVJksmTJzcfHzhwYMaMGZPly5fnhhtuaD5eV1eXH//4x6mvr99iPQAAfBG0y3vit1W3bt1y5ZVX5vTTT88ll1ySX/7ylxkwYECeffbZfPDBBznllFPyzW9+c4trLr300kyYMCE333xzHnnkkQwePDgLFy7MmjVr8o1vfCMTJkzozEcAAICK69RP4pNk5MiRmTt3bsaNG5c333wzCxYsyJ577pnLLrss06dPb7F+4MCBmTt3bk4++eSsXbs2jz32WHbaaadccMEFufHGG9O9e6f+fwgAAFRchxRwbW3tp54fOnRoZs6cuc3322OPPXLVVVe1dSwAANgudPon8QAAQNuIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgH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rcKTAgBAxyvik/g777wzmzdvzqRJk5oDPklGjhyZM888M5s2bfJpPAAAXxhFRPz8+fOTJMcee2yLc03H7I0HAOCLostHfGNjY5YtW5Zu3bplyJAhLc7vu+++6datW5YtW5bGxsYKTAgAAJ2ry++J/+CDD7J58+b069cvPXr0aHG+e/fu2XnnnfPee+/lo48+St++fdv8N998880kydKlSzNx4sQ2348/+HKlB4A/M3HiLys9AnyqL1d6AGiF/3a2r6VLlyb5Y39uqy4f8Rs2bEiS9O7de6trevXqlSTtFvF1dXVJkg8//DDPPvtsm+8HAACfpqk/t1WXj/hu3bZ9x097bafZe++9s2LFitTU1GSfffZpl3sCAMCfe/PNN1NXV5e99977c13X5SO+pqYmSbJp06atrtm4ceMWa9vqnnvuaZf7AABAR+jyX2zt27dvampqsm7dunzyySctzn/yySdZt25devbsmR133LECEwIAQOfq8hFfVVWVoUOHpr6+Pr/73e9anH/jjTfS0NCwxfvjAQBge9blIz5JxowZkyR56KGHWpxrOnbUUUd16kwAAFApRUT8ySefnJ49e+aWW27J//zP/zQfX7x4cX7+85+nV69eOfXUUys4IQAAdJ6qxkJ+IenOO+/MT3/60+ywww454ogjkiTPPPNMPvnkk1x99dU56aSTKjwhAAB0jmIiPkkeffTR/PznP89LL72UHj16ZMSIEfne976Xv/qrv6r0aAAA0GmKingAAKCQPfEAAMAfiXgAACiMiAcAgMKIeAAAKIyIBwCAwoh4AAAojIgHAIDCiHgAACiMiAcAgMKIeAAAKIyIBwCAwnSv9AAAAO3to48+Sl1dXRoaGtKnT5/07du30iNBuxLxAEDxVq9enTlz5uSJJ57Ia6+9lo0bN25xvmfPnhk+fHiOOuqoTJgwIf369avQpNA+qhobGxsrPQQAwF9q7ty5ueKKK7Jp06Y0NjamW7du2XnnndOzZ88kyaZNm7Ju3bo0NDQkSXr37p0ZM2bkb//2bys5NrSJiAcAijV//vyceeaZ6du3b84888wce+yx2XfffVNdXb3Fuvr6+rzxxhv59a9/nVtvvTV1dXW5/fbbc8QRR1RocmgbEQ8AFOu0007LokWLctddd+Xggw/epmsWL16cCRMmZPTo0bn99ts7eELoGN5OAwAUa8mSJTniiCO2OeCT5JBDDsmRRx6ZpUuXduBk0LF8sRW6mIULF7bp+lGjRrXTJABdX/fu3VtsndlWmzdvbudpoPOIeOhiTj311FRVVf1F11ZVVeWll15q54kAuq4RI0bk6aefzuuvv5799ttvm65ZsmRJnn766Xz1q1/t4Omg44h46GKuvPLKXH755amrq0v//v0zePDgSo8E0GWdc845OeOMMzJhwoRMmjQpY8eOzX777Zfu3bdMnIaGhrzxxht5+OGHc8stt6S+vj5Tpkyp0NTQdr7YCl3QokWLMmXKlDQ0NGTOnDkZNmxYpUcC6LLmzZuX6dOn5+OPP06SdOvWLV/+8pfTq1evVFVVZePGjXn//fdTX1+fxsbG9OzZMxdddFFOPfXUCk8OfzkRD13Ugw8+mPPOOy8jR47MnDlzKj0OQJe2evXq3HHHHXnyySezbNmyFvvde/funWHDhmXMmDE5+eSTs9dee1VoUmgfIh66sGnTpuW+++7Lz372s5x00kmVHgegGB988EE2bNiQbt26paamJn379q30SNCu7ImHLuyCCy5IdXV1Vq9eXelRAIqy0047Zaeddqr0GNBhfBIPAACF8WNPAABQGBEPAACFEfEAAFAYEQ8AAIUR8QAAUBgRDwAAhRHxAABQGBEPAACFEfEAAFAYEQ8AAIUR8QAAUJj/BwaIknAPj6MFAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 247, + "width": 376 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "df_train.gas_type.value_counts().plot(kind='bar');" + ] + }, + { + "cell_type": "code", + "execution_count": 429, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 9 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 distance 52 non-null float64\n", + " 1 consume 49 non-null float64\n", + " 2 speed 388 non-null int64 \n", + " 3 temp_inside 169 non-null float64\n", + " 4 temp_outside 388 non-null int64 \n", + " 5 gas_type 388 non-null int64 \n", + " 6 AC 388 non-null int64 \n", + " 7 rain 388 non-null int64 \n", + " 8 sun 388 non-null int64 \n", + "dtypes: float64(3), int64(6)\n", + "memory usage: 27.4 KB\n" + ] + } + ], + "source": [ + "df_train.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Rellenamos los nan" + ] + }, + { + "cell_type": "code", + "execution_count": 430, + "metadata": {}, + "outputs": [], + "source": [ + "temp_inside = df_train['temp_inside'].dropna()\n", + "temp_inside_avg = temp_inside.mean()\n", + "df_train['temp_inside'] = df_train['temp_inside'].fillna(temp_inside_avg)" + ] + }, + { + "cell_type": "code", + "execution_count": 431, + "metadata": {}, + "outputs": [], + "source": [ + "distance = df_train['distance'].dropna()\n", + "distance_avg = distance.mean()\n", + "df_train['distance'] = df_train['distance'].fillna(distance_avg)" + ] + }, + { + "cell_type": "code", + "execution_count": 432, + "metadata": {}, + "outputs": [], + "source": [ + "consume = df_train['consume'].dropna()\n", + "consume_avg = consume.mean()\n", + "df_train['consume'] = df_train['consume'].fillna(consume_avg)" + ] + }, + { + "cell_type": "code", + "execution_count": 433, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 9 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 distance 388 non-null float64\n", + " 1 consume 388 non-null float64\n", + " 2 speed 388 non-null int64 \n", + " 3 temp_inside 388 non-null float64\n", + " 4 temp_outside 388 non-null int64 \n", + " 5 gas_type 388 non-null int64 \n", + " 6 AC 388 non-null int64 \n", + " 7 rain 388 non-null int64 \n", + " 8 sun 388 non-null int64 \n", + "dtypes: float64(3), int64(6)\n", + "memory usage: 27.4 KB\n" + ] + } + ], + "source": [ + "df_train.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Correlations map" + ] + }, + { + "cell_type": "code", + "execution_count": 434, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(9.5, -0.5)" + ] + }, + "execution_count": 434, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABb8AAAVkCAYAAAD0fGIPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAABYlAAAWJQFJUiTwAAEAAElEQVR4nOzdZ3SU1d6G8XsmhVRCSUgjoffei3Q4oNg5KgoioICiiIdzUNQXBFHEAoooSgdBUEBBBQuC9N6U3oKEkkZo6aRM5v2AicQkJIRnMjBcv7WyNM8u/z2ZQde6s9nbZLVarQIAAAAAAAAAwIGY7b0AAAAAAAAAAACMRvgNAAAAAAAAAHA4hN8AAAAAAAAAAIdD+A0AAAAAAAAAcDiE3wAAAAAAAAAAh0P4DQAAAAAAAABwOITfAAAAAAAAAACHQ/gNAAAAAAAAAHA4hN8AAAAAAAAAAIdD+A0AAAAAAAAAcDiE3wAAAAAAAAAAh0P4DQAAAAAAAABwOITfAAAAAAAAAACHQ/gNAAAAAAAAAA5q6dKlqlGjhnbt2nVD42JiYvTGG2+oc+fOql+/vrp166YpU6YoLS0tz/7x8fH64IMP1K1bN9WvX1+dOnXSu+++q8TERCNeRpEQfgMAAAAAAACAA/r999/11ltv3fC46OhoPfbYY1q0aJFKliypDh06KCkpSZMnT9Yzzzyj9PT0HP0TExP15JNPaubMmTKZTOrQoYNMJpPmzJmjnj17KiEhwaiXdEMIvwEAAAAAAADAwaxcuVLPPPOMkpOTb3jsmDFjFB0drZdeeknLli3T5MmT9euvv6p169basWOH5s+fn6P/pEmTdPToUT322GP66aefNHnyZK1cuVIPPvigwsLCNGnSJINe1Y0xWa1Wq10qAwAAAAAAAAAMFR0drQ8//FDff/+93N3d5enpqfPnz2vBggVq2rRpgeP//PNPde/eXSEhIVq5cqXM5r/3T0dGRqpLly4KCAjQmjVrJF097qRt27ZydnbW+vXr5eXlld0/KSlJHTt2VGpqqrZu3SoPDw/jX/B1sPMbAAAAAAAAABzEpEmT9P3336tu3bpatGiRKleufEPjN23aJKvVqo4dO+YIviUpKChItWvXVkREhMLCwiRJO3fu1JUrV9SyZcscwbckeXp6qlWrVrpy5Yp27tx5cy+sCAi/AQAAAAAAAMBBVK5cWe+9956WLFmiGjVq3PD4rFC7WrVq+c4vSceOHbuh/kePHr3htdws52KvCAAAAAAAAACwiUGDBt3U+HPnzkmSypUrl2e7n5+fJOn8+fOSpNjY2BzP8+t/4cKFm1pXURB+AwAAAAAAAEAxW7p0qZYtW1bo/g8//LB69OhhwxVdlZKSIklyc3PLsz3redZFmln/dHd3L1T/4kT4DQAAAAAAAKBYHW/Tzd5LsLuInvdpx44dhe7fvHlzG67mb05OTpIkk8l03X6ZmZlF6l+cCL8BAAAAAAAAoJgFBwffUKAdHBxsw9X8LWsH95UrV/Jsz3ru4eFRpP7FifAbAAAAAAAAAIpZjx49iuUYkxuVddZ31pne/5R1xndWv8L2z+9McFsyF3tFAAAAAAAAAMAtqVq1apKksLCwPNtPnDghSapevfoN9a9Ro4ah6ywMwm8AAAAAAAAAgCSpbdu2kqS1a9fmOqc7MjJShw8fVnBwsKpWrSpJatasmdzc3LR169Zcl1omJSVp69at8vDwUJMmTYrnBVyD8BsAAAAAAABA8TKZ+boFREZG6sSJE7p48WL2s5CQELVt21Z//vmnPv744+znycnJGjlypCwWi/r375/93MPDQw899JDi4uL05ptvKiMjQ5KUkZGhsWPHKj4+Xj179pSXl1fxvbC/cOY3AAAAAAAAANyBRowYoR07dmjIkCF68cUXs5+PHj1aTzzxhKZOnao1a9aoUqVK2rNnj2JjY9WuXTs98cQTOeYZNmyYtm/fru+++067d+9W7dq1dejQIZ05c0Z16tTJMXdxujV+xQAAAAAAAAAAuCWEhIRoyZIl6tGjhy5evKh169bJx8dH//vf//Tpp5/K2TnnnupSpUrp66+/Vp8+fZSRkaG1a9fKbDZrwIAB+uKLL+Tp6WmX12GyWq1Wu1QGAAAAAAAAcEc63vYeey/B7qpt/NneS3B47PwGAAAAAAAAADgczvwGAAAAAAAAULxMJnuvAHcAdn4DAAAAAAAAABwO4TcAAAAAAAAAwOEQfgMAAAAAAAAAHA7hNwAAAAAAAADA4XDhJQAAAAAAAIDiZebCS9geO78BAAAAAAAAAA6H8BsAAAAAAAAA4HAIvwEAAAAAAAAADofwGwAAAAAAAADgcLjwEgAAAAAAAECxMpnYkwvb41MGAAAAAAAAAHA4hN8AAAAAAAAAAIdD+A0AAAAAAAAAcDiE3wAAAAAAAAAAh8OFlwAAAAAAAACKl9lk7xXgDsDObwAAAAAAAACAwyH8BgAAAAAAAAA4HMJvAAAAAAAAAIDDIfwGAAAAAAAAADgcLrwEAAAAAAAAULxMXHgJ22PnNwAAAAAAAADA4RB+AwAAAAAAAAAcDuE3AAAAAAAAAMDhEH4DAAAAAAAAABwO4TcAAAAAAAAAwOE423sBAAAAAAAAAO4wZvbkwvb4lAEAAAAAAAAAHA7hNwAAAAAAAADA4RB+AwAAAAAAAAAcDuE3AAAAAAAAAMDhcOElAAAAAAAAgOJlMtl7BbgDsPMbAAAAAAAAAOBwCL8BAAAAAAAAAA6H8BsAAAAAAAAA4HAIvwEAAAAAAAAADocLLwEAAAAAAAAUKxMXXqIYsPMbAAAAAAAAAOBwCL8BAAAAAAAAAA6H8BsAAAAAAAAA4HAIvwEAAAAAAAAADocLLwEAAAAAAAAULzN7cmF7fMoAAAAAAAAAAA6H8BsAAAAAAAAA4HAIvwEAAAAAAAAADofwGwAAAAAAAADgcLjwEgAAAAAAAEDxMpnsvQLcAdj5DQAAAAAAAABwOITfAAAAAAAAAACHQ/gNAAAAAAAAAHA4hN8AAAAAAAAAAIfDhZcAAAAAAAAAipeZCy9he+z8BgAAAAAAAAA4HMJvAAAAAAAAAIDDIfwGAAAAAAAAADgcwm8AAAAAAAAAgMPhwksAAAAAAAAAxcvEnlzYHp8yAAAAAAAAAIDDIfwGAAAAAAAAADgcwm8AAAAAAAAAgMMh/AYAAAAAAAAAOBwuvAQAAAAAAABQrExmk72XgDsAO78BAAAAAAAAAA6H8BsAAAAAAAAA4HAIvwEAAAAAAAAADofwGwAAAAAAAADgcLjwEgAAAAAAAEDxMnHhJWyPnd8AAAAAAAAAAIdD+A0AAAAAAAAAcDiE3wAAAAAAAAAAh0P4DQAAAAAAAABwOFx4CQAAAAAAAKB4mdiTC9vjUwYAAAAAAAAAcDiE3wAAAAAAAAAAh0P4DQAAAAAAAABwOITfAAAAAAAAAACHQ/gNAAAAAAAAAHA4zvZeAAAAAAAAAIA7jNlk7xXgDsDObwAAAAAAAACAwyH8BgAAAAAAAAA4HMJvAAAAAAAAAIDDIfwGAAAAAAAAADgcLrwEAAAAAAAAULxMXHgJ22PnNwAAAAAAAADA4RB+AwAAAAAAAAAcDuE3AAAAAAAAAMDhEH4DAAAAAAAAABwOF14CAAAAAAAAKFYmM3tyYXt8ygAAAAAAAAAADofwGwAAAAAAAADgcAi/AQAAAAAAAAAOh/AbAAAAAAAAAOBwuPASAAAAAAAAQPEymey9AtwB2PkNAAAAAAAAAHA4hN8AAAAAAAAAAIdD+A0AAAAAAAAAcDiE3wAAAAAAAAAAh8OFlwAAAAAAAACKl5k9ubA9PmUAAAAAAAAAAIdD+A0AAAAAAAAAcDiE3wAAAAAAAAAAh0P4DQAAAAAAAABwOFx4CQAAAAAAAKB4mUz2XgHuAOz8BgAAAAAAAAA4HMJvAAAAAAAAAIDDIfwGAAAAAAAAADgcwm8AAAAAAAAAgMPhwksAAAAAAAAAxYsLL1EM2PkNAAAAAAAAAHA4hN8AAAAAAAAAAIdD+A0AAAAAAAAAcDiE3wAAAAAAAAAAh8OFlwAAAAAAAACKlcnMnlzYHp8yAAAAAAAAAIDDIfwGAAAAAAAAADgcwm8AAAAAAAAAgMMxPPw+ceKERo8ere7du6tRo0Z69dVXJUljx47Vl19+KavVanRJAAAAAAAAAAByMPTCy8WLF+utt95Senp69rPMzExJ0tatW/XVV19px44dmjRpkswcag8AAAAAAADcmUwme68AdwDDEuidO3dq9OjR8vLy0qhRo7Ry5coc7a+++qoCAwO1atUqfffdd0aVBQAAAAAAAAAgF8PC7+nTp8vJyUlz5sxR7969VaFChRzt7du317x58+Ti4qLFixcbVRYAAAAAAAAAgFwMC7/37t2rpk2bqmbNmvn2KV++vJo1a6bw8HCjygIAAAAAAAAAkIth4Xdqaqrc3d0L7Ofs7KwrV64YVRYAAAAAAAAAgFwMu/AyNDRU+/fvV1pamlxdXfPsc+XKFe3fv18hISFGlQUAAAAAAABwuzFz4SVsz7Cd3/fee6/Onz+v0aNHKy0tLVd7Wlqa3nzzTV26dEndunUzqiwAAAAAAAAAALkYtvO7f//++vXXX7Vs2TJt2bJFDRo0kCQdPXpUo0aN0rZt23TmzBlVqVJF/fv3N6osAAAAAAAAAAC5mKxWq9WoyRISEjR27Fj99NNPslgsudo7duyot99+W2XLljWqJAAAAAAAAIDbTHj/5+29BLurOOczey/B4RkafmeJiYnRrl27FBUVpczMTPn5+alp06ac9Q0AAAAAAACA8FuE38XBsGNPsqSnpysuLk733ntv9rPTp0/r0KFD8vX1lbu7u9ElAQAAAAAAANxOTIZdRQjky9BP2apVq9SmTRuNHDkyx/M9e/bopZdeUufOnbVlyxYjSwIAAAAAAAAAkIth4ffu3bs1dOhQJSUlqXr16jnaatasqYcffljx8fEaNGiQ9u7da1RZAAAAAAAAAAByMSz8njp1qsxms2bMmKG33347R1vNmjU1fvx4zZgxQxaLRZ9//rlRZQEAAAAAAAAAyMWw8Pvw4cNq1qyZWrVqlW+fVq1aqUmTJtq9e7dRZQEAAAAAAAAAyMWw8DspKUne3t4F9itTpozS0tKMKgsAAAAAAAAAQC7ORk1UsWJF7dq1SykpKXJ3d8+zT1pamn7//XeVL1/eqLIAAAAAAAAAbjdmk71XgDuAYTu/77vvPl26dEnDhg3T5cuXc7UnJibqlVde0fnz59W9e3ejygIAAAAAAAAAkIthO7/79Omjn3/+WevWrVP79u3VsGFDBQYGSpKio6O1d+9epaSkqFatWnr66aeNKgsAAAAAAAAAQC6Ghd+urq6aO3euJk2apKVLl2r79u252h977DG98sor+R6LAgAAAAAAAACAEUxWq9Vq9KRpaWk6cOCAYmNjZbFY5Ovrqzp16sjT09PoUgAAAAAAAABuM+EDXrT3Euyu4sxP7L0Eh2fYzu9rubq6qnHjxraYGgAAAAAAAMDtzsSFl7A9w8Pv5ORkhYeHKzk5WdfbVN6sWTOjSwMAAAAAAAAAIMnA8Ntisejdd9/V119/rYyMjOv2NZlMOnTokFGlAQAAAAAAAADIwbDwe86cOZo/f74kqVKlSvL19ZWzs01OVQEAAAAAAAAA4LoMS6eXLl0qZ2dnzZgxQ61atTJqWgAAAAAAAAAAbphh4ffZs2fVokULgm8AAAAAAAAA12Uyme29BNwBDPuUlSpVSiZuaQUAAAAAAAAA3AIM2/nduXNn/fDDDzp//rx8fX2NmhYAAAAAAAAAcAO2bNmiqVOn6ujRo0pPT1edOnU0cOBAtWvXrsCxffr00Y4dOwrsN2TIEL344ovZ33fp0kVnzpzJt//BgweL/Y5Iw6oNGzZMO3bs0LPPPquXX35Z9evXl4eHh1HTAwAAAAAAAAAKsHTpUr322mtydXVVy5YtlZmZqe3bt2vgwIEaO3asevbsed3xrVu3lr+/f55tSUlJWrNmjSSpVq1a2c8TEhJ09uxZ+fr65nssttlc/EfdGBZ+P/3008rMzNShQ4fUv39/SVdfUH5HoRw4cMCo0gAAAAAAAABwx4uJidHo0aPl7e2thQsXqnr16pKkffv2qX///ho3bpw6dOiQb7gtSYMHD863bfjw4ZKkgQMHqkuXLtnPDx8+LKvVqo4dO+rtt9826NXcPMPi9gMHDujkyZOyWq3ZXxaLRRkZGXl+AQAAAAAAALhDmU182cCCBQuUlpamfv36ZQffklS/fn0NHDhQqampWrRoUZHm/uGHH7R8+XLVqVNH//nPf3K0HTp0SJJUp06dIq/dFgzb+X3kyBGjpgIAAAAAAAAA3KCNGzdKUo5d2Vm6dOmijz76SBs2bNDQoUNvaN7ExES9//77MpvNevvtt3Od3X348GFJt174XfwHrQAAAAAAAAAADGW1WhUWFiaz2azKlSvnaq9YsaLMZrPCwsJktVpvaO5p06YpNjZWjz76qGrXrp2r/dChQ3JyctLJkyfVu3dvNW3aVM2aNdNzzz2nffv2Ffk13axiDb9TU1N19uxZzZ8/vzjLAgAAAAAAAIBDi4uLU1pamkqVKiVXV9dc7c7OzipdurRSUlKUlJRU6HkvX76s+fPny8XFJc/zwNPS0vTnn3/KYrHolVdeUWpqqlq0aKHSpUtr7dq16tWrl3755Zebem1FZdixJ5L05Zdfav78+YqKilJ6evp1+/bp08fI0gAAAAAAAABw21i6dKmWLVtW6P4PP/ywevTokW97SkqKJMnd3T3fPm5ubpKkpKQkeXl5FaruokWLlJKSokceeUSBgYG52o8ePaqMjAx5enpqypQpatWqVXbb3LlzNX78eL322mtq0qSJ/Pz8ClXTKIaF3z/++GOOmzxNJpOsVqvMZrMyMzOzn/v6+uqee+4xqiwAAAAAAACA243JNhc+3k4iIiK0Y8eOQvdv3rz5ddvN5sIf8lHYY08yMzO1cOFCSdKAAQPy7FOvXj1t2rRJaWlpCg4OztHWr18/7dy5U6tXr9ayZcs0aNCgQq/RCIaF319//bVMJpNGjBihnj17atmyZXr77be1du1aeXl5adOmTXrrrbeUnp6e7w8KAAAAAAAAAO4EwcHBBQba/+x/PR4eHpKuHj2dnytXruToW5A9e/YoOjpajRo1UqVKlfLtd70d3R07dtTq1at14MCBQtU0kmHh99GjR1WlShX169dPktS4cWNlZmZq27ZtevDBB9WtWzf5+/vr8ccf1/Tp0zVq1CijSgMAAAAAAADAbaVHjx7XPcbkRnl5ecnDw0OXLl1SRkaGnJ1zRr8ZGRm6dOmSSpQooZIlSxZqzt9++02SdO+99xZ5XVnBeFbwXpwMu/AyOTk5xy2ilStXlslk0pEjR7KfNWzYUHXq1NHGjRuNKgsAAAAAAAAAdzyTyaSqVavKYrEoPDw8V/vJkyeVmZmp6tWrF3rODRs2SJK6du2ab5+ffvpJ//vf/7R8+fI828+ePStJCggIKHRdoxgWfpcsWTL7UHVJcnV1lb+/v44fP56jX/ny5RUdHW1UWQAAAAAAAACApLZt20qSVq9enast61n79u0LNVdiYqJOnDih4OBg+fv759vvwoULWrFihb766qtcbVarVT/88IMkqU2bNoWqayTDwu9atWppz549iouLy35WpUoV7d+/XxaLJftZZGTkdW8cBQAAAAAAAODgzGa+bKBHjx4qUaKEZsyYkeOM7f3792vmzJlyc3NTr169sp+fPn1aJ06cUEJCQq65Dh48KKvVqrp161635r333isvLy/t3r1bc+fOzX5utVo1ZcoU/fHHH6pevbo6dep08y/wBhn2U/73v/+tpKQk9ezZU7/++qskqVOnToqLi9OYMWMUHh6u2bNna//+/apWrZpRZQEAAAAAAAAAunrqxogRI5SYmKjHH39czzzzjJ555hk98cQTSkpK0tixY1W2bNns/v369VP37t21atWqXHNlHVfi6+t73ZplypTRO++8IxcXF40fP1733Xefhg4dqrvvvluffPKJ/Pz89Mknn+Q6g7w4GFaxe/fu2rFjh77++mutWLFCXbt21SOPPKK5c+fqm2++0TfffJPd99lnnzWqLAAAAAAAAADgL71791ZQUJBmzpypPXv2yNXVVY0bN9bgwYPVqlWrQs9z8eJFSZK3t3eBfbt166bg4GBNmzZNO3fuVHh4uMqVK6c+ffro+eefV5kyZYr8em6GyWq1Wo2ccP/+/UpMTMz+QZ47d04fffSR9u3bp4CAAPXt21ft2rUzsiQAAAAAAACA28ipF4bbewl2V2HKBHsvweEZHn4XRnx8vEqWLFncZQEAAAAA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AADAQSxdulSvvfaaXF1d1bJlS2VmZmr79u0aOHCgxo4dq549exY4x/Tp0zVx4kSZzWbVr19fZcuW1eHDh7Vo0SKtWrVKX375papUqZLdPywsTGlpaQoNDVWDBg1yzVeqVCkjX2KhEX4DAAAAAAAAKF4mk71X4JBiYmI0evRoeXt7a+HChapevbokad++ferfv7/GjRunDh06yN/fP985wsLC9NFHH8nDw0OzZ89Wo0aNJEnp6el65513tHDhQr3++utatGhR9pjDhw9Lknr06KHBgwfb8BXeGM78BgAAAAAAAAAHsGDBAqWlpalfv37Zwbck1a9fXwMHDlRqamqO0Dov33//vTIzM9W/f//s4FuSXFxc9Prrr6tMmTL6448/FBERkd126NAhSVKdOnUMfkU3h/AbAAAAAAAAABzAxo0bJUldunTJ1Zb1rKCzt11cXFSjRg01a9Ysz7by5ctLks6dO5f9PGvnd926dYu2cBvh2BMAAAAAAAAAuM1ZrVaFhYXJbDarcuXKudorVqwos9mssLAwWa1WmfI5embo0KEaOnRonm3JyckKCwuTpOxLL61Wqw4fPiw/Pz/99ttvWrRokU6cOKESJUqodevWGjJkSJ7rKQ6E3wAAAAAAAABQzJYuXaply5YVuv/DDz+sHj165NseFxentLQ0lSlTRq6urrnanZ2dVbp0aV24cEFJSUny8vK64TXPmDFDycnJqlevngIDAyVJZ86cUWJiohITE/XGG2+ocePGatGihQ4fPqwff/xR69at04wZM9SkSZMbrnezCL8BAAAAAAAAFC8zF15GRERox44dhe7fvHnz67anpKRIktzd3fPt4+bmJklFCr/Xr1+vadOmyWw26+WXX85+nnXet7+/v6ZNm6ZatWpJkjIyMjRx4kTNnj1bw4YN06pVq1SiRIkbqnmzCL8BAAAAAAAAoJgFBwcXGGj/s//1mM2Fv97RarUWuq8krVu3TkOHDpXFYtH//vc/tWjRIrutW7duWrduncxms/z9/bOfOzs76+WXX9b27dt18OBBrV69Wvfee+8N1b1ZhN8AAAAAAAAAUMx69Ohx3WNMbpSHh4ckKTU1Nd8+V65cydG3ML755huNHj1aGRkZGjJkiAYNGpSj3WQyZR+B8k9ms1nt27fXwYMHdeDAAcJvAAAAAAAAAMCN8fLykoeHhy5duqSM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PD09c8zbvn0733//PTt27CAtLa3Qk98iIiIiIiIiIiJy89KAj1IUbJb8vt7Fixf54YcfWL16NWFhYWR0MPfx8SmsTYqIiIiIiIiIiIiIAIWQ/N61axfff/89W7duJS0tDYPBgIeHB7169eLhhx+mRYsWtt6kiIiIiIiIiIiIiEg2Nkl+X758mR9//JFVq1YREhKS2cvbzs6O+fPn07lzZ8qWLWuLTYmIiIiIiIiIiIiI5OmGkt979+7lu+++448//sjs5d2wYUMee+wxfvrpJ44fP879999vq7aKiIiIiIiIiIiIiFilQMnvhQsXsnr1agIDAzPLmvTu3ZvHHnuMxo0bA7Bp0yabNlRERERERERERERKhnSNeClFoEDJ71mzZuHk5ESfPn3o2bMnd999N2XKFNrYmSIiIiIiIiIiIiIi+VLgjHViYiIHDx6kTJkyODg40KlTJ+zt7W3ZNhERERERERERERGRAilQtvrXX39lwIABJCcns2bNGoYNG8Y999zDzJkz8ff3t3UbRURERERERERERETyxc5gKHiBnbS0NLZu3cratWvZvn07qamp2NnZ0aRJEy5evEhERAQnTpywZXutEhUdW+TblJtTckp6cTdBbgL29nbF3QS5SdgdP1bcTZCbgH0Fj+Jugtwk7F2ci7sJchPwqONb3E0QEREplb7/M7C4m1DsnurqXdxNKPFuqFC3g4MD999/P/fffz+RkZH88ssvrFmzhqNHjwJgZ2fHoEGD6NWrF927d8fNzc0mjRYREREREREREZFbl8a7lKJwQz2/LTl+/Dg//vgjv/32G9HR0djZ2VGmTBk6derEgw8+SO/evW29yWzU81syqOe3gHp+yzXq+S2gnt9yjXp+C6jnt4iISHH57g/1/H76PvX8LmyFkvzOkJyczB9//MHatWvZvXs3aWlp2NnZFXopFCW/JYOS3wJKfss1Sn4LKPkt1yj5LaDkt4iISHFR8lvJ76JwQ2VP8uLo6EjPnj3p2bMnFy9eZO3atfz000+FuUkREREREREREREREeyLakNVq1Zl6NChrF+/vqg2KSIiIiIiIiIiIiKlVJElv0VEREREREREREREikqhlj0RERERERERERERuV7hjUIoco16fouIiIiIiIiIiIhIiaPkt4iIiIiIiIiIiIiUOEp+i4iIiIiIiIiIiEiJo+S3iIiI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xRZ3E+Qm4ZB0Ne+FpMSzK+dY3E2Qm0QqDsXdBLkJBF8yP6CLlD4+rqnF3QS5CaScDSjuJshNonKHdsXdBBGRUuWrX88VdxOK3dA+5geJLEofffQRCxcupHz58rRr1474+HgOHjxImTJlWLhwIe3aZb8/3n777QAsX76ctm3bApCens7rr7/Oxo0bKVu2LHfeeSfly5dn//79xMfH07NnT2bPno2Dw7Xv5P/99x/9+/cnISGBO+64g2rVqnHgwAGio6N58skn+fDDD23y+crYJIqIiIiIiIiIiIiI3FJGjx5N/fr1WbFiBXv37sXFxYUuXbrwyiuvZJYpyYu9vT1z587l+++/Z/Xq1fz999/Y29tTv359nnzySR5//HHs7OyyrdO8eXNWr17Np59+yv79+zlz5gw+Pj68+eabPPHEEzb7fOr5LSWaen4LqOe3XKOe3wLq+S3XqOe3gHp+yzXq+S0iUrTU8/vm6Pld0qnmt4iIiIiIiIiIiIiUOCp7IiIiIiIiIiIiIkWqBBajkJuQen6LiIiIiIiIiIiISImj5LeIiIiIiIiIiIiIlDhKfouIiIiIiIiIiIhIiaPkt4iIiIiIiIiIiIiUOBrwUkRERERERERERIpUusa7lCKgnt8iIiIiIiIiIiIiUuIo+S0iIiIiIiIiIiIiJY6S3yIiIiIiIiIiIiJS4ij5LSIiIiIiIiIiIiIljga8FBERERERERERkSJl0ICXUgTU81tEREREREREREREShwlv0VERERERERERESkxFHyW0RERERERERERERKHCW/RURERERERERERKTE0YCXIiIiIiIiIiIiUqQMGvFSioB6fouIiIiIiIiIiIhIiaPkt4iIiIiIiIiIiIiUOEp+i4iIiIiIiIiIiEiJo+S3iIiIiIiIiIiIiJQ4GvBSREREREREREREilS6xruUIqCe3yIiIiIiIiIiIiJS4ij5LSIiIiIiIiIiIiIljpLfIiIiIiIiIiIiIlLiKPktIiIiIiIiIiIiIiWOBrwUERERERERERGRImXQgJdSBNTzW0RERERERERERERKHCW/RURERERERERERKTEUfJbREREREREREREREocJb9FREREREREREREpMTRgJciIiIiIiIiIiJSpDTgpRQF9fwWERERERERERERkRJHyW8RERERERERERERKXGU/BYRERERERERERGREkfJbxEREREREREREREpcTTgpYiIiIiIiIiIiBSpdI14KUVAPb9FREREREREREREpMRR8ltEREREREREREREShwlv0VERERERERERESkxFHyW0RERERERERERERKHA14KSIiIiIiIiIiIkVK411KUVDPbxEREREREREREREpcZT8FhEREREREREREZESR8lvERERERERERERESlxVPO7GMXExLBo4QK2b9/KpUuXqFixIu3atWfgoCFUr169WOKtXv09s2d9xKzZc+jU6W6Ly+3atZPvvlvJyRPHMRgM+PrW4eFHHqFXr96UKaPDKi8xsbEsWLKEbTt3cOnyZSpWqED7Nm0ZPGAA1b28iiTeG2PHsGvPHosxq1Wtyrof12Sb9vV33zH3889ybcuab1dSu1atfH+GkiwmJoYFCxeydfv2zHOzfbt2DBk0qMDnekHi/bZ+PatWr8bf35+yZcty22230e+ZZ+h8zz0W19m5axcrv/uO4ydOYDAYqOPryyOPPELvXr3MnutR0dHc3717ru0f+OKLvDR8uPUfuBS61e4PoaGh9H30Iavbs2//X/lqv+QUFxvD6pWL2b9nB1FXLuPuUYEWrdrxxLMvUrVa/u8jWaWnpzN+1DAuhIewZOV6i8slJl7llzUr2bPjDyIuhOLmXoEGtzfhkSf6Ub9Boxtqg1gWExvLgqVL2bZzZ5Z7fhsG9+9f8GeIAsQ7ceoUy1eu5O9//yU6JoZKFSvSqX17hgwYQJXKlW/kI4oVYuLjWfzzT2w/fIjLUVFUcHOjXbPmvPjQw1SvUiXf8QLCQvlm/XoOnTjB5egoypV1pL53bfrc05meHTpaFSM1NZUXJ72Hf3Aw88eMpVVDXQdERESk+NkZDCWvvPyVqNjibkKeYmJiGDJkIOcDAnB2dsHb25vQ0BBiYmJwc3Pj8y++okGDBkUa7+TJk7w0YigJCQm5Jr8/+2weK5YvA6BixYp4eVXn3LmzJCYmclebNsyYMQtnZ2fr/xiFyCHpanE3IYeY2FgGjRhBQOB5XJyd8a5dm5DQUGJiY3FzdeXLefNoUK9+ocd76MknCAsPp1mTJtjb53wJpGKFinw0ZUq2ae9PncK633+njo8P7u7uZtsz9f1JVKta1er2FwW7co7Ftu2YmBgGDhlCQECAcf94exv3j+nc/OqLL/J9rhck3rzP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iIiIiIiIiMjN4IbKnmQMWvnbb7/h6+ub70Esjx49eiObFxEREREREREREREx64aS36mpxldFMyqnZPx/EREREREREREREZHidEPJ7+sHuNSAlyIiIiIiIiIiIpKX9JI3DKHchFTzW0RERERERERERERKnCJPficlJREcHMyKFSuKetMiIiIiIiIiIiIiUkrcUNkTc77++mtWrFhBWFgYKSkpuS77/PPP23rzIiIiIiIiIiIiIiK2TX6vW7eOyZMnZ/5/Ozs7DAYD9vb2pKenZ06vUqUKPXv2tOWmRUREREREREREREQy2bTsyXfffYednR1jx47l77//5p133sHe3p6tW7dy6NAh5s6dS5UqVUhJSWHw4MG23LSIiIiIiIiIiIjcIgwG/ZPCZ9Pk96lTp6hXrx4DBgygfPnytGrVivT0dPbt24eLiws9evRg/vz5REdH89VXX9ly0yIiIiIiIiIiIiIimWya/E5ISKBu3bqZ/79u3brY2dlx8uTJzGktWrSgSZMm7Ny505abFhERERERERERERHJZNPkt7u7O1evXs38/46Ojnh6enLmzJlsy9WqVYvw8HBbblpEREREREREREREJJNNk9+NGjXi8OHDREdHZ06rV68eR44cIS0tLXNaaGgo5cuXt+WmRUREREREREREREQy2TT5/dhjjxEfH89TTz3Fpk2bAOjatSvR0dG8//77BAQEsHjxYo4cOUKDBg1suWkRERERERERERG5RRT3YJM3wz8pfDZNfvfq1Yunn36agIAAfvvtNwAef/xxateuzQ8//EDPnj356KOPABg2bJgtNy0iIiIiIiIiIiIikqmMLYOtXbuWp59+mscee4y4uDgAypUrxzfffMOcOXP477//8PLyon///tx999223LSIiIiIiIiIiIiISCabJr9nzZqFi4tLZsmTDNWqVWPatGm23JSIiIiIiIiIiIiIiEU2LXsSFxdHw4YNbRlSRERERERERERERCTfbNrzu3379hw4cIALFy7g6elpy9AiIiIiIiIiIiJSQqRrxEcpAjZNfg8ePJiJEyfSp08f7r//fho2bIiHhwf29uY7mPfp08eWmxcRERERERERERERAWyc/H7uueews7PDYDCwZs0a7Ozscl1eyW8RERERERERERERKQw2TX4/8sgjeSa8RUREREREREREREQKm02T39OnT7dlOBERERERERERERGRArFp8ltEREREREREREQkLxrvUoqC+ZEoRURERERERERERERuYUp+i4iIiIiIiIiIiEiJo+S3iIiIiIiIiIiIiJQ4Sn6LiIiIiIiIiIiISImjAS9FRERERERERESkSGnASykK6vktIiIiIiIiIiIiIiWOkt8iIiIiIiIiIiIiUuIo+S0iIiIiIiIiIiIiJY6S3yIiIiIiIiIiIiJS4mjASxERERERERERESlS6RrxUoqAen6LiIiIiIiIiIiISImj5LeIiIiIiIiIiIiIlDhKfouIiIiIiIiIiIhIiaPkt4iIiIiIiIiIiIiUOBrwUkRERERERERERIqUxruUoqCe3yIiIiIiIiIiIiJS4ij5LSIiIiIiIiIiIiIljpLfIiIiIiIiIiIiIlLiKPktIiIiIiIiIiIiIiWOkt8iIiIiIiIiIiIiUuKUKe4GiIiIiIiIiIiISOliMBR3C6Q0UM9vERERERERERERESlxlPwWERERERERERERkRJHyW8RERERERERERERKXGU/BYRERERERERERGREkcDXoqIiIiIiIiIiEiRSteIl1IE1PNbREREREREREREREocJb9FREREREREREREpMRR8ltEREREREREREREShwlv0VERERERERERESkxNGAlyIiIiIiIiIiIlKkNN6lFAX1/BYRERERERERERGREkfJbxEREREREREREREpcUpk2RMHpfTFJKmMU3E3QW4CjnExxd0EuUnYp6QWdxPkJuB14kRxN0FuEnad2hV3E+QmUKZWzeJugtwkzgVfKe4myE2gTq2Kxd0EERGxIaWJRURERERERERERKTEKZE9v0VEREREREREROTmpQEvpSio57eIiIiIiIiIiIiIlDhKfouIiIiIiIiIiIhIiaPkt4iIiIiIiIiIiIiUOEp+i4iIiIiIiIiIiEiJowEvRUREREREREREpEila8BLKQLq+S0iIiIiIiIiIiIiJY6S3yIiIiIiIiIiIiJS4ij5LSIiIiIiIiIiIiIljpLfIiIiIiIiIiIiIlLiaMBLERERERERERERKVIGg0a8lMKnnt8iIiIiIiIiIiIiUuIo+S0iIiIiIiIiIiIiJY6S3yIiIiIiIiIiIiJS4ij5LSIiIiIiIiIiIiIljga8FBERERERERERkSKl8S6lKKjnt4iIiIiI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+/nnn09zP7IGJKzlGzVqlOZbAtbeeNlx3ntQZGXfza7AU2rb09ru96J3p5Sxc9DgwYPVsWNH8xy0Y8cObdy4URs3btSSJUv0/fffpzqY7d2Wc+d2tF5jqlSpkmaqDHtvKd2NI7d3Vq5Hqc0vI8GNmjVrat26dQoNDdX69eu1adMmHTt2TLNmzVJISIhmz56d6kN4Rs851vWwDmSaluRpWLKTdeDf1LbRne1x+PBhdenSRbGxsSpWrJh8fHxUvnx5eXt768knn7Q7eGVWjrusePnll7V//36tWLFC/fv314oVK+Tk5JRiEEyr9OzTuaHNHE1CQoKZniYmJsbssHOnxMRELV68WL1791axYsVUokQJxcTEaN++ffLz80tzGatWrdKFCxdUr169NM/HuD/uPHdm9nkxPfNG7pTRZw170ton2A8APEgIfmeBtRdSavnRMvJqpsVikcVi0TvvvKO4uDitWbNGI0eO1K+//qpdu3al2Rt26tSpOnHihF5++WWNGDHCpjdyXFxcln99t77qnlpPuqioKB08eFDVqlUzAwK+vr4Omf9Xut3Dz9XVVefOnVNiYmKKoMeFCxe0evVqMxXOyZMnU52X9dXvokWLZqlOjz32mF5//XW9/vrrSkxM1JYtWzRy5EgdO3ZMCxcuVI8ePcygSWpB7itXrmSpDqnx8PCQq6urEhMTNWHCBIcKjmaVs7OzatasqZo1a0q6/WASEhKir776SpMmTVK7du3Msqk9uFrPP9aek8WLF9epU6c0YMCANHtTWhUvXlzHjx9X165dbV65T012nvdyu9yw7167dk2XL19OkVLDuv3T80ZOTihTpoy6deumbt266caNG/rjjz80bNgwbd++Xb/99pvdVB7S7f3pzz//1KlTp+wGT+7cn6zXmPr16+vtt9/O1nVw5Pa2rtu5c+d048YNu72/77wepXXNiIuLy1AvQen2jwotWrQw02AcPHhQU6ZM0fr16zVt2jQz5/OdMnrOse4jjz76qCZNmpShOmYX67nX2gP8TndOHzVqlGJjY9W7d2+9++67NgGFQ4cOpbqczB53WfH8889rwoQJWrNmjbp06aKdO3cqICDAbm926fa1684foxISEnT+/Hm5u7vLw8MjV7SZo/n999918eJF1axZ08z3f6fffvtN77zzjhYvXqy33npLzs7OatiwoebPn681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5Fq3bq358+frjz/+UHR0tEqWLKn//Oc/SkxM1Ndff61evXrJ09NTFotFLi4u2rdvn6Kjo+Xi4qL333//gb+ff5jkxPMico+MPGu0aNFCM2fO1LFjx9SsWTNVq1ZNp0+f1r59+9S6dWstX778Pq8NAGQdPb+zyMnJSVOmTNFHH32kUqVK6Y8//tDp06f13nvvqV+/fnf9fpkyZbRgwQK1bt1aN2/eVGhoqHbv3i0fHx9NmTLFfCXYasSIEapYsaKOHj2qjRs36uLFi6pfv76+/PJL+fv768SJE1q3bp0uX76sDh06aPny5WrevLmklL/0Z0SBAgX0v//9T++++64KFCig0NBQHTx4UHXr1tXcuXNVt25ds2yxYsW0aNEivfPOOypatKg2b96sffv2qWLFiho9erSmTp3qEHmfx44dq/Hjx8vLy0tbt27V1q1bVb58eU2YMEF9+vSRdDvP2pQpUzRu3Dh5e3trx44dioiIUKlSpTRw4ED98MMPKly4cKbr4Obmpq+//lrdu3dX4cKFtWnTJm3atElFixZVv3799N1339kMePXGG29o7Nix8vb21p49e7Rz5041atRIixYtMoOb98qQIUM0c+ZMBQQE6OjRo/rjjz+UN29ederUScuWLTNzpD8sGjdurK+//lp169bVyZMn9fvvv+vEiRNq2rSpFi5cqAYNGtiUb9++vUaMGKErV65o/fr18vDw0AcffKCvvvoqxaBmwcHBmjNnjho0aKDTp09r/fr1SkpK0ksvvaRly5alyO393HPPadGiRXr++ed14cIFhYaG6sqVK2rWrJkWLVpk9gyzqlatmhYuXKgWLVrozJkz2rBhgywWi0JCQtKVZzy38vDw0KhRo+Tp6amtW7dq48aNku7/vjtr1iy1aNFCO3fu1O7du1WjRg19//33at++/T1dbnp4eHho3rx56tChg9zc3LRhwwZFRkaagapPP/30rvNo2rSp5s6dq3r16unw4cPatGmTgoKCNHfuXLtBtfLly2vZsmUKDg7WI488ovDwcB09elTVq1fX9OnT9eGHH6a77g9bew8cOFAzZ85UYGCgDhw4oLCwMOXPn1+9e/fW0qVLbX5sl26nPRo4cKDKli2rrVu3KioqSm3bttXcuXOVL1++FPNv166dXnjhBSUmJmrDhg36888/zeUOGzZMFStW1J49e7Ru3TrduHFDHTt21LJly+7ak75o0aKaP3++unbtKul22pA8efJo+vTpevbZZ1OUd3Z21tSpUzV27FhVrFhR+/fv1+bNm1WsWDG99dZbWrhw4T2/5rm4uOjzzz/Xf/7zHxUpUkRhYWE6cuSIunTpogkTJki6HRiWbgfKJ06cKG9vb0VFRZnn7DfffFPLli1TUFCQEhMTzV7d2XHcpSW1drRydnY2x6J56aWX0pzXmDFj1LlzZx08eFBbtmyRt7e3ZsyYYd4nJZ/n/W4zR2FNeWLNr5+WqlWrqmzZsrp165b5NpeTk5MGDBiguXPnqnXr1nJ2dlZERITCwsKUJ08etWnTRkuWLMn2cRdwb+XE8yJyl/Q+a+TPn1/z58/Xiy++qKSkJIWFhckwDE2aNEk9e/a8z2sBANnDycjoiEUAgBzz2WefacaMGXr//fd50HzINGzYUKdOnVJYWNgD/aMC0of2diwHDx5U4cKFzQE7k7MONNi9e/cUnRweBPHx8apTp44ee+wx/frrr3ZzhHfq1Elbt27VvHnz0jWYMgAAAHCv0PMbAAAAyEYff/yx6tWrl2LAx9jYWM2YMUOS0pWeJ7dISkpSQkKCEhISNG7cOF29elUdOnRIc3BMAAAAIDcg5zcAAA+wNWvWmAPcpterr75Kb8wHFO39YHjjjTfUp08f9ezZU76+vipVqpSuXLmiHTt2mGO6WFOH3CsZ7VVepEgRDRkyxO5niYmJqlq1qpycnHTz5k2VKVMmV6ReAgAAAO6G4DcAAA+wQ4cOaeXKlRn6Tq1atQiGPqBo7wfDc889pxIlSmjOnDnas2ePoqKilD9/fvn7+6tDhw450us7o/uJp6dnqsFvNzc3WSwWHT16VAEBARo9erTdvO8AAABAbkPObwAAAAAAAACAwyHnNwAAAAAAAADA4RD8BgAAAAAAAAA4HILfAAAAAAAAAACHQ/AbAAAAAAAAAOBwCH4DAAAAAAAAABwOwW8AAAAAAAAAgMMh+A0AAAAAAAAAcDgEvwEAAAAAAAAADofgNwAAAAAAAADA4RD8BgAAAAAAAAA4HILfAAAAAAAAAACHQ/AbAAAAAAAAAOBwCH4DAAAAAAAAABzO/wHVtpkwEmTUwwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 690, + "width": 735 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.set(style=\"white\")\n", + "# Generate a mask for the upper triangle\n", + "mask = np.zeros_like(df_train.corr(), dtype=np.bool)\n", + "mask[np.triu_indices_from(mask)] = True\n", + "# Set up the matplotlib figure to control size of heatmap\n", + "fig, ax = plt.subplots(figsize=(16,12))\n", + "# Create a custom color palette\n", + "cmap = sns.diverging_palette(255, 10, as_cmap=True) # as_cmap returns a matplotlib colormap object rather than a list of colors\n", + "# Red=10, Green=128, Blue=255\n", + "# Plot the heatmap\n", + "sns.heatmap(df_train.corr(), mask=mask, annot=True, square=True, cmap=cmap , vmin=-1, vmax=1, ax=ax) # annot display corr label\n", + "# Prevent Heatmap Cut-Off Issue\n", + "bottom, top = ax.get_ylim()\n", + "ax.set_ylim(bottom+0.5, top-0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 435, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 254, + "width": 392 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "df_train['distance'].plot.hist()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 436, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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IBYuXGj2lDlq166djh07dtefCwwM1BdffGG43t/fX6GhoXd9HgAAAKAwMj1ANGvWzOwpAQAAAOQTpm+izo0jN1MDAAAAyBsOCxCxsbH617/+paefflr169e3v5shLi5OL7/8sjZt2uSoUwMAAABwENNvYZKkbdu2adiwYUpKSpLNZpP0x2bp8+fP66efftKePXs0ePBgvf76645oAQAAAIADmL4CcfbsWQ0ZMkRXr17VU089pZkzZ6pevXr28erVq+sf//iHbDabZs2aleWpTQAAAADyN9MDxGeffaZr167p//7v/zR16lS1adNGJUqUsI+XL19ekyZN0vDhw2Wz2bRkyRKzWwAAAADgIKYHiMjISN13333q37//bev69OmjsmXL6uDBg2a3AAAAAMBBTA8Qv/76q3x9feXq6nrbOldXV91///23fckcAAAAgPzF9ABRpkwZXbhwwVBtXFycypYta3YLAAAAABzE9ADRuHFjJSYmav369betW7duneLj49WoUSOzWwAAAADgIKYHiN69e8tms2nMmDFatWqVbty4kWU8LS1NK1as0LvvviuLxaIePXqY3QIAAAAABzH9PRBNmzbVkCFDFBoaqlGjRtmDgiQFBwfr/Pnzun79umw2m/r06aNHHnnE7BYAAAAAOIhDXiQ3aNAg+fv7KzQ0VNHR0fbjJ06ckCRVqVJFgwYN0vPPP++I0wMAAABwEIcECElq166d2rVrp3Pnzik6OlpJSUny8PBQ9erV5e/v76jTAgAAAHAghwWITL6+vvL19XX0aQAAAADkAdM3UQMAAAAovExfgahbt+5d1VssFh05csTsNgAAAAA4gOkBwmazGa4tXbq02acHAAAA4ECmB4jw8PBcx65du6b4+Hht3LhRq1at0vPPP6+3337b7BYAAAAAOIjpAaJWrVp3rGndurXq1KmjSZMmqUGDBnr22WfNbgMAAACAAzhtE3WPHj1Urlw5hYWFOasFAAAAAHfJaQHC1dVVPj4+On78uLNaAAAAAHCXnBYgkpKSdPr0abm7uzurBQAAAAB3yfQ9ENeuXct1zGazKTU1VadOndInn3yilJQUBQUFmd0CAAAAAAcxPUAEBgYaqrPZbHJ1ddWAAQPMbgEAAACAgzjtPRC1a9fWkCFD9NBDD5ndAgAAAAAHMT1AbNy48fYndHNTmTJl5OHhYfap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1apVK1WsWNHJnQIAAACOxwrEHSxevFipqanq3bu3PTxIUsOGDdW/f3/duHGDVQgAAAAUGaxA3MG2bdskSW3atMk21qZNG02dOlUREREaMmRIXrcGALcV/OZqZ7eQZ8I/7uTsFgCgyGAF4jZsNpuio6Pl4uKiGjVqZBuvXr26XFxcFB0dLZvN5oQOAQAAgLxFgLiNK1euKDU1VWXLllWxYsWyjbu5ualcuXK6du2akpOTndAhAAAAkLcsNn51nquLFy+qVatWqlKlijZt2pRjzZNPPqlffvlFERERpmykfvzxxxUXF6fSpUurbt269zwfAAAAkJOoqChdvXpVFStWvKvXE7AH4jZcXIwv0JiVw1JSUiRJV69e1a5du0yZEwAAAMhN5s+fRhEgbsNqtUqSbty4kWvN9evXs9Teq/vvv1/nz5+X1WpVtWrVTJkTAAAA+KszZ84oJSVF999//119jgBxG6VKlZLValViYqLS0tLk5pb125WWlqbExEQVL15cZcqUMeWcq1atMmUeAAAAwBHYRH0bFotF/v7+Sk9P1+nTp7ONnzp1ShkZGVneDwEAAAAUZgSIOwgKCpIkff/999nGMo+1bNkyT3sCAAAAnIUAcQfPPfecihcvrs8//1w///yz/fihQ4f073//WyVKlNBLL73kxA4BAACAvMNjXA1YvHixPvjgA7m7u6t58+aSpJ07dyotLU2TJ09Wp068ARUAAABFAwHCoM2bN+vf//63jhw5omLFiql27dp67bXX9PDDDzu7NQAAACDPECAAAAAAGMYeCAAAAACGESAAAAAAGEaAAAAAAGAYAQIAAACAYQQIAAAAAIYRIAAAAAAYRoAAAAAAYBgBAgAAAIBhBAgAAAAAhhEgAAAAABjm5uwGkH/89ttvCg4O1qVLl3Ts2DFntwMTrVq1SiNHjsx1fODAgRo6dGgedgRH+eWXXzRr1iz98MMPSkhIULly5dSqVSsNGTJEFSpUcHZ7+Jtq165tqG7hwoVq3ry5g7tBXli9erUWL16s48ePKyMjQ35+fnruuef08ssvy9XV1dntwQQ3b95UWFiYVq1apdOnT6t06dJq1KiRBgwYoMaNGzu7vdsiQMBu3LhxunTpkrPbgANERUVJkh599FF5enpmG69bt25etwQHOHTokPr06aOrV68qICBADzzwgH7++WctW7ZMO3bs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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 251, + "width": 392 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "df_train['consume'].plot.hist()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 437, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 251, + "width": 392 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "df_train['speed'].plot.hist()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 438, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxAAAAH2CAYAAADge2pLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAABYlAAAWJQFJUiTwAAA52ElEQVR4nO3dfXxO9/3H8feVO0mEEsRt3KRJUEqrQtstVVVU19BuVesUYYqyX1pqRjttVRWdtmR0qp1WUxSdmymtFiXmJnUTmqFIqJtqIiRuIkgl5/eHR641S8I3c65cuXk9H489Hnq+n+ucz/FdIu+c8z3HYVmWJQAAAAAw4OHuBgAAAACUHwQIAAAAAMYIEAAAAACMESAAAAAAGCNAAAAAADBGgAAAAABgjAABAAAAwBgBAgAAAIAxAgQAAAAAYwQIAAAAAMYIEAAAAACMESAAAAAAGPNydwMo6NFHH9WJEyfk7++vJk2auLsdAAAAVFBHjx5Vdna2GjVqpOXLlxt/jgBRxpw4cUIXLlzQhQsXlJaW5u52AAAAUMGdOHGiRPUEiDLG399fFy5cULVq1dSyZUt3twMAAIAKav/+/bpw4YL8/f1L9DkCRBnTpEkTpaWlqWXLloqLi3N3OwAAAKig+vXrp2+++abEt82ziBoAAACAMQIEAAAAAGMECAAAAADGCBAAAAAAjBEgAAAAABgjQAAAAAAwRoAAAAAAYIwAAQAAAMAYAQIAAACAMQIEAAAAAGMECAAAAADGCBAAAAAAjBEgAAAAABgjQAAAAAAwRoAAAAAAYIwAAQAAAMAYAQIAAACAMQIEAAAAAGNe7m4AAOAaUc+vcHcLpWblm73c3QIAVBpcgQAAAABgjAABAAAAwBgBAgAAAIAxAgQAAAAAYwQIAAAAAMYIEAAAAACMESAAAAAAGCNAAAAAADBGgAAAAABgjAABAAAAwBgBAgAAAIAxAgQAAAAAYwQIAAAAAMYIEAAAAACMESAAAAAAGCNAAAAAADBGgAAAAABgjAABAAAAwBgBAgAAAIAxAgQAAAAAYwQIAAAAAMYIEAAAAACMESAAAAAAGCNAAAAAADBGgAAAAABgjAABAAAAwBgBAgAAAIAxL3c3cLNyc3O1cOFCLVu2TIcPH1Zubq6Cg4P18MMPa/DgwapSpUqB+qSkJM2aNUtJSUnKzs5WaGio+vfvr6ioqCL3f+TIEf31r3/Vzp07dfbsWTVu3FhPPPGE+vbtKw8P8hcAAAAql3IdIHJzczV8+HBt2LBB/v7+atu2rby8vLRnzx7FxsZq48aNmjdvnvz8/CRJmzdv1tChQ5WXl6eIiAj5+flp69atGj16tJKTkzVy5MgC+//uu+/Ut29fZWVlqV27drr99tuVkJCg1157TXv27NG0adPccdoAAACA25TrALFkyRJt2LBBzZs313vvvae6detKkjIyMjR8+HAlJibqnXfe0fPPP6/Lly/rj3/8oyRp7ty5uvvuuyVJx44dU79+/TR79mx17dpVrVu3liRZlqUxY8YoKytLb7zxhnr16uXcd3R0tFauXKmuXbuqe/fubjhzAAAAwD3K9T04y5YtkyS98MILzvAgSYGBgXrllVckSatWrZIkrVixQmfOnFFUVJQzPEhS48aNNXr0aElSXFycc/vmzZt14MABdejQwRke/nvfP68HAAAAKoNyHSBq1qypkJAQtWnTptBY06ZNJUmnTp2SJG3atEmS1KVLl0K1nTt3lqenp+Lj453b8usffPDBQvXt2rVTrVq1tHPnTmVlZd30eQAAAADlRbkOELNnz9bnn38uf3//QmNJSUmSpHr16kmSDh06JEkKDw8vVBsQEKCgoCBlZGTo9OnTkqTk5ORi6yWpWbNmysvLU0pKys2fCAAAAFBOlOsAURzLsjRjxgxJUrdu3SRJ6enpkqQ6deoU+Zn87fkBIv/KhWk9AAAAUBlUyADx1ltvafv27apdu7YGDx4sSbp06ZIkydfXt8jP5G/Pzs7+n+oBAACAyqDCBYgZM2Zozpw58vHx0fTp0xUYGChJ8vT0lMPhkMPhuO7n8/LynPWSjOsBAACAyqDCBIirV6/qpZde0jvvvKMqVapo5syZioiIcI77+fnJsixduXKlyM9fvnxZklS1alVn/c+336geAAAAqAwqRIC4ePGihg0bpkWLFql69er6+9//rk6dOhWoCQoKkvSftRD/7b/XSOTXF7fG4UZrKgAAAICKqNwHiHPnzqlfv37atGmT6tevr/nz5xe48pAvLCxMkop8alJWVpZOnTqlwMBA1a5du0B9/tOYfs6yLB0+fFienp669dZb7TwdAAAAoEwr1wEiJydHQ4YM0d69exUaGqpPPvmk2MeuRkZGSpLWrl1baGz9+vXKzc0tcNUi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g0vStGnTJF37bVBMTIxyc3MVERGhqlWratu2bbp06ZJGjhypYcOGlVb7Fdb/Mi//bezYsVq2bJneeOMN9erVy1WtVholmZMpU6aoc+fOOnXqlJo1a6bWrVsXW/vCCy/wNK2b8L98rYwfP16LFy+Wt7e37rrrLvn4+Ojbb7/V2bNn1bp1a33wwQdl5gVZ5ZEd37+ka09jPHbsmNatW1fkmjuUTEnnJS8vT88995zWrFkjb29vtW/fXn5+fkpISNDFixfVo0cPvfnmm84X+7oTayBQwODBg1WzZk3FxcVp69atqlatmjp27Kjf//73uvfee93dXoWwfft255OT9u7d63weelHyv9F36dJFcXFxmjVrlvbs2SPLstS8eXNFR0ezONQm/8u8wLVKMicDBw50vqvmyJEjOnLkSLG1zz33HAHiJvwvXysTJ05URESEFixYoD179igvL09NmzbV4MGD1b9/f95DcJP4/lU2lXRePDw8NGPGDC1atEhLlixRYmKiPDw8FBoaqieeeEKPP/74DR/pXlq4AgEAAADAGGsgAAAAABgjQAAAAAAwRoAAAAAAYIwAAQAAAMAYAQIAAACAMQIEAAAAAGMECAAAAADGCBAAAAAAjBEgAAAAABgjQAAAAAAwRoAAAAAAYIwAAQAAAMAYAQIAAACAMQIEAAAAAGMECAAAAADGCBAAAAAAjBEgAAAAABj7f/pa8otZczJeAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 251, + "width": 392 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "df_train['temp_inside'].plot.hist()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 439, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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AEoIuweIp556Sv369dOKFSuUlpZm780DAAAAcCK7BwhPT0/98MMPGjNmjH7zm99oxIgR2rx5s3Jycuz9VgAAAACKmYe9N7ht2zZ9++23iomJ0datW7Vq1SqtXr1afn5++t3vfqfnnntOTZs2tffbAgAAACgGdg8QXl5eCgsLU1hYmJKTk7V69Wr9+9//1oEDB/TFF1/oyy+/VIMGDdStWzeFhYWpevXq9i4BAAAAgIM49C5Mfn5+euWVV7R06VKtW7dOQ4cOVdOmTXXy5El98MEHevrpp9W3b1+tWLFC6enpjiwFAAAAgB0U221c69Spo8GDB2v+/PkaNmyYvLy8lJOTo+3bt2vMmDEKDQ3VlClTdPXq1eIqCQAAAMA9svslTAVJTk7WN998o9WrV2vfvn3KycmRYRiqUaOGwsLClJiYqHXr1ikqKkqrV6/W559/rsDAwOIoDQAAAMA9cFiASEtLsy2m3r59u7Kzs2UYhnx8fNS5c2c9//zzatOmjW3822+/reHDh2vz5s2aMGGCoqKiHFUaAAAAgF/J7gFi3bp1+vrrr7V582bdvHlThmHI3d1djz/+uJ5//nl16tRJXl5e+V7n6+urUaNGafPmzTp48KC9ywIAAABgB3YPEEOHDrX976CgID3//PMKCwtTQECA6W1UrlzZ3mUBAAAAsAO7Bwh/f3/97ne/0/PPP68mTZrc02urVq2qVatWqUaNGvYuCwAAAIAd2D1AbN68We7u7oX2Jycnq1KlSrJYLPn6fH195evra++SAAAAANiJ3W/j6u7uruzsbM2bN0//8z//o6ysrDz948eP1+OPP66///3vun37tr3fHgAAAIAD2X0GIisrS4MGDdK2bdskSfHx8WrUqJGt/9KlS0pJSVFkZKT27dunefPmFTgbAQAAAKDksfsMxOeff66tW7eqcuXKmjlzpho2bJinf+HChfr4449VvXp1bd68Wf/85z/tXcJdnT9/XmPGjNETTzyhZs2aKTQ0VOPGjVNSUlK+sfHx8Ro+fLjat2+vFi1aKCwsTFFRUcrJySn2ugEAAABns3uAiImJkYeHhz799FN16dJFHh55Jznc3d0VGhqqDz/8UBaLRf/617/sXUKRDh48qG7duulf//qXKlSooPbt28vNzU1Lly5Vz549de3aNdvYo0ePqnv37raF3aGhoUpISNDkyZM1cuTIYq0bAAAAKAnsHiDOnDmj+vXrKygoqMhxjRs3Vt26dRUXF2fvEgqVlZWliIgI3bhxQ2+//bZiYmI0d+5crVu3Tl26dNGZM2c0e/ZsSZJhGBo5cqRSU1M1bdo0LV68WHPmzNHatWvVqFEjxcTEaO3atcVWOwAAAFAS2D1AeHl5mb68p0yZMsW6/mH16tU6deqUwsLC1Lt3b1u7p6enRo8ercqVKys+Pl6SFBsbq2PHjql169bq1q2bbayfn5/Gjx8vSTwtGwAAAC7H7ouo69WrpwMHDujEiRP51j/80pkzZxQXF3fPz4q4H+vWrZMk9e/fP19f9erVFRsba/v/W7ZskSR17Ngx39iQkBD5+/tr9+7dSk1N5dazAAAAcBl2n4F47rnnZBiG/vSnP+nEiRMFjjlz5ozefPNNGYahsLAwe5dQqMOHD6tMmTJq3LixLl68qPnz5+vtt9/W9OnTdeDAgTxjcy+tCg4OLnBb9evXV05OTqGfEQAAAHgQ2X0G4qWXXtLXX3+tvXv3KiwsTM2bN1dwcLCsVqvS09N14sQJ7du3T9nZ2Xr44YfVs2dPe5dQoKysLF28eFHVqlXTmjVrNHbsWGVkZNj6P/74Y/3xj3+0LY6+dOmSJKlKlSoFbi+3/fLlyw6uHAAAACg57B4gPDw89NFHH2nKlCmKjo7Wvn37tG/fPlksFhmGIUmyWCzq2rWrJkyYoLJly9q7hAKlpqZKkq5du6ZRo0bpmWee0ZAhQ+Tv76///Oc/mjBhgj755BPVrVtXL730ki1ceHl5Fbi93Pb09PRiqR8AAAAoCeweICSpfPnyeu+99zRs2DBt3rxZZ86c0dWrV+Xl5aV69erpt7/9rerWreuIty5U7hOxMzIy9Nvf/lbTp0+39T377LOyWq16/fXXNXfuXIWHh8vd3V2S7rrIm+dBAAAAwJU4JEDkqlq1qnr06OHItzDtlzMJL7/8cr7+Dh06qGrVqkpMTNSpU6fk7e0tScrMzCxwe7ntPj4+DqgWAAAAKJnsvoi6pCpXrpzKlCkjSapVq1aBY2rUqCFJSklJUUBAgKTC1zjkPrW6sDUSAAAAwIPIITMQ586d06effqp9+/YpLS1N2dnZtvUP/81isei7775zRBl5uLu7q2HDhjp69KgSExPVuHHjfGNyw4K/v7+CgoK0adMmxcXFqU2bNnnGGYahkydP2rYJAAAAuAq7B4hTp07ppZde0vXr1wsNDb9UnA+Se+KJJ3T06FGtWbNG7du3z9N38uRJnT9/XgEBAapdu7ZCQ0O1YMECrV+/Xr169cozds+ePUpOTlbr1q15BgQAAABcit0DxNy5c3Xt2jVVrlxZvXr1Uv369Qu9k1Fx+8Mf/qB//OMfWrlypR5//HHbMyiuXbumt99+Wzk5OerVq5fc3NzUunVrBQUFKTY2VkuXLlV4eLgkKTk5WRMmTJBU8APpAAAAgAeZ3QPEtm3b5OHhoaioKNWvX9/em78vNWvW1DvvvKO//vWvioiI0GeffaaAgADt27dPKSkpatu2rf74xz9Kktzc3DRlyhT17dtX48aN0/LlyxUQEKAdO3bo2rVrCg8P11NPPeXkTwQAAAAUL7sHiOvXrys4OLjEhYdczz77rOrXr6+///3v2rlzp+Li4lS7dm0NGDBA/fv3ty20lqTmzZtr2bJlioyM1Pbt23X8+HHVrVtXw4cPLzF3lwIAAACKk90DRLVq1ZSSkmLvzdpVkyZNFBkZaWpsYGCg6bEAAADAg87ut3F95plnlJCQoO3bt9t70wAAAACczO4B4o033lDjxo0VERGhNWvWKC0tzd5vAQAAAMBJ7H4J07Bhw+Tr66sjR45o2LBhslgsslqtedYW/JLFYtHWrVvtXQYAAAAAB7B7gNi4caPtfxuGIcMwlJqaWuj44nwOBAAAAID7Y/cA8eWXX9p7kwAAmBI2ItrZJRSbmBndnF0CABdl9wDRunVre28SAAAAQAlh90XUhWExNQAAAFD6OSxAJCQk6L333tOzzz6rpk2bqlWrVpKkxMREvfLKK9qwYYOj3hoAAACAg9j9EiZJ2rJli4YPH67U1FQZhiHp58XS586d065du7R7924NGTJEb775piNKAAAAAOAAdp+BOHPmjIYOHaobN27omWee0Zw5c/TQQw/Z+uvVq6ff//73MgxDc+fOzXPXJgAAAAAlm90DxEcffaSMjAz95S9/0QcffKCOHTvKy8vL1u/v7693331XERERMgxDixYtsncJAAAAABzE7gEiNjZWFSpU0MCBA4sc179/f1WsWFEHDhywdwkAAAAAHMTuAeLKlSuqXbu23N3dixzn7u6uWrVqFfmQOQAAAAAli90DRPny5XXhwgVTYxMTE1WxYkV7lwAAAADAQeweIB555BGlpKRozZo1RY5bvXq1kpKS1KJFC3uXAAAAAMBB7B4g+vXrJ8MwNG7cOK1cuVI3b97M03/79m0tX75cY8eOlcViUa9evexdAgAAAAAHsftzIFq1aqWhQ4cqMjJSo0ePtgUFSQoLC9O5c+eUmZkpwzDUv39/Pf744/YuAQAAAICDOORBcoMHD1ZgYKAiIyMVFxdnaz9+/LgkqWbNmho8eLBefPFFR7w9AAAAAAdxSICQpM6dO6tz5846e/as4uLilJqaKm9vb9WrV0+BgYGOelsAAAAADuSwAJGrdu3aql27tqPfBgAAAEAxsPsiagAAAAAPLrvPQDRp0uSexlssFh0+fNjeZQAAAABwALsHCMMwTI8tV66cvd8eAAAAgAPZPUDExMQU2peRkaGkpCStX79eK1eu1Isvvqi33nrL3iUAAAAAcBC7B4igoKC7jnn66afVuHFjvfvuu2rWrJl+97vf2bsMAAAAAA7gtEXUvXr1UqVKlRQVFeWsEgAAAADcI6cFCHd3d1WvXl0//fSTs0oAAAAAcI+cFiBSU1N16tQplSlTxlklAAAAALhHdl8DkZGRUWifYRjKyspSfHy83n//faWnpys0NNTeJQAAAABwELsHiJCQEFPjDMOQu7u7XnvtNXuXAAAAAMBBnPYciEaNGmno0KFq2bKlvUsAAAAA4CB2DxDr168v+g09PFS+fHl5e3vb+60BAAAAOJjdA0TNmjXtvUkAAAAAJYTT7sIEAAAAoPSx+wzEn//85/vehsVi0cyZM++/GAAAAAB2ZfcAsXbtWkl3QoBU8KLqovp+2Q8AAACgZLF7gPj444+1efNmRUVFqUKFCgoLC1OzZs1UsWJFZWZmKi4uTjExMTp9+rQaN26sjh072rsEAAAAAA5i9wDh7e2tRYsWqWXLlpozZ44qVqyYb8zrr7+ut956S6tXr9awYcPUvn17e5cBAAAAwAHsvoh69uzZ8vDw0KxZswoMD5JUpkwZTZo0SVarVfPmzbN3CQAAAAAcxO4B4uDBgwoKCpK/v3+R46xWqxo0aKAjR47YuwQAAAAADmL3AOHl5aVLly7dddzt27d17tw5Wa1We5cAAAAAwEHsHiCaNWumpKQkff7550WOmz17tlJSUvT444/buwQAAAAADmL3RdQDBgzQli1bNHXqVB0+fFjPP/+8AgMDZbValZaWpqNHj2rJkiX6/vvv5e3trTfffNPeJQAAAABwELsHiLZt22r06NGaOnWqYmJiFBMTk2+MYRgqV66cZs6cqXr16tm7BAAAAAAOYvdLmCSpT58++te//qXnnntOFStWlGEYtv+qV6+u3r17KyYmRr/5zW8c8fYAAAAAHMTuMxC5GjdurKlTp0qS0tPTdePGDZUrV45F0wAAAEAp5rAA8UtWq5XgAAAAADwAHHIJk3Rn1iEqKkoDBw5Ux44d1bZtW0lScnKyRo0axfMfAAAAgFLIITMQhw4d0p/+9CddvHhRhmFIkiwWiyTp7Nmzio6O1qpVqzRx4kS98MILjigBAAAAgAPYfQYiKSlJAwcO1IULF9S8eXONHj1aDRs2tPVXrlxZbdq00e3btzV27Fjt2bPH3iUAAAAAcBC7B4j58+crOTlZvXr10pIlS9S3b19VqFDB1l+zZk198cUX6tOnjwzDuOsD5wAAAACUHHYPEBs3bpTVatVf//rXIseNGDFCvr6+zEAAAAAApYjdA0RiYqIaNGggLy+vIsd5enqqbt26unr1qr1LAAAAAOAgdg8Q3t7eunTpkqmxKSkp8vX1tXcJAAAAABzE7gGiWbNmSkpK0vbt24sct23bNl24cEFNmza1dwkAAAAAHMTuAeLll1+WYRgaOXKkdu7cWeCYbdu2KSIiQhaLRd27d7d3CQAAAAAcxO7PgejYsaN69OihZcuWqU+fPvL391d6erokadCgQYqPj9eZM2dkGIa6du2qrl272rsEAAAAAA7ikAfJTZo0SQ0aNNBHH32ky5cv29o3btwoSbJarerXr5+GDBniiLcHAAAA4CAOCRCS1L9/f/Xq1Uu7d+/WiRMnlJqaKm9vb9WrV08tW7aUj4+Po94aAAAAgIPYPUC89dZbqlmzpgYMGCAfHx+1a9dO7dq1s/fbAAAAAHACuy+i3rBhgxYvXnzX50AAAAAAKH3sHiBu3bqlatWqyd3d3d6bBgAAAOBkdr+EqUOHDvr222914MABNW/e3N6bB2AHYSOinV1CsYmZ0c3ZJQAO5Sp/z/wtAyWH3QPE8OHDdfHiRfXu3VudOnXSo48+qipVqsjT07PQ17Rv397eZQAAAABwALsHiM6dO0uSDMPQqlWrtGrVqiLHWywWHT582N5lAAAAAHAAuweI6tWr23uTAAAAAEoIuweIDRs22HuTDnX16lWFhYXp0qVLOnbsWL7++Ph4zZ49W7t379bVq1dVp04dhYeHq1evXnJzs/sadAAAAKBEc/lvwBMmTNClS5cK7Dt69Ki6d++uVatWqUaNGgoNDVVCQoImT56skSNHFnOlAAAAgPPd1wzEu+++q9q1a+uVV16xVz3F6uuvv9bq1asL7DMMQyNHjlRqaqqmTZumbt3u3P0hOTlZ/fr1U0xMjDp16qQuXboUZ8kAAACAU93XDMQXX3yhb775ptD+9evXa/fu3ffzFg6TmJioiRMn6tFHHy3wmRWxsbE6duyYWrdubQsPkuTn56fx48dLkqKiooqrXAAAAKBEcOglTEOGDNEHH3zgyLf41caOHausrCxNnTq1wP4tW7ZIkjp27JivLyQkRP7+/tq9e7dSU1MdWicAAABQkjh8DYRhGI5+i3u2aNEibdmyRREREapbt26BY+Li4iRJwcHBBfbXr19fOTk5OnHihMPqBAAAAEoal1tEffr0af3f//2f2rVrp169ehU6LndhdZUqVQrsz22/fPmy/YsEAAAASiiXChDZ2dkaNWqU3NzcNGXKFFkslkLHZmRkSJK8vLwK7M9tT09Pt3+hAAAAQAnlUgFiwYIF2rt3r9566y3VqFGjyLG5C6uLChmSlJOTY7f6AAAAgJLOZQLE0aNHNXv2bHXo0EE9evS463hvb29JUmZmZoH9ue0+Pj72KxIAAAAo4ez+JOqS6oMPPtCtW7d069YtRURE5OnLnUXIbR8zZowCAgJ05MgRXb58WQ0bNsy3vaSkJEmFr5EAAAAAHkT3HSBu3LihnTt3/up+SWrVqtX9lnFXuWsVYmNjCx0TExMjSfrLX/6ioKAgbdq0SXFxcWrTpk2ecYZh6OTJk3J3dy8wXAAAAAAPqvsOEMePH1efPn0K7LNYLEX25445fPjw/ZZxV0U99O2hhx5Sdna2jh07ZmsLDQ3VggULtH79+nx3a9qzZ4+Sk5PVunVr+fr6OqxmAAAAoKS57zUQhmHc138ldRFy69atFRQUpNjYWC1dutTWnpycrAkTJkiS+vfv76zyAAAAAKe4rxmIo0eP2quOEif3Vq99+/bVuHHjtHz5cgUEBGjHjh26du2awsPD9dRTTzm7TAAAAKBYucwi6l+jefPmWrZsmSIjI7V9+3YdP35cdevW1fDhw03dyQkAAAB40BAgpCLXYAQGBioyMrIYqwEAAABKLpd5DgQAAACA+0eAAAAAAGAaAQIAAACAaQQIAAAAAKYRIAAAAACYRoAAAAAAYBoBAgAAAIBpBAgAAAAAphEgAAAAAJhGgAAAAABgGgECAAAAgGkECAAAAACmESAAAAAAmEaAAAAAAGAaAQIAAACAaQQIAAAAAKYRIAAAAACYRoAAAAAAYBoBAgAAAIBpBAgAAAAAphEgAAAAAJhGgAAAAABgGgECAAAAgGkECAAAAACmESAAAAAAmEaAAAAAAGAaAQIAAACAaQQIAAAAAKYRIAAAAACYRoAAAAAAYBoBAgAAAIBpBAgAAAAAphEgAAAAAJhGgAAAAABgGgECAAAAgGkECAAAAACmESAAAAAAmEaAAAAAAGAaAQIAAACAaQQIAAAAAKYRIAAAAACY5uHsAgBnCxsR7ewSik3MjG7OLgEAAJRyzEAAAAAAMI0AAQAAAMA0AgQAAAAA0wgQAAAAAEwjQAAAAAAwjQABAAAAwDQCBAAAAADTCBAAAAAATCNAAAAAADCNAAEAAADANAIEAAAAANMIEAAAAABMI0AAAAAAMI0AAQAAAMA0AgQAAAAA0wgQAAAAAEwjQAAAAAAwjQABAAAAwDQCBAAAAADTCBAAAAAATCNAAAAAADCNAAEAAADANAIEAAAAANM8nF1AccvOztbixYu1YsUKnTx5UtnZ2apdu7aeffZZvfrqq/L09Mwz/uDBg5o7d64OHjyo9PR0BQYGqk+fPgoLC3PSJwAAAACcx6UCRHZ2tgYPHqyNGzfKarWqRYsW8vDw0P79+xUZGalNmzbpiy++kLe3tyQpNjZWr7/+unJyctSqVSt5e3tr27ZtioiIUFxcnIYNG+bkTwQAAAAUL5cKEMuWLdPGjRvVqFEjffzxx6pataokKTk5WYMHD9bevXv14YcfasSIEcrMzNRf//pXSdKnn36qtm3bSpLOnDmj3r17a968eerUqZOaNWvmtM8DAAAAFDeXWgOxYsUKSdKYMWNs4UGS/Pz8NH78eEnSqlWrJEnR0dG6cuWKwsLCbOFBkurUqaOIiAhJUlRUVDFVDgAAAJQMLhUgKlWqpAYNGqh58+b5+urVqydJunTpkiRpy5YtkqSnn34639gnn3xS7u7u2rx5s+OKBQAAAEogl7qEad68eYX2HTx4UJJUrVo1SdLx48clScHBwfnG+vr6KiAgQBcvXtTly5dVuXJlB1QLAAAAlDwuNQNRGMMwNGvWLElS586dJUlJSUmSpCpVqhT4mtz2y5cvF0OFAAAAQMlAgJD0/vvva+fOnapcubJeffVVSVJGRoYkycvLq8DX5Lanp6cXT5EAAABACeDyAWLWrFmaP3++ypYtq5kzZ8rPz0+S5O7uLovFIovFUuTrc3JyiqNMAAAAoERw2QBx+/Zt/e///q8+/PBDeXp6as6cOWrVqpWt39vbW4Zh6ObNmwW+PjMzU5Lk4+NTLPUCAAAAJYFLBoi0tDQNGjRIS5YsUfny5fXJJ5+offv2ecYEBARI+nktxH+72xoJAAAA4EHkcgHi2rVr6t27t7Zs2aLq1atr4cKFeWYecgUFBUmSTpw4ka8vNTVVly5dkp+fH3dgAgAAgEtxqQCRlZWl1157TYcOHVJgYKD++c9/FnibVkkKDQ2VJH333Xf5+jZs2KDs7Ox8sxYAAADAg86lngMRGRmpffv2qXr16oqKirItmC5Ily5dNGPGDK1YsUIdO3a0hYWzZ89qxowZslgs6tevXzFVDgAAJClsRLSzSyg2MTO6SXLNz4ySzWUCREpKiqKioiRJfn5+mjJlSqFjp0+fLl9fX02aNElDhw7V66+/rlatWsnHx0c//PCDMjIyNGzYMDVu3Li4ygcAAABKBJcJEDt37rTdOenQoUM6dOhQoWOnT58uSXr66acVFRWluXPnav/+/TIMQ40aNVK/fv3UtWvXYqkbAAAAKElcJkB07txZx44du+fXhYSE6JNPPnFARQAAAEDp41KLqAEAAADcHwIEAAAAANMIEAAAAABMI0AAAAAAMI0AAQAAAMA0AgQAAAAA0wgQAAAAAEwjQAAAAAAwjQABAAAAwDQCBAAAAADTCBAAAAAATCNAAAAAADCNAAEAAADANAIEAAAAANMIEAAAAABMI0AAAAAAMI0AAQAAAMA0AgQAAAAA0wgQAAAAAEwjQAAAAAAwjQABAAAAwDQCBAAAAADTCBAAAAAATCNAAAAAADCNAAEAAADANAIEAAAAANMIEAAAAABMI0AAAAAAMI0AAQAAAMA0AgQAAAAA0wgQAAAAAEwjQAAAAAAwjQABAAAAwDQCBAAAAADTCBAAAAAATCNAAAAAADCNAAEAAADANAIEAAAAANMIEAAAAABMI0AAAAAAMI0AAQAAAMA0D2cXAAAAAPxS2IhoZ5dQbGJmdHN2CfeMGQgAAAAAphEgAAAAAJhGgAAAAABgGgECAAAAgGkECAAAAACmESAAAAAAmEaAAAAAAGAaAQIAAACAaQQIAAAAAKYRIAAAAACYRoAAAAAAYBoBAgAAAIBpBAgAAAAAphEgAAAAAJhGgAAAAABgGgECAAAAgGkECAAAAACmESAAAAAAmEaAAAAAAGAaAQIAAACAaR7OLgAlS9iIaGeXUGxiZnRzdgkAAAClDjMQAAAAAEwjQAAAAAAwjQABAAAAwDQChElbt25Vnz591KZNG4WEhKh3797avHmzs8sCAAAAihUBwoSvvvpK/fv31969e9W8eXM9+uij2rt3rwYOHKglS5Y4uzwAAACg2HAXprtITEzU3/72N5UrV06LFi1ScHCwJOnAgQPq37+/3nnnHXXo0EFVq1Z1cqUAAACA4zEDcRcLFy5UVlaW+vXrZwsPktS8eXMNHDhQN2/eZBYCAAAALoMAcRdbtmyRJHXs2DFfX24bayEAAADgKggQRTAMQ3FxcXJzc1ODBg3y9derV09ubm6Ki4uTYRhOqBAAAAAoXgSIIly7dk1ZWVmqWLGiypYtm6/fw8NDlSpVUkZGhtLS0pxQIQAAAFC8LAY/nRfq4sWL6tChg2rWrKkNGzYUOOapp57S+fPntXnzZrsspH7iiSeUmJiocuXKqUmTJve9PQAAAKAgR44c0Y0bN1S1atV7uiSfuzAVwc3N/ASNvXJYenq6JOnGjRvasWOHXbYJAAAAFCb3+6dZBIgiWK1WSdLNmzcLHZOZmZln7P2qVauWzp07J6vVqrp169plmwAAAMB/O336tNLT01WrVq17eh0Bogi+vr6yWq1KSUnR7du35eGRd3fdvn1bKSkp8vT0VPny5e3ynitXrrTLdgAAAABHYBF1ESwWiwIDA5Wdna1Tp07l64+Pj1dOTk6e50MAAAAADzICxF2EhoZKkr777rt8fblt7du3L9aaAAAAAGchQNzFCy+8IE9PT3388cf68ccfbe0HDx7UggUL5OXlpZ49ezqxQgAAAKD4cBtXExYuXKiJEyeqTJkyatOmjSRp+/btun37tqZOnapu3bo5uUIAAACgeBAgTPr++++1YMECHT58WGXLllWjRo30xhtvqF27ds4uDQAAACg2BAgAAAAAprEGAgAAAIBpBAgAAAAAphEgAAAAAJhGgAAAAABgGgECAAAAgGkECAAAAACmESAAAAAAmEaAAAAAAGAaAQIAAACAaQQIAAAAAKZ5OLsAlDxz585VZGRkof2TJ09Wjx49irGi0mfr1q2aN2+ejh07plu3bqlp06YaOHCgnnjiCWeXVuqsXLlSo0aNKrR/0KBBGjZsWDFWVDp99dVXGj16tBYuXKiWLVvm64+Pj9fs2bO1e/duXb16VXXq1FF4eLh69eolNzd+aypIUfv04sWL6tChQ6GvDQkJ0eLFix1cYcmXnZ2txYsXa8WKFTp58qSys7NVu3ZtPfvss3r11Vfl6emZZ/zBgwc1d+5cHTx4UOnp6QoMDFSfPn0UFhbmpE9QstzL/ty1a5d69epV6LbCwsI0ffr04ii7RMvOztbChQu1fPlyxcfHy9vbW82aNVOfPn0K/Bt3lXMpAQL5HDlyRJLUqVMneXl55euvU6dOcZdUquR+qShbtqzatm2rnJwcbd++XQMHDtTEiRP10ksvObvEUiX3ePzNb34jPz+/fP1NmjQp7pJKnb1792rSpEmF9h89elS9evVSamqqQkJC9PDDD2v79u2aPHmy9u/fz5eIAtxtnx4+fFiS1KhRIwUHB+frr1+/vsNqKy2ys7M1ePBgbdy4UVarVS1atJCHh4f279+vyMhIbdq0SV988YW8vb0lSbGxsXr99deVk5OjVq1aydvbW9u2bVNERITi4uJc/oeEe92fucfoo48+qlq1auXbXkhISLHWX1KNHj1a0dHR8vX1Vbt27XTr1i3t2LFDsbGxGjp0qIYMGWIb61LnUgP4L08++aTx8MMPG7du3XJ2KaVOQkKC0axZM+Oxxx4zjh07Zmvfv3+/ERISYjz88MNGQkKCEyssfV555RUjODiY/fYrrVmzxnj00UeN4OBgIzg42Ni5c2ee/pycHCMsLMwIDg42Vq5caWu/cuWKrX3NmjXFXXaJdrd9ahiGMXv2bCM4ONiIjo52QoWlw+LFi43g4GAjLCwsz9/3lStXjJdeeskIDg42pk+fbhiGYWRkZBjt2rUzmjZtamzbts029vTp08YTTzxhBAcHGwcPHiz2z1CS3Mv+NAzDeOutt4zg4GBj165dzii3VFi1apURHBxsdOnSxUhKSrK1//TTT8Zjjz1mNG7c2IiPjzcMw/XOpQ/OXArs4tq1azp//rwaN24sDw8mqO7VwoULlZWVpX79+uX51bF58+YaOHCgbt68qSVLljixwtLn6NGjqly5sqpWrersUkqVhIQEjRw5UkOHDlVOTo4qV65c4LjY2FgdO3ZMrVu3Vrdu3Wztfn5+Gj9+vCQpKiqqOEou8czuU+nnX3ebNm1aXOWVOitWrJAkjRkzJs/f9y+PvVWrVkmSoqOjdeXKFYWFhalt27a2sXXq1FFERIQkjtN72Z/SnWPUzc2NWdwi/Pvf/5YkRURE5Pl7DwoKUlhYmHJychQbGyvJ9c6lBAjkkXu5CP/o/TpbtmyRJHXs2DFfX27b5s2bi7Wm0uzs2bO6fv06x+OvMHPmTEVHR6tZs2ZasmSJGjRoUOC4oo7ZkJAQ+fv7a/fu3UpNTXVovaWB2X0q3TmXWq1WLlUqQqVKldSgQQM1b948X1+9evUkSZcuXZL083H69NNP5xv75JNPyt3d3eXPrfeyP7OysnTixAk1aNBAVqu1OMssVSIjIxUTE1Pg+sW0tDRJkru7uyTXO5fyEzPyyA0Q3t7eGjVqlHbs2KErV66oXr166tGjxwO3CMieDMNQXFyc3NzcCvxiUa9ePbm5uSkuLk6GYchisTihytIl93j09/fXpEmTtHnzZiUkJKhGjRp67rnnClxkiTsaNGigqVOn6rnnnivybzYuLk6SCrxOX7pzrf6VK1d04sQJtWjRwiG1lhZm9+nVq1d14cIFNW3aVJ999pmio6N1+vRplStXTk8++aTefPNNZtQkzZs3r9C+gwcPSpKqVasmSTp+/Likgo9TX19fBQQE6OLFi7p8+XKRM0MPsnvdn7du3VLNmjX1wQcfaN26dTp//rwqV66sLl266I033lD58uWLpe6SrGzZsgUec99//73WrFkjq9VqCwyudi4lQCCP3Gn3Tz75RAEBAWrRooWSkpJ06NAhTZ48WTt37tTMmTMJEQW4du2asrKy5Ofnp7Jly+br9/DwUKVKlXTlyhWlpaXJ19fXCVWWLrnH41dffaWKFSsqJCREVatW1Y8//qjIyEht2bJFn3/+eYGL/V3da6+9Zmpc7i+SVapUKbA/t/3y5cv2KawUM7tPc4PvoUOH9NNPP6lVq1aqVq2aDh48qKVLl+r777/Xl19+WeQMhiszDEOzZs2SJHXu3FmSlJSUJKno49TVA0RhCtqfuefWTZs2aefOnXmO0U8//VQbNmzQ4sWLC7xxhavKzMzUyJEjFRcXpxMnTqhGjRqaNm2a7XhztXMpAeIBN2LECB06dOiu4zp16qQRI0bY/uHr06ePRo4cqTJlyki6cx36G2+8obVr12rhwoXq3bu3Q+sujTIyMiTJdoeLguR+0SVAmJN7PHbt2lVTpkyxTbWfO3dOQ4YM0d69ezVz5ky99dZbziyzVMs9bgsLYbnt6enpxVZTaZf75Sw4OFgffvihateuLenOPhw3bpy+/vprRURE6KuvvnJmmSXW+++/r507d6py5cp69dVXJXGc3o+C9mfuubV169aaNWuWLSgkJydr+PDh2rZtm/72t79p9uzZTqu7pLlw4YLWrl2bp+3YsWNq1aqVJNc7RgkQD7gLFy4oPj7+ruNyf91ZunSpzp07l28KrnHjxho7dqyGDBlCgCjEvczKGIbhwEoeHJGRkTp79qzq1KmTZ1anVq1aeu+99/T73/9eS5Ys0YgRI2xhF/cm9/rdu11Sl5OTUxzlPBD69eunzp07y8fHJ88vuFar1TaTe+jQIe3bt0+PPPKI8wotgWbNmqX58+erbNmymjlzpm3/ubu7m7r0k+M0r8L25+jRo9W7d29VqVIlz49Zfn5+mjp1qp555hl9++23unTpkgICApxVfolSrVo1/fDDD3Jzc9PWrVv1zjvvaNKkSUpPT9drr73mcudSAsQD7l4fVGS1Wgu9fq99+/Zyd3dXfHy80tPTWXj1X3L3x82bNwsdk5mZmWcsiubp6anAwMAC+5o0aaJq1arp4sWLOnXqlIKCgoq5ugdD7oxZ7rH533LbfXx8iq2m0s7d3d026/DfvL291bZtW0VHR+vQoUMEiP/v9u3bmjhxopYsWSJPT0/Nnj3b9suudGe/Xb9+XTdv3ixw3RPHaV53259lypQpdIF/1apV9dBDD2nXrl06fPgwAeL/s1qttn+7u3btqurVq+sPf/iDPvroI/Xt29flzqVcyA7TypQpowoVKkgq/A/Elfn6+spqtSolJUW3b9/O13/79m2lpKTI09OTxWl2knvtae7UMe5d7peDwq7Lvdu157h3HLd5paWladCgQVqyZInKly+vTz75RO3bt88zJvc4zT0e/xvH6c/M7M+74Ri9u0ceeUR16tRRamqqzp4963LnUgIEbM6fP68xY8bo7bffLrA/LS1NycnJ8vLysgUJ/MxisSgwMFDZ2dk6depUvv74+Hjl5OQUOsODvFJTUzVu3DgNHTq0wEAm3VkLIf18ZxHcu9yZm9w7iPySYRg6efKk3N3d1bBhw+IurdSaM2eOhg4dqmPHjhXYz3H7s2vXrql3797asmWLqlevroULF+b5pTxX7nF64sSJfH2pqam6dOmS/Pz8XH4Btdn9OWnSJA0ZMkRXrlwpcDsco3fOf9OmTdOwYcMK/Tco99La27dvu9y5lAABG19fX0VHR2vZsmU6c+ZMvv7o6GhJUrt27WzX+iGv0NBQSdJ3332Xry+37V5/CXJVPj4++vbbb7V27Vrt3LkzX/+mTZuUkpKi4OBgptjvQ+4xu379+nx9e/bsUXJysh577DEW/d+DY8eOae3atfrmm2/y9V25ckWxsbEqU6aM2rRp44TqSo6srCy99tprOnTokAIDA/XPf/6z0B9Yijq3btiwQdnZ2S5/br2X/bl3715999132rBhQ76+n376SUeOHFHFihVd+hk8FotF69ev1+rVq20Pi/uls2fPKj4+3va8F1c7lxIgYFOhQgU988wzku48yfL69eu2vh9//FGzZs2Sm5ubBg0a5KwSS7wXXnhBnp6e+vjjj/Xjjz/a2g8ePKgFCxbIy8tLPXv2dGKFpYfFYlF4eLikO7+WJSYm2vrOnDmjiRMnSpLeeOMNp9T3oGjdurWCgoIUGxurpUuX2tqTk5M1YcIESVL//v2dVV6p9NJLL0mSPvvsM+3evdvWnpaWpjFjxig1NVXdu3d/YC5l+LUiIyO1b98+Va9eXVFRUUX+2t2lSxf5+/trxYoV2rRpk6397NmzmjFjhiwWi/r161cMVZdc97I/c4/RDz74IM+sTnJyskaPHq3s7Gy9+uqrBd6S3JXk/hs0efJkJSQk2NoTExM1fPhw3b59Wz179pSnp6fLnUstBreDwS8kJyerZ8+eio+PV8WKFfXoo48qPT1du3btUk5OjsaMGaM+ffo4u8wSbeHChZo4cWKeXxi3b9+u27dva+rUqXkecY+iZWZmasCAAdq9e7esVqsee+wxSXf2Z1ZWlgYMGKBRo0Y5ucrSoXfv3tqxY4cWLlyoli1b5uk7cOCA+vbtq/T0dLVo0UIBAQHasWOHrl27pvDwcE2aNMlJVZdsRe3T9957T5999pnc3NwUEhKiSpUqadeuXUpJSVHLli21YMGCIm/5/KBLSUlRhw4dlJmZqaZNmxb5TIzp06dLuvPL7tChQ5Wdna1WrVrJx8dHP/zwgzIyMjRs2DCX/nHrXvdnTk6O/vKXv2jt2rUqU6aMWrZsKW9vb23fvl1paWnq2rWrZsyY4fJXG9y6dUtDhgzRpk2bZLVaFRISouzsbO3fv1/p6elq37695syZYwtarnQuJUAgn9TUVM2fP19r167V+fPnZbVa1aJFC7366qsuP+Vu1vfff68FCxbo8OHDKlu2rBo1aqQ33nhD7dq1c3ZppU5WVpY+//xzxcTE6NSpUypbtqweeugh9e7d2/ZQJNxdUV92pTvX7UZGRtrCWd26dfWHP/xBPXr0cPkvEYW52z795ptv9I9//EOHDx9WTk6O6tSpo27duqlv374uf9vhdevW6U9/+pOpsb9cS7Jnzx7NnTtX+/fvl2EYCgwMVL9+/dS1a1dHlVoq/Jr9aRiGlixZomXLlikuLk5ubm4KDAxUeHi4unfvftfbkbqK7OxsLVq0SF999ZVOnDghNzc3BQcH64UXXlB4eHi+W7i7yrmUAAEAAADANNZAAAAAADCNAAEAAADANAIEAAAAANMIEAAAAABMI0AAAAAAMI0AAQAAAMA0AgQAAAAA0wgQAAAAAEwjQAAAAAAwjQABAAAAwDQCBAAAAADTCBAAAAAATCNAAAAAADCNAAEAAADANAIEAAAAANMIEAAAAABMI0AAAAAAMO3/AYQRuc2NZKYfAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 251, + "width": 392 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "df_train['temp_outside'].plot.hist()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 440, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ecXExDjCgySFh4drxIgROnfuHFchAAAAUGcQIC5jw4YNkqTu3buX6StpYy8EAAAA6goCxCXY7Xalp6fLxcVFQUFBZfpbt24tFxcXpaeny263V0GFAAAAwLVFgLiE06dP6/z582rYsKE8PDzK9Lu5ualRo0YqKChQfn5+FVQIAAAAXFtsor6EgoICSZKXl1eFYzw9PSVJ+fn58vb2rvQxDx48KElKTU1VdHR0pee7Ug2v+RGrTnT0F1VdAgAAKEfDqi7gGqrK7yOpqamSfvv+aRQB4hJcXIxfoDHrFiabzSZJOnPmjLZs2WLKnAAAAEBFSr5/GkWAuASr1SpJOnfuXIVjzp49W2psZd1www06cuSIrFarWrVqZcqcAAAAwB8dPHhQNptNN9xwwxV9jgBxCd7e3rJarTp58qQKCwvl5lb6l6uwsFAnT55UvXr11KBBA1OO+dVXX5kyDwAAAOAMbKK+BIvFouDgYBUVFenAgQNl+vfv36/i4uJS74cAAAAAajMCxGVERkZKkr777rsyfSVtXbt2vaY1AQAAAFWFAHEZDz74oOrVq6f33ntP//vf/xztKSkpev/99+Xp6amHH364CisEAAAArh2LnTegXdaSJUv00ksvyd3dXV26dJEkJScnq7CwUDNnzlTfvn2ruEIAAADg2iBAGLR27Vq9//772r17tzw8PBQWFqbHH39cd9xxR1WXBgAAAFwzBAgAAAAAhrEHAgAAAIBhBAgAAAAAhhEgAAAAABhGgAAAAABgGAECAAAAgGEECAAAAACGESAAAAAAGEaAAAAAAGAYAQIAAACAYQQIAAAAAIYRIGq5jRs3avDgwerSpYsiIiIUHR2txMTEK5pj//79GjdunLp27aoOHTooKipKcXFxKi4udlLVuFJmnOf169frH//4hzp37qz27durW7duevHFF5WVleWkqnElzDjHfzR8+HCFhYUpOTnZpCpRWWac5/z8fMXGxqp37966+eab1blzZ40cOVIpKSlOqhpXyozzvHPnTj322GOO/2d3795d06dP1+nTp51UNa7WsmXLFBYWph9++OGKPpedna0XX3xR9913n8LDw9WrVy/NmzdP58+fd1Klxlnsdru9qouAcyxbtkwTJ06Uh4eHbr/9dhUXFys5OVkXLlzQSy+9pAEDBlx2jj179mjQoEHKy8tTRESEGjdurOTk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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 251, + "width": 392 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "df_train['AC'].plot.hist()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Consumo fuel vs distancia recorrida:" + ] + }, + { + "cell_type": "code", + "execution_count": 441, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsun
count388.000000388.000000388.000000388.000000388.000000388.000000388.000000388.000000388.000000
mean19.5961544.81632741.92783521.93491111.3582470.5876290.0773200.1237110.082474
std10.1121000.30221813.5985240.8105956.9915420.4928970.2674430.3296770.275441
min2.0000004.00000014.00000019.000000-5.0000000.0000000.0000000.0000000.000000
25%19.5961544.81632732.75000021.9349117.0000000.0000000.0000000.0000000.000000
50%19.5961544.81632740.50000021.93491110.0000001.0000000.0000000.0000000.000000
75%19.5961544.81632750.00000022.00000016.0000001.0000000.0000000.0000000.000000
max211.0000009.00000090.00000025.00000031.0000001.0000001.0000001.0000001.000000
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside \\\n", + "count 388.000000 388.000000 388.000000 388.000000 388.000000 \n", + "mean 19.596154 4.816327 41.927835 21.934911 11.358247 \n", + "std 10.112100 0.302218 13.598524 0.810595 6.991542 \n", + "min 2.000000 4.000000 14.000000 19.000000 -5.000000 \n", + "25% 19.596154 4.816327 32.750000 21.934911 7.000000 \n", + "50% 19.596154 4.816327 40.500000 21.934911 10.000000 \n", + "75% 19.596154 4.816327 50.000000 22.000000 16.000000 \n", + "max 211.000000 9.000000 90.000000 25.000000 31.000000 \n", + "\n", + " gas_type AC rain sun \n", + "count 388.000000 388.000000 388.000000 388.000000 \n", + "mean 0.587629 0.077320 0.123711 0.082474 \n", + "std 0.492897 0.267443 0.329677 0.275441 \n", + "min 0.000000 0.000000 0.000000 0.000000 \n", + "25% 0.000000 0.000000 0.000000 0.000000 \n", + "50% 1.000000 0.000000 0.000000 0.000000 \n", + "75% 1.000000 0.000000 0.000000 0.000000 \n", + "max 1.000000 1.000000 1.000000 1.000000 " + ] + }, + "execution_count": 441, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Media consumo por tipo de combustible" + ] + }, + { + "cell_type": "code", + "execution_count": 442, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsideACrainsun
gas_type
018.9929094.80803643.50625021.99371310.118750.0437500.1000000.075000
120.0194844.82214540.82017521.89364712.228070.1008770.1403510.087719
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside AC \\\n", + "gas_type \n", + "0 18.992909 4.808036 43.506250 21.993713 10.11875 0.043750 \n", + "1 20.019484 4.822145 40.820175 21.893647 12.22807 0.100877 \n", + "\n", + " rain sun \n", + "gas_type \n", + "0 0.100000 0.075000 \n", + "1 0.140351 0.087719 " + ] + }, + "execution_count": 442, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#La media de consumo es mayor en SP98 (SP98: 1, E10: 0)\n", + "df_train.groupby(['gas_type']).mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Feature columns" + ] + }, + { + "cell_type": "code", + "execution_count": 443, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['distance', 'consume', 'speed', 'temp_inside', 'temp_outside',\n", + " 'gas_type', 'AC', 'rain', 'sun'],\n", + " dtype='object')" + ] + }, + "execution_count": 443, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 444, + "metadata": {}, + "outputs": [], + "source": [ + "X = df_train[['distance', 'speed', 'temp_inside', 'temp_outside',\n", + " 'gas_type', 'AC', 'rain', 'sun']].values\n", + "y = df_train['consume'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 332, + "metadata": {}, + "outputs": [], + "source": [ + "#from sklearn.preprocessing import StandardScaler\n", + "#sc = StandardScaler()\n", + "#X = sc.fit_transform(X)" + ] + }, + { + "cell_type": "code", + "execution_count": 333, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "x_train,x_test,y_train,y_test = train_test_split(X,y, random_state=9, train_size = 0.8)" + ] + }, + { + "cell_type": "code", + "execution_count": 369, + "metadata": {}, + "outputs": [], + "source": [ + "lin_reg = LinearRegression()\n", + "lin_reg.fit(x_train, y_train)\n", + "y_pred = lin_reg.predict(x_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 370, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MSE: 0.02\n", + "R2: -0.16\n" + ] + } + ], + "source": [ + "from sklearn.metrics import mean_squared_error, r2_score \n", + "print(\"MSE: {:.2f}\".format(mean_squared_error(y_test, y_pred))) \n", + "print(\"R2: {:.2f}\".format(r2_score(y_test, y_pred)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Ridge Regression" + ] + }, + { + "cell_type": "code", + "execution_count": 445, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "GridSearchCV(cv=5, estimator=Ridge(),\n", + " param_grid={'alpha': [1e-15, 1e-10, 1e-08, 0.0001, 0.001, 0.01, 1,\n", + " 5, 10, 20]},\n", + " scoring='neg_mean_squared_error')" + ] + }, + "execution_count": 445, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.model_selection import GridSearchCV\n", + "from sklearn.linear_model import Ridge\n", + "ridge = Ridge()\n", + "\n", + "parameters = {\"alpha\":[1e-15, 1e-10, 1e-8, 1e-4, 1e-3, 1e-2, 1, 5, 10, 20]}\n", + "ridge_regression = GridSearchCV(ridge, parameters, scoring='neg_mean_squared_error', cv=5)\n", + "ridge_regression.fit(X, y)" + ] + }, + { + "cell_type": "code", + "execution_count": 446, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'alpha': 20}\n", + "-0.10203979770942706\n" + ] + } + ], + "source": [ + "print(ridge_regression.best_params_)\n", + "print(ridge_regression.best_score_)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Lasso" + ] + }, + { + "cell_type": "code", + "execution_count": 448, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'alpha': 1}\n", + "-0.09169261449914168\n" + ] + } + ], + "source": [ + "from sklearn.linear_model import Lasso\n", + "lasso = Lasso()\n", + "\n", + "parameters = {\"alpha\":[1e-15, 1e-10, 1e-8, 1e-4, 1e-3, 1e-2, 1, 5, 10, 20]}\n", + "lasso_regression = GridSearchCV(lasso, parameters, scoring='neg_mean_squared_error', cv=5)\n", + "lasso_regression.fit(X, y)\n", + "\n", + "print(lasso_regression.best_params_)\n", + "print(lasso_regression.best_score_)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 453, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "XGBRegressor(base_score=0.5, booster='gbtree', colsample_bylevel=1,\n", + " colsample_bynode=1, colsample_bytree=1, gamma=0, gpu_id=-1,\n", + " importance_type='gain', interaction_constraints='',\n", + " learning_rate=0.300000012, max_delta_step=0, max_depth=6,\n", + " min_child_weight=1, missing=nan, monotone_constraints='()',\n", + " n_estimators=100, n_jobs=8, num_parallel_tree=1, random_state=0,\n", + " reg_alpha=0, reg_lambda=1, scale_pos_weight=1, subsample=1,\n", + " tree_method='exact', validate_parameters=1, verbosity=None)" + ] + }, + "execution_count": 453, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from xgboost import XGBRegressor\n", + "\n", + "my_model = XGBRegressor()\n", + "my_model.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 456, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean Absolute Error: 1.2585654077824344\n" + ] + } + ], + "source": [ + "from sklearn.metrics import mean_absolute_error\n", + "\n", + "predictions = my_model.predict(x_test)\n", + "print(\"Mean Absolute Error: \" + str(mean_absolute_error(predictions, y_test)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Predicción con los distintos tipos de fuel" + ] + }, + { + "cell_type": "code", + "execution_count": 373, + "metadata": {}, + "outputs": [], + "source": [ + "#SP98: 1, E10: 0 \n", + "SP98=df_train.loc[df_train['gas_type']==1]\n", + "E10=df_train.loc[df_train['gas_type']==0]" + ] + }, + { + "cell_type": "code", + "execution_count": 374, + "metadata": {}, + "outputs": [], + "source": [ + "X_SP98 = SP98[['distance', 'speed', 'temp_inside', 'temp_outside',\n", + " 'gas_type', 'AC', 'rain', 'sun']].values\n", + "y_SP98 = SP98['consume'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 375, + "metadata": {}, + "outputs": [], + "source": [ + "X_E10 = E10[['distance', 'speed', 'temp_inside', 'temp_outside',\n", + " 'gas_type', 'AC', 'rain', 'sun']].values\n", + "y_E10 = E10['consume'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 376, + "metadata": {}, + "outputs": [], + "source": [ + "x_train_SP98,x_test_SP98,y_train_SP98,y_test_SP98 = train_test_split(X_SP98,y_SP98, random_state=9, train_size = 0.8)" + ] + }, + { + "cell_type": "code", + "execution_count": 377, + "metadata": {}, + "outputs": [], + "source": [ + "x_train_E10,x_test_E10,y_train_E10,y_test_E10 = train_test_split(X_E10,y_E10, random_state=9, train_size = 0.8)" + ] + }, + { + "cell_type": "code", + "execution_count": 378, + "metadata": {}, + "outputs": [], + "source": [ + "#SP98: 1, E10: 0\n", + "SP98_pred = lin_reg.predict(x_test_SP98)\n", + "E10_pred = lin_reg.predict(x_test_E10)" + ] + }, + { + "cell_type": "code", + "execution_count": 379, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4.820667132753105" + ] + }, + "execution_count": 379, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SP98_pred.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 380, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4.819556547856802" + ] + }, + "execution_count": 380, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "E10_pred.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### xgboost" + ] + }, + { + "cell_type": "code", + "execution_count": 385, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MSE: 0.02\n", + "R2: -0.16\n" + ] + } + ], + "source": [ + "import xgboost as xgb\n", + "xgbr = xgb.XGBRegressor(objective='reg:squarederror')\n", + "xgbr.fit(x_train, y_train)\n", + " \n", + "ypred = xgbr.predict(x_test)\n", + "\n", + "print(\"MSE: {:.2f}\".format(mean_squared_error(y_test, y_pred))) \n", + "print(\"R2: {:.2f}\".format(r2_score(y_test, y_pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 386, + "metadata": {}, + "outputs": [], + "source": [ + "SP98_pred = xgbr.predict(x_test_SP98)\n", + "E10_pred = xgbr.predict(x_test_E10)" + ] + }, + { + "cell_type": "code", + "execution_count": 387, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4.8216867" + ] + }, + "execution_count": 387, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SP98_pred.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 388, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4.7593746" + ] + }, + "execution_count": 388, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "E10_pred.mean()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": { + "height": "calc(100% - 180px)", + "left": "10px", + "top": "150px", + "width": "402.712px" + }, + "toc_section_display": true, + "toc_window_display": true + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/images/coches.jpg b/images/coches.jpg new file mode 100644 index 0000000..127a790 Binary files /dev/null and b/images/coches.jpg differ diff --git a/images/gas_station_orig.jpg b/images/gas_station_orig.jpg new file mode 100644 index 0000000..393e004 Binary files /dev/null and b/images/gas_station_orig.jpg differ diff --git a/images/repostando.jpg b/images/repostando.jpg new file mode 100644 index 0000000..dfeccc5 Binary files /dev/null and b/images/repostando.jpg differ diff --git a/inputs/measurements.csv b/inputs/measurements.csv new file mode 100644 index 0000000..f9a71ce --- /dev/null +++ b/inputs/measurements.csv @@ -0,0 +1,389 @@ +distance,consume,speed,temp_inside,temp_outside,specials,gas_type,AC,rain,sun,refill liters,refill gas +28,5,26,"21,5",12,,E10,0,0,0,45,E10 +12,"4,2",30,"21,5",13,,E10,0,0,0,, +"11,2","5,5",38,"21,5",15,,E10,0,0,0,, +"12,9","3,9",36,"21,5",14,,E10,0,0,0,, +"18,5","4,5",46,"21,5",15,,E10,0,0,0,, +"8,3","6,4",50,"21,5",10,,E10,0,0,0,, +"7,8","4,4",43,"21,5",11,,E10,0,0,0,, +"12,3",5,40,"21,5",6,,E10,0,0,0,, +"4,9","6,4",26,"21,5",4,,E10,0,0,0,, +"11,9","5,3",30,"21,5",9,,E10,0,0,0,, +"12,4","5,6",42,"21,5",4,,E10,0,0,0,, +"11,8","4,6",38,"21,5",0,,E10,0,0,0,, +"12,3","5,9",59,"21,5",10,,E10,0,0,0,, +"24,7","5,1",58,"21,5",12,,E10,0,0,0,, +"12,4","4,7",46,"21,5",11,,E10,0,0,0,, +"17,3","5,1",24,"21,5",5,,E10,0,0,0,, +"33,4","5,6",36,"21,5",3,,E10,0,0,0,, +"11,8","5,1",32,"21,5",3,,E10,0,0,0,, +"25,9","4,9",39,"21,5",8,,E10,0,0,0,, +"11,8","4,7",40,"21,5",4,,E10,0,0,0,, +"25,3","5,5",32,"21,5",3,,E10,0,0,0,, +"14,2","5,9",38,"21,5",1,,E10,0,0,0,, +"17,9","5,7",37,"21,5",1,,E10,0,0,0,, +"11,8","4,7",36,"21,5",1,,E10,0,0,0,, +"12,3","5,9",62,"21,5",6,,E10,0,0,0,, +"12,4","4,1",57,"21,5",9,,E10,0,0,0,, +"18,4","5,7",21,"22,5",2,,E10,0,0,0,, +"18,4","5,8",28,"21,5",3,,E10,0,0,0,, +"18,3","5,5",29,"21,5",1,,E10,0,0,0,, +"18,4","5,7",35,"21,5",4,,E10,0,0,0,, +"12,3","5,3",51,"21,5",11,,E10,0,0,0,, +"11,8",5,29,"21,5",10,,E10,0,0,0,, +"12,3","5,6",58,"21,5",8,,E10,0,0,0,, +"32,6","4,8",40,"21,5",7,,E10,0,0,0,, +19,"4,3",36,"21,5",7,,E10,0,0,0,, +"12,1","5,7",36,"21,5",8,,E10,0,0,0,, +20,"5,2",37,"21,5",4,,E10,0,0,0,, +"4,9","7,4",26,"21,5",6,,E10,0,0,0,, +"11,8","4,8",23,"21,5",9,,E10,0,0,0,, +"12,3","6,5",58,"21,5",7,,E10,0,0,0,, +"12,4",4,55,"21,5",7,AC rain,E10,1,1,0,, +"4,5",5,29,"21,5",7,AC,E10,1,0,0,, +"11,7","4,6",37,"21,5",6,,E10,0,0,0,, +"10,2","4,3",44,"21,5",7,,E10,0,0,0,, +"5,4","3,3",32,"21,5",7,,SP98,0,0,0,"37,6",SP98 +2,"9,9",21,"21,5",4,,SP98,0,0,0,, +"14,2","5,1",32,"21,5",7,,SP98,0,0,0,, +16,"4,9",25,"21,5",8,,SP98,0,0,0,, +"11,8","4,9",25,"21,5",11,,SP98,0,0,0,, +"27,3","4,7",36,"21,5",10,,SP98,0,0,0,, +"11,8","5,1",29,"21,5",5,rain,SP98,0,1,0,, +"10,6","4,9",63,"21,5",6,,SP98,0,0,0,, +"11,6","4,2",61,"21,5",7,,SP98,0,0,0,, +"13,1","6,1",46,"21,5",6,rain,SP98,0,1,0,, +"6,1","6,4",28,"21,5",8,,SP98,0,0,0,, +"153,5","4,9",82,"21,5",3,rain,SP98,0,1,0,, +"11,8","4,9",24,"21,5",7,,SP98,0,0,0,, +"12,3","6,2",61,"21,5",8,,SP98,0,0,0,, +"12,4","4,2",57,"21,5",8,,SP98,0,0,0,, +"12,3","5,7",52,"21,5",8,rain,SP98,0,1,0,, +"2,9","7,9",18,"21,5",9,AC rain,SP98,1,1,0,, +"2,1","12,2",23,"21,5",9,,SP98,1,1,0,, +"9,8","5,8",24,"21,5",6,,SP98,0,0,0,, +"6,8","5,3",26,"21,5",6,,SP98,0,0,0,, +"12,4","5,4",24,"21,5",7,,SP98,0,0,0,, +"12,4","4,7",57,"21,5",8,,SP98,0,0,0,, +"11,8","4,6",41,"21,5",6,,SP98,0,0,0,, +"12,3","5,4",55,"21,5",8,,SP98,0,0,0,, +14,"4,3",40,"21,5",8,,SP98,0,0,0,, +"11,8","4,5",37,"21,5",4,AC,SP98,1,0,0,, +"12,3","5,2",55,"21,5",12,,SP98,0,0,0,, +2,"6,2",20,"21,5",10,,SP98,0,0,0,, +"13,9","5,1",29,"21,5",6,,SP98,0,0,0,, +"9,7","3,9",42,"21,5",8,,SP98,0,0,0,, +"11,6",5,25,"21,5",6,,SP98,0,0,0,, +"14,2","5,4",38,"21,5",7,,SP98,0,0,0,, +"11,8","4,5",39,"21,5",6,,SP98,0,0,0,, +"24,8","5,1",50,"21,5",9,,SP98,0,0,0,, +"12,4","4,7",56,"21,5",7,,SP98,0,0,0,, +"34,8",4,28,20,4,,SP98,0,0,0,, +"14,2","5,4",36,20,6,,SP98,0,0,0,, +"5,2","4,5",39,20,10,,SP98,0,0,0,, +"10,5","3,6",42,20,10,,SP98,0,0,0,"37,7",SP98 +"12,3","5,2",57,20,10,,SP98,0,0,0,, +"11,8","4,9",25,20,11,,SP98,0,0,0,, +"12,3","6,2",58,20,11,rain,SP98,0,1,0,, +"13,2","4,3",51,20,11,rain,SP98,0,1,0,, +13,5,45,20,11,rain,SP98,0,1,0,, +"12,9","5,1",32,20,11,,SP98,0,0,0,, +"13,9","5,6",22,20,8,,SP98,0,0,0,, +"11,8","4,3",37,20,6,,SP98,0,0,0,, +"12,2","5,8",60,20,11,,SP98,0,0,0,, +"12,5",4,51,20,13,,SP98,0,0,0,, +"12,4","4,7",43,,10,,SP98,0,0,0,, +"11,8","5,9",21,20,9,AC rain,SP98,1,1,0,, +"11,8","5,3",52,,11,,SP98,0,0,0,, +"12,5","4,2",57,20,11,,SP98,0,0,0,, +"15,7","5,3",33,,9,,SP98,0,0,0,, +"12,9","5,7",35,,9,,SP98,0,0,0,, +"6,4","4,4",37,,10,,SP98,0,0,0,, +"5,3","4,1",34,,9,,SP98,0,0,0,, +"26,2","5,8",71,21,8,AC rain,SP98,1,1,0,, +"18,8",5,62,,9,rain,SP98,0,1,0,, +"4,9","6,9",25,21,12,rain,SP98,0,1,0,, +"12,4","5,4",18,21,11,AC rain,SP98,1,1,0,, +"22,9","5,3",45,"20,5",7,,SP98,0,0,0,, +"162,7","5,5",75,23,1,,SP98,0,0,0,45,SP98 +"4,9","6,5",26,21,1,,SP98,0,0,0,, +"11,8","4,7",36,21,4,,SP98,0,0,0,, +"16,6","5,1",56,21,7,,SP98,0,0,0,, +"12,4","5,7",37,21,7,,SP98,0,0,0,, +"15,9","5,4",25,21,7,,SP98,0,0,0,, +"5,1","8,7",21,"23,5",5,,SP98,0,0,0,, +"22,4","4,9",66,"20,5",7,,SP98,0,0,0,, +"31,1","4,7",42,"20,5",7,,SP98,0,0,0,, +"4,9","6,3",27,"20,5",3,,SP98,0,0,0,, +"11,8","5,1",26,23,4,rain,SP98,0,1,0,, +"22,9",6,42,23,4,rain,SP98,0,1,0,, +"12,4","4,6",38,23,1,snow,SP98,0,1,0,, +"12,9","5,8",40,23,4,,SP98,0,0,0,, +"11,8","5,1",43,23,0,,SP98,0,0,0,, +"12,2","5,8",58,23,2,,SP98,0,0,0,, +"24,8","4,6",55,23,3,,SP98,0,0,0,, +"14,2","5,6",24,23,8,,SP98,0,0,0,, +"11,8","4,6",38,23,0,snow,SP98,0,1,0,, +"12,2","6,3",57,23,0,snow,SP98,0,1,0,, +"24,7","5,5",56,25,1,,SP98,0,0,0,, +"6,8","4,3",46,24,2,,SP98,0,0,0,, +"17,3","5,6",37,"21,5",1,,SP98,0,0,0,, +"11,8","4,3",44,"21,5",-3,,SP98,0,0,0,, +"15,9","5,7",46,"21,5",5,,SP98,0,0,0,, +"5,1","6,4",39,"21,5",4,,SP98,0,0,0,, +"16,1","4,5",33,"21,5",6,,SP98,0,0,0,, +"11,8","4,5",43,"21,5",3,,SP98,0,0,0,, +"4,2",6,26,"21,5",5,,SP98,0,0,0,, +"17,4","5,1",30,"21,5",5,,SP98,0,0,0,, +"23,5",6,25,"21,5",5,rain,SP98,0,1,0,, +"11,8","4,5",38,"21,5",5,rain,SP98,0,1,0,, +"12,3","6,1",61,"21,5",10,rain,SP98,0,1,0,, +"16,1","5,4",24,"21,5",7,rain,E10,0,1,0,38,E10 +"11,8","4,3",40,"21,5",10,rain,E10,0,1,0,, +"12,3","5,4",58,"21,5",13,,E10,0,0,0,, +"12,4","4,3",49,"21,5",17,,E10,0,0,0,, +7,"5,2",25,"21,5",17,,E10,0,0,0,, +"11,8","4,1",37,"21,5",10,,E10,0,0,0,, +"20,1","4,4",41,"21,5",18,,E10,0,0,0,, +"20,8","4,5",45,"21,5",10,,E10,0,0,0,, +"1,7","10,8",14,"21,5",10,rain,E10,0,1,0,, +"35,9","4,7",45,"21,5",12,,E10,0,0,0,, +"36,9","4,8",52,"21,5",5,,E10,0,0,0,, +"16,8",4,46,"21,5",8,,E10,0,0,0,, +"9,9",5,28,"21,5",9,,E10,0,0,0,, +"22,9","4,6",61,"21,5",7,rain,E10,0,1,0,, +"17,3",5,61,"21,5",6,AC rain,E10,1,1,0,, +"11,8","4,3",37,"21,5",7,,E10,0,0,0,, +"36,6","5,2",80,"21,5",7,rain,E10,0,1,0,, +"44,9","4,7",62,"21,5",8,,E10,0,0,0,, +"11,8","4,2",34,"21,5",9,rain,E10,0,1,0,, +"21,6","5,3",44,"21,5",9,rain,E10,0,1,0,, +"39,4","5,3",60,"21,5",9,rain,E10,0,1,0,, +"5,1","8,1",39,"21,5",4,,E10,0,0,0,, +"26,6","4,8",38,"21,5",7,,E10,0,0,0,, +"53,2","5,1",71,"21,5",2,,E10,0,0,0,, +"18,9","4,4",53,"21,5",2,,E10,0,0,0,, +"43,5",5,80,"21,5",3,,E10,0,0,0,, +"6,1","6,3",26,"21,5",5,,E10,0,0,0,, +"16,4","4,8",49,"21,5",5,,E10,0,0,0,, +"12,3","6,1",40,"21,5",6,,E10,0,0,0,, +"21,1","4,6",36,"21,5",8,,E10,0,0,0,, +"21,1","4,8",43,"21,5",7,,E10,0,0,0,, +"22,7","4,7",55,"21,5",6,,E10,0,0,0,, +"44,4","4,8",38,"21,5",8,,E10,0,0,0,"38,3",E10 +"35,8","4,4",51,"21,5",6,,E10,0,0,0,, +"11,8","4,9",44,"21,5",0,,E10,0,0,0,, +"26,2","4,9",42,"21,5",6,,E10,0,0,0,, +"40,6","4,4",44,21,3,,E10,0,0,0,, +"12,4","5,3",38,21,-5,,E10,0,0,0,, +"14,1","5,3",47,21,-3,,E10,0,0,0,, +"58,7","4,8",75,21,0,,E10,0,0,0,, +"16,2","5,2",29,21,0,,E10,0,0,0,, +"12,3","4,9",50,"22,5",0,,E10,0,0,0,, +"12,3","7,1",52,"22,5",0,AC snow,E10,1,1,0,, +"12,4","5,2",51,"22,5",1,,E10,0,0,0,, +"31,8","4,7",59,"22,5",3,,E10,0,0,0,, +"12,3","5,1",55,"22,5",8,,E10,0,0,0,, +"51,6",5,73,"22,5",12,,E10,0,0,0,, +"38,6","4,6",44,"22,5",10,,E10,0,0,0,, +"12,3","4,8",41,"22,5",7,,E10,0,0,0,, +"81,2","4,4",69,22,13,,E10,0,0,0,, +"130,3","4,6",85,22,12,,E10,0,0,0,, +"67,2","4,3",67,22,18,,E10,0,0,0,, +"43,7","4,7",44,22,9,half rain half sun,SP98,0,1,0,10,SP98 +"12,1","4,2",43,22,4,,SP98,0,0,0,39,SP98 +"56,1","4,8",82,22,13,,SP98,0,0,0,, +39,"4,1",61,22,16,,SP98,0,0,0,, +"11,8","4,5",41,"21,5",13,,SP98,0,0,0,, +"38,5","4,8",63,"21,5",14,,SP98,0,0,0,, +"28,2","4,6",54,"21,5",14,,SP98,0,0,0,, +"2,9","7,4",24,"21,5",14,,SP98,0,0,0,, +"6,1","5,6",24,"21,5",13,,SP98,0,0,0,, +"19,6","4,9",43,"21,5",13,,SP98,0,0,0,, +"22,2","3,8",42,,15,,SP98,0,0,0,, +"13,6","4,5",44,19,18,,SP98,0,0,0,, +"12,6","4,1",33,,17,,SP98,0,0,0,, +"8,7","5,3",28,"22,5",12,AC rain,SP98,1,1,0,, +"7,9","4,7",31,"22,5",12,AC,SP98,1,0,0,, +"2,4",9,26,20,10,,SP98,0,0,0,, +"4,9","6,3",26,20,10,,SP98,0,0,0,, +"18,1","3,6",36,20,19,,SP98,0,0,0,, +"25,9","3,7",39,20,21,,SP98,0,0,0,, +"1,3","11,5",21,20,10,,SP98,0,0,0,, +"14,1",5,22,20,12,,SP98,0,0,0,, +"13,4","5,5",31,20,9,,SP98,0,0,0,, +"6,4","4,7",33,20,8,,SP98,0,0,0,, +"12,9","4,5",42,20,13,,SP98,0,0,0,, +"12,1","4,4",33,"22,5",5,,SP98,0,0,0,, +"15,7","4,1",32,"22,5",13,,SP98,0,0,0,, +"16,2","4,4",26,"22,5",11,,SP98,0,0,0,, +"12,8","4,6",22,"22,5",12,,SP98,0,0,0,, +19,"4,4",58,"22,5",17,sun,SP98,0,0,1,, +29,4,27,"22,5",12,,SP98,0,0,0,, +"12,1",5,32,"22,5",9,,SP98,0,0,0,, +"12,3","5,2",55,"22,5",10,,SP98,0,0,0,, +"24,8",4,56,"22,5",11,,SP98,0,0,0,, +"12,9","5,1",34,"22,5",8,rain,SP98,0,1,0,, +"11,8","4,5",39,"22,5",3,,SP98,0,0,0,, +"31,4","4,6",62,"22,5",11,,SP98,0,0,0,, +19,"5,1",53,"22,5",4,rain,SP98,0,1,0,, +13,"5,7",38,"22,5",3,AC rain,SP98,1,1,0,, +"11,8","4,8",42,"22,5",2,,SP98,0,0,0,, +13,"6,2",32,"22,5",4,,SP98,0,0,0,, +"11,8",5,43,"22,5",1,,SP98,0,0,0,, +"27,1",5,69,"22,5",8,,SP98,0,0,0,, +"5,2","4,6",38,"22,5",8,,SP98,0,0,0,, +19,"4,5",29,"22,5",10,,E10,0,0,0,39,E10 +"12,4","4,8",38,"22,5",1,,E10,0,0,0,, +"25,2",5,55,"22,5",9,,E10,0,0,0,, +"14,3","4,8",36,"22,5",10,,E10,0,0,0,, +"11,8","4,6",40,"22,5",2,,E10,0,0,0,, +"16,9","4,5",48,"22,5",9,sun,E10,0,0,1,, +"12,4","4,6",55,"22,5",11,sun,E10,0,0,1,, +"17,4","4,4",36,"22,5",12,sun,E10,0,0,1,, +"9,2","5,7",33,"22,5",8,rain,E10,0,1,0,, +"12,3","5,8",54,"22,5",10,rain,E10,0,1,0,, +13,"5,9",32,"22,5",10,,E10,0,0,0,, +"11,8","6,1",16,"22,5",6,rain,E10,0,1,0,, +13,"5,7",37,"22,5",11,rain,E10,0,1,0,, +"12,3",5,42,"22,5",10,,E10,0,0,0,, +"12,3","5,2",57,"22,5",15,sun,E10,0,0,1,, +"12,5","4,3",57,"22,5",16,sun,E10,0,0,1,, +"31,5","4,1",30,"22,5",16,sun,E10,0,0,1,, +"11,8","4,4",42,"22,5",8,,E10,0,0,0,, +"24,9","4,5",53,"22,5",14,,E10,0,0,0,, +17,"3,9",46,"22,5",14,sun,E10,0,0,1,, +2,"8,1",20,"22,5",14,,E10,0,0,0,, +"11,8","4,4",33,"22,5",8,,E10,0,0,0,, +"7,4",5,31,"22,5",12,,E10,0,0,0,, +"12,4","4,7",55,"22,5",14,sun,E10,0,0,1,, +2,6,22,"22,5",14,,E10,0,0,0,, +14,5,41,"22,5",8,,E10,0,0,0,, +"25,7",5,45,"22,5",7,,E10,0,0,0,, +"24,5","3,9",50,,15,sun,E10,0,0,1,, +"11,8","4,5",28,"22,5",12,,E10,0,0,0,, +"4,1","5,4",24,"22,5",13,,E10,0,0,0,, +"4,2","5,6",29,22,17,,E10,0,0,0,, +"4,2","3,9",29,22,18,sun,E10,0,0,1,, +16,4,40,22,10,,E10,0,0,0,, +"22,9",4,29,,21,,E10,0,0,0,, +16,"3,8",42,,8,,E10,0,0,0,, +"15,4","4,5",50,22,14,,E10,0,0,0,, +16,"3,8",41,22,12,,E10,0,0,0,, +"4,2","5,6",32,22,18,,E10,0,0,0,, +"101,9","5,2",75,22,18,,E10,0,0,0,, +"93,9","4,8",88,23,18,AC sun,E10,1,0,1,, +"25,7","4,9",50,22,10,rain,SP98,0,1,0,41,SP98 +16,"4,1",40,22,10,,SP98,0,0,0,, +"16,1","4,5",32,22,19,,SP98,0,0,0,, +16,"4,4",40,22,7,AC rain,SP98,1,1,0,, +16,"4,5",41,22,11,,SP98,0,0,0,, +"24,7","4,5",26,22,10,,SP98,0,0,0,, +16,"3,9",42,22,8,,SP98,0,0,0,, +"15,4","4,6",43,22,16,,SP98,0,0,0,, +16,"3,8",40,22,8,,SP98,0,0,0,, +"32,1","4,5",50,22,16,,SP98,0,0,0,, +"25,9","4,4",40,22,14,,SP98,0,0,0,, +"48,6","4,3",44,22,12,,SP98,0,0,0,, +"37,2",4,45,22,20,sun,SP98,0,0,1,, +"28,8","3,9",35,22,15,sun,SP98,0,0,1,, +"6,7",5,30,22,17,,SP98,0,0,0,, +"7,4","4,1",25,22,18,sun,SP98,0,0,1,, +"17,3","4,1",22,22,25,sun,SP98,0,0,1,, +"6,6","5,6",43,22,16,,SP98,0,0,0,, +"14,3","4,1",26,22,20,,SP98,0,0,0,, +"13,3","4,6",33,22,18,,SP98,0,0,0,, +"8,3","4,9",26,22,23,,SP98,0,0,0,, +"12,7","4,5",39,22,27,sun,SP98,0,0,1,, +"16,5","4,1",47,22,14,,SP98,0,0,0,, +"20,6","4,1",38,22,21,,SP98,0,0,0,, +"16,3","4,5",58,22,16,,SP98,0,0,0,, +"18,7","4,2",65,25,18,sun ac,SP98,1,0,1,, +"36,5","3,9",54,23,18,sun,SP98,0,0,1,, +19,5,35,22,15,sun ac,SP98,1,0,1,, +"16,6","4,4",46,22,5,ac,SP98,1,0,0,, +"29,9","4,5",32,22,18,ac,SP98,1,0,0,, +16,"3,8",42,22,11,,SP98,0,0,0,, +"21,1","5,1",33,22,10,rain,SP98,0,1,0,, +16,"3,9",40,22,10,,SP98,0,0,0,, +"11,9","5,3",34,22,13,,SP98,0,0,0,, +"10,1","4,2",35,22,16,,SP98,0,0,0,, +"31,9","4,3",33,22,16,,SP98,0,0,0,, +"18,7",4,60,22,13,,SP98,0,0,0,, +"10,8","4,7",48,22,17,sun,SP98,0,0,1,, +"19,8",4,56,22,17,sun,SP98,0,0,1,, +"11,3","4,3",38,22,17,,SP98,0,0,0,37,SP98 +"11,5","5,3",53,22,15,,SP98,0,0,0,, +"21,4","5,2",51,22,13,,SP98,0,0,0,, +32,"4,9",53,22,15,,SP98,0,0,0,, +"41,9","4,7",53,22,14,,SP98,0,0,0,, +211,"4,6",80,22,20,,SP98,0,0,0,, +"216,1","5,3",90,22,21,sun,SP98,0,0,1,, +"25,5","3,6",27,22,27,sun,SP98,0,0,1,, +"16,6","4,2",52,22,15,rain,SP98,0,1,0,, +"25,9","4,1",43,22,24,,SP98,0,0,0,, +"16,5",4,48,22,15,,SP98,0,0,0,, +"22,1","3,9",29,22,26,,SP98,0,0,0,, +"16,6","3,7",49,22,17,,E10,0,0,0,"37,7",E10 +"15,4","4,5",43,22,24,,E10,0,0,0,, +"16,5","3,9",43,22,17,,E10,0,0,0,, +"15,4","5,1",21,22,24,,E10,0,0,0,, +"18,4","4,2",59,22,24,,E10,0,0,0,, +"39,5","4,2",58,22,25,,E10,0,0,0,, +"21,5","4,8",47,25,27,AC Sun,E10,1,0,1,, +"4,8","4,7",26,25,18,,E10,0,0,0,, +"100,9","4,7",87,"23,5",22,,E10,0,0,0,, +"129,7","4,6",58,24,21,ac,E10,0,0,0,, +"16,6","3,8",43,"21,5",16,,E10,0,0,0,, +"15,4","4,2",50,"21,5",21,,E10,0,0,0,, +16,"3,7",45,22,17,,E10,0,0,0,, +16,"4,2",41,22,15,,E10,0,0,0,, +"15,4","4,1",45,22,24,,E10,0,0,0,, +16,4,43,22,16,,E10,0,0,0,, +21,"3,8",37,22,21,,E10,0,0,0,, +"15,4","3,8",47,22,24,,E10,0,0,0,, +16,"3,8",42,22,17,,E10,0,0,0,, +"16,1","5,1",30,25,16,ac rain,E10,1,1,0,, +16,4,42,22,15,,E10,0,0,0,, +"15,4","4,8",40,22,18,,E10,0,0,0,, +"17,2","3,9",35,22,16,,E10,0,0,0,, +"16,6","4,6",50,22,25,,E10,0,0,0,, +"18,3","4,3",46,22,16,,SP98,0,0,0,"37,2",SP98 +"16,1","4,8",36,22,18,rain,SP98,0,1,0,, +16,"4,1",46,22,17,,SP98,0,0,0,, +"16,3",4,35,22,23,,SP98,0,0,0,, +16,"3,7",44,22,16,,SP98,0,0,0,, +"18,3","4,3",46,22,23,,SP98,0,0,0,, +"4,5","5,2",23,22,23,sun,SP98,0,0,1,, +17,"4,2",48,22,16,,SP98,0,0,0,, +"6,1",5,35,"24,5",18,,SP98,0,0,0,, +"6,1",5,33,22,24,sun,SP98,0,0,1,, +"17,3","4,2",36,22,22,,SP98,0,0,0,, +6,"4,8",27,22,17,,SP98,0,0,0,, +16,"4,1",45,22,15,,SP98,0,0,0,, +"15,4","4,9",55,22,18,,SP98,0,0,0,, +"15,4","4,3",39,22,23,,SP98,0,0,0,, +16,"3,9",35,22,18,,SP98,0,0,0,, +"15,4","4,5",52,22,26,,SP98,0,0,0,, +"16,6","4,1",48,"25,5",30,sun ac,SP98,1,0,1,, +"15,4",5,48,"25,5",31,ac,SP98,1,0,0,, +16,4,43,22,21,ac,SP98,1,0,0,, +"15,4","4,5",42,22,30,,SP98,0,0,0,, +16,"3,6",43,22,19,,SP98,0,0,0,, +"20,9","4,1",33,22,21,,SP98,0,0,0,, +"32,1","3,9",47,22,26,,SP98,0,0,0,, +"15,3","6,6",16,24,27,ac,SP98,1,0,0,, +"28,5",4,44,25,23,ac,SP98,1,0,0,, +"11,9","3,7",33,25,19,,SP98,0,0,0,, +"14,5","4,3",36,25,22,,SP98,0,0,0,, +"16,6","4,1",49,22,26,sun,SP98,0,0,1,, +"16,2","4,4",39,"24,5",17,ac,SP98,1,0,0,, +"16,7","3,8",44,"24,5",23,sun,SP98,0,0,1,, +"8,3",5,52,"24,5",27,,SP98,0,0,0,, +"5,5","3,7",33,"24,5",28,sun,SP98,0,0,1,, +"13,6","3,7",33,"24,5",28,sun,SP98,0,0,1,, +16,"3,7",39,"24,5",18,,SP98,0,0,0,, +"16,1","4,3",38,25,31,AC,SP98,1,0,0,, +16,"3,8",45,25,19,,SP98,0,0,0,, +"15,4","4,6",42,25,31,AC,SP98,1,0,0,, +"14,7",5,25,25,30,AC,SP98,1,0,0,, diff --git a/inputs/measurements2.xlsx b/inputs/measurements2.xlsx new file mode 100644 index 0000000..8688d01 Binary files /dev/null and b/inputs/measurements2.xlsx differ diff --git a/limpieza_modelos.ipynb b/limpieza_modelos.ipynb new file mode 100644 index 0000000..376a952 --- /dev/null +++ b/limpieza_modelos.ipynb @@ -0,0 +1,5687 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 618, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib as mpl\n", + "import matplotlib.pylab as pylab\n", + "from sklearn import metrics\n", + "import numpy as np # linear algebra\n", + "import pandas as pd # data processing\n", + "#from sklearn.preprocessing import OneHotEncoder, LabelEncoder\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.decomposition import PCA\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.tree import DecisionTreeRegressor\n", + "from sklearn.ensemble import RandomForestRegressor\n", + "from sklearn.linear_model import LinearRegression\n", + "from xgboost import XGBRegressor\n", + "from sklearn.neighbors import KNeighborsRegressor\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn import metrics\n", + "from sklearn.linear_model import Ridge, Lasso\n", + "from sklearn.ensemble import GradientBoostingRegressor\n", + "from sklearn import metrics\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.linear_model import SGDRegressor\n", + "from sklearn import linear_model\n", + "from scipy import stats" + ] + }, + { + "cell_type": "code", + "execution_count": 619, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidespecialsgas_typeACrainsunrefill litersrefill gas
02852621,512NaNE1000045E10
1124,23021,513NaNE10000NaNNaN
211,25,53821,515NaNE10000NaNNaN
312,93,93621,514NaNE10000NaNNaN
418,54,54621,515NaNE10000NaNNaN
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside specials gas_type AC \\\n", + "0 28 5 26 21,5 12 NaN E10 0 \n", + "1 12 4,2 30 21,5 13 NaN E10 0 \n", + "2 11,2 5,5 38 21,5 15 NaN E10 0 \n", + "3 12,9 3,9 36 21,5 14 NaN E10 0 \n", + "4 18,5 4,5 46 21,5 15 NaN E10 0 \n", + "\n", + " rain sun refill liters refill gas \n", + "0 0 0 45 E10 \n", + "1 0 0 NaN NaN \n", + "2 0 0 NaN NaN \n", + "3 0 0 NaN NaN \n", + "4 0 0 NaN NaN " + ] + }, + "execution_count": 619, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train=pd.read_csv('../reto_data/inputs/measurements.csv')\n", + "df_train.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### drop nan" + ] + }, + { + "cell_type": "code", + "execution_count": 620, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "distance 0\n", + "consume 0\n", + "speed 0\n", + "temp_inside 12\n", + "temp_outside 0\n", + "specials 295\n", + "gas_type 0\n", + "AC 0\n", + "rain 0\n", + "sun 0\n", + "refill liters 375\n", + "refill gas 375\n", + "dtype: int64" + ] + }, + "execution_count": 620, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train.isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 621, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{' ', '_', 'd', 'e', 'f', 'i', 'l', 'r', 's', 't'}" + ] + }, + "execution_count": 621, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set('df_refill liters')" + ] + }, + { + "cell_type": "code", + "execution_count": 622, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{' ', '_', 'a', 'd', 'e', 'f', 'g', 'i', 'l', 'r', 's'}" + ] + }, + "execution_count": 622, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set('df_refill gas')" + ] + }, + { + "cell_type": "code", + "execution_count": 623, + "metadata": {}, + "outputs": [], + "source": [ + "#eliminamos columnas con demasiados elementos vacios\n", + "df_train=df_train.drop(['specials', 'refill liters', 'refill gas'], axis='columns')" + ] + }, + { + "cell_type": "code", + "execution_count": 624, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 9 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 distance 388 non-null object\n", + " 1 consume 388 non-null object\n", + " 2 speed 388 non-null int64 \n", + " 3 temp_inside 376 non-null object\n", + " 4 temp_outside 388 non-null int64 \n", + " 5 gas_type 388 non-null object\n", + " 6 AC 388 non-null int64 \n", + " 7 rain 388 non-null int64 \n", + " 8 sun 388 non-null int64 \n", + "dtypes: int64(5), object(4)\n", + "memory usage: 27.4+ KB\n" + ] + } + ], + "source": [ + "df_train.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Categorical and numerical columns" + ] + }, + { + "cell_type": "code", + "execution_count": 625, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Numerical columns: ['speed', 'temp_outside', 'AC', 'rain', 'sun']\n", + "Categorical columns: ['temp_inside', 'gas_type', 'distance', 'consume']\n" + ] + } + ], + "source": [ + "num_cols = list(df_train._get_numeric_data().columns)\n", + "print(\"Numerical columns: \", num_cols)\n", + "\n", + "cat_cols=list(set(df_train.columns) - set(num_cols))\n", + "print(\"Categorical columns: \", cat_cols)" + ] + }, + { + "cell_type": "code", + "execution_count": 626, + "metadata": {}, + "outputs": [], + "source": [ + "#Creating a function to convert the values\n", + "def comma_converter(x):\n", + " if type(x) == str and ',' in x:\n", + " a = x.split(',')\n", + " return float(a[0] + '.' + a[1])\n", + " else:\n", + " return float(x)\n", + " \n", + "#Converting the data\n", + "df_train['distance'] = df_train['distance'].apply(comma_converter)\n", + "df_train['consume'] = df_train['consume'].apply(comma_converter)\n", + "df_train['temp_inside'] = df_train['temp_inside'].apply(comma_converter)" + ] + }, + { + "cell_type": "code", + "execution_count": 627, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "temp_inside > {nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 19.0, 20.0, 21.5, 22.5, 21.0, 20.5, 23.0, 23.5, 24.0, 22.0, 25.0, 24.5, 25.5}\n", + "\n", + "gas_type > {'SP98', 'E10'}\n", + "\n", + "distance > {1.7, 2.0, 2.9, 4.9, 4.5, 5.4, 7.8, 8.3, 6.1, 10.2, 11.2, 12.0, 12.9, 12.3, 11.9, 12.4, 11.8, 18.5, 17.3, 14.2, 17.9, 18.4, 18.3, 24.7, 25.9, 25.3, 19.0, 28.0, 20.0, 27.3, 31.1, 32.6, 33.4, 34.8, 35.9, 7.0, 36.9, 36.6, 39.4, 35.8, 40.6, 38.6, 43.5, 44.9, 44.4, 43.7, 39.0, 48.6, 41.9, 10.5, 51.6, 53.2, 56.1, 11.5, 58.7, 12.5, 13.0, 67.2, 14.0, 14.5, 16.0, 16.6, 16.1, 16.4, 81.2, 17.4, 16.9, 17.0, 16.5, 18.9, 18.1, 93.9, 19.6, 100.9, 20.1, 101.9, 20.6, 20.9, 21.6, 21.1, 2.4, 21.4, 21.5, 22.9, 22.4, 22.1, 21.0, 23.5, 24.9, 24.5, 25.5, 129.7, 130.3, 26.6, 5.5, 27.1, 28.5, 29.0, 29.9, 153.5, 31.4, 31.5, 31.9, 6.4, 6.0, 162.7, 32.1, 7.9, 7.4, 32.0, 9.9, 36.5, 37.2, 38.5, 13.9, 13.4, 39.5, 15.9, 15.4, 211.0, 4.8, 1.3, 216.1, 5.3, 6.8, 8.7, 9.8, 9.7, 9.2, 10.8, 11.7, 11.3, 12.2, 12.8, 12.7, 13.2, 13.3, 14.3, 14.7, 15.7, 15.3, 16.8, 16.2, 16.3, 16.7, 4.2, 17.2, 5.2, 18.8, 18.7, 6.7, 19.8, 20.8, 22.7, 22.2, 24.8, 25.2, 25.7, 26.2, 28.2, 28.8, 4.1, 5.1, 31.8, 6.6, 2.1, 10.6, 10.1, 11.6, 12.1, 12.6, 13.1, 13.6, 14.1}\n", + "\n", + "consume > {3.9, 4.5, 5.5, 4.2, 5.0, 6.4, 4.4, 5.3, 5.6, 4.6, 5.9, 5.1, 7.4, 9.9, 12.2, 10.8, 11.5, 4.9, 4.1, 4.0, 5.4, 6.5, 6.1, 6.9, 6.0, 6.6, 7.9, 7.1, 8.7, 8.1, 9.0, 3.6, 3.3, 3.8, 3.7, 4.7, 4.8, 4.3, 5.8, 5.7, 5.2, 6.2, 6.3}\n", + "\n" + ] + } + ], + "source": [ + "#visualizar contenido de las columnas categoricas\n", + "for c in cat_cols:\n", + " print(c, \">\", set(df_train[c]))\n", + " print(\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 628, + "metadata": {}, + "outputs": [], + "source": [ + "#convertimos en numéricas las que no son strings\n", + "df_train['temp_inside'] = pd.to_numeric(df_train['temp_inside'], errors='coerce')\n", + "df_train['consume'] = pd.to_numeric(df_train['consume'], errors='coerce')\n", + "df_train['distance'] = pd.to_numeric(df_train['distance'], errors='coerce')" + ] + }, + { + "cell_type": "code", + "execution_count": 629, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Numerical columns: ['distance', 'consume', 'speed', 'temp_inside', 'temp_outside', 'AC', 'rain', 'sun']\n", + "Categorical columns: ['gas_type']\n" + ] + } + ], + "source": [ + "num_cols = list(df_train._get_numeric_data().columns)\n", + "print(\"Numerical columns: \", num_cols)\n", + "\n", + "cat_cols=list(set(df_train.columns) - set(num_cols))\n", + "print(\"Categorical columns: \", cat_cols)" + ] + }, + { + "cell_type": "code", + "execution_count": 630, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{0, 1}" + ] + }, + "execution_count": 630, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#con un diccionario mapeamos y convertimos en numéricos los dos tipos de combustibles\n", + "df_train['gas_type'] = df_train['gas_type'].map({'SP98': 1, 'E10': 0})\n", + "set(df_train['gas_type'])" + ] + }, + { + "cell_type": "code", + "execution_count": 631, + "metadata": {}, + "outputs": [], + "source": [ + "#solo una pequeá cantidad de rows en temp_inside están vacías, las rellenamos con la media de la columna\n", + "temp_inside = df_train['temp_inside'].dropna()\n", + "temp_inside_avg = temp_inside.mean()\n", + "df_train['temp_inside'] = df_train['temp_inside'].fillna(temp_inside_avg)" + ] + }, + { + "cell_type": "code", + "execution_count": 632, + "metadata": {}, + "outputs": [], + "source": [ + "distance = df_train['distance'].dropna()\n", + "distance_avg = distance.mean()\n", + "df_train['distance'] = df_train['distance'].fillna(distance_avg)" + ] + }, + { + "cell_type": "code", + "execution_count": 633, + "metadata": {}, + "outputs": [], + "source": [ + "#df_train.drop(['distance'], inplace=True, axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 634, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 9 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 distance 388 non-null float64\n", + " 1 consume 388 non-null float64\n", + " 2 speed 388 non-null int64 \n", + " 3 temp_inside 388 non-null float64\n", + " 4 temp_outside 388 non-null int64 \n", + " 5 gas_type 388 non-null int64 \n", + " 6 AC 388 non-null int64 \n", + " 7 rain 388 non-null int64 \n", + " 8 sun 388 non-null int64 \n", + "dtypes: float64(3), int64(6)\n", + "memory usage: 27.4 KB\n" + ] + } + ], + "source": [ + "df_train.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Añadimos una nueva columna con el consumo / 100 Km" + ] + }, + { + "cell_type": "code", + "execution_count": 635, + "metadata": {}, + "outputs": [], + "source": [ + "df_train['consume_100Km'] = (df_train['consume']/100)*df_train['distance']" + ] + }, + { + "cell_type": "code", + "execution_count": 636, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 388 entries, 0 to 387\n", + "Data columns (total 10 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 distance 388 non-null float64\n", + " 1 consume 388 non-null float64\n", + " 2 speed 388 non-null int64 \n", + " 3 temp_inside 388 non-null float64\n", + " 4 temp_outside 388 non-null int64 \n", + " 5 gas_type 388 non-null int64 \n", + " 6 AC 388 non-null int64 \n", + " 7 rain 388 non-null int64 \n", + " 8 sun 388 non-null int64 \n", + " 9 consume_100Km 388 non-null float64\n", + "dtypes: float64(4), int64(6)\n", + "memory usage: 30.4 KB\n" + ] + } + ], + "source": [ + "df_train.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### correlations" + ] + }, + { + "cell_type": "code", + "execution_count": 637, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(10.5, -0.5)" + ] + }, + "execution_count": 637, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzEAAAKyCAYAAADlxVBCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAC02UlEQVR4nOzdd3iTZRfH8V86gJZSZluggGwEF0OWArIRFJQheyqgyB6VssuSDbJlW1nKKCAIZansrQhlOUA2HbSl0Baatnn/gDdS2mLDSAh8P9eV6yJPzpOcO09ScnLu+4nBZDKZBAAAAAB2wsHWCQAAAACAJShiAAAAANgVihgAAAAAdoUiBgAAAIBdoYgBAAAAYFcoYgAAAADYFYoYAAAAAGl269Ytvf/++7p06VKy206dOqXGjRurTp06GjRokOLj4yVJV65cUatWrfTuu++qS5cuio6OfqwcKGIAAAAApMnvv/+uFi1a6J9//knxdh8fHw0ZMkSbN2+WyWTSihUrJEnDhw9Xy5YtFRgYqFdffVWzZs16rDwoYgAAAACkyYoVKzRs2DB5enomu+3y5cu6ffu2SpYsKUlq1KiRAgMDZTQadejQIdWpUyfJ9sfh9Fh7AwAAALB7UVFRioqKSrbd3d1d7u7u5uujR49O9T5CQkLk4eFhvu7h4aHg4GBFRETIzc1NTk5OSbY/DooYAAAAwIb+rFTH1ikosNn7mjFjRrLt3bp1U/fu3dN0HyaTKdk2g8GQ6vbHQREDAAAAvODatWunhg0bJtt+fxfmv3h5eSksLMx8PTQ0VJ6ensqWLZtu3bqlhIQEOTo6mrc/DooYAAAAwJYMtl+m/uC0sUfh7e2t9OnT68iRIypTpozWrl2rKlWqyNnZWW+++aY2btyo+vXrm7c/Dts/YwAAAADsVqdOnXT8+HFJ0sSJEzVmzBjVrVtXsbGxatu2rSRp2LBhWrFiherVq6fDhw+rV69ej/WYBlNKk9QAAAAAWMWflevaOgUV2bXJ1ilYhOlkAAAAgC095iL3FxHTyQAAAADYFYoYAAAAAHaF6WQAAACALTkwncxSdGIAAAAA2BU6MQAAAIANGZ6B34mxNzxjAAAAAOwKRQwAAAAAu8J0MgAAAMCWWNhvMToxAAAAAOwKnRgAAADAlgx0YixFJwYAAACAXaGIAQAAAGBXmE4GAAAA2JIDfQVL8YwBAAAAsCt0YgAAAABbYmG/xejEAAAAALArFDEAAAAA7ArTyQAAAAAbMjCdzGJ0YgAAAADYFToxAAAAgC1ximWL8YwBAAAAsCsUMQAAAADsCtPJAAAAAFtiYb/F6MQAAAAAsCsUMQAAAADsCtPJAAAAAFtyYDqZpejEAAAAALArdGIAAAAAWzLQV7AUzxgAAAAAu0IRAwAAAMCuMJ0MAAAAsCEDC/stRicGAAAAgF2hEwMAAADYkoFOjKXoxAAAAACwKxQxAAAAAOwK08kAAAAAW+J3YizGMwYAAADArtCJAQAAAGyJUyxbjE4MAAAAALtCEQMAAADArjCdDAAAALAlfifGYnRiAAAAANgVOjEAAACADRkc6CtYimcMAAAAgF2hiAEAAABgV5hOBgAAANgSC/stRicGAAAAgF2hEwMAAADYEgv7LcYzBgAAAMCuUMQAAAAAsCvPfRHj6+urr7/+Wp06dUo15ubNm/r888+tmBUAAABwj8Fg+4udee6LGEny9PTUvHnzUr39xo0bOn36tBUzAgAAAPConruF/SaTSWPHjtUvv/wiT09PJSQkqFy5cqpevbp++uknrV+/XvPnz5ejo6Py5MmjCRMmaNSoUQoJCVHXrl01c+ZMTZkyRfv27dONGzeUNWtWTZ8+XR4eHqpUqZLq1KmjI0eOyNHRUV999ZXy5s2rvXv3auzYsTKZTMqdO7cmTZokFxcXjR8/XgcPHlRCQoIaNWqk9u3b2/rpAQAAAOzec9eJ2bx5s06ePKkNGzZo6tSpunDhQpLbv/rqKy1cuFABAQEqUKCAzp49q8GDB8vT01MzZ87U+fPndfbsWX333XfavHmz8uXLp/Xr10uSQkNDVbFiRa1du1Zly5bV0qVLFRcXp379+mncuHFav369ihUrpjVr1mjFihWSpDVr1mjVqlXavn27Dh8+bPXnAwAAAM84W08ls8PpZM9dJ+bgwYOqXbu2nJ2dlS1bNlWpUiXJ7dWqVVOLFi1Uo0YN1alTR8WLF9elS5fMt7/00kvq37+/Vq5cqXPnzuno0aPKly+f+fbKlStLkooUKaLDhw/rzJkz8vLyUvHixSVJffr0kST16NFDp06d0v79+yVJMTExOnPmjN58882nOn4AAADgeffcFTEGg0GJiYnm605OSYc4ePBgnT59Wjt27JCPj4+6deumMmXKmG8PCgpS37591b59e9WpU0cODg4ymUzm29OnT29+HJPJJGdn5yT3f/PmTUVHRyshIUE+Pj6qXbu2JCk8PFyurq5PfLwAAACwbwZ+J8Ziz90zVrFiRQUGBiouLk43btzQrl27zLfFx8erdu3aypo1qz799FN98MEHOnXqlJycnBQfHy9JOnTokMqVK6cWLVqocOHC2rNnjxISElJ9vAIFCig8PFx//fWXJGn+/Plavny5KlSooBUrVshoNCo6OlotW7bU77///nQHDwAAALwAnrtOTM2aNXX8+HG9//77ypEjhwoVKmS+zcnJST169FCHDh2UIUMGubu7a9y4ccqWLZty586tNm3aaOLEierWrZvq168vZ2dnFStWLMl0swelT59eEyZM0BdffCGj0ah8+fJp/PjxSpcunc6fP6+GDRsqPj5ejRo1Uvny5a3xFAAAAADPNYPp/rlSAAAAAKzqn3ZdbJ2C8vvPtnUKFnnuppMBAAAAeL49d9PJAAAAALviYH+nOLY1OjEAAAAA7ApFDAAAAAC7wnQyAAAAwJYM9BUsxTMGAAAAwK7QiQEAAABsiYX9FqMTAwAAAMCuUMQAAAAAsCtMJwMAAABsycB0MkvRiQEAAABgV+jEAAAAADZk4BTLFuMZAwAAAGBX6MQAAAAASLP169dr9uzZMhqNat++vVq1amW+7dSpU/L19TVfDw8PV+bMmbVhwwatXbtWEydOVPbs2SVJVatWVe/evR8pB4oYAAAAwJbs6HdigoODNWXKFAUEBChdunRq3ry5ypcvr8KFC0uSihcvrnXr1kmSYmNj9dFHH8nPz0+SdPz4cfn6+ur9999/7DyYTgYAAAC84KKionTp0qVkl6ioqCRxe/fuVYUKFZQlSxa5urqqTp06CgwMTPE+58yZo7Jly+rNN9+UdLeIWbt2rRo0aKB+/frpxo0bj5wvRQwAAABgSwaDzS/+/v6qUaNGsou/v3+SVENCQuTh4WG+7unpqeDg4GRDioqK0ooVK9StWzfzNg8PD3Xv3l3r1q1Trly5NGLEiEd+yphOBgAAALzg2rVrp4YNGybb7u7unuS6yWRKFmNI4Xdu1q9fr5o1a5rXv0jSzJkzzf/u2LGjatas+cj50okBAAAAXnDu7u7KkydPssuDRYyXl5fCwsLM10NCQuTp6Zns/rZt26Z69eqZr9+8eVPffPON+brJZJKT06P3UyhiAAAAAFtycLD9JY3eeust7du3T+Hh4YqNjdWWLVtUpUqVJDEmk0knTpxQqVKlzNtcXV01f/58/f7775KkJUuWqFatWo/8lDGdDAAAAECaeHl5qXfv3mrbtq2MRqOaNGmi119/XZ06dVKPHj302muvKTw8XM7OzkqfPr15P0dHR3311Vfy8/PT7du3lT9/fo0fP/6R8zCYUprYBgAAAMAqznftZ+sU9NLMibZOwSJ0YgAAAABbSmFhPB6ONTEAAAAA7AqdmGfUXxfDbZ2CVRXOm83WKQAAANiEwYFOjKXoxAAAAACwKxQxAAAAAOwK08kAAAAAWzLQV7AUzxgAAAAAu0InBgAAALAlTrFsMToxAAAAAOwKRQwAAAAAu8J0MgAAAMCW+J0Yi9GJAQAAAGBX6MQAAAAAtsQpli3GMwYAAADArlDEAAAAALArTCcDAAAAbMjAwn6L0YkBAAAAYFfoxAAAAAC2ZKATYyk6MQAAAADsCkUMAAAAALvCdDIAAADAlhzoK1iKZwwAAACAXaGIAQAAAGBXmE4GAAAA2BJnJ7MYnRgAAAAAdoVODAAAAGBLdGIsRicGAAAAgF2hE/MCObh/j/wXzJbRaFT+goXUq+8guWbMmGKsyWTSlAmj9FL+gmrctJUkKfrWLU2d9KUuXTyvxMRE1ahdTx81b2PNIQAAAAB0Yl4UNyIj9NXE0Ro4bIzmfvO9cuby1qL5s1KMvXD+Hw306a7dO7Yn2b74m7nK4eGhWfOX6quZC7VxfYBOnTxujfQBAACeWwYHB5tf7I39ZYxH8uuRgypStLi88+SVJL1Xv5F+2b5ZJpMpWeyPP6xSrTrvqdI7NZJs/7Rrb33yaXdJUnh4mIxGozJmdHv6yQMAAAD3eS6mk5lMJk2cOFHbtm2To6OjmjVrpipVqmjo0KGKjIyUq6urBg0apNdff12+vr5yc3PTiRMnFBwcrK5du6px48bat2+fJkyYIEnKnDmzJk2apJiYGLVt21Y//fSTJGn69OmSpO7du+vtt99WtWrVdPjwYXl4eKhly5ZavHixrl27prFjx6pcuXI6f/68/Pz8FBkZqQwZMmjIkCEqUaKETZ6j0JBgeXh6mq/n8PBQTEy0YmNikk0p69K9nyTp6G+Hk2w3GAxydHTShDF+2rPzZ1Ws9I688+R7+skDAAA8z1jYb7HnohMTGBioX3/9VevXr9fKlSsVEBCgzz77TG3atNH69es1YMAA9ezZU3FxcZKka9euadmyZZo9e7bGjx8vSZo1a5b8/PwUEBCgatWq6eTJkw99zLCwMFWtWlWBgYGSpG3btmnZsmXq3r27/P39JUn9+/eXj4+P1qxZo5EjR6p3795P8Vl4OJMpMcXtDo/QPvQZ4KflAZt0KypKy5csfNzUAAAAAIs8F52YQ4cOqW7dukqXLp3SpUunZcuWqVq1aqpdu7YkqWTJksqcObPOnj0rSXr77bdlMBhUtGhRRUZGSpJq1Kihbt26qWbNmqpRo4befvttXbp06aGPW6VKFUmSt7e3ypQpI0nKnTu3oqKiFB0draCgIA0YMMAcHxMTo4iICGXNmvVJPwUpWvzNXB3Yt/vuY0dHK3+BQubbroeFyi1TJmVwcUnz/R05tF/5CxRS9hwecnFxVZXqtbR3189PPG8AAADgYZ6LIsbJKekwLl68mGyth8lkUkJCgiQpffr0ku5Oj/q/9u3bq1q1avr55581YcIEHTt2TA0aNEhyP/Hx8UkeK126dOZ/Ozo6Jnm8xMREpUuXTuvWrTNvu3btmrJkyfKIo7Rcm/ad1aZ9Z0lSZES4unZqrcuXLso7T15tXL9GFd6qYtH97dqxXXt3/6Juvfor3mjU7h3bVbJ02aeROgAAwIvDgelklnouppOVLVtWW7duldFoVGxsrHr16iWDwaAtW7ZIko4ePaqwsDAVKVIk1fv46KOPFB0drfbt26t9+/Y6efKk3N3ddePGDYWHhysuLk67du1Kc06ZMmVS/vz5zUXMnj171KpVq8cb6GPIkjWbevkM1pgRA/Xpx831z7m/1fHeIv0/z5xSt0/b/ud9dPysh2Kio9W1U2v1/LyDChcppg8aNXvaqQMAAABJPBedmFq1aikoKEiNGjVSYmKi2rZtq/Lly8vPz0/Tp0+Xs7Ozpk+fnqRz8qA+ffrI19dXTk5OSp8+vYYPH65MmTLpk08+UZMmTZQzZ0699tprFuU1YcIE+fn5af78+XJ2dtaUKVOSdH+srWz5t1S2/FvJthcpVlwz5nybbHufL4Ykue7mlkn9B498avkBAAC8kAzPRV/BqgymlM6xC5v762K4rVOwqsJ5s9k6BQAAAJu45DfW1ikoj5+vrVOwCGUfAAAAALvyXEwnAwAAAOwWC/stRicGAAAAgF2hEwMAAADYkg1P/GSv6MQAAAAAsCsUMQAAAADsCtPJAAAAABsy8DsxFuMZAwAAAGBX6MQAAAAAtsQpli1GJwYAAACAXaGIAQAAAGBXmE4GAAAA2BK/E2MxOjEAAAAA7ApFDAAAAAC7wnQyAAAAwJYc6CtYimcMAAAAgF2hEwMAAADYEgv7LUYnBgAAAIBdoYgBAAAAYFeYTgYAAADYkMGB6WSWohMDAAAAwK7QiQEAAABsyUBfwVI8YwAAAADsCkUMAAAAALvCdLJnlOv3S2ydglUdqtfc1ilYTdkSnrZOAQAAPEv4nRiL0YkBAAAAYFfoxAAAAAC2xCmWLUYnBgAAAIBdoYgBAAAAYFeYTgYAAADYEr8TYzGeMQAAAAB2hU4MAAAAYEMGFvZbjE4MAAAAALtCEQMAAADArjCdDAAAALAlA9PJLEUnBgAAAECarV+/XvXq1VOtWrW0dOnSZLfPmDFD1apV0wcffKAPPvjAHHPq1Ck1btxYderU0aBBgxQfH//IOdCJAQAAAGzJwX76CsHBwZoyZYoCAgKULl06NW/eXOXLl1fhwoXNMUFBQZo8ebJKlSqVZF8fHx+NGjVKJUuW1MCBA7VixQq1bNnykfKwn2cMAAAAgE3t3btXFSpUUJYsWeTq6qo6deooMDAwSUxQUJDmzZun+vXra8SIEbpz544uX76s27dvq2TJkpKkRo0aJdvPEhQxAAAAwAsuKipKly5dSnaJiopKEhcSEiIPDw/zdU9PTwUHB5uvR0dHq3jx4urfv7/WrFmjqKgozZo1K9l+Hh4eSfazFNPJAAAAAFt6BqaT+fv7a8aMGcm2d+vWTd27dzdfN5lMyWIM952YIGPGjJo3b575+scff6yBAwfqnXfeeeh+lqKIAQAAAF5w7dq1U8OGDZNtd3d3T3Ldy8tLhw8fNl8PCQmRp6en+fqVK1e0d+9eNWnSRNLdosfJyUleXl4KCwszx4WGhibZz1K2L/sAAAAA2JS7u7vy5MmT7PJgEfPWW29p3759Cg8PV2xsrLZs2aIqVaqYb8+QIYMmTJigixcvymQyaenSpapVq5a8vb2VPn16HTlyRJK0du3aJPtZik4MAAAAYEt29DsxXl5e6t27t9q2bSuj0agmTZro9ddfV6dOndSjRw+99tprGjFihLp06SKj0ajSpUurQ4cOkqSJEydq8ODBio6OVokSJdS2bdtHzsNgSmliG2zuysRptk7Bqi7Xa27rFKymbIlHb50CAIDnz9U5i2ydgnJ92sHWKViETgwAAABgQwYH++nEPCtYEwMAAADArlDEAAAAALArTCcDAAAAbMlAX8FSPGMAAAAA7AqdmBdE+oL55V75LRkcHWUMDVPk5u0yxcUliXGvWkkZihaR6fZtSVJ8eIQiNgRKkjIUKSS38mVlcHJUQlSUIjZuNcc9i347vFcrlsyR0WhUvpcKqWM3X7m6ZkwWt/uXzdq4brkkg9Knz6A2HXuqYOGXFW80yn/+Vzpz8ndJ0hulK6hF2y5ycHS08kgAAMBzz45OsfysoBNjJdWrV9elS5ds8tgOLi7K8m5Nha/7USELFyv+xg25V3krWVy63LkUsWGTQr9drtBvl5sLGGcvT2WuUVURP/yo0G+WKj48Uu6VKlp7GGkWdSNC86aPUc8vRmnizGXyzJlb3y/+OlnclcsXtPzbWfIZMlFfTlmkDz5qq6njBkmStmxcrZs3IjV26rca89U3+vN0kPbv/dnaQwEAAEAKKGJeAOnz55PxWrASIm9IkmKOHpdL8WJJgxwd5ezpIbc3S8ujbQtlbVBPjpncJEkuJYop5vgJJUTdlCTd3HtAtw4dseoYLHH86CEVKPKycubOK0mq8e6H2rtzqx78SSRnZ2d1/Ly/smbLIUkqUOhlRUaGK95oVL0Pmqtbv+FycHDQrZtRiom+JTe3TFYfCwAAAJJ7oaeTXbt2Tf369VNMTIwcHBw0ePBg9enTR9WrV9fhw4clSV9++aVKlCih8+fPy8/PT5GRkcqQIYOGDBmiEiVKKCwsTEOHDtW1a9dkMBjUt29fvfXWW4qMjJSPj4+uXbumQoUK6c6dOzYbp2MmNyVE3TJfT7h5Sw7p08uQLp15SpmjW0bduXBJUbv2KiEiUhnLlla2D+srdPFyOWXNKmNomLJ++L6c3DPJGHZdUT/vstVw/tP1sBBlz+5lvp4tu4diY6IVGxuTZEqZh2cueXjmkiSZTCYtXTRdpcu+LSdnZ0mSk5OTvvv2a23dFKAChYqpWIk3rDsQAADwYuB3Yiz2QndiVq1apapVqyogIEA+Pj46cuRudyFLlixau3atevToof79+0uS+vfvLx8fH61Zs0YjR45U7969JUmjR49W48aNFRAQoNmzZ2vo0KG6deuWpk2bphIlSmj9+vVq1aqVwsLCbDbOVOdZmhLN/0y4EaXwgB+UEBEpSYo+9Kscs2SWY2Z3GRwclKFQAd3Y8pNCv12uxOgYZa5d3QqJPxrTfeO6n4NDyi/327djNX3CUAVfu6yOXfsnua152880Z/FGeXjm1KKvJz3xXAEAAGC5F7oTU7FiRXXv3l2nTp3SO++8o9atW2vp0qVq2rSppLvrWHx9fXXt2jUFBQVpwIAB5n1jYmIUERGhvXv36uzZs5o2bZokKT4+XhcvXtTBgwc1adLdD71ly5ZV3rx5rT/AexKibso5V07zdcdMbkqMvS2TMd68zSlHdjl7eij25Ol/dzRIpoREJURHyxh2XYkxMZKkmKCTyt60kdXyT4tVy+br10N7JEmxsdHKm6+Q+baI62HK6JZJGTK4JNsvLDRYk7/sr9x5XtKgEdOULn16SdIfp44pk3sW5fLOJycnJ1WuXk/fzvvKKmMBAAAvGE6xbLEXuogpU6aMfvzxR/3yyy/auHGj1qxZI+nuNKL/S0xMVEJCgtKlS6d169aZt1+7dk1ZsmRRYmKi/P39lSVLFklScHCwcuTIIYPBkGQNhqMNz2p15/wFuVetLMcsmZUQeUOub7ym23+ffSDKpMzVqyju8hUl3IiSa8nXFB8apsRbtxR75i9lrlpJN/cfkun2bWUoUkjGa8E2GUtqmrTsqCYtO0qSbkRGaECvdrp25aJy5s6r7ZvXqnS5Ssn2uXUzSqMHd1fl6nXVqFmHJLedOP6r/vrjhPoMGCODwUF7d2xRiddKW2UsAAAAeLgXuuwbP3681q1bp4YNG2ro0KE6efKkJOnHH3+UJG3dulWFChWSt7e38ufPby5i9uzZo1atWkmSKlSooGXLlkmS/vrrLzVo0ECxsbGqWLGiOf7YsWO6cOGCtYdnlhgTq8jArcrWoJ48OrSWc47suvHLLjl7ecqjbQtJUnxYuG5s36FsDevLo0NruRQuZD472Z2z53TryFHlaN5YHh1aK513LkVu+clm4/kvmbNkVefuAzRtwhB90a21Lp4/q1btu0mSzv51WgN73y1YtgeuVVhYsA7v36mBvTuYLzejbqh+w1bK4ZHTvM3R0VHN2nxqy2EBAADgHoPpwVM2vUCuXr2qvn37Kjo6Wo6OjurYsaMmTpyoN954Q2fPnpWLi4vGjBmjAgUK6O+//zYv7Hd2dpafn59ef/11BQcHa+jQobpy5YokqV+/fnrnnXd069Yt+fr66ty5cypYsKDOnDmjhQsXKk+ePGnK7crEaU9z6M+cy/Wa2zoFqylbwtPWKQAAgGdI8LfLbZ2CvO59sW0vXugiJiXVq1fXt99+m+Zi42mhiHl+UcQAAID7UcRY7oVeEwMAAADYXGpnkkWqKGIe8NNPz+5aDwAAAAAv+MJ+AAAAAPaHTgwAAABgS6n8IDdSxzMGAAAAwK7QiQEAAABsiYX9FqMTAwAAAMCuUMQAAAAAsCtMJwMAAABsielkFqMTAwAAAMCuUMQAAAAAsCtMJwMAAABsyMDvxFiMZwwAAACAXaETAwAAANgSC/stRicGAAAAgF2hiAEAAABgV5hOBgAAANiSA9PJLEUnBgAAAIBdoRMDAAAA2JKBvoKleMYAAAAA2BWKGAAAAAB2helkAAAAgC2xsN9idGIAAAAA2BU6MQAAAIANGQx0YixFEfOMcmvRxNYpWJVbnKOtU7CaqGvXbJ2C1bjnzGnrFAAAwHOI6WQAAAAA7AqdGAAAAMCW+J0Yi/GMAQAAALArdGIAAAAAW+IUyxajEwMAAADArlDEAAAAALArTCcDAAAAbInfibEYnRgAAAAAdoUiBgAAAIBdYToZAAAAYEsO9BUsxTMGAAAAwK7QiQEAAABsiYX9FqMTAwAAAMCuUMQAAAAAsCtMJwMAAABsyODAdDJL0YkBAAAAYFfoxAAAAAC2ZKCvYCmeMQAAAAB2hSIGAAAAgF1hOhkAAABgSyzstxidGAAAAAB2hU4MAAAAYEsGOjGWohMDAAAAwK5QxAAAAACwK0wne07t3r9PM+fPV1ycUUUKFtRgHx+5ZcyYppj+fsN08fJlc9yVa9dU+vU3NHn0aO3cu1fDx42Vl6en+fZ5U6cpo6ur1caWFocP7NHiRV/LaDQqf4FC6tZ7oFwfGP//mUwmTZs0Wi/lL6gPm7Q0b9+4frW2Ba5XXNwdFSpcTN16D5RzunTWGkKqdu/bp5lz5yrOeO+49e+f/Ng+JKZWgwby8PAwx7Zp3lx1a9XSH3/9pXFTpuhWdLQyurqqS8eOKlu6tFXHBgDAC4nfibGYwWQymWydxM2bN9W/f3/NmjXLqo+7fPlySVKLFi2eyH4BAQE6ePCgxo4d+9i5RV2+8sj7RkRGqtnHHTR/2nTly5NH0+fOUXRMjHx79bYoRpJOnD4tXz8/zZs2TTk9PTVj3jxldHVRh1atHzm/lFyOS//E7utGZIR6fNpKYybPUW7vvPJfMFOxsTH6rJtPstiLF/7R3JkTdeb0CbVs08lcxOzb/YuW+s/RmMlzlDGjm8aPHqwiRV9W42ZtHzs/bxfjI+8bERmpZu3aaf7MmXeP29df3z1uffqkKeafCxfUd8AArV66NNl9N2jWTB3btVODevUUdv26Pu3ZU3OmTlWO7NkfOV/3nDkfeV8AAF4UYT/ttHUKylG9iq1TsMgzUfbduHFDp0+ftvrjtmjRwuIC5nH2s5b9hw+pRLFiypcnjySpcYMPFLh9u+6vV9MSYzQaNXzcWPXp2lU573Vejp0I0qHfflObTzurU88e+vX33604srQ5+utBFS5aXLm980qS3n2vkXb+tEUp1eub1q9W9Vrv6e3KNZJs/3n7Jn3QqIUyZXKXg4ODunT3UdUada2S/8PsP3RIJV5++d/j9sEHCty2LemxfUjMsaAgOTg46LOePdWiQwfN++YbJSQkKDIyUsEhIXqvTh1JUo7s2VWkYEHtO3jQ+oMEAOAFY3Aw2Pxib56J6WSjRo1SSEiIunbtqlq1asnf31+JiYl65ZVXNGzYMKVPn15vv/22qlWrpsOHD8vDw0MtW7bU4sWLde3aNY0dO1blypVTmzZtVLBgQR07dkx37tzRwIEDValSpVQfd/r06ZKk7t27q1KlSqpTp46OHDkiR0dHffXVV8qbN6/GjRunPXv2yNHRUTVq1FC3bt2S7Ld27VrNnj1bbm5u8vb2luu9aVXHjh3TmDFjdPv2bWXNmlXDhw9X3rx5n/6TKSk4JDTJdC9PDw9FR0crOibGPKUoLTHrNm5UjuzZVa1yZXNcZvfMqlerlqpVrqyjx4+r35DBWjpvvrzum55ka2Ghwcrh4WW+nsPDQzEx0YqNiUk2paxz176SpGNHjyTZfuXyRUXeiNDwQb0Vfj1MJV59Q+06dn36yf+H4JCQNBzb1GMSEhJU/s031aNLF925c0e9fH2VMWNGtfzoI+XOlUs/BgaqwXvv6dKVK/rt+HEVK1rU6mMEAAD4L89EJ2bw4MHy9PRUr169tGLFCn333Xdat26dsmfPrgULFkiSwsLCVLVqVQUGBkqStm3bpmXLlql79+7y9/c331dcXJzWrFmjSZMmydfXV3FxcWnKITQ0VBUrVtTatWtVtmxZLV26VJcvX9bOnTv1ww8/6LvvvtM///yjO3fumPcJDg7WxIkTtXTpUn3//feKjo425zB48GBNmjRJa9asUYcOHTRkyJAn9XT9J5MpMcXtjg4OFsUsX71Kn7Ruk+T2CSNGmIuakq+9ptdKvKIDhw8/bspPVGIqMyQdHNP+ck+Ij9fvvx6Sz8BRmjh9oW7djNKSb+Y8qRQfmSkxDcf2ITEN69dXv549lS5dOmXKlEmtmjbVL7t2SZImffmltu/Yoebt22vOwoWqVKGCnJ2dn/wgAAAAHtMz0Yn5vwMHDuj8+fNq2rSppLvTmUqUKGG+vUqVu3P1vL29VaZMGUlS7ty5FRUVZY75/77FixeXh4eHzpw5o9deey1Nj1/53ofzIkWK6PDhw/Ly8lL69OnVvHlzVatWTb169VL69P+u3fjtt99UqlQp5ciRQ5JUv3597d+/X//8848uXryoLl26mGNv3bpl8fPxqLw8vRR06pT5emhoqNwzZZKLi0uaY878+afiExJU+o03zDE3b93SqnVr1b5lKxnM5zM3ycnJ9i+jZd/O08H9uyVJsTHReil/QfNt18NC5eaWSRkyuKS2ezLZsudQhbeqmDs371Svo++XLXqyST8CL68HjltYWPJj+5CYjZs3q0jhwipSqJCkuyc1+P/xS0xM1KQvvzRf7+Hjoypvv22NYQEA8GLjd2Is9kx0Yv4vISFBdevW1bp167Ru3TqtXLlSQ4cONd+e7r4zQzk6OqZ4H/dvT0xMtOgD9v8LFIPBYP5wt3LlSvXs2VORkZFq3ry5zp07Z443GAxKvO9b7/s/DObJk8c8joCAAC1btizNeTyuCm++qaBTp3Th0iVJ0ur161Xlrbctijny++8qW6rUfcWK5OriopVr1+nnXXcXn53580+dOH1ab5Ur97SH9J9atu2kr2b566tZ/hr31VydOX1CVy5flCRt/nGtylWs/B/3kFTFStW0Z9fPunPnjkwmkw7s26kiRYs/jdQtUqFsWQWdPPnvcfvhh2SFxsNi/j53TnMWLlRCQoJu37mjFWvWqFa1apKkLydO1I7ddwvB34OC9Pe5cyp378sCAACAZ8kzUcQ4OTkpPj5e5cuX19atW3X9+nWZTCb5+fklmSqWFhs3bpQkHT9+XFFRUSr6GHP6T548qdatW6ts2bLq37+/ChUqlKSIKVOmjH7//XcFBwcrMTHR/NgFCxbUjRs3dPjeNKvVq1erX79+j5yHpbJlzaqhPl/I12+YPmrfTn+fO6teXbro5Jkzatmp40Nj/u/i5UvK5ZX0zFKOjo6aOGqUlqxYoWYfd9Dw8eP05ZChypI5s9XGlhZZsmRT9z6DNH7UIHXr1ELn//lbHTr3kCT99ccp9fq83X/eR933G+mNUm+qb/cO6tqxhW7Hxqp1+8+edur/KVvWrBrq6yvfoUP1UZs2+vvsWfXq2lUnT59Wy08+eWiMJHVq317umTKpRYcOatmhg15/5RV9+P77kqSB/fppyfffq3n79po6c6Ymjh6dpMMDAACeEgcH21/szDNximWj0ag2bdrI2dlZDRo0MC/sL168uL788kulT59exYoV05kzZyRJvr6+KleunBo1aqQDBw5oxowZWrx4sdq0aSN3d3dduXL39MTDhg1TyZIlU33c+xfo33//958qedy4cfr555/l4uKi4sWLa8SIEZo9e7Z5v8DAQE2dOlUuLi4qXLiwHBwcNHbsWP32228aPXq07ty5Izc3N40bN0758uVL83PyOKdYtkdP8hTLz7rHOcWyveEUywAA/Lfru/baOgVlr/yWrVOwyDNRxDwpbdq0Ubdu3VS+fHlbp/LYKGKeXxQxAADgfvZWxKxfv16zZ8+W0WhU+/bt1apVqyS3b9u2TdOnT5fJZFKePHk0ZswYZc6cWWvXrtXEiROV/d5v0FWtWlW9e/dO6SH+k+1XZD9l33zzjdasWZNsu6enp+bNm2eDjAAAAID72NHC/uDgYE2ZMkUBAQFKly6dmjdvrvLly6tw4cKS7p7Mys/PT6tXr5aXl5emTp2q6dOna/DgwTp+/Lh8fX31/r2p7I/juSpiFi9enGxb+/bt1b59e+snAwAAADxn9u7dqwoVKihLliySpDp16igwMFDdunWTdHeZiJ+fn7y87v5mX7FixbR+/XpJd9esnz9/XnPnzlXRokU1ZMgQZX7EtdX2t4oHAAAAwBMVFRWlS5cuJbvc/1MmkhQSEiKP+37k3NPTU8HBwebrWbNmVc2aNSVJt2/f1ty5c83XPTw81L17d61bt065cuXSiBEjHjnf56oTAwAAANgdB9tPJ/P399eMGTOSbe/WrZu6d+9uvp7ScnpDCtPhbt68qc8//1wvv/yyGjZsKEmaOXOm+faOHTuai5tHQREDAAAAvODatWtnLjbu5+7unuS6l5eX+WdEpLudGU9PzyQxISEh+uSTT1ShQgUNHDhQ0t2iZvXq1eZlHvf/4PajoIgBAAAAbMhgsP0KD3d392QFS0reeustTZ8+XeHh4XJxcdGWLVs0cuRI8+0JCQn67LPPVLduXX3++efm7a6urpo/f75KlSqlN954Q0uWLFGtWrUeOV+KGAAAAABp4uXlpd69e6tt27YyGo1q0qSJXn/9dXXq1Ek9evTQtWvXdPLkSSUkJGjz5s2SpFdffVWjR4/WV199JT8/P92+fVv58+fX+PHjHzmP5+p3Yp4n/E7M84vfiQEAAPcL33fQ1ikoW8Vytk7BInRiAAAAAFuyo9+JeVbYfgIeAAAAAFiATgwAAABgS8/AKZbtDZ0YAAAAAHaFIgYAAACAXWE6GQAAAGBLz8DvxNgbnjEAAAAAdoVODAAAAGBLLOy3GJ0YAAAAAHaFIgYAAACAXWE6GQAAAGBDBgPTySxFJwYAAACAXaETAwAAANiSA30FS/GMAQAAALArFDEAAAAA7ArTyQAAAABbYmG/xejEAAAAALArdGKeUaaEBFunYFWXQu/YOgWryVPU1dYpWE3o2g22TsGqPD5839YpAADsEZ0Yi9GJAQAAAGBXKGIAAAAA2BWmkwEAAAC2xO/EWIxnDAAAAIBdoYgBAAAAYFeYTgYAAADYkIGzk1mMTgwAAAAAu0InBgAAALAlBzoxlqITAwAAAMCuUMQAAAAAsCtMJwMAAABsyUBfwVI8YwAAAADsCp0YAAAAwJZY2G8xOjEAAAAA7ApFDAAAAAC7wnQyAAAAwJYMTCezFJ0YAAAAAHaFTgwAAABgS5xi2WI8YwAAAADsCkUMAAAAALvCdDIAAADAhgz8TozF6MQAAAAAsCt0YgAAAABb4hTLFqMTAwAAAMCu0Il5ju0+sF+zFixQnNGowgUKanDfvnLLmDFNMQkJCZowY7p+O3ZMkvRWufLq0bmzDAaDzp4/rzFTJism9rYMBqnrJx1VsWxZWwwxVUFH9+mHFfMVbzTKO29BtezkIxeXjMnidmxdo13b18kgg3J45VbLj/spU+asiou7oxX+X+n82TMymRKVv1BxNW3XS+nSpbfBaJLavXu3Zsyerbi4OBUpXFhDBg2Sm5ubRTHXgoPV4ZNPtHzJEmXJkkWStHPXLvmNGKGcXl7muHlz5ihjxuTPm63sPXVScwI3Ki4+XoVy5dKAJs2UMUOGJDGr9+7Wmn17ZTAY5J09u/o3/khZ3TJJkgL27dGGgwd0x2hUsTx55NukmdI58WcQAAB7Y9VOzM2bN/X5559b8yEfSVryHDRokI4fP55su6+vrwICAp5WamkWERmpkRMnauzQYVq16Bt558qlmQvmpzlm07ZtOn/pkpbNnaelc+bq12O/a/vOnZKk8dOmqv6772rpnDka0q+fBo4aqfiEBKuPMTU3oyK1ZO54dewxXEMnfKvsnrn0w/dzk8VdOHdG2zd+r75DZ2jQ2EXy8MqjDasXSpI2r1uixIQEDRg9XwO/XCBjXJy2rF9q7aEkExERoeGjRmn8mDEKWLlS3t7emjFrlkUxGzZuVKdPP1VoaGiS/Y4dO6bWrVpp2ZIl5suzVMBE3LqlL1d+r1Ft2mm5j69yZ8uu2Zt+TBJz+tJFLd/5i77+vLsW9/FRnuw5NG9zoCRpR9Axrd6zW191+kyL+/jojtGo73ftsMVQAABIysHB9hc7Y9WMb9y4odOnT1vzIR9JWvIcPXq0XnvtNStlZLkDR46oRNGiypcnjySpcf36Cty+XSaTKU0xCYmJun37toxGo+KMRhnj45U+XTpJUkJiom7evCVJio6JNW9/Vpw+fkgvFSwmz5x3x1W5xgc6tDfp2CUpX4FiGjZhiVxc3WSMi9ONiDBldHOXJBV++XXV+aCNHBwc5ODgqDwvFVZ4WLDVx/Kg/QcOqETx4sqXL58kqUmjRtoUGJhkbA+LCQ0N1Y4dOzR18uRk933s+HEdPnxYrdu2VcfOnfXrb79ZZ1BpdOjPMyqeN6/y5vCQJDWs8Ja2/vZrkrG/nCevvvMZIDcXF90xGhUadUOZ7xVigUcOq3mVd+Tu6ioHBwf1a9hE75Z+0yZjAQAAj8eq8yhGjRqlkJAQde3aVbVq1ZK/v78SExP1yiuvaNiwYUqfPr3efvttVatWTYcPH5aHh4datmypxYsX69q1axo7dqzKlSunNm3aqGDBgjp27Jju3LmjgQMHqlKlSqk+bmxsrAYPHqwzZ87IYDDok08+0YcffqiAgAAdPHhQY8eOlSS1adNG3bp106JFi8x5jhs3Tn369FFYWJgkqWvXrqpRo4Y5tly5cho7dqx++eUXeXp6KiEhQeXKlZMkrV27NsUxWkNwaIg8PTzN1z09PBQdE6PomBjzlLKHxbxfu7a279yh91o0V0JCgsqXKaPKFStKkr7o3kOf+/TT8oDVCo+M1OiBg+Tk6GiVcaVFRHiosmT/d1xZsnnodmy0bt+OSTalzNHJSb8f3q1lCybIyTmd3mvcQZJU/LV/p8eFh13Tz5tXq8XHfa0zgIcIDg6W133TvTw9PRUdHa3o6GjzdLGHxXh4eGjCuHEp3nfmzJlVr25dVataVUePHlVfHx8tW7IkyX3ZUnBkpDwzZzFf98icWdF3bivmzp0kU8qcHB2188RxjVu1Qs5OTupY+11J0sWwMEXcuqU+C+bqelSUXi9QQJ/Xe9/awwAAAE+AVTsxgwcPlqenp3r16qUVK1bou+++07p165Q9e3YtWLBAkhQWFqaqVasqMPDuFJBt27Zp2bJl6t69u/z9/c33FRcXpzVr1mjSpEny9fVVXFxcqo87ffp0Zc2aVRs2bJC/v7+mT5/+0E7L//OcOXOmtm7dKm9vbwUEBGjChAk6fPhwktjNmzfr5MmT2rBhg6ZOnaoLFy5Ikv78889Ux2gNiYmmFLc73tcufFjM/MWLlTVzFgWuWKkNy5cr6uZNLV25Unfi4jRo1CgN9flCG5Z/pzmTJmvM1K8UHBLyVMbxKEymxBS3OxhSfrm/8WYljZu9TvUattPM8V8oMfHf/S+cO6Mpo3rqnVof6rVSFZ9KvpZINKVyzO4rItMSk5IJ48apWtWqkqSSJUvq9ddf14GDBx8t0afgwU7a/zmkcG79Kq+8ph+HjdTHNeuoz4K5SkxMVHxCgg79+YdGtmqr+d17KSomRnMDNz3ttAEA+G8Gg+0vdsYmE+AOHDig8+fPq2nTpvrggw+0fft2nT171nx7lSpVJEne3t6qUKGCJCl37tyKiooyxzRt2lSSVLx4cXl4eOjMmTOpPt7+/fvVpEkTSVK2bNlUo0YNHUzjh7NSpUpp27Zt+vzzz3XkyBF17do1ye0HDx5U7dq15ezsrGzZsplz/68xPm05PT11Pfy6+XpoWJjcM2WSi4tLmmJ+3rNb9d99V87OznLL6Kb3atXW4d+P6u9z53T7zm1VvndcXitRQgVfeklBNp4muGH1Qo0Z1FFjBnXU3l82Kiry33HdiAiVa8ZMSp/BJck+ocGX9feZf9c1VXynrsLDghUTfVOSdHjfT5oxzkcNmnZSnQatrTOQ/5DTy8vcFZSk0NBQubu7Jz2uaYh50M2bN7Xwm2+SFAomk0lOz9Cid68sWXX95r9/A8KibiiTi4tc7jvZwqWwMP1+7t/32Xtlyyk4IkI3Y2OVw91dVV59TRkzZJCzk5PqlCqjoAvnrToGAADwZNikiElISFDdunW1bt06rVu3TitXrtTQoUPNt6e7b41Fat8eJ/nmOTHxoR+2HvwG12QyKSEhQQaDIcltRqMx2b758+fXpk2bVL9+fR0+fFhNmjRJso/BYEjyzf3/8/ivMT5t5cuUUdCpU7pw6ZIkKWDDelWp+FaaY4oVLqxtO36RJMXHx2vnvn16tXhx5fX21q3oaB07cUKSdOnKFf1z4YKKFS5spZGl7P3GH2vA6PkaMHq++g2bqX/+OqWQa3fHtWv7er1W+u1k+9yIvK5FM0fo1s0bkqRDe7cpd578csuUWb8d3KFVi6er6xcTVPatmlYdy8NUKF9eQUFB5o7f6oAAvVO5ssUxD3J1ddXKVav0088/S5JOnzmjEydP6q2Ktu8+/V+5okV14sJ5XQy7e0KCtfv3qXKJV5PEXL8ZJb9lSxQZfXfN1pbfflWBnDmVOWNGVX3tdf187HfdMRplMpm060SQiufJa/VxAACQjIPB9hc7Y9WvWZ2cnBQfH6/y5ctr4cKF6tKli7JlyyY/Pz/ly5dP3bt3T/N9bdy4Ua+//rqOHz+uqKgoFS1aNNXYChUqaNWqVRo8eLDCw8O1fft2TZ8+XaGhofr7779lMpl06dIlczfn/3lK0pIlS3Tx4kUNGDBAVapUUbVq1XTz5k3zfVesWFELFixQixYtFBsbq127dqlkyZJPZIyPI1vWrBrSz0e+I0co3hgv79y55PdFf508c0ajJ0/W0jlzUo2RpN5dumjijBn66OMOcnBwUNlSpdSuWXM5OTlpvN9wTZo1U3FxcXJycpJvr97Kkzu3VcaVFpkyZ1XrTl9owbRhik+IVw7P3Gr76QBJ0vmzZ7RswQQNGD1fhYu9rjoNWmvq6F5ycHRU5iw51KnXKEnSDyvmSTJp2YIJ5vstWORVNWvfywYj+le2bNk0dMgQ9R8wQMb4eOXx9tbwYcN08tQpjRo9WsuWLEk15mEcHR01acIETZg4UXPmzZOTo6PGjBplPv3ysyCrWyYN/Ki5Bi/xV3x8gryzZ9fgZi11+tJFjV21Qt/06qs3ChRU2+o11X3ObDk6OCiHu7vGtL27zqlhxbcVFROjT6ZNUUJioop6e+uL9xvYeFQAAOBRGEypTTR/CoxGo9q0aSNnZ2c1aNDAvOi9ePHi+vLLL5U+fXoVK1bMXEz4+vqqXLlyatSokQ4cOKAZM2Zo8eLFatOmjdzd3XXlyhVJ0rBhw1SyZMlUH/fWrVvy8/PTmTNnlJCQoPbt26tp06aKi4tT37599ccff6hAgQKKj49Xp06dVLp0aXOes2fPVp8+fXT16lU5OTmpYcOGatu2rXlhf/ny5TVlyhRt2rRJOXLkkKurq+rVq6dGjRpp5cqVKY4xLW5cuPjYz7c9OXjt2TkxwNNWoairrVOwmtu/7LZ1Clbl8SEnCgAAWO7GvVkxtpT53tlq7YVVi5gn5f4C4nlFEfP8ooh5flHEAAAeRdTlK7ZOQe7ez86smrR4dlbtPqZvvvlGa9asSbbd09NT8+bNs0FGAAAAAJ4Gu+zEvAjoxDy/6MQ8v+jEAAAeRdSVq7ZOQe65c9k6BYvY5OxkAAAAAPCoKGIAAAAA2JXnZk0MAAAAYJfs8HdabI1ODAAAAAC7QicGAAAAsCUDfQVL8YwBAAAAsCsUMQAAAADsCtPJAAAAAFtiYb/F6MQAAAAAsCt0YgAAAAAbMhjoxFiKTgwAAAAAu0IRAwAAAMCuMJ0MAAAAsCUH+gqW4hkDAAAAYFfoxAAAAAC2xMJ+i9GJAQAAAGBXKGIAAAAA2BWmkwEAAAC2xHQyi9GJAQAAAJBm69evV7169VSrVi0tXbo02e2nTp1S48aNVadOHQ0aNEjx8fGSpCtXrqhVq1Z699131aVLF0VHRz9yDhQxAAAAANIkODhYU6ZM0bJly7Ru3Tp9//33+uuvv5LE+Pj4aMiQIdq8ebNMJpNWrFghSRo+fLhatmypwMBAvfrqq5o1a9Yj50ERAwAAANiSg4PtL2m0d+9eVahQQVmyZJGrq6vq1KmjwMBA8+2XL1/W7du3VbJkSUlSo0aNFBgYKKPRqEOHDqlOnTpJtj8q1sQAAAAAL7ioqChFRUUl2+7u7i53d3fz9ZCQEHl4eJive3p66tixY6ne7uHhoeDgYEVERMjNzU1OTk5Jtj8qiphn1B1X9/8Oeo6ULfbiNAUjohNsnYLVZK1aydYpWFXkqdO2TsFqshR/2dYpAMBzwyTbL+z39/9GM2bMSLa9W7du6t69u/m6yWRKFmO478QEqd3+X/tZiiIGAAAAeMG1a9dODRs2TLb9/i6MJHl5eenw4cPm6yEhIfL09Exye1hYmPl6aGioPD09lS1bNt26dUsJCQlydHQ0b39UL87X3wAAAABS5O7urjx58iS7PFjEvPXWW9q3b5/Cw8MVGxurLVu2qEqVKubbvb29lT59eh05ckSStHbtWlWpUkXOzs568803tXHjxiTbH5XBlFJvBzYXEnbD1ilYVTrnF6eejnqRppO52joD60q4es3WKVgN08kA4MmJvHHT1ikoS+ZMaY5dv3695syZI6PRqCZNmqhTp07q1KmTevTooddee02nT5/W4MGDFR0drRIlSmjMmDFKly6dLl++LF9fX12/fl25cuXS5MmTlTlz5kfKlyLmGUUR8/yiiHl+UcQAAB6FvRUxzwLWxAAAAAA2REvBci/O198AAAAAngsUMQAAAADsCtPJAAAAABtiibrl6MQAAAAAsCt0YgAAAAAbSqQRYzE6MQAAAADsCkUMAAAAALvCdDIAAADAhljXbzk6MQAAAADsCp0YAAAAwIY4xbLl6MQAAAAAsCsUMQAAAADsCtPJAAAAABvid2IsRycGAAAAgF2hEwMAAADYEOv6LUcnBgAAAIBdoYgBAAAAYFeYTgYAAADYENPJLEcnBgAAAIBdoRPzHNu7d7fmfD1Lxrg4FSpcWL4DBitjRjeL4t5/r7Y8cniYY1u0bKPadd7VX3/9qUkTx+l2bKwMBoM6f/q5KlR8y2pjS8nu3bs1e9YMxcXFqXDhIho0eIjc3JKP97/igoOv6ZOPO2jJ0uXKkiWLJGnXrp0aMdxPXl45zXFz5s5TxowZn/q4UnJg324tmD9bRmOcChQsrL4+g1I8tqnFRUXd0LQp4/X3338oQwYX1Xn3fX3YqKnO/3NWX44aat4/MTFR/5z7W0OHj1XlKtWsOcQU7d69WzNmz1ZcXJyKFC6sIYMGJTvG/xVzLThYHT75RMuXLDEf32fR7sOHNXvxt4ozGlU4f34N6tZdbq6uyeJMJpNGTpumgi/lU+sPG5q312nbRh7Zspuvt274od59p6o1UgcA4KkzmEw0sB7m2LFj2rx5s3x8fKz6uCFhNx5r/4iICLVt3Vyzvp6nvHnzafas6YqJiVHffv3THHfh/Hn1799Hy79bnez+27VtqU86dlaVKlV19uzf+qzzJ/px01Y5Ozs/Ur7pnB+vKRgREaEWzZtq7rwFypcvn2ZMn6aYmBh90d/XoriNP27Q3LlzdPXqVW3ess38IXfmzBnK6Oqq9h0+fqw8JSkqOuGx9o+MjFCnDi00Zfpc5cmTT/PmzFBsTIx69P4izXHjxwyXo6OjevUdoMTERA0b4qMGHzRRhYqVktzH17OmKvx6mAYOGflIuWZN/pn7kUVERKhpixZaMHeu8uXLp2kzZigmJka+X3yR5pgNGzdqzty5unr1qrZt3vzEi5iEq9eeyP1E3LihFj26a+6YscqXO7dm+PsrJjZWX3z2WZK4cxcvasLcOQo6c0adW7Y0FzHnL19S39GjtWrW7CeST0qyFH/5qd03ALxoLl2LtHUKypMzi61TsAjTyf7DX3/9pevXr9s6DYsdOnhALxcvobx580mSPmzYWFu3BOrBmvVhcceDjsnRwVE9unVRu7YttWjhfCUk3P0AvmDht6pc+R1J0uXLl5Qpk5scHGz3cjpwYL+KlyihfPnujqNR4yYKDNyUbLwPiwsNDdWOHTs0ecrUZPd//NgxHT58WG3btlbnTh3126+/Pv1BpeLIoQMqWqy48uS5O4b6HzTS9u3Jj+3D4v7847Rq1q4rR0dHOTs7q3z5t7Vzx09J9j9+7Dft2vmTevZJWvjayv4DB1SieHHzsWvSqJE2BSYd98Ni/n98p06ebJP8LXHg6G8qXriw8uXOLUlq9O67Cty5I9kxXrVpo96vXkM1305afB47fVqODg7qMniQWvXsofnff2d+7wIA8Dx4bqaTTZo0SZs3b1bWrFnl4eGh6tWr6/z589q3b59u3LihrFmzavr06cqSJYsGDhyoP//8U5LUsmVLNW3aNMX7jIqK0rRpd7+pnz17tnbt2qXPP/9clSpVkslkUp06dbR48WK1aNFC1atX1+HDhyVJX375pUqUKKHz58/Lz89PkZGRypAhg4YMGaISJUpY5fkICQmWl6en+bqHh6eio6MVExOdZNrRw+ISEhL0Ztly+rxrD925c0df+PRWxowZ1bRZCzk5OclkMqnZRw117dpV9ejZR46OjlYZW0qCg4Pl5ellvu7peXcc0dHRD0wVSz3Ow8ND48ZPSPH+M2fOrLp166lqtWo6evSofPr11ZKly+Tl5ZVi/NMUGhosj/vG4OHhqZgUju3D4l4u/oq2bdmkV159Q0ZjnHbv+lmOjkn/HMydPV0dPvksxWlqthAcHJzk+U7pGD8sxsPDQxPGjbN63o8iOCxMXjlymK975sih6JgYRcfGJplS5tP5U0nS4WPHkuyfkJCocm+8oe7tO+jOnTvqM2qkMrq4qkWDBtYZAADAIsyLstxz0Yn56aefdOTIEW3YsEFz587VyZMnlZCQoLNnz+q7777T5s2blS9fPq1fv16//fabbty4obVr12rRokX69SHfqLu7u6tHjx6qXr26unTposaNG+uHH36QJB0+fFj58uUzf2DKkiWL1q5dqx49eqh//7vfXPfv318+Pj5as2aNRo4cqd69ez/9J+OexMTEFLc7ODimOa5Bgw/Vq3c/pUuXTpkyZVKzZi21c+cv5hiDwaDvV67R8u9Xa+mSb3XkyKEnlr+lTKmM48HCKq1xDxo3foKqVru7JqRkyZJ6/fXXdfDggUfI9PElJqb8ly75sU097tPPe0oGg7p0aiO/If1Vuky5JFMBTwQd042oSFWvUefJJf6YElP5C3//sUtLjD0wpXLsHNPY7fywdm317dRZ6ZydlcnNTS0afKAdB/Y/yRQBALCp56ITs3fvXtWtW1fp0qVTunTpVLNmTTk6Oqp///5auXKlzp07p6NHjypfvnwqUqSIzp07p08++URVqlRRv3790vw4devW1ZQpUxQbG6s1a9aoUaNG5tv+382pXr26fH19de3aNQUFBWnAgAHmmJiYGEVERChr1qxPbvD3mT9vjvbs3ilJio6JVqGChc23hYWFKlMmd7m4uCTZxytnTp06eSLFuMDAjSpcuIgKFy4iSTLJJCcnJxmNRu3Y8bOqV68pBwcH5c7trTJvltWff/yhMmXKPpWxpWTOnK+1a+e98UZHq1DhQubbQkND5e6e8niDTgT9Z9z9bt68qdWrVqpd+w4yGAyS7i6mdnKy3tvnm4VztG/vLklSTEy0ChT4d6xhoSkfW08vL50+FZRiXEjwNXX6tJvc3TNLkr5b/q1ye+cxx/7y81bVql3PplMEH5TTy0tBQQ8/dmmJsQdeHh4K+vMP8/XQ69fl7uYmlwwZ0rT/xp9/VpECBVQkf35J9967dlbIAQDwMM/OJ5TH4ODgkKyjEBkZqU8++USJiYmqU6eOatasKZPJpKxZs+rHH39U69atde7cOTVs2FBRUVFpehxXV1dVqVJFgYGB2r9/v2rWrGm+7f4PtImJiUpISFC6dOm0bt0682XlypVP9WxIHTt9qkX+S7XIf6nmzF2oEyeCdPHiBUnS2jUBqlS5SrJ9ypUrn2rcubN/a8H8OUpISNCdO7cVsHqlqteoJWdnZ82f+7W2b9si6e6H499+PaKSJUs9tbGl5NNPP9OSpcu0ZOkyLVi4SEFBQbpw4e44AgJWq3KVd5LtU758hTTF3c/V1VWrVq3Uzz/fXTNy5sxpnTx5QhWteDa29h9/qjnzl2jO/CWaNnOBTp0K0qVLd8ewYX2AKr5dOdk+Zd4sn2rc+h8C5L9oriQpIvy6Nm1Yl6Trcuz331Sq9JtPe1gWqVC+fJJjtzogQO9UrmxxjD0oX7Kkgs6c0YUrVyRJAZsDVblcuTTvf/bCBc1dtkwJCQm6feeOVv24UTUr2d/zAAAvCpPJ9hd781wUMW+//ba2bNmiuLg43bp1S7/88otiYmJUrlw5tWjRQoULF9aePXuUkJCg7du3q1+/fqpataoGDx4sV1dXXb16NdX7dnR0VHx8vPl648aNNWXKFFWuXFnp0qUzb//xxx8lSVu3blWhQoXk7e2t/Pnza926dZKkPXv2qFWrVk/pGUgua9ZsGjBwiIYM9lXrlk119uxf6ta9pyTp9KmT6tCu1X/Gdfi4k9zdM6td25Zq37aVXn31ddWv/4EkafSY8Vq3NkAd2rXSF1/00eddu+vl4tZZ75OSbNmyaciQoRrg21/NmjbR33/9pZ49e0mSTp08qdatWv5nXGocHR01YcIkLV2yRC2aN9XIESM0avQYm52eN2vWbOr3xRCNHDZAH7drpnNn/9anXe4eszNnTunTjq3/M65Fq3YKCw1Rpw4t5NOnq9q076hiL/97/K5cviivnLmsP7iHyJYtm4YOGaL+AwaoSbNm+uvvv9WrZ0+dPHVKLVu3fmiMvcmWJYuGdO+hAePHqVm3rvr7/Hn17PCxTv31p1r36vWf+3ds3lzumdzUsmcPterVU6+9/LI+qFXr6ScOAICVPDenWJ4yZYq2bdumzJkzy8HBQY0bN9ayZct0+/ZtOTs7q3DhwkpMTNSYMWM0aNAgBQUFKX369KpUqZL69u2b6v2eO3dOnTt3Vp06dcxTz9555x1Nnz5dr7/+uqS7U8jeeOMNnT17Vi4uLhozZowKFCigv//+27yw39nZWX5+fuZ9/svjnmLZ3jzuKZbtyeOeYtmePMlTLNuDJ3WKZXvAKZYB4Mn553KErVNQfu+ns9zhaXku1sT89ttvyp8/v3788UcZjUY1a9ZMxYsX18qVK1OMHz9+fJrvu0CBAtq6dauku+sg/vjjD2XNmjVZMdK3b1/lyZMnybZChQpp8eLFFo4GAAAAwMM8F0VMgQIFNGPGDC1atEgmk0kffvihXn457d8SfvPNN1qzZk2y7Z6enpo3b575ur+/v+bPn6+pU5P/jggAAAAA63huppM9b5hO9vxiOtnzi+lkAIBHce6S7aeTFchjX9PJXpxPjgAAAACeC8/FdDIAAADAXjEtynJ0YgAAAADYFYoYAAAAAHaF6WQAAACADSVyni2L0YkBAAAAYFfoxAAAAAA2RCPGcnRiAAAAANgVihgAAAAAdoXpZAAAAIANMZ3McnRiAAAAANgVihgAAAAAdoXpZAAAAIAN8TsxlqMTAwAAAMCu0IkBAAAAbIhGjOXoxAAAAACwKxQxAAAAAOwK08kAAAAAG2I6meXoxAAAAACwK3RiAAAAABviFMuWoxMDAAAAwK5QxAAAAACwK0wne0Y5ORpsnYJVGSIjbJ2C1bhmymLrFKzmzuEjtk7Bqhxzetk6Bau5ce4fW6dgNZkL5Ld1CgCec8wmsxydGAAAAAB2hU4MAAAAYEN0YixHJwYAAACAXaGIAQAAAGBXmE4GAAAA2BC/E2M5OjEAAAAA7AqdGAAAAMCGaMRYjk4MAAAAALtCEQMAAADArjCdDAAAALAhppNZjk4MAAAAALtCJwYAAACwoUQ6MRajEwMAAADArlDEAAAAALArTCcDAAAAbMjEyn6L0YkBAAAAYFcoYgAAAADYFaaTAQAAADbEbDLLUcQAAAAAeCxXrlyRj4+Prl+/rgIFCmjixInKmDFjkpiQkBANGDBAYWFhcnBw0BdffKGKFSvKaDSqfPnyyps3rzk2ICBAjo6OqT4eRQwAAABgQ8/D78QMHz5cLVu21HvvvaeZM2dq1qxZ8vHxSRIzfvx4VatWTa1bt9bZs2fVpk0b7dy5U2fOnFGpUqW0YMGCND8ea2IAAAAAPDKj0ahDhw6pTp06kqRGjRopMDAwWVzt2rVVv359SdJLL72kO3fuKCYmRsePH1d4eLiaNm2qpk2b6uDBg//5mHRiAAAAgBdcVFSUoqKikm13d3eXu7v7Q/eNiIiQm5ubnJzulhYeHh4KDg5OFle7dm3zvxcsWKDixYsrU6ZMMhgMqlGjhrp27apTp06pU6dOWr9+vbJly5bqY1LEAAAAADb0LPxOjL+/v2bMmJFse7du3dS9e3fz9U2bNmnMmDFJYvLnz59sP4PBkOpjffPNN/r++++1ZMkSSVLz5s3Nt5UoUUKvv/66fv31V9WsWTPV+6CIAQAAAF5w7dq1U8OGDZNtf7ALU7duXdWtWzfJtv8vzE9ISJCjo6NCQ0Pl6emZ4uOMHz9eO3bs0NKlS5UzZ05J0tq1a1W6dGnly5dP0t2iztnZ+aH5UsQ8x/bs2a3Zs2bKaIxTocJFNGjQYGXM6JbmuNu3b2vixPE6deqkTImJKvHKq+rX7wtlyJBBt2/f1owZ03Ts2O+6HXtbDT74UK1bt7HBKO/afeCAZi1coDijUYULFNDgPn3l9sAZMVKLuREVpXHTp+mPv/+WS4YMer92HTX78EOdPX9eQ8Z8ad4/MTFRf//zj8YNHapqlSpbe4hJ7N2zW1/Pnqk4Y5wKFyqiAakc29Tibt26pTFfjtT58//IlGhS3XrvqXWbdpKk3bt2atTI4fLK6WW+n1mz5yU7w4it7Q06rq/XrVVcfLwKe3trQKs2yujikiRm1S8/a82unTIYDPLOkUO+rVora6aHt8SfFXuOHNasJUtkjDeq8EsvadDn3ZTR1TVZnMlk0sgZ01UoXz61+uBDSdKACeN16dpVc8yVkBCVKvGKJg4YaK30Lbb7wAHNWrTo3/dn797J3sPS3fGOmDRJhfK/pNZNPjJvv3nrlj7t10+D+/RRiaJFrZk6ADy2Z6ARk6ZpY6lxdnbWm2++qY0bN6p+/fpau3atqlSpkizum2++0YEDB7R8+fIkj3XmzBkdPXpUfn5+Onv2rE6dOqUyZco89DENpmehf2XH/vjjD9WvX1/Tpk0zL2aS7laUixcvVnx8vBITE/XRRx+pbdu2ab7f8IjkcxItERERoVYtm2nOnPnKmy+fZs6YrpiYaPl84ZvmuDlfz9a14GsaMmSYTCaThvsNVZ68edW582eaPGmiIm9Eatiw4YqNjVWb1i01ctRovfrqa4+Ur2NU5KOPNTJSzTt10ryvpiifdx5Nnz9PMTGx6t+jR5pi/MaPl6Ojowb26qXExET5+A1T4/oNVLlChSSP89WcrxUWHq5Rj/lB0Jgpy2PtHxERodatmunrOfOVN28+zZp595j180l+bFOLmzJ5ogwGg3r17qvY2Fi1btlMw0eM0quvva7Zs2bI1TWj2rXv8Fh5SpJ+PfL495GCiJs31XrUCH3dt5/yenpp1toAxdy+rX7NW5pjTl84r0Hz5sh/4BC5ubhoRsAqxdy+oy9atnoqOUmS432F3+OIuHFDLXv10JzRY5Qvd27NWPytYmJj9UXnT5PEnbt0URPnzVXQH3+oc/MW5iLmfif/+lMDJ0zQnNFfyitHjieSnyQ5ZExeUD2qiMhINf+0s+ZNnqJ83t6avmC+YmJj1b9b9yRx5y5c0PiZMxR0+rQ+bdPGXMTsOXhQk+d8ravBwZo/ecoTL2IyF8j/RO8PAB6091jy9SPW9tbrj/d/2OXLl+Xr66vr168rV65cmjx5sjJnzqzly5crJCREPXr0ULly5eTm5pakgJk7d64yZsyogQMH6uzZszIYDBo0aJAqPPA57EGcnewxBQQEqE6dOvruu+/M277//nv5+/tr9uzZWrdunZYuXaoffvhBK1eutFpeBw/sV/HiJZT3XluuUaPG2rw5MNmcy4fFlSxVSh06fCwHBwc5OjqqaNFiunbtmkwmkwIDN6pTp0/l6OgoNzc3zZw1Wy+9lN9q47vfgSNHVKJYUeXzziNJavx+fQX+tD3JWB8Wc/rPP1WvZk05OjrK2dlZb5cvr5927UzyGL8dP66fdu2Sb4+e1htYKg4evHfM8t49Zg0bNdaWlI7tQ+J69e6rbt3vjuV6WJiMxjhldLvbyQk6fky/Hjmkj9u3UZfPOunob79acXRpc/DUSRV/6SXl9bz7B7dh5Sracuhgkufg5Xwv6Xu/kXJzcdEdo1GhkZFyf8a6Sak58PtRFS9cRPly55YkNarzrjbv2pnsGK/etEnvV6uhGm+9neL9GI1GjZg+Tb0+/viJFjBP2oFff1WJosWUz9tbktT4vfcV+NNPyca7av0Pql+rtmpWTvrt3vfr1mpY337yyJbdajkDAJLy9vbW4sWLtXHjRi1YsECZM2eWJLVo0UI9e/aUwWDQoUOH9PPPP2vdunXmi5eXl9zc3DRt2jRt2LBB69ev/88CRqKIeSzx8fH64Ycf1Lt3b508eVIXLlyQJM2ePVu+vr7muYDu7u4aN26cilpxikNwSLA8vf6tqD08PRUdHa2YmOg0x5UvX0H58r0kSbp69aq+/365qlevoYiICMXExOjQoYP6vMunatumpXbt2qlMmTJZZ3APCA4NlaeHh/m6p4eHomNiFB0Tk6aYV15+WRu3bVN8fLxiYmP1067dCgsPT/IY0+bOVZf2HVKc3mJtIcHB8vS875h5pHxsHxZnMBjk5OSk4X5D1KZ1c5UqXcZ8rN0zZ1ajxh9p4TeL9VmXrhrg+4VCQmz/DdH9QiIj5Jk1q/m6R5asir59WzG3byeJc3J01M7fj6rhIF8d/etPvVexorVTfSQhYWHyyvHvB3LP7NkVHROjmNjYJHH9OnVW3apVU72fH7ZvV46s2VS1/H//Z2BLd9+f/xZZKb2HJcmnazfVS2GR57TRX+r1EiWeep4A8LQkmmx/sTcUMY/hl19+Ue7cuVWgQAHVrFlT3333ncLDw3X16lW98cYbSWILFSqUbNvTlJjKq9HBwdHiuNOnT6nLZ53UuElTVapUWfHx8UpISNDly5c0Y+ZsffXVdK0JCNCOHb88sfwtkWhKTHG7o4NDmmJ6ffqpDAapdZcu+sLPT+VLl5az07+LyY6dOKHIqBuqU736k038ET3JYzvMb6R+3LRVUVFRWrRwviRpzNgJeqdqNUnSG2+U1GuvvaZDBw88idSfmNTHlvxPWpU3Smrj+En65L331WfGdCUmpvxaeJYkpjLLN6XxPcx3G35Qh/vWjTyrUn1/PuSXmgEALzaKmMcQEBCg999/X5JUr149rVmzxjz9wRZLjebO/Vpt27RU2zYttf6HtboeFma+LTQ0VJnc3eXywMLnnF5eD43bunWLevTopi6fd1P7e2sksmbNKicnJ9V9t54cHByULXt2vV2pkoKOH7fCKJPL6eGp6/d1TkLDwuSeKVOSsT4sJjomRt07dtJ38+ZpxrhxMjgYlOfeNB5J2rrjF9WrWcviD5BP0ry5X6td25Zq17alNqxfq+vX/z1mYaGhypQphWOb0yvVuAP79yk0NFSS5Orqqpq1auuPM6d18+ZN+X+zKMnr12SS+bzvz4qc2bLp+o0b5uthkZHK5Ooql/TpzdsuhYTo97/+Ml9/r+LbuhZ+XTcf+Hb/WeSVI4fCIiLM10OvX5e7m5tcMmRI832cOXtWCQmJKv3KK08jxScqxfenheMFAHtmMplsfrE3FDGP6Pr169q5c6cWLlyo6tWra/DgwYqKitK+ffuUN29eBQUFJYk/ePCgJk6c+FRz6tz5M327eJm+XbxM8+YvUlBQkC7em+K2Zs1qVamc/CwR5cpXSDXup5+2a8rkiZo6dbrq1HnXvI+zs7MqVaqsjZt+lKS7U8sOHlBxG03nKF+mjIJOndKFy5ckSQEbNqjKA9OGHhYTsGG95n7rL0m6HhGhdZs26d37ui6/HjumsqVKWWMoqerU+TP5f7tM/t8u09x5i3QiKEgXL/57zCqncAaQcuUqpBr30/ZtWrRgnkwmk+Li4vTT9m0qXaasXF1dFbB6pX755WdJ0h9nzujkqRMqX+EtK400bcoVL64T/5zTxXvT3Nbs3qnKryftdIZF3dCwRfMVeeuWJGnLoYMqmDu3MrslP4vbs6Z8yZIK+uMPXbhyRZK0ZstmVS5bzqL7+O3kCZV57bWHnqf/WVG+TBkFnT6tC5cvS5ICfvwx2XsYAID7cXayR7Ro0SLt2bNH8+fPN2+bPn26Dh48qHr16mnVqlX6+uuv5eHhofDwcHXs2FEtWrTQRx+lbWrH456dTJL27t1z79TJRnnnyaOhQ/2UOXNmnTp1UmO+HKVvFy97aNxHTRrp1q2b8rhvLclrr78hH5/+unHjhr6aMkmnT59WYmKCatd+V5907PTIuT7O2ckkac/BA5q5cKHijUZ5584tP58vdPnaVY2ePFlLv56Takxmd3dFx8Ro2LhxunTlikwyqX2z5qp737z7KvXra+XChfK673l4HI97djLp7jGbM/veMfPOoyFD/eR+79iOHTNK/t8ue2jczZs3NWH8GJ09+7cMMqhylXfUsdOncnBw0KlTJzVl8kTFxETL0dFRPXr2UZkybz5aok/p7GTS3VMsz/lhrYzxCfL28NCQtu11OSxMY5culv/AwZKkNTt3aPXOHXJ0cFCOzJnVt1kL5X6KC9yf1NnJJGnvkSOatfTuKZbz5Mypod176kpwsL6cPVOLJ01JEjti+rQkp1iWpAnz5ih71mz6+ClNJ3uSZyeT7p5hbOaihYqPj5d3rlzy8/HR5avXNPqrKVo6a3aS2OETJyY7xbIkfdC2rcYMHszZyQDYnV1Hr9k6BVUumdPWKViEIuYR1a9fX71791b1+76xv379uqpXr66AgADt2bNHK1eulMFgkMlkUrNmzdS6des03/+TKGLsyeMWMfbkSRQxduMpFjHPoidZxDzrnnQR8yyjiAHwtO38zfZFTJVSFDF4Aihinl8UMc8vipjnE0UMgKeNIsZyz9ZqXQAAAOAFY4+nOLY1FvYDAAAAsCsUMQAAAADsCtPJAAAAABtiibrl6MQAAAAAsCt0YgAAAAAbohFjOToxAAAAAOwKRQwAAAAAu8J0MgAAAMCG+J0Yy9GJAQAAAGBXKGIAAAAA2BWmkwEAAAA2xO/EWI5ODAAAAAC7QicGAAAAsCEaMZajEwMAAADArlDEAAAAALArTCcDAAAAbIjfibEcnRgAAAAAdoVODAAAAGBDnGLZcnRiAAAAANgVihgAAAAAdoXpZAAAAIANMZvMcnRiAAAAANgVOjEAAACADXGKZcvRiQEAAABgV+jEPKMMBoOtU7Cq+MtXbJ2C1aQv4W7rFKzmTukytk7Bqi6Fx9k6Bat5ySXe1ilYzfW9+22dgtVkf6uCrVMAgDShiAEAAABsiNlklmM6GQAAAAC7QicGAAAAsKFEzrFsMToxAAAAAOwKRQwAAAAAu8J0MgAAAMCGmE1mOToxAAAAAOwKnRgAAADAhujEWI5ODAAAAAC7QhEDAAAAwK4wnQwAAACwIX4nxnJ0YgAAAADYFYoYAAAAAHaF6WQAAACADTGbzHJ0YgAAAADYFToxAAAAgA3RibEcnRgAAAAAdoUiBgAAAIBdYToZAAAAYEP8Tozl6MQAAAAAsCt0YgAAAAAbohFjOToxAAAAAOwKRQwAAAAAu8J0MgAAAMCGmE5mOYqYF8ie3bs1a/YMGePiVLhwEQ0aNEQZ3dzSHHf79m1NnDBOp06dVGKiSa+88or6+fRXhgwZbDCa1O35/ai+XrVSxvh4FcqTVwM//kQZXVySxATu3aNlgZtkkEHp06VT71atVbxAAUlSB7+humM0ytnx7tujdsWKalW3ntXHcb/du3drxuzZiouLU5HChTVk0CC5PXDsUotJSEjQlK++0r4DB5SQkKDWrVqpSaNGkqTDhw9ryrRpSkhIUGZ3d/Xt3VtFixaVJPn0768///pLrveeuzJlyqhv797WHbikvXt26+vZMxVnjFPhQkU0YNBgZcyY/HWbWtytW7c05suROn/+H5kSTapb7z21btNO586dld+wweb9ExMSdfbs3xo9ZpyqVq1uzSGm6sjBvVrq/7XijXHKl7+wPu81QK6uGVOMNZlMmjlltPK+VFAfNG4pSbp5M0rzZk7QP2f/VPoMLqpWs57qNfjImkNIk9379mnm3LmKMxpVpGBBDe7fX24ZM6Y5ZuWaNVr344+6c+eOXi5WTEO++ELp0qWzxVDS5HH/Rv3f1OVLdTE4WBN79bFm+gDwTGA62RO2fft2TZ061dZpJBMREaFRo4ZrzJjxWrEyQLm9vTVz1gyL4r75ZqESEhK0eMlyLVm6XHfu3NG3/t9YeSQPFxEVpdEL5uvLrt313Zhxyu3hoVkrVySJOX/1qmau+F6T+/ST/4iRal+/gQbOmCZJir1zR5dDQvXt8JHyH3H3YusCJiIiQsNHjdL4MWMUsHKlvL29NWPWrDTHBKxZowsXL+r7Zcv07aJFWv7ddwo6cUK3bt2Sj6+venbvru+WLtWA/v3lO2iQ4uLiJEnHg4I07+uvtWzJEi1bssQmBUxERIRGjx6h0WPG6bvvVyu3t7dmp/K6TS1u3tyv5eHhqSVLv9f8hf5aE7BaQcePqUCBgvL/dpn5Uq58edWqVeeZKWBu3IjQzK9Gy2fgaE2b+528cubW0kWzU4y9dOEfDR/YQ3t3/5Rk+zfzpipDBldNmb1UX06aq9+O7Nfhg3uskX6aRURGasTYsRo3cqRWL1ki79y5NWPOnDTH/LRzp1YEBGjm5Mn63t9fd+7c0bKVK20xlDR53L9R/7f94AFt3rvPmqkDeIoSTSabX+wNRcwTVqNGDfXs2dPWaSRz4MB+FS9eQvny5ZMkNWrURJsDN8n0wIv2YXGlSpZWh48/kYODgxwdHVW0WDFdu3bV6mN5mIMnglS8QEHlzZlTktSoenVt2b8vyTjTOTvJt8PHypEliyTp5QIFdP3GDRnj43Xy7Fm5ZEivvl9NVuvBgzR1+VLdufeh3lb2HzigEsWLm49Jk0aNtCkwMMmYHhbz844dalC/vpycnOTu7q7atWppU2CgLly8KDc3N5UrW1aSlD9/frllzKhjx4/r8pUriomJ0Zfjxql5q1YaPmKEbty4YfWxHzx49/WYN+/dcTVs1FhbNgcme90+LK5X777q1v3ue/J6WJiMxrhkHcijR3/Tzz//JJ/+vlYYVdr8/utBFS5SXLm880qS6rzXULt+2ZJs7JIU+ONqVav1nt6qlLQAO/vXGVWpXkeOjo5ydnZW6bJvaf/un62Sf1rtP3RIJV5+Wfny5JEkNf7gAwVu25b09f2QmI2bN6tVs2bK7O4uBwcHDejbV/Vq17bJWNLicf9GSdI/V65o6aaN6vDBB1bPHwCeFRQxFjhw4ICaNGmiRo0aqUOHDvrkk0/UtGlTVatWTRMnTpQkBQQEyNf37geh6tWr66uvvlKTJk303nvvKSgoyGa5hwQHy8vLy3zd09NT0dHRiomOTnNc+QoVlC/fS5Kkq1ev6vvvlqt6jZrWGUAaBYeHyytbNvN1j6zZFB0bq5jbt83bcuXw0NtvlJR0dwrOtOXLVKlUKTk7OSnmdqxKv1xcX3btrgXDhin4erhmr7Ltt7rBqRyT6PuO3cNigoOD5eXpab7Ny9NTISEhypc3r2JiYrR//35J0omTJ/X32bMKCwtTRHi4ypUtq0G+vlr67bdycXXViFGjrDDapEKCg+Xp+e+4PDzuvR5jkr9uU4szGAxycnLScL8hatO6uUqVLmN+Hf/fzOlT9emnXVKcpmYr10NDlN3j3+OWPYeHYmKiFRsbkyy2Y5e+eqf6u8m2Fyn6inb+tFnx8fGKjY3RgT2/KCLi+lPN21LBISFJXp+eHh53X7sxMWmKuXDxoiIiItTdx0ctOnTQ3EWLlCmFabLPisf/G3VbI+bN0aBPOsn1GZvKCwDWRBFjoX/++Uf+/v6qVKmS3n//fa1YsUI//PCDli1bpvDw8GTxWbJk0apVq9S8eXPNeWCKhDUlmhJT3O7g6Ghx3OlTp/TZpx3V5KOmqlSp8pNL8glI6VtqSXJwSP5Sj71zR4NnzdTlkBAN6PCxJKlyqdIa1vlTZXRxUXrndGr7/vva8euRp5rzf0mtxet43zF5WIwpMfkxdXBwkJubmyZNmKCF/v5q0aqVfty4UWXffFPOzs569dVXNXH8eOXIkUOOjo7q3KmTdu/ZI6PR+GQGlUaJiakdT0eL44b5jdSPm7YqKipKixbON28/fux3Rd6IVK3ayYsAW0r1vZjCazk17Tp2k8Eg+fRorwmjBuj1UmXl5OT8pFJ8IlJ6fUqS433jfFhMfHy8Dhw+rDF+fvp27lxFRUVp1vz5KcY/Cx73b9SYhQvUpEYtFbrXlQLwfDCZbH+xNyzst1CBAgWUKVMmffLJJ9q/f78WLFigP//8U0ajUbGxscniK1e++yG/SJEi2rJli1VznTvna+3atVOSFB0drUKFCplvCw0Nlbu7u1weWEzq5ZVTJ+7rGD0Yt3XLZk2YME59+32hOnWerQ99kuSVLZtO/P23+XpoRIQyZcwol/Tpk8Rdu35dX0ydopdy5daM/r5Kf28R8O6jvymji4tKFXtZ0t03tdMDhZ615fTyStLFS+nYPSwmZ86cCrv+77fvIaGh8vT0VGJiolxdXDR39r/rLJo0a6a8efLot99+U9TNm3qnSpW7N5hMcnBwsOgD9KOaN/dr7d5993UbEx2tgoUKm28LCw1VpkzJX7c5c3rp5MmgFOMO7N+ngoUKy8PDQ66urqpZq7Z2/Pzv2pHt27eqbt33rDK2//Ld4nk6fGC3JCkmJkb58hc03xZ+PUxubpmUIYNLarsnExMTrdYfd1WmTO6SpDUrlyhnLu8nm/Rj8vLyUtCpU+broWFhcs+UKckxflhMjhw5VLVyZfMi/7q1a2u+v7/1BmChx/kbFRIert///EMXrl3T91s2Kyr6lm7Fxqrv5Ema1KevtYcCADZl+/+17cz/z8Q1duxYLV68WLlz51aXLl2UNWvWFL9hS3/vPyaDwWDVPCWp86efafGSZVq8ZJnmL1ikoKAgXbhwQZK0JmC1Kld+J9k+5ctXSDXup+3bNHnyRE2dNuOZLGAkqdyrr+nE2b918do1SdLan39S5VKlksRE3bqlrmO/1Duly2hkl8/NBYwkhYSHa8b33+lOXJwSEhP13eZA1ShX3qpjeFCF8uWTHJPVAQF6p3LlNMdUqVJFP6xfr/j4eN28eVNbtm5V1XfekcFgUM8+fXTy3ofDbdu3y8nJSUWKFFFMbKwmTJpkXgfz7ZIlqlG9epLuz9PSqfNn5sX2c+ct0omgIF28eO/1uGa1Kv+/sLpPuXIVUo37afs2LVowTyaTSXFxcfpp+zaVLlPWvO9vv/2qMm+WTXafttC8TSdNnOGviTP8NWbyXP155oSuXr4oSdqycY3KVrCs87ll01p9v2SeJCkyIlzbN/+gylWfrfUiFcqWVdDJk7pw6ZIkafUPP6jK22+nOabGO+9o+y+/6PadOzKZTPpl1y6VePll6w7CAo/zN8ozWzb9MGWq+aQjHRs20htFi1LAAM8BW3dh6MS8QPbs2aPhw4erdOnS2r9/v4KDg5WYypSHZ0G2bNk0ZMhQDRzQX8Z4o/J459HQYcMlSadOndSXo0dp8ZJlD42bNWumTCaTvhz979qI119/Qz5f9LfJmFKSzd1dgz7uqEGzZsgYHy9vT08N7dhZp86d09hFC+U/YqQCfv5Jwdeva+evv2rnr7+a9532RX99WLWaroSGqr3fUCUkJKp08Zf1cQPbLp7Nli2bhg4Zov4DBsgYH6883t4aPmyYTp46pVGjR2vZkiWpxkh3F/lfvnRJLVu3ltFoVKOGDVWmdGlJ0qgRIzTqyy8VbzQqR44cmjh+vAwGg95+6y01b9pUn3TurMTERBUuVEiDBw60+tizZsumgYOHavBAXxmNRnl759GQoX6S7r5ux44ZJf9vlz00rluPXpowfozatG4ugwyqXOUdNW3W3PwYly5eVK5cuaw+tv+SOUtWde01UBPHDFa80SivXN7q3neIJOmvP0/p66ljNXHGwzsOjT5qo2mTRqr3561lMpnUtOUnKly0uDXST7NsWbNqqK+vfIcOldFoVB5vb/kNHKiTp09r1IQJWrZgQaoxktTkww8VdfOm2nbqpITERL1cpIh6de1q41Gl7nH/RmV+htf7AIA1GUypTdBFMgcOHNCMGTO0ePFibdiwQV999ZXc3d2VPXt2hYeHq2/fvrp27ZoOHjyosWPHqnr16vr222+VJ0+eJPumRUTkzac8mmdL4skTtk7BatKVeHa/JX7S7iS+WM3eq+G2PZOdNb3kFm/rFKzGePYfW6dgNdnfqmDrFIAX0uLN522dgtrUeem/g54hFDHPKIqY5xdFzPOLIub5RBED4GnzD/zH1imo3bv5bZ2CRV6sTxgAAAAA7B5FDAAAAAC7wsJ+AAAAwIZY3GE5OjEAAAAA7AqdGAAAAMCG6MRYjiIGAAAAwGO5cuWKfHx8dP36dRUoUEATJ05UxowZk8W89957ypcvnyQpR44cWrBggeLi4jRo0CAFBQUpQ4YMmjhxogoVKvTQx2M6GQAAAIDHMnz4cLVs2VKBgYF69dVXNWvWrGQxx48fV/369bVu3TqtW7dOCxYskCQtXrxYLi4u2rRpkwYOHChfX9//fDyKGAAAAMCGEk22vzwOo9GoQ4cOqU6dOpKkRo0aKTAwMFnc8ePH9ccff6hRo0Zq27atzpw5I0n65Zdf1KBBA0lS2bJlFRERoStXrjz0MZlOBgAAALzgoqKiFBUVlWy7u7u73N3dH7pvRESE3Nzc5OR0t7Tw8PBQcHBwsrj06dPrww8/VPPmzbVjxw517dpVGzduVEhIiDw8PMxxHh4eunbtmnLnzp3qY1LEAAAAADZkegZW9vv7+2vGjBnJtnfr1k3du3c3X9+0aZPGjBmTJCZ//vzJ9jMYDMm23X8/77zzjiZNmqSzZ8+mmI+Dw8MnjFHEAAAAAC+4du3aqWHDhsm2P9iFqVu3rurWrZtkm9FoVPny5ZWQkCBHR0eFhobK09Mz2X0tXrxY77//vrJmzSrpbvHm5OQkT09PhYaG6qWXXpKkVPe/H2tiAAAAgBecu7u78uTJk+zyX1PJJMnZ2VlvvvmmNm7cKElau3atqlSpkizu0KFDWrVqlSTp4MGDSkxMVMGCBfXOO+9o3bp1kqTDhw8rffr0D51KJkkG07PQv0IyEZE3bZ2CVSWePGHrFKwmXYmXbZ2C1dxJfLG+J7kaHmfrFKzmJbd4W6dgNcaz/9g6BavJ/lYFW6cAvJDmrj9n6xTUuX6Bx9r/8uXL8vX11fXr15UrVy5NnjxZmTNn1vLlyxUSEqKePXsqODhYvr6+Cg0NVfr06TV69Gi9/PLLunPnjoYOHaqgoCClS5dOo0aN0iuvvPLQx6OIeUZRxDy/KGKeXxQxzyeKGABP2/NQxFgba2IAAAAAG6KnYLkX62tSAAAAAHaPIgYAAACAXWE6GQAAAGBDicwmsxidGAAAAAB2hU4MAAAAYEOs67ccnRgAAAAAdoUiBgAAAIBdYToZAAAAYEP8Tozl6MQAAAAAsCt0Yp5RDrdu2DoFq7qas4itU7Aa71u3bJ2C1RguXLJ1ClaV83qErVOwGkOlCrZOwWqc8njbOgWrOXfpxXkNS1KBPFltnQIgiVMsPwo6MQAAAADsCkUMAAAAALvCdDIAAADAhljXbzk6MQAAAADsCkUMAAAAALvCdDIAAADAhphOZjk6MQAAAADsCp0YAAAAwIYSacVYjE4MAAAAALtCEQMAAADArjCdDAAAALAhZpNZjk4MAAAAALtCJwYAAACwIToxlqMTAwAAAMCuUMQAAAAAsCtMJwMAAABsiN+JsRydGAAAAAB2hU4MAAAAYEM0YixHJwYAAACAXaGIAQAAAGBXmE4GAAAA2BDTySxHJwYAAACAXaETAwAAANgQp1i2HJ0YAAAAAHaFTsxzbPf+/Zo1f77ijEYVLlhQg/v1k1vGjGmKSUhI0ITp0/Xb779Lkt4qX149Pv1UBoPBvO8Pmzbpl927NXn0aKuOKy0OH9yjJYu+ltFo1EsFCqlbr4FyfWDs/2cymTR98mjle6mgPmzSUpI0ftRAXb162RwTcu2KXnmtlAb6jbdK/g/ztI7rydOnNXnWLMXevq3ExES1bdZMdWvVssUQU7Xn96P6etVKGePjVShPXg38+BNldHFJEhO4d4+WBW6SQQalT5dOvVu1VvECBZLETF2+VBeDgzWxVx9rpm+RvSdPaM6mDYqLj1ehXLk1oGkLZcyQIUnM6t27tGbfHhkkeefIof5NmilrpkySpPeHDVKOzJnNsS2rVlft0m9acwgPtXvPHs2YNUtxRqOKFC6sIYMGJX8dpxJz+/ZtjZs4USdPnZIpMVGvvPKK+vfrpwwZMujPP//UmPHjdfv2bclgUNfPPtPbb71lo1HeG8eB/Zq1YMHd92OBghrct2/ysaYSk5CQoAkzpuu3Y8ckSW+VK68enTvLYDDo8NGjmjrnayUkJCizu7t6d/lcRQsVssUQH+rA/j1aNH+WjEajChQsrN79BinjQ/4eTxo/UvkLFFKTpq3M22/duql+vT5TH5/BKlqsuLVSB/AMoxPznIqIjNTICRM01s9Pq/z95Z0rl2bOn5/mmE1bt+r8xYtaNn++ls6bp1+PHdP2nTslSTeiojRmyhRNnDFDpmew/XkjMkLTJ4/WF4O/1Mz53ylnztxavGhWirEXL/yjoQO6a8+u7Um2fzH4S02Z6a8pM/31eY/+yujmps5d+1oj/Yd6WsfVZDKp//Dh6tyunZbOnauvxozRV19/rQuXLtlimCmKiIrS6AXz9WXX7vpuzDjl9vDQrJUrksScv3pVM1d8r8l9+sl/xEi1r99AA2dMSxKz/eABbd67z5qpWyzi1i19+f1yjWr7sZb3H6Tc2bJr9o/rk8ScvnRRy3f8pK+79dRiH1/lyeGheZs3SpIuhATLzcVV3/T5wnx5lgqYiIgIDR81SuPHjFHAihXyzp1bM2bOTHPMwm++UUJCgpYvXqzlS5bozp07+ubbbyVJQ/z81LZ1ay1bvFgjhg3TgMGDZTQarT5G8zgiIzVy4kSNHTpMqxZ9c/f9uCCF92wqMZu2bdP5S5e0bO48LZ0zV78e+13bd+7Urehb6j/cT907ddayufPUv0dPDRw1UnFxcbYYZqoiIyM0ecIoDfEbowX+K5QrV24tmj8zxdgL58/Jt1837dqR9O/xwQN71fPzj3Xp4nlrpAzYhMlk+4u9oYh5Th04fFglihVTvjx5JEmNGzRQ4PbtSYqOh8UkJCbq9u3bMhqNijMaZTQald7ZWZK0bccO5cieXT0+/dT6A0uDo78eVJGixZXbO68k6d33G2nnz1tSLLg2bVitGrXe09uVa6R4X0ajUdMmjdLHnXsph4fXU807LZ7WcY0zGtWxTRuVK1NGkuTl4aEs7u4KCQ21/iBTcfBEkIoXKKi8OXNKkhpVr64t+/clGXs6Zyf5dvhYObJkkSS9XKCArt+4IWN8vCTpnytXtHTTRnX44AOr52+JQ3+cVvG8+ZTXw0OS1PCtt7X1tyNJxvpynrz6znew3FxcdMdoVOiNSGV2vfvt9vF//pGjg0HdZ89Qu0njtGhLoBISE20ylpTsP3BAJYoXV758+SRJTRo10qbNm5OM72ExpUuV0icdOsjBwUGOjo4qVrSorl67Jkla4u+vd6pUkSRdunxZmdzc5OBgu//qDhw5ohJFi/77fqxfP/l79iExyd6z8fFKny6dLly6LLeMGVWudGlJUv58+ZTR1VXHT520/iAf4tfDB1S0WHF557l7HN9r0Eg/bd+c4t/j9etWq9a776vyO0n/Hq9bs0J9+w9Vtuw5rJIzAPtAEWOBa9euqXXr1mrUqJGaNGmio0ePqnr16rp079vqAwcOqE2bNpKkNm3aaPz48WrWrJlq1aqlHTt2WDXX4NBQed77ACRJnh4eio6OVnRMTJpi3q9TR5kyZdJ7zZqp3kcfKa+3tyrfm5LRuH59dWrbVhnSpbPegCwQFhas7PcVHNlzeCgmJlqx9439/zp/3ldVa9RN9b62b16vbNlzqMLb7zyVXC31tI5r+nTp9EG9euZ91mzYoJjbt/VqiRLWGVgaBIeHyytbNvN1j6zZFB0bq5jbt83bcuXw0NtvlJR0d1rKtOXLVKlUKTk7OSnm9m2NmDdHgz7pJNcHpmU9a4IjI+V5rxCTJI/MWRR9+7Zi7txJEufk6KidQcfUaKSffj97VvXKlpckJSQmqmzRYprU6TPN+Ly7Dv5xRqt377TmEB4qOCREXl7/vkc9PT2Tv44fElOhfHm9dK+4uXr1qpZ//71qVq8uSXJyujtL+oPGjfWFr6/atmkjR0dHawwrRcGhIfL08DRf9/TwUHRMzAPv2dRj3q9dW5nc3PRei+aq16yp8ubOrcoVKypfnjyKiY3V/sOHJUknz5zW2fPnFXY93HqDS4PQ0BB53Pf32MPDUzHR0YpJ4e9x1x79VLNW8r/Ho8d+pRKvvPZU8wRszdZdGDoxz7lVq1apatWqCggIkI+Pj44cOfLQeKPRqO+//14DBgzQ1KlTrZTlXYmpfOvqeN83kg+Lmf/tt8qaObMCV63Shu++U1RUlJauWJFi/LPGlJjyO9HB0fKX+w9rv9dHLdo/ZkZPjjWOq//y5Zrr769Jo0YpQ/r0Ty75x5Ta1MWUvmWPvXNHg2fN1OWQEA3o8LEkaczCBWpSo5YK3fu2+1mW6ljvW5P2f1VefV0/jhitj2u/qz7zvlZiYqIaVKioXh82VjonJ2VycVWzKlW1M+j40047zR73dfx/p06fVsfPPlPTJk1UuVIl83aDwaB1q1drzapV8v/2Wx2690HfFhJT+XuUdKypx8xfvFhZM2dR4IqV2rB8uaJu3tTSlSvlljGjJg4foW+WL1PLTzvrx61b9WbJknJ2fraWuprScBwB4FHwV8QCFStW1MKFC9W3b18FBwerdevWD42vXLmyJKlIkSKKjIy0Qob/yunpqevh/34jFxoWJvdMmeRy3yLoh8X8vHu36r/7rpydneXm5qb3atfW4aNHrTkEiyz7dp56d22n3l3badvm9YoIDzPfdj0sVG5umZQhg8tD7iG5s3+dUWJCgl55rdSTTveRPc3jGhcXp8GjRmnzTz9pwfTpz9wCYa9s2RR23/soNCJCmTJmlMsDhda169f16eiRcnBw0Iz+vsrkmlEh4eH6/c8/9P2WzWo3dIjmrwnQ73/8ob6TJ1l5FGnjlSWrrt+MMl8Pu3FDmVxck4z1Uliofj931nz9vXLlFRwRrpuxsQo8ckh/Xblivs1kMtm0G/GgnF5eCgv79z0aGhoqd3f3pK/j/4jZvHWruvbooe6ff66P27eXdPeLo81bt5oLIO/cuVWubFmdOXPGCqNK2d3343Xz9dTfsynH/LznvvdsRje9V6u2Dv9+VImJiXJxcdHXkyZr2Zy58unWXZevXFWe3N5WHV9Kvl00V593bqPPO7dR4KYfFH7f3+OwsFC5ZXJXBhfL/h4DwIMoYixQpkwZ/fjjj6pUqZI2btyozz77TNK/35rG35t3/3/p733gMKTw7enTVv7NNxV08qR5YXbA+vWq8sAZeh4WU6xIEW27NwUuPj5eO/fte6amFj2oZdtO5oX4Y6fM1R+nT+jK5YuSpM0b16pcxcoW3+eJ40f12htlbHL8UvM0j+uAESMUHROjBdOmKfe9dSfPknKvvqYTZ//WxXtrH9b+/JMql0paYEbduqWuY7/UO6XLaGSXz5X+3pRHz2zZ9MOUqfIfMVL+I0aqY8NGeqNoUU3qY/uTNaSkXNFiOnH+H128tyZp7f49qvzKq0lirkdFyW+JvyKjb0mStvx6WAVy5lLmjBl19upVLdi8UQmJibpjjNPqPbtU441npxivUL68goKCdOHCBUnS6jVr9E7lymmO2fbTT5o4ebJmTJ2qd+vUMe/j7Oys2XPmaMvWrZLuFj6Hf/1Vpe+tG7GF8mXKKOjUqX/fjxvWq0rFt9IcU6xwYW3b8Yuk+96zxYvLYDCo96CBOnmvQNu2Y4ecnBxVpGBBK40sdW07dNasuYs1a+5ifTV9vk6fDNLlS3eP44/r16jiW5b/PQaed4kmk80v9ubZ6js/48aPHy9PT0+1b99e5cuXV8OGDZUnTx799ddfyps3r7Zv3/7fd2Il2bJm1ZAvvpDv8OGKj4+Xd65c8vP11ckzZzR60iQtnTs31RhJ6t2liybOmKGP2reXg4ODypYurXbNm9t4VGmTJUs2de89SBNGD5Ix3qicubzVs99QSdJff5zSzKljNWWm/3/ez5UrF+Xp9Wx9mH9ax/X3oCDt2rdP+fLkUceePc2P161TJ1UsW9ZWw00im7u7Bn3cUYNmzZAxPl7enp4a2rGzTp07p7GLFsp/xEgF/PyTgq9f185ff9XOX3817zvti/7K7OZmw+wtkzVTJg1s1lKDv12k+IR4eWfPocEtWun0xQsau/I7fdPnC71RsJDa1qil7rNmyNHRQTncM2tM+08kSR/XfleT16zS/9q797gc7/8P4K+7o0Oi1sEKczb2nd/2NWGOFVEUYZQVme1r38kySTklhJJzDhs5VJNtKIev08hxSMxIMhs2atNBB6VS9+Hz+yPdutWd2qzbzev5eHg8dN3v67o+7/s63PfndN3jloZCppDDtvM7cO7WXcNZPWFqaorAOXPgP3MmpFIpmjVrhnmBgUi5fh3BixYhJjpabQwArF23DkIIBC9apNzm/3XuDH8/PywNCUHo0qWI+vprSCQS+Hh7o1NHzT2S19TEBHOm+SFgwXzIpDJYW72OoOn+Zdfs8uXY9tVXamOACtfsR2UPMuj67rsYN9oNEokEC2bMxKIVyyGVyWBmaoqwefNeqEYXAGhiYoqp0+cgeN5MyGRSvP56M/gFlB3HX25cx8pli7BuQ7SGS0lE2kgiXsRn5L6g7t27B19fXxQWFkJXVxcff/wxGjZsiAULFqBx48bo1asXLl26hOjoaHh6esLb2xvdunVDWloaxo4di2PHjtV4Xw9eoEfb1oU/Sl+doQXWBsWaLkKdkd19tc5jRXaupotQZ+r1enEqRf80RcFDTRehzuToaE9l/3lo1cxE00UgAgAsiNLcsNdyc8Z20HQRaoWVmBcUKzEvL1ZiXl6sxLycWIl5ebESQy+K+ZGar8QEjtOuSgznxBARERERkVbhnBgiIiIiIg3iuKjaY08MERERERFpFVZiiIiIiIhIq3A4GRERERGRBmnj77RoGntiiIiIiIhIq7AnhoiIiIhIg9gRU3vsiSEiIiIiIq3CSgwREREREWkVDicjIiIiItIgDierPfbEEBERERGRVmFPDBERERGRBvERy7XHnhgiIiIiItIqrMQQEREREZFW4XAyIiIiIiIN4miy2mNPDBERERERaRX2xBARERERaRB7YmqPPTFERERERKRVWIkhIiIiIiKtwuFkREREREQapOBwslpjTwwREREREWkVVmKIiIiIiEircDgZEREREZEGCT6erNbYE0NERERERFqFPTEvqEz3TzRdhDplFveNpotQZwojd2u6CHXG6MORmi5CnZK0b6vpItSZQtmr0wZmaNxE00WoM2aQa7oIdSr/z3uaLkKdMbZ6XdNFoGqwI6b2Xp1PISIiIiIieimwEkNERERERFqFw8mIiIiIiDSIvxNTe6zEEBERERHR3/Lnn3/Cz88P2dnZaNWqFZYuXYqGDRuqxHz66ae4d69sLppCocAvv/yCnTt34s0330S3bt3QvHlzZWxsbCx0dXXV7o+VGCIiIiIiDRLQ/q6YefPmYcyYMRg8eDDWrl2LdevWwc/PTyXmyy+/VP5/1apVeOedd/D2228jOTkZ7777LjZt2lTj/XFODBERERER/WVSqRQXLlzAwIEDAQDDhw/HoUOH1MbfunUL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ZJHRmi5CnTH6cKSmi1CnJC9Ao0VdKRQvztyEf5qh/qvzDBw9yJ8d9BIRRcXPDnpJGFu9rukiUDUmhNXNEwWrs8mvs6aLUCvP/MQdMGAAkpOTMXz4cCgUCowdOxbdunVDUFAQwsPDoa+vj/DwcJWek6dNnToVAQEB0NPTg6GhIebNm4dGjRphwoQJGDlyJJo2baoyL6UmwsLCEBQUhIiICOjr62PFihV/qYWmc+fOcHFxwciRIyGTyfD5558rn6LyxRdfYOzYsZBKpRg5ciQ6d+5caU5Ns2bNMGPGDPj5+WHv3hfvByCJiIiIiF42z+yJIc1gT8zLiz0xLy/2xLyc2BPz8mJPDL0o2BNTey/VJ+7WrVsRFxdXabmFhQU2btyogRIREREREVWPfQq191JVYry8vODl5aXpYhARERER0T/oparEEBERERFpGzW/i0rVeHUG+hIRERER0UuBlRgiIiIiItIqHE5GRERERKRBnNdfe+yJISIiIiIircKeGCIiIiIiDWJPTO2xJ4aIiIiIiLQKKzFERERERKRVOJyMiIiIiEiDFBxPVmvsiSEiIiIiIq3CnhgiIiIiIg1iR0ztsSeGiIiIiIi0CisxRERERESkVTicjIiIiIhIgzicrPbYE0NERERERFqFlRgiIiIiItIqHE5GRERERKRB/J2Y2mNPDBERERERaRX2xBARERERaRA7YmqPPTFERERERKRVWIkhIiIiIiKtwuFkREREREQaxOFktcdKzAuq3emDmi4C/VN8vTVdAqK/rZGmC0D0PDRpoukSENFfxEoMEREREZEG8RHLtcc5MUREREREpFVYiSEiIiIiIq3C4WRERERERBrE0WS1x54YIiIiIiLSKuyJISIiIiLSIPbE1B57YoiIiIiISKuwEkNERERERFqFw8mIiIiIiDSIvxNTe+yJISIiIiIircKeGCIiIiIiDWJHTO2xJ4aIiIiIiLQKKzFERERERKRVOJyMiIiIiEiDOJys9tgTQ0REREREWoWVGCIiIiIi0iocTkZEREREpEH8nZjaY08MERERERFpFfbEEBERERFpEDtiao89MUREREREpFVYiSEiIiIiIq3C4WRERERERBrE4WS1x54YIiIiIiLSKuyJISIiIiLSID5iufbYE0NERERERFqFlRgiIiIiInouVq1ahfDw8CpfKy0thZ+fHxwd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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.set(style=\"white\")\n", + "# Generate a mask for the upper triangle\n", + "mask = np.zeros_like(df_train.corr(), dtype=np.bool)\n", + "mask[np.triu_indices_from(mask)] = True\n", + "# Set up the matplotlib figure to control size of heatmap\n", + "fig, ax = plt.subplots(figsize=(16,12))\n", + "# Create a custom color palette\n", + "cmap = sns.diverging_palette(255, 10, as_cmap=True) # as_cmap returns a matplotlib colormap object rather than a list of colors\n", + "# Red=10, Green=128, Blue=255\n", + "# Plot the heatmap\n", + "sns.heatmap(df_train.corr(), mask=mask, annot=True, square=True, cmap=cmap , vmin=-1, vmax=1, ax=ax) # annot display corr label\n", + "# Prevent Heatmap Cut-Off Issue\n", + "bottom, top = ax.get_ylim()\n", + "ax.set_ylim(bottom+0.5, top-0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 638, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsunconsume_100Km
consume_100Km99.210074-5.21878055.1846556.2373253.787710-5.534834-1.8700210.9124646.424729100.000000
distance100.000000-12.89667656.2298827.5178238.817534-5.341141-2.573817-1.9790658.11198199.210074
speed56.229882-22.786618100.0000005.9292961.541101-9.736041-3.5408000.9489468.16182855.184655
sun8.111981-17.0667388.16182824.22479434.6903412.2760968.859801-11.264999100.0000006.424729
temp_inside7.517823-16.0622885.929296100.00000035.9500421.01976729.737625-3.69372424.2247946.237325
temp_outside8.817534-32.0810591.54110135.950042100.00000014.87050116.756227-18.63148934.6903413.787710
rain-1.97906524.8117710.948946-3.693724-18.6314896.03281924.291471100.000000-11.2649990.912464
AC-2.5738179.659140-3.54080029.73762516.75622710.528540100.00000024.2914718.859801-1.870021
consume-12.896676100.000000-22.786618-16.062288-32.081059-1.5326979.65914024.811771-17.066738-5.218780
gas_type-5.341141-1.532697-9.7360411.01976714.870501100.00000010.5285406.0328192.276096-5.534834
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside \\\n", + "consume_100Km 99.210074 -5.218780 55.184655 6.237325 3.787710 \n", + "distance 100.000000 -12.896676 56.229882 7.517823 8.817534 \n", + "speed 56.229882 -22.786618 100.000000 5.929296 1.541101 \n", + "sun 8.111981 -17.066738 8.161828 24.224794 34.690341 \n", + "temp_inside 7.517823 -16.062288 5.929296 100.000000 35.950042 \n", + "temp_outside 8.817534 -32.081059 1.541101 35.950042 100.000000 \n", + "rain -1.979065 24.811771 0.948946 -3.693724 -18.631489 \n", + "AC -2.573817 9.659140 -3.540800 29.737625 16.756227 \n", + "consume -12.896676 100.000000 -22.786618 -16.062288 -32.081059 \n", + "gas_type -5.341141 -1.532697 -9.736041 1.019767 14.870501 \n", + "\n", + " gas_type AC rain sun consume_100Km \n", + "consume_100Km -5.534834 -1.870021 0.912464 6.424729 100.000000 \n", + "distance -5.341141 -2.573817 -1.979065 8.111981 99.210074 \n", + "speed -9.736041 -3.540800 0.948946 8.161828 55.184655 \n", + "sun 2.276096 8.859801 -11.264999 100.000000 6.424729 \n", + "temp_inside 1.019767 29.737625 -3.693724 24.224794 6.237325 \n", + "temp_outside 14.870501 16.756227 -18.631489 34.690341 3.787710 \n", + "rain 6.032819 24.291471 100.000000 -11.264999 0.912464 \n", + "AC 10.528540 100.000000 24.291471 8.859801 -1.870021 \n", + "consume -1.532697 9.659140 24.811771 -17.066738 -5.218780 \n", + "gas_type 100.000000 10.528540 6.032819 2.276096 -5.534834 " + ] + }, + "execution_count": 638, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "corr = (df_train.corr().sort_values('consume_100Km', ascending=False))*100\n", + "corr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " *- El consumo no solo se relaciona con el tipo de combustible, sino con la lluvia y la velocidad, así como la temperatura en el exterior y en el interior*" + ] + }, + { + "cell_type": "code", + "execution_count": 639, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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4zan0+k0IM+/df36dR05ckQBAQHy8fExOg4AAAAAwIPsdruys7PVpEkTVahQoch5UxZVAAAAAEDpxc2UAAAAAACmQlEFAAAAAJgKRRUAAAAAYCoUVQAAAACAqVBUAQAAAACmQlEFAAAAAJgKRRUAAAAAYCoUVQAAAACAqVBUPSA3N9foCECxvfPOOzp06JDreOHChdq0aZOBiayN9wtYwYEDB7Ru3Trl5+dr3759RscBYDLnzp37t1/A7+FrdABvdvToUcXGxur69etKSkrS4MGD9corr6hx48ZGR7OUr776Sm+++aZyc3PldDpd46tWrTIwlTWsXr1aKSkpmjt3rmusffv2mjNnjvLz8zVo0CAD01kL7xd3R1pamt566y1dvnxZkuR0OmWz2bRjxw6Dk1nHypUrtX37dmVlZal79+6aPn26+vfvr2HDhhkdzTLOnj2rqVOn6uzZs1qzZo0mTJigv/71r6pVq5bR0Szjk08+UUJCgi5fviyn08l7hYcNHjxYNptNN27c0I8//qjatWurTJkyOn36tGrXrq2tW7caHdEy8vPz9fbbb+vEiROaPn26VqxYoREjRqhcuXJGR3OfE8U2aNAg5/Hjx529e/d2Op1O565du5z9+vUzNpQF9ezZ07l69WrnZ5995vz8889dX3Bfr169nD/99FOR8R9//NEZHh5uQCLr4v3i7ujYsaNz7969zjNnzhT6guf07t3beePGDde/5StXrjjDwsKMDWUxQ4cOdX7yySfOiIgIp8PhcCYlJTkHDRpkdCxLCQkJce7cudP5/fff815RgsaNG+fct2+f6/jLL790jh071sBE1jNlyhTnwoULnX/605+c165dc06cONE5YcIEo2N5BEt/3ZCXl6cHH3zQdfzHP/5R+fn5BiaypgoVKmjw4MF6/PHH1apVK9cX3FemTBn5+fkVGa9WrZrKlOHtwZN4v7g76tSpo8cee0w1a9Ys9AXPKVOmTKFP6suXLy8fHx8DE1nPxYsX1a5dO9cs34ABA3TlyhWjY1lK1apV1alTJ9WqVYv3ihL07bffqkWLFq7j4OBgnThxwsBE1pORkaHx48fL19dXFStW1Ny5c3X06FGjY3kES3/d4O/vr2PHjslms0mSUlJSVKVKFYNTWU+7du20evVqtWvXTuXLl3eN33///QamsgYfHx/9+OOPuu+++wqN5+TkyG63G5TKmni/uDuGDh2q6OhotWzZslB5GjNmjIGprKVVq1aaO3eu8vLytH37diUlJal169ZGx7KUChUq6Pz58673i/3791tjGZ+JPPbYY5o9e7aeeOKJQn9btGzZ0sBU1lO9enW9+uqr6tGjhxwOh1JSUvTAAw8YHctSbDab8vPzXe8XFy9edD32djan8xcX/eGOnD59WnFxcTp8+LAqVKigunXrav78+apfv77R0Sylc+fORca4jsQzkpOTtWrVKr344osKDg6W0+nU4cOHNWfOHEVERGjw4MFGR7QM3i/ujoiICD3yyCNFZkYoqp7jcDi0YcMG7d69Ww6HQ23atNHAgQPl68tn355y6NAhTZs2TadPn1adOnWUm5urV155Rc2bNzc6mmVERUUVGbPZbNz/wsNyc3P12muvae/evZKktm3bauzYsbddzYXiSU5O1saNG3Xq1CmFhYVp+/btGj16tPr37290NLdRVD3g2rVrcjgc/J8OXikpKUlvvvmmfvjhB0k/L50cNmyYWrVqpXr16hmcznoyMzPlcDhUo0YNo6NYUs+ePfXee+8ZHcPSrl69quTkZEVGRiozM1Pr16/XiBEjVLFiRaOjWUpBQYFOnjwpu92u+vXrM6MKr3Xt2jWdPn1aDz/8sK5fv65KlSoZHclyjh8/rs8//1x2u12tWrVSo0aNjI7kERRVN+zfv18rV64sst0En8Z5xuLFizV27FhNnjz5tudnz559lxNZ28WLF+V0OrVnzx6tX79eR44c0RdffGF0LMs4duyYXnjhBWVmZsrpdKp+/fqaO3eu6tata3Q0S1mwYIGqV6+uJ554QmXLlnWNc6mA54wcOVINGzZUbGysrly5omXLlum7777T4sWLjY7m9X7r990t/N7znKioqNsuj+RvOM/as2ePpk+fLrvdrqSkJIWHh2vBggVq166d0dG8XnJy8r89HxERcVdylCTW6bhh0qRJGjNmDH8AlZBb23Zw46SS9/333yspKUmbN29Wbm6uRo4cqVdffdXoWJby4osvKjY2Vp06dZIkffjhh5o8ebLWrl1rcDJref/99yVJy5cvd41xqYBnnTt3Tm+++aYkyc/PT7Gxserdu7fBqazh1u+79PR0Xb16Vb169ZKvr6/ef/993XPPPQans5axY8e6Ht+8eVM7duzQvffea2Aia1q0aJHWrl2r4cOHKyAgQGvWrNH48eMpqh7w+eefS/r50qJTp06pY8eOKlOmjHbt2qUGDRpQVEu7oKAgS/wjMKtb16b26dNHly5dUl5enpxOp+x2u86cOWNwOmv48MMPtX79emVkZKhbt26aN2+epk2bxvV8JcDpdLpKqiR169ZNS5YsMTCRtTgcDpUpU0Y7d+4scu7ixYsGJLIum82mr7/+Wg0bNpT08109uT7VM/r06SNJWrt2rZKSklx3Xw8LC9OAAQOMjGY5v/4QvG3btvrzn/+s5557zqBE1uRwOBQQEOA6btCggYFprOXWCouoqCilpKSoWrVqkn6+Lnj06NFGRvMYfrO4ISoqShMmTFDr1q0L/ZKmvHrWokWLlJiYqJs3b6pq1arKzMxUkyZNtHHjRqOjeb2xY8eqe/fuSkpKci1Btcqd4symRYsW+tvf/qYBAwbIx8dH77//vh588EGdO3dOEktT3TVhwgQtXLiwyL/fzz77TC+88II+/vhjg5JZT1xcnIYOHaqgoCBJP38QMG/ePINTWctPP/2kS5cuuf7wzMnJ0bVr1wxOZS233nulnz9I/Ne//qVLly4ZF8iiqlevrvT0dNlsNl2+fFmJiYn8vvOwrKws+fv7u44rVqyo7Oxs4wJ5EEXVDbeW7B04cKDQOEXVs9577z199NFHio+P16hRo3Tu3Dn93//9n9GxLCElJUWbN2/WoEGDVLNmTf3pT39iW5oScmvp6aZNmwqNDx48mKWpHnDjxg3FxcW5CpPD4VBCQoLWr1//H6/7w51p27at0tPT9c0338jX15cb/ZSAkSNHqlevXnr00UflcDj05ZdfaurUqUbHspRb771Op1NlypRR1apVNW3aNKNjWc7MmTMVHx+vH374Qd26ddPjjz+umTNnGh3LUjp27KghQ4YoJCREDodDaWlpCgsLMzqWR3AzJTeEhYXpgw8+MDqG5Q0cOFBJSUlavny5atWqpZCQEPXr10/vvPOO0dEsw263Kz09XZs3b9ZHH32ktm3bKjIyUh06dDA6mmVkZ2cXWv4Ez7p586bGjx+vypUra9SoUZowYYLKly+vOXPmFNmqBu45e/as1qxZo9zcXP3yTwhu9ONZWVlZ+uKLL2Sz2fTYY48V2e8a7vnyyy914MABDR48WCNHjlRGRoZmzpyp0NBQo6NZ0qVLlwrN+sGztm7dqr1798pms6lNmzbq0qWL0ZE8oozRAbxZixYtlJ6erps3bxodxdLuueceJScnq3HjxkpNTdXBgwd1+fJlo2NZio+Pj7p27aolS5bo448/Vps2bbRw4UKjY1nK4MGDNWLECKWlpamgoMDoOJbj6+urhIQE5eXlqUePHurWrZtWrVpFSS0B48aNk/Tz78BWrVq5vuC+pKQkSdLrr7+uDRs26F//+pe++eYbrVu3Tq+//rrB6awlPj5eTZs21bZt21ShQgUlJydr6dKlRseynKNHj6p79+6KiIhQZmamunXrpoyMDKNjWcKtn+O+fftUrVo1de/eXaGhobr33nu1b98+g9N5Bkt/3ZCenl7kOkmbzaajR48alMiaHA6HLl68qIiICKWnp2v69OmuP5TgedWqVdOQIUM0ZMgQo6NYytatW7Vv3z4lJydr/vz56tChg/r06aOmTZsaHc0yfHx8tGjRIk2cOFFnzpzheusScvPmTcXFxRkdw5JY5Hb3OBwOtWzZUs8//7xCQkJUo0YNLn0pAS+//LKWLFmi559/XkFBQXrppZc0Y8aMIpfB4M6tX79es2bN0muvvVbknM1ms8RWSyz9hen169dPK1eulJ+fn9FRALfduHFDH3zwgRISEmSz2VStWjVNnz5dzZs3NzqaV+vcubOrmNrtdp0/f15BQUHy8fHhGmAPe/nll9W2bVu1a9eOa1NLUH5+vsqVK6dTp07pxIkTat++vesuwHBfVFSUOnXqpOXLl+vvf/+7kpOTtW3bNiUmJhodzVL69u2rd999VxEREa59P3v16qWUlBRjg1nYlStXLPM3MzOqbvitZThs7eFZZcqUUefOnVWvXj2VL1/eNW6FT4pQeuzevVtbtmzR7t271aFDByUkJOjRRx/V119/reHDh3NXWjetXr3a6AilRlpamtasWVNojNVEnrVkyRKdOnVK48aNU2RkpB566CHt2LFDs2bNMjqaZSxYsEAbN27Ua6+9pipVqigrK4tLXkqAv7+/jh075vogMSUlRVWqVDE4lbWkp6dr//79evbZZ9W/f39duHBBMTExioyMNDqa25hRdcMvi2pBQYE++eQTNWvWTDNmzDAwlfXs3bv3tuNcEwVvEhkZqX79+iksLEwVK1YsdG7FihX6y1/+YkwwC/n222+1detWnT9/XmXKlFFgYKCeeOIJllfD6/Tt21fr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rEK/6ypWrKjs7GzjAlnQ7Nmz9b//+7+u5XuHDx/WjBkz2HcZwB3x9g9oKapumDVrlp555hlNmTLFNbZ+/XoDEwEwqwceeEC1a9fWvn379OSTT+ratWt69NFH9c0337AfM7xKx44dNWTIEIWEhLhuChYWFmZ0LEspV65coWvMmjZtamAaAN7K2z+gpai64eOPP1bFihW1efNmnT59WrGxsdq7d6/q1atndDQAJrNz504dPXpUXbp0kST94x//UGBgoFavXq3w8HCW88FrTJ48WVu3btXevXtls9k0dOhQ179reEZwcLCmTJmiAQMGyMfHR3//+99Vs2ZN7du3T5LUsmVLgxMCQMljH1U39OzZUxs3bnQt38vLy9OAAQOUmppqcDIAZvPkk09q6dKluvfeeyVJV65c0ciRI7VixQr17dtXKSkpBie0voiICCUnJxsdA/iPoqKifvOczWbTqlWr7mIaAN7K2/ddZkbVDQUFBSpbtqzr+JePAeCXLl68qMqVK7uOy5cvr9zcXPn6+nr90hwzys3Ndd3A6hbulgpvsXr1aqMjALAAb5+PpKi6oWvXrnr66add1+Zs27aN5U8AbiskJMT1fuFwOFzvF8nJyQoICDA6nmUcPXpUsbGxun79upKSkjR48GC98soraty4Mcur4TX279+vlStXKjc3t9A4M6kAbseq21mx9NdNaWlp2rdvn3x9fdWyZUs2mwfwm9LT0/Xpp5/Kx8dHbdu2VYcOHXTw4EHVq1evyOwfiicyMlIzZ87U888/r+TkZH366adKSEhgf2t4la5du2rMmDG6//77C423atXKoEQAzOrfbWfl7SiqAADL6Nu3r959991C16P26tWLa4DhVSIjI5WYmGh0DABeoGfPnlqwYIElt7Ni6S8AwDL8/f117Ngx17KnlJQUZqvhdaKiojRhwgS1bt1avr7//59q3r6MD4DnWXk7K2ZUAQCWcfr0acXFxenw4cOqUKGC6tatq/nz56t+/fpGRwN+t+joaElSzZo1C43Pnj3biDgATOyll15SQUFBoe2szpw543of8ebtrCiqAADLuXbtmhwOh/z8/IyOAtyxsLAwffDBB0bHAOAFrLydFUUVAGAZ3C0VVjBt2jR17txZTzzxRKGlvwBQmlBUAQCWwd1SYQXt2rVTTk6OpJ9nRJxOp2w2m44ePWpwMgBmY+UPaPmYDgBgGUFBQdxwBl5v165dRkcA4CUmTZp02w9orYCiCgCwDO6WCivIz8/X8uXLdeLECU2bNk0rVqzQiBEjVK5cOaOjATAZK39AS1EFAFjG2rVrJUkHDhwoNG7VX+KwppkzZ6patWrKyMiQj4+PTp8+rSlTpmj+/PlGRwNgMlb+gJaiCgCwjOzsbO6WCq+XkZGhzZs36+OPP1bFihU1d+5chYeHGx0LgAlZ+QNaiioAwDJatGih9PR07pYKr2az2ZSfny+bzSZJunjxousxAPySlT+g5bc4AMAy0tPTtXHjxkJj3C0V3iY6OlpDhgxRdna24uPj9eGHH2rMmDFGxwJgQlb+gJbtaQAAAExk7NixGjdunD777DM5HA61bNlSs2fP1sqVK42OBsBkrLydFUUVAGAZr7/++m3HmY2CNxg9erSOHTumrKwsBQYG6tafaA6HQzVq1NC6desMTggAd4+15ocBAPh/CgoK9Mknn6hZs2ZGRwF+l7lz5+rSpUuKj4/X1KlTXeO+vr667777DEwGwKysvJ0VM6oAAMvKz8/X0KFDtWbNGqOjAADgcVOnTlW1atW0c+dObdy4UTNmzJDT6bTEdlZljA4AAEBJuXr1qs6dO2d0DAAASkRGRobGjx8vX19f13ZWVrg+VWLpLwDAQjp37uzaxsPpdOry5csaNmyYwakAACgZVt7OiqW/AADLOHv2rOuxzWbTvffeKz8/PwMTAQBQcpKTk7Vx40adOnVKYWFhru2s+vfvb3Q0t7H0FwBgGZUrV9apU6dUs2ZNpaam6sUXX9Tx48eNjgUAQInYsWOHZs6cqVGjRqlOnTp68803lZqaanQsj2BGFQBgGcOGDVOnTp1Uv359zZ8/X08//bQ2btyoxMREo6MBAOAxpWE7K4oqAMAy+vfvr02bNmnWrFmqW7euoqOj1bdvX7377rtGRwMAwGOuXLnyb7ez8vX1/lsRef//AgAA/h+Hw6EjR45o+/btWrNmjY4ePSq73W50LAAAPMrPz09+fn564403jI5SYiiqAADLmDhxoubNm6chQ4aodu3aGjBggCZNmmR0LAAAcIdY+gsAAAAAMBVmVAEAlrF582bNmTNHly9fLjRulc3PAQAoLZhRBQBYRpcuXfTGG2/o4YcfNjoKAABwA/uoAgAsIygoiJIKAIAFMKMKALCM+Ph4ZWZm6o9//KPKly/vGo+IiDAuFAAAuGNcowoAsIwrV66ocuXKOnjwYKFxiioAAN6FGVUAgKUUFBToxIkTstvteuihhyyx6TkAAKUNv70BAJZx5MgRxcTEyN/fXw6HQzk5OVqyZImaNWtmdDQAAHAHmFEFAFjGk08+qcmTJ7uK6cGDB/Xyyy9r06ZNBicDAAB3grv+AgAs49q1a4VmT5s3b64bN24YmAgAABQHRRUAYBlVqlTR9u3bXcfbt2+Xv7+/cYEAAECxsPQXAGAZJ0+e1DPPPKNLly65xtavX6969eoZFwoAANwxZlQBAJbx8ccfq2LFikpPT9fKlStVrVo17d271+hYAADgDjGjCgCwjJ49e2rjxo2qWLGiJCkvL08DBgxQamqqwckAAMCdYEYVAGAZBQUFKlu2rOv4l48BAID3YB9VAIBldO3aVU8//bTCwsIkSdu2bVOXLl0MTgUAAO4US38BAJaSlpamffv2ydfXVy1btlTXrl2NjgQAAO4QRRUAAAAAYCpcowoAAAAAMBWKKgAAAADAVCiqAAAAAABToagCAAAAAEyFogoAAAAAMJX/DyC8QRuzOxqbAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "corr_mat=df_train.corr(method='pearson')\n", + "plt.figure(figsize = (16,5))\n", + "corr_mat['consume'].sort_values(ascending = False).plot(kind = 'bar');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Chequear media de consumo por tipo de combustible y resto de variables" + ] + }, + { + "cell_type": "code", + "execution_count": 640, + "metadata": {}, + "outputs": [], + "source": [ + "gas_type=df_train.groupby('gas_type')" + ] + }, + { + "cell_type": "code", + "execution_count": 641, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsideACrainsunconsume_100Km
gas_type
021.0962504.93125043.50625021.91742910.118750.0437500.1000000.0750001.008933
118.6399124.89912340.82017521.93800712.228070.1008770.1403510.0877190.883618
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside AC \\\n", + "gas_type \n", + "0 21.096250 4.931250 43.506250 21.917429 10.11875 0.043750 \n", + "1 18.639912 4.899123 40.820175 21.938007 12.22807 0.100877 \n", + "\n", + " rain sun consume_100Km \n", + "gas_type \n", + "0 0.100000 0.075000 1.008933 \n", + "1 0.140351 0.087719 0.883618 " + ] + }, + "execution_count": 641, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 504, + "metadata": {}, + "outputs": [], + "source": [ + "#gas_type.get_group(1).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 505, + "metadata": {}, + "outputs": [], + "source": [ + "#gas_type.get_group(0).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 506, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 506, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "gas_type.size().sort_values(ascending=True).plot(kind='barh')\n", + "#'SP98': 1, 'E10': 0" + ] + }, + { + "cell_type": "code", + "execution_count": 612, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(11.204923406862736, 0.5, 'consume l/100km')" + ] + }, + "execution_count": 612, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAx8AAAGyCAYAAACFuXm8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAACX60lEQVR4nOzdd5TV933n/+e33T4NmBnqMIgikNCAEKKpUWQkZDuysR3bG8VxNt6UtXdz4iT2rtN2nbXjZHOON+X8EsUpXsdeO3KMixKBhECoMSAhJJooAjEMdQaYevv9lt8fd+bSmU59Pc7xsfjeb/ncEZq5r/l8Pu+3EQRBgIiIiIiIyAgzr/cARERERETk9qDwISIiIiIi14TCh4iIiIiIXBMKHyIiIiIick0ofIiIiIiIyDVxw4UP13U5duwYrute76GIiIiIiMgwuuHCx6lTp1ixYgWnTp263kMREREREZFhdMOFDxERERERuTUpfIiIiIiIyDWh8CEiIiIiIteEwoeIiIiIiFwTCh8iIiIiInJNKHyIiIiIiMg1ofAhIiIiIiLXhMKHiIiIiIhcEwofIiIiIiJyTSh8iIiIiIjINaHwISIiIiIi14TCh4iIiIiIXBMKHyIiIiIick0ofIiIiIiIyDWh8CEiIiIiIteEwoeIiIiIiFwT9vUegIiIiIjIrWjb3hZ+/PJBulN5/vK3l13v4dwQNPMhIiIiIjLMtu1t4bvPvQtBQGUidL2Hc8NQ+BARERERGUZBELDhzWZMy6ArlSeb9673kG4YWnYlIiIiIjIMgiAgnXNJpQvsb24n4pgYhnG9h3VDUfgQERERERmC80NHwfMBqCqL0JnMEnas6zy6G4uWXYmIiIiIDEIQBKSzBU63Z+jozpWCB8DKhXV4XkCu4BEQXMdR3lgUPkREREREBuD80NF+UejoNXvqGD618k4qEhEyWe356KVlVyIiIiIi/ZTJFehOFS4bOC42e+oYZk8dg6VtHyUKHyIiIiIifcjkCiTTLnlXsxhDofAhIiIiInIFCh3DS+FDREREROQiCh0jQ+FDRERERKRHNueSTBfIDVPoONORobYqOiz3uhWo2pWIiIiI3PZyOZczHRnOdmWHJXicOpvi2//2Ln/4dOMwjO7WoZkPEREREblt5XIu3ZkC+YI3LN04jrV2s66xibf2tqq7x2UofIiIiIjIbSeXd+lOD1/oOHyik7Wbm9h58EzpWHVllMcWTx6Gu986FD5ERERE5LaRzbukMi65vDssoeO9o+2s3dzEu4fbSsfGjo6xaskU5s+qwTK1y+F8Ch8iIiIicsvLFTxS6QLZYQgdQRCwt6mNtZubeO9oR+n4pJoEq5ZMYe6d1ZiGOgtejsKHiIiIiNyyhjt07Dx4hrWbm2g62VU6PmV8OauWTOGeqaMxFDquSuFDRERERG45+YJHKlMgk3cJhpg6fD9g+/5W1m5u4vjpZOn4jLpKnlgyhTsnVyl09JPCh4iIiIjcMoYzdHi+z5t7Wljb2ERLW7p0/O47RrNqcT3TJlUO7QG3IYUPEREREbnpFVyPZHp4QkfB9dmy+yTPNzZxpjNbOj5n+hieWDKFyePKhzja25fCh4iIiIjctIYzdOQLHq/tOMELW4/Q0Z0DwDDgvpm1rFpcz4SaxDCM+Pam8CEiIiIiN52C65PKFEjnCkMOHdmcy8tvH+fFN47QnS4AYBoGC2eP5fHF9dSOig3DiAUUPkRERETkJjKcoSOVLbBp21E2bDtKOusCYFsGSxrGs3LhZMZURodhxHI+hQ8RERERueG5nk8qXSA1DKGjO51nw5vNbHrrGNm8B4Bjmzw0dwIfWFhHVVlkGEYsl6PwISIiIiI3rN7Qkc4V8IcYOjq6c6x/4wivvH2cgusDEAlZLL1vIsvn11EeDw3DiC9kmRCPOMN+35uVwoeIiIiI3HBcr2d5VXbooeNMR4YXth5h884TuF7xZvGIzfL5k1g6f9KIhAPbNIhFHWIRB8tUD5BeCh8iIiIicsPwPJ/kMIWOlrY0zzc2sWXPKfyem5XFHB5dMJlH7p1AJDz8H4UdyyQec4iFbTUevAyFDxERERG57ryemY7UMISO46eTrGtsYtveltL+kMqyMI8tnMwDc8YTcqyhD/g8BhCyLeIxm0hIoeNqFD5ERERE5LoZztBx5GQXz21uYsd7p0vHxlREeGxxPYtmj8OxzSGO9kKGARHHJh6xCY/ALMqtSF8lEREREbnmhjN0HDzWwdrNTex5/2zpWO2oGKsW13P/XbVY1vCHjmjIJh51hn0W5Van8CEiIiIi14zn+aSzBZKZoYWOIAjYf6Sd5zYf5kBzR+n4hOoETzxQz70zajCHeaO3aUAsUtxEPtyzKLcLhQ8RERERGXGeH5DO5IcldOw6dJa1mw9z+ERX6fjkceV8cEk990wbM+x7LnrL5cYizrDPotxuFD5EREREZMT0ho5UpoA3hNDhBwHv7D/N2s2HOdqaLB2fPqmSVUvqmVU/athDh2OZxKI2sbAz7LMotyuFDxEREREZdsMVOjzfZ9u7LaxtbOLU2XTp+F1TRrFqcT3T66qGYbQXCtkW8ahNVOVyh53Ch4iIiIgMm1LoyBbw/MHfx/V8tu4+xbrGJk53ZErHG6aNYdWSeqaMrxiG0Z5jACHHIhF1RqT/hxTpKysiIiIiQzZcoSNf8Hh95wle2HqE9q4cUAwG982q4fHF9UysKRueAfforVwVizqEVblqxCl8iIiIiMigDVfoyOZdXnn7OC++0UxXKg+AaRgsuLuWxxfXM3Z0fJhGTM+9IRZ2iEVtHFuh41pR+BARERGRARuu0JHOFtj01jE2vNlMKusCYFsGi+8Zz2OLJjOmMjpMIy6yesvlRh1sVa665hQ+RERERKTfhit0JNN5Nmw7yktvHSWb8wBwbJOH5k7gAwvqqCqPDNOIi2zTIBbtKZerylXXzYiHjz/90z+lvb2db3zjGyP9KBEREREZIb4fkMoWSGXyQwodnckc699o5pW3j5EvFG8UDlksnTeRFfdPojweHqYRFzmWSTzmEFPlqhvCiIaPxsZGfvzjH7N06dKRfIyIiIiIjJDhCh1nOzO8sPUIr+84idtzo1jYZtn8SSyfP4l41BmmEfdUrrIt4jGbSEih40YyYuGjo6ODb37zm/z6r/86+/btG6nHiIiIiMgIGK7Q0dKW5vktTWzZfQq/p7V5Iurw6II6Hpk3kegwlrU1DAjbNomoTVjlcm9II/Zv5Q//8A/5rd/6LU6ePDlSjxARERGRYTZcoePE6SRrG5vYtreFoKfJYEUizMqFdTw4ZwLh0PBVmOotlxuPOoRULveGNiLh44c//CHjxo1j8eLFrFmzZiQeISIiIiLDqDd0pDMFXH/wLcmbT3WxdnMTbx84XTo2qjzCY4sms6Rh3LCWtTV7K1dFHBxblatuBiMSPp577jlOnz7Nk08+SWdnJ+l0mq9//et85StfGYnHiYiIiMgg+X5AOlcglR5a6Hj/eCfPbT7M7kNnS8dqqqI8vriehXePxRrGsraWCfGe0DGc95WRNyLh45/+6Z9K/7xmzRreeOMNBQ8RERGRG8hwhI4gCDjQ3M5zm5vYf6S9dHx8dZxVi+u5b2Yt5jCWtXUsk1jUJhZ2hvW+cu1oJ46IiIjIbWS4Qsee98/y3OYm3j/eWTpeN7aMJ5ZMoWH6GMxhrDAVsi3iUZuoyuXe9EY8fKxevZrVq1eP9GNERERE5CqGI3T4QcCOA6dZu7mJ5pbu0vGpEyt4YskU7poyatjCgQGEHItE1CGiylW3DP2bFBEREbmFDUvo8APe2tfC2s1NnDiTKh2fWT+KJ5bUM31S5fCFjp7KVdFIsUeH3Fr0b1RERETkFhQEAelsgeQQQofn+Wzdc4p1jU20tmdKx++ZOoZVS+q5Y0LFcA0Xw4BY2CEetYe1IpbcWBQ+RERERG4hwxE6Cq7H6ztP8sKWI7R1ZYHiMqh776zh8cX11I0tG7bxWr3lcqMOtipX3fIUPkRERERuAcMROnJ5j1ffOc76N47QmcwDYBoG999Vy+OL6xk3Jj5s47VNg1i0p1yuKlfdNhQ+RERERG5i50KHi+sPriV5JuuyafsxNrzZTDJTAMAyDRbfM47HFk2muio2bON1LLOncpXK5d6OFD5EREREbkK9oSOVcSl4gwsdyUyBjW8289Jbx8jkXAAc2+SBhvGsXDSZUeWRYRmrQU+53FhxE7nK5d6+FD5EREREbiJBEJDOuaTShUGHjs5kjhffbOaV7cfJFTwAwo7Fw/Mm8Oj9dVQkwsMyVsOAsG2TiNqEVS5XUPgQERERuSkMR+ho68qyfusRXttxgoJbvEc0bLPsvoksv7+ORNQZlrH2lsuNRx1CjipXyTkKHyIiIiI3sOEIHafb0zy/5QiNu07i9WxGj0cdHr2/jqXzJhKNDM9HQrOnXG4s6uDYqlwll1L4EBEREbkBDUfoOHkmxbrGJt549xRBTwGs8niIlQsn8+Dc8cPWxM8yIR7pqVylcrlyFQofIiIiIjeQIAjI5FySQwgdR1u6Wbu5ibf3t9JbdHdUeYSViybzQMO4YWviZ5sG8ZhDTJWrpJ8UPkRERERuAMMROg6f6OS515vYdehM6Vh1ZZTHF9ezcPbYYWvi51gmiZhDNKzKVTIwCh8iIiIi19FwhI4Dze08t7mJfU1tpWPjxsR5fHE982fVYJlDDx0GEHKsUo8OkcFQ+BARERG5DoYaOoIg4N3Dbazd3MTBYx2l45Nqy3hiST1zZlRjDsOshGFAxLGJRe1h2yMity/9DRIRERG5hoYaOvwgYOd7Z1i7+TBHTnWXjt8xoYJVS+qZfcfoYVkKZfRUropH7WHbIyKi8CEiIiJyDQRBQDbv0p0aZOjwA7bvb2Xt5iaOn06Wjt9ZV8UTD9Qzo65qWEKHafRUroo6w7ZHRKSXwoeIiIjICMvkCoMOHZ7n88a7LaxrbKKlLV06PnvqaFYtrmfqxMphGaNtGsQiNrFoCEuVq2SEKHyIiIiIjJBMrkAy7ZJ3vQFfW3B9Gned4PktRzjbmS0dv3dGNauW1FM3tnxYxuhYZmkTucrlykhT+BAREREZZkMJHfmCx6vvHOeFrc10JnNAcf/F/Fm1rFpcz/jqxJDHZwCObZGIFTeRq1yuXCsKHyIiIiLDZCihI5NzeXn7MTa82Ux3ugCAaRosmj2WxxbVUzsqNuTxGUDYsUlEbcJhfQyUa09/60RERESGKNtTvSo3iNCRyhTYuO0oL207SjrnAmBbJg/MGc/KhXWMrogOeXyGAdGQTSzqEHZUuUquH4UPERERkUEaSujoSuV48Y2jvPz2MXL54vUhx+TheyfygQV1VCTCQx6f2VMuNxZ1cGxVrpLrT+FDREREZIByOZfuTIF8wSMY4LXtXVle2HqE13acoOAWq19FwhZL503i0fsnkYiFhjw+y+wplxtxsFQuV24gCh8iIiIi/TSU0HGmI8PzW47QuOsErle8Oh6xWXF/HUvvm0gs4gx5fLZpEI85RMOOyuXKDUnhQ0RERKQPubxLd3pwoePU2RTrGpt4Y08LflC8ujwe4tEFdTx87wQioaF/HHMsk3jMIRZW5Sq5sSl8iIiIiFxBNu+SSrvkCu6AQ8ex1m7WNTbx1t7W0rVV5WFWLpzMAw3jCQ1x47cBhByr1KND5Gag8CEiIiJykVzBK24kzw88dBw+0cnazU3sPHimdKy6Msrji+tZOHss9hD3YBgGRBybWNQellkTkWtJf2NFREREeuQKHql0gewgQsd7R9tZu7mJdw+3lY6NHR1j1ZIpzJ9Vg2UOPXTEwg6xiN3nrMm2vS2s2XSQlrY0taNirF46jfmzaof0fJHhoPAhIiIit718z0zHQENHEATsbWpj7eYm3jvaUTo+qSbBqiVTmHtnNeYQ92CYBsQiDvGo069Zk217W3h6zU5s26AsatPeleHpNTthdYMCiFx3Ch8iIiJy28oXPFKZApm8SzCA1BEEATsPnmHt5iaaTnaVjk8ZX86qJVO4Z+roIW/8tkyDeMQmFg0NqHLVmk0HsW2jtCQrErLJ4rJm00GFD7nuFD5ERETktjPY0OH7Adv3t7J2cxPHTydLx2fUVfLEkincOblqyKHDsczSJnJzEOVyW9rSlEUv/IgXdixa29JDGpfIcFD4EBERkdtGwS0urxpo6PA8nzffbWFtYxMt532Iv/uO0axaXM+0SZVDHlvItkjEipvIhxJgakfFaO/KXLAZPVfwqBkVG/IYRYZK4UNERERueYMNHQXXZ8vukzzf2MSZzmzp+JzpY3hiyRQmjysf0rgMIOzYxKM2kfDwfCxbvXQaT6/ZSRaXsGORK3i4bsDqpdOG5f4iQ6HwISIiIresguuRyrikc4UBhY58weO1HSd4YesROrpzQDEo3DerllWL65lQkxjSuAwDoiGbWNQhPMR+HxebP6sWVjewZtNBWtvS1KjaldxAFD5ERETkllNwfVKZwoBDRzbn8vLbx3nxjSN0pwsAmIbBwtljeWzRZMaOjg9pXGZvudyog2MPrfTu1cyfVauwITckhQ8RERG5ZQw2dKSyBTZtO8qGbUdJZ10AbMtgScN4Vi6czJjK6JDGZZkQjzjEIg7WEJsMitzMFD5ERETkpud6Pql0gdQAQ0d3Os+GN5vZ9NYxsnkPAMc2eWjuBD6wsI6qssiQxmWbBvGYQzTsDKhcrsitSuFDREREblq9oSOdK+APIHR0dOdY/8YRXnn7OAXXByASslh630SWz6+jPB4a0rgcyyQec4iFh1a5SuRWo/AhIiIiNx3X61lelR1Y6DjTkeGFrUfYvPMErle8MBaxWTF/EkvnTyIecQY9JoNiudx4rNijQ0QupfAhIiIiN43Bho6WtjTPNzaxZc8p/J4Ly2IOjy6o45F7Jw6pzK1hQMSxiUXtC3priMil9F+IiIiI3PA8zyc5iNBx/HSSdY1NbNvbUtoLUlkWZuXCyTw4ZzyhIZS5NXorV0XsId1H5Hai8CEiIiI3rMGGjiOnuli7uYl3DpwuHRtTEeGxxfUsmj1uSGVuTQNiPZWrRrJcrsitSOFDREREbjhez/Kq1ABDx8FjHazd3MSe98+WjtWOirFqST3331WLZQ4+LJTK5UZDqlwlMkgKHyIiInLDGEzoCIKA/UfaeW7zYQ40d5SOT6hO8MQD9dw7owZzCGHBsUzi0eIm8qHcR0QUPkREROQGMNjQsfvQWZ7bfJjDJ7pKxyePK+eDS+q5Z9qYIZW5DdlWT+hQuVyR4aLwISIiIteN5/mkswWSmf6HDj8IeGf/adZuPszR1mTp+LSJlTzxQD2z6kcNOiwYQMixSESdIVXAEpHL039VIiIics15fkA6kx9Q6PB8n23vtrC2sYlTZ9Ol47PqR7FqST0z6qoGPR7DgGjIJhZ1CKtylciIUfgQERGRa2YwocP1fLbsPsnzjUc43ZEpHW+YNoZVS+qZMr5i0OMxe8vlRm0cW6FDZKQpfIiIiMiI6w0dqWwBz+/fNfmCx+s7T/DC1iO0d+WA4rKoeTNrWLW4nom1ZYMej2X2hg4H21K5XJFrReFDRERERsxgQkc27/LK28d58Y1mulJ5AEzD4P67alm1pJ6xo+ODHo9tGsSixR4dKpcrcu0pfIiIiMiwG0zoSGcLbHrrGBvebCaVdQGwTIMlDeNYuaie6srooMfjWCbxmENMlatEriuFDxERERk2gwkdyXSeDduOsumtY2RyxdDh2CYPzhnPyoWTqSqPDGosBj3lcmM2kZBCh8iNQOFDREREhmwwoaMzmWP9G8288vYx8oXiReGQxdJ5E1lx/yTK4+FBjcUwIOLYxCM2YZXLFbmh6L9IERERGTTfD0hlC6Qy+X6HjrbOLM9vPcLrO07g9lwUC9ssmz+J5fMnEY86gxpLb7nceNQhpHK5IjckhQ8REREZsMGEjtb2NM83HqFx90n8njq7iajDowvqeGTeRKKDnKUwDYhFipvIHVuVq0RuZAofIiIi0m+9oSOdKeD2s1HHiTNJ1jUe4c13TxH0XFKRCLNyYR0PzplAODS4WQrLhHhP6LBULlfkpqDwISIiIn3y/YB0rkAq3f/Q0Xyqm7WNh3l7/+nSsVHlER5bNJklDeMG3dTPNo2eylUOpsrlitxUFD5ERETkigYTOt4/3slzmw+z+9DZ0rGaqiiPL65n4d1jBz1L4VgmiZhDVOVyRW5aCh8iIiJyiYGGjiAIONDcznObm9h/pL10fHx1nFWL67lvZu2gZinOL5cbDQ9uI7qI3DgUPkRERKRkMKFjz/tneW5zE+8f7ywdrxtbxhNLptAwfQzmIGYpesvlxqLFHh0icmvQf80iIiJCEASkswWS/QwdfhCw48Bp1m5uormlu3R86sQKnlgyhbumjBrU0iiVyxW5tSl8iIiI3MYGHDr8gLf2tbB2cxMnzqRKx2fWj+KJJfVMn1Q5qNChcrkitweFDxERkdvQQEOH5/ls3XOKdY1NtLZnSsfvmTqGVUvquWNCxaDGoXK5IrcXhQ8REZHbSG/oSGVcCv3oDlhwPV7feZIXthyhrSsLFDeB33tnDY8vrqdubNmgxqFyuSK3J4UPERGR20AQBKRzLql0oV+hI5f3ePWd46x/4widyTxQ3I+x4K6xPLZ4MuPHJAY1Dscye0KHyuWK3I4UPkRERG5hAw0dmazLpu3H2PBmM8lMAQDLNFh0zzgeWzSZmqrYgMegcrki0kvhQ0RE5BY00NCRzBTY+GYzL711jEzOBcC2TB6cM56VCyczqiIy4DGUyuVGbCJhfeQQEYUPERGRW0oQBGRyLsl+ho7OZI4X32zmle3HyRU8AMKOxcP3TuDRBXVUJMIDHoPK5YrIlSh8iIiI3AIGGjraurK8sOUIr+88QcEtnh8JWyy7bxIr5k8iEQsNeAwqlysifVH4EBERuYkNNHScbk+zbssRtuw6iddTYjcedXj0/jqWzptINDLwjwYqlysi/aXwISIichMaaOg4eSbFusYm3nj3FEFPW4/yeIiVCyfz4NzxREID/0igcrkiMlAKHyIiIjeRIAjI5l26U/0LHUdbulm7uYm397fS20pwVHmElYsm80DDOBx74HsyVC5XRAZL4UNEROQmkckV+h06Dp/o5LnXm9h16EzpWHVVlMcX1bNw9ljsAS6PUrlcERkOIxo+/uIv/oLnn38ewzD4+Mc/zi//8i+P5ONERERuSZlcgWTaJe96Vz0vCALeO9rBc5ub2NfUVjo+bkycxxfXM39WDZY5wNDRUy43HrEJq1yuiAzRiH0XeeONN9iyZQs/+9nPcF2XJ554gkceeYQ77rhjpB4pIiJySxlI6Hj3cBtrNx/m4LHO0vG62jJWLalnzoxqzAEuj1K5XBEZCSMWPhYsWMB3vvMdbNumpaUFz/OIxQbeFVVEROR209/Q4QcBO987w9rNhzlyqrt0/I4JFTyxpJ677xg94D0ZKpcrIiNpROdPHcfhL//yL/nHf/xHHn/8cWpra0fycSIiIje1focOP2D7/lbWbm7i+Olk6fiddVU88UA9M+qqBhw6VC5XRK4FIwh6C+6NnEwmw6//+q/zxBNP8MlPfvKq5x47dowVK1awYcMGJk6cONJDExERue76Gzo8z+eNd1tY19hES1u6dHz21NGsWlzP1ImVA362yuWKyLU0YjMfhw4dIp/PM2vWLKLRKCtXrmT//v0j9TgREZGbTiZXIJV2yfUROgquT+OuEzy/5QhnO7Ol4/fOqGbVknrqxpYP+NmOZZKIOURVLldErqERCx/Hjh3jL//yL/n+978PwIYNG/jYxz42Uo8TERG5aWR7mgP2FTryBY9X3znOC1ub6UzmgOJG8Pmzalm1uJ7x1YkBPdcAQo5FPKpyuSJyfYxY+HjkkUfYsWMHH/nIR7Asi5UrV/LBD35wpB4nIiJyw+tv6MjkXF7efowNbzbTnS4AYJoGi2aP5bFF9dSOGlgBl95yubGoPahO5iIiw6Vfez5Onz5NZ2fnBcemTZs2IgPSng8REbnV9Dd0pDIFNm47ykvbjpLOuQDYlskDc8azcmEdoyuiA3quYUAs7BCP2oPqZC4iMtz6/PXHn/zJn/C9732PROLc1K5hGDQ2No7owERERG52uZxLd6ZAvuBxtd/0daXybHizmU3bj5HLFwNKyDF5+N6JfGBBHRWJ8ICea/WWy406A+5kfjnb9rawZtNBWtrS1I6KsXrpNObPUgVLERm4PsPH+vXrefXVV6mqqroW4xEREbnp9Td0tHdlWf9GM6++c5yC6wMQCVssnTeJR++fRCIWGtBzbdMgFu0plztMlau27W3h6TU7sW2DsqhNe1eGp9fshNUNCiAiMmB9ho/6+nrKywdeRUNEROR209/QcbojwwtbmmjcdRLXK54Zj9isuL+OpfdNJBYZ2GZwxzKJxxyiIXvYy+Wu2XQQ2zZKe0UiIZssLms2HVT4EJEB6zN8/OIv/iJPPfUUCxcuxLbPnf6FL3xhRAcmIiJys+hv6Dh1NsW6xiO8secUfs+Wy/J4iEcX1PHwvRMGtBncAEK2RTxW3EQ+UuVyW9rSlEUvHFfYsWg9r8+IiEh/9fld7q/+6q8YPXo03d3d12I8IiIiN41c3iWZdskV3KuGjmOt3axrbOKtva2l86rKwqxcNJkHGsYTcvq/GdwwIGzbJKI24fDIV66qHRWjvStzQTDKFTxqBlhxS0QE+hE+MpkM3/rWt67FWERERG4K2bxbbA7YR+hoOtnFc68fZufBM6VjYyqjPL54MgvvHodj938zuGFANGQTjzoDCitDtXrpNJ5es5MsLmHHIlfwcN2A1UtHpuqliNza+gwf06dPZ9++fcycOfNajEdEROSGcX6Vp0k1CT780B3Uj6sgl7966HjvaDtrNzfx7uG20rGxo2OsWlzP/Ltqscz+hw6zt3JVxBlQWBku82fVwuoG1mw6SGtbmhpVuxKRIegzfLS2tvLxj3+cCRMmEAqdq7rx7LPPjujARERErqfeKk/xqM3E6jiZXIFv/XgXH102jdlTx1xyfhAE7G1qY+3mJt472lE6PrEmwaol9dx7Zw3mAPZlWCbEe0KHNQzlcodi/qxahQ0RGRZ9ho8vfvGL12IcIiIiN5RnX3uf6qoItmXRncoXlxv5Pi9sbb4gfARBwK6DZ3hucxNNJ7tKx6eML2fVkincM3X0gDaDO5ZJPGoTDTvDXrlKROR66zN8hEIh5s6dW/pzLpfjG9/4BgsWLBjJcYmIiFw3uYJHMpPHd33ybr50PGSbnO3MAOD7AW8faGXt5iaOtSZL58yoq+SJJVO4c3LVgEJHyLZIjHDlKhGR661fMx9PP/0006dPZ9euXfzO7/wOU6dOvRZjExERuaZyBY9UukC24EJg0J0pED5vc3fe9RlVHmHL7pOsa2zi1Nlz5WbvvmM0qxbXM21SZb+fZwBhxyYetYlcg8pVIiLXW5/f6f7sz/6Mz3/+8zz66KP8+Mc/5stf/jIf+chHrsHQREREro18wSOZKZDNu/S032Dlwjp+8MJ+cniEbJNcwSOddcnkPL79b++Wrp0zvZonltQzeVz/G/L2Vq6KRZ0Lwo2IyK2uz/Axf/58/viP/5hf//Vf55/+6Z8uWIIlIiJyM8sXPFKZApnzQkev2VPH8KmVsK7xCCfOJMkXvFI3cgO4b1YtqxbXM6Em0e/nmQbEwg6x6PWpXCUicr1dMXx8+MMfvvBE2+Y3fuM3GDOmuMlO1a5ERORmVXA9kunLh45e2ZzL8dMpWtpSpLMuAKZhsHD2WB5bNJmxo+P9ft6NVLlKROR6umL4+IM/+INrOQ4REblNnN87o/Ya94zoT+hIZQts2naUDduOlkKHbRksaRjPyoWTGVMZ7ffzbNMgHnOIqXKViAhwlfCxYMECcrkcr776KqdOncI0TcaOHcuCBQtIJPo/xSwiItKrt3eGbRuURW3auzI8vWYnrG4Y0QBScH1SmQLpXOGKoaM7nWfDm81seusY2bwHgGObPDR3Ah9YWEdVWaTfzwvZVk+5XFWuEhE53xXDx9tvv81v/uZvUl9fT21t8QdCS0sLf/iHf8j//t//m8WLF1+zQYqIyK1hzaaD2LZBJFT88RMJ2WRxWbPp4JDDR+rQdjobf4rb0YpdWUPF4icJTZ7bZ+jo6M6x/o0jvPL2cQqu3zMui0fmTWTF/XWUx0OXv/AiBhByLBJRR5WrRESu4IrfHf/wD/+Qv/u7v2PmzJkXHN+3bx9f+tKX+NnPfjbigxMRkVtLS1uasuiFP3rCjkVrW/oKV/RP6tB2zq77e7BsjEgCN9nO6ee+hfXAU5iT5lz2mjMdGV7YeoTNO0+UNpLHIjYr5k9i6fxJxCNOv57dW7kqGrFLoUpERC7vit8lfd+/JHgAzJw5k+BKvz4SERG5itpRMdq7Mhd8SM8VPGpGxYZ0387Gn4JlYzphPD/ANxwCwyfYsZbQReGjpS3N841NbNlzCt8v/jwrizk8umAyj9w7od+zFucqV9k4tsrlioj0xxW/w44fP56/+7u/4xOf+ARVVVUAdHd384Mf/IAJEyZcswGKiMitY/XSaTy9ZidZXMKORa7g4boBq5dOG9J9Cx0tBKE4Xs+yKQDsEEH36dIfj59Osq6xiW17W0pLsCrLwqxcOJkH54wn1M9+G5Z5rlyurcpVIiIDcsXw8ad/+qd89atfZdmyZQRBUJrtWLp0KV/72teu2QBFROTWMX9WLaxuYM2mg7S2pakZYrUr1ytuJA/iY/BTHRhO+LwX8xhl1Rw51cXazU28c+BcEBlTEeGxxfUsmj2u3/02bNMgFu0pl6vKVSIig2IEfayh8jyP9vZ2fN9n9OjRWNbITi0fO3aMFStWsGHDBiZOnDiizxIRkZtTb+hIZwv4AXjNO3Bf/2cwbbBD4OZ5P51gvfkw754slK6rHRVj1eJ67r+rtt/9NhzL7CmXq8pVIiJDddWFrevWreNnP/sZp06dwrIsxo4dy6OPPsqTTz55rcYnIiJS4nk+yfNCRy+rrrivw92xlv2nfV5I3cvBVDlQDB4TqhOsWlLPvDtr+tVvw6CnXG6suIlcoUNEZHhcMXz89V//NVu3bmX16tWMHTsWKJba/dGPfsSBAwf43d/93Ws2SBERub1dKXT0CoKAPfkJrG1fweHWrtLxyePK+eCSeu6ZNqZfAcIwIGzbJKI2YZXLFREZdlf8zvrss8/y7LPPEgpdWN/8iSee4MMf/rDCh4iIjDivZ3lV6gqhww8C3tl/mrWbD3O0NVk6Pn1SJauW1DOrflS/Q0c0ZBOPOv3eeC4iIgN3xfBhmuZlS+p6nofj9K/2uYiI3Nq27W1hzaaDtLSlqR3i5vHz9RU6PN9n27strG1s4tTZcz1CZtWP4okl9Uyvq+rXc86Vy3X6vfFcREQG74rh48knn+TTn/40H/rQh0rLrk6fPs2zzz7Lz/3cz12zAYqIyI1p294Wnl6zE9s2KIvatHdleHrNTljdMOgA0lfocD2frbtPsa6xidMdmdLxhmljWLWkninjK/r1HMuEeKSncpXK5YqIXDNXDB+//uu/zqxZs3jxxRfZvHkzQRAwbtw4Pv/5z7Ns2bJrOUYREbkBrdl0ENs2Sg0DIyGbLC5rNh0ccPjoK3TkCx6v7zzBC1uP0N6VA4qbwufNrGHV4nom1pb16zkqlysicn1ddTfdI488wiOPPHKtxiIiIjeRlrY0ZdELf4yEHYvWtvQVrriU5/mkswWSmcuHjmze5ZW3j/PiG810pfIAmIbB/XfVsmpJPWNHx/v1HJXLFRG5MaiUh4iIDErtqBjtXZnSzAdAruBRMyrW57V9hY50tsCmt46x4c1mUlkXAMs0WNIwjpWL6qmujF72voYBhucSmMUxqVyuiMiN5Yrh43/9r/911Qt///d/f9gHIyIiN4/VS6fx9JqdZHEJOxa5gofrBqxeOu2K13h+QDqTv2LoSKbzbNh2lJfeOko25wHg2CYPzhnPyoWTqSqPXPa+xdCRh1waAo9IRS1xlcsVEbnhXPG7cllZGd/+9rf55V/+ZUxTm/FERORC82fVwuoG1mw6SGtbmpqrVLvqDR2pTAHvMqGjM5lj/RvNvPL2MfIFH4BwyGLpvImsuH8S5fHwFUYRYHp5glwKzy0QsU1i8SixysuHFBERub6uGD5+8zd/k0OHDlFVVcUv/uIvXssxiYjITWL+rNqrbi4vhY5sAc+/9PW2zizPbz3C6ztO4PacEAvbLJs/ieXzJxGPXr60uwEYbpYgl8J3C0RDNpGyMLZlYqh6lYjIDeuq89G/93u/xw9/+MNrNRYREblF9BU6TrenWdd4hMbdJ/F71l8log6PLqjjkXkTiV5huZRBgFHIEuRTBJ5LNGwTjUc0Qy8icpO4aviora3lC1/4wrUai4iI3OT6Ch0nziRZ13iEN989RW8f24pEiJULJ/PgnAmEQ5fvLm7gYxQyBNnino5Y1CHiRDFVLldE5KZyxfDx4Q9/mLlz57JixQqWLFlCKBS6luMSEZGbSF+ho/lUN2sbD/P2/tOlY6PKIzy+eDKL7xmHY18pdHgY+Qx+Lo1JQCxiEw2FijvMLx5DsoPk7pcpnD3OmA/+BqHRE4bt/YmIyPC4Yvj42c9+xttvv82LL77IX/zFXzBp0iRWrFjBsmXLKC8vv5ZjFBGRG1RfoeP94508t/kwuw+dLR2rqYry+OJ6Ft499rLdxQ3ACFwoZPCzGSwTElGLcOjy+z/yZ46R3LmR9MG3wC8OIntkj8KHiMgN6IrhwzAM5s2bx7x58wA4dOgQGzZs4Nd+7dcIh8N8+9vfvlZjFBGRG8zVQkcQBBxobue5zU3sP9JeOj6+Os6qxfXcN7P2ssulDAMM34V8Cj+XJWSZRGM2odClP6qCICB79F2SO14id3x/6bgZLSPRsJSyuSuG782KiMiw6XcB9KlTpzJ16lR+9Vd/lTNnzozkmERE5Abl+wGpbIFUJn/Z0LHn/bM8t7mJ9493lo7XjS3jiSVTaJg+BvMyy6XO79HhF3KEbZNoInTZpViBWyD93ja6d27EbT9VOm5XjaWsYTmx6fMxw1EM8/LLuERE5Pq6Yvi49957r9oNdvv27SMyIBERufFcLXT4QcCOA6dZu7mJ5pbu0vGpEytYtbieu+8YfYWfJ+d6dBTL5VqlcrkX8zJJUu++RnL3K/iZc88IT5hBomE5kbpZGIYqXomI3OiuGD7+7d/+7VqOQ0REbkBXDR1+wFv7Wli7uYkTZ1Kl4zPrR/HEknqmT6q8bOg4v0dH4BWK5XJj4cuWyy10tJLc+RLpA1sJ3ELxoGkSm3YfiYblhMZMHM63KyIiI+yK4WPCBG3UExG5XZ0LHQU8/8KW5J7ns3XPKdY1NtHanikdv2fqGFYtqeeOCRWXvacRBBheMXQYvkc0YhN1ohgX7f8IgoD8qUN079hItmk3UHy+EYqSuOsBErMfwUpUDuv7FRGRa6Pfez5EROTW5/sB6VyBVLqAe1HoKLgem3ee5PktR2jrygLFWYy5d1azavEU6saWXfae5/foMI2AaNgiEopcUi438D0y779D946NFE43l45bZaNI3LOM+MxFmKHI8L5hEZHbSHd3N5///Of5zne+c93GoPAhIiJXDR25vMer7xxn/RtH6EzmgWJuWHDXWB5bPJnxYxKXvacReBiFNH6uWC43Hr185So/nyW1dzPJXS/jJdtKx0M19STmLCc6pUEbyEVEhkFnZye7du26rmPoV/jIZrMcOXKEGTNmkMvliET0mycRkVvB1UJHJuuyafsxNrzZTDJT3G9hmQaL7hnHY4smU1MVu+R+Bj3lcgtp/HyWkGUQidmEnEt/3LjJdpK7Xia193WCfLZ0h0j9PZTNWUFo7JSrFj4REbnV/N3f/R3/+q//SjweZ/78+WzYsIF/+Id/4Ktf/SrpdJrW1lZmzpzJ//k//4dwOMxf/uVfsn79ehzHoaqqij/5kz+hpqbmivf/7//9v5PNZnnyySf5lV/5Ff7f//t//OAHPwDgxIkT/PzP/zwbN25k7ty5/NIv/RJbt24lnU7zxS9+kZUrVwLwwx/+kO9///v4vk9lZSV/8Ad/wNSpU/v9HvsMH++88w5f+MIXsG2bH/zgBzz55JP8zd/8Tan/h4iI3HyuFjqSmQIb32zmpbeOkcm5ANiWyYNzxrNy4WRGVVz6C6hiudwC5NME+SxhxyKacLCtS2cs8qeP0r1jI5n3t5eaAhp2iNidCylrWIZdUT3Id2VgOA5WOD7I60VErp9XX32VNWvW8K//+q+UlZXxe7/3ewA888wzfOQjH+HJJ5+kUCiwevVqNm3aRENDA//3//5fGhsbCYVC/OM//iM7d+7k0UcfveIz/uRP/oQPf/jD/PSnPyWfz/ONb3yDgwcPMm3aNH74wx/y0Y9+lFAohOd5VFRUsGbNGvbt28dTTz3F/PnzOXjwID/5yU/43ve+RzQa5bXXXuO//Jf/wnPPPdfv99ln+PizP/szvv3tb/M7v/M7jB07lj/7sz/ja1/7Gj/60Y/6/RAREbkxXC10dCZzvPhmM6+8fZxc3gMg7Fg8PG8Cj95fR0UifMn9DAMMNwe5NLh5IiGLSHkY66LKVUHgk21+l+SOjeROvFc6bsbKSdz9MIm7H8SMDC40GKaB4cQwwxFM59IxiojcDF5++WUef/xxysvLAfiFX/gFtmzZwu/+7u/y+uuv861vfYumpiZaW1tJp9PU1tYyc+ZMPvrRj/Lwww/z8MMPs3jx4n4/LxQK8YlPfIJnnnmGL3/5y/z4xz/mu9/9bun1p556CoCZM2cyY8YM3nzzTXbs2MGRI0f41Kc+VTqvs7OTjo4OKisr+/XcPsNHNptl2rRppT8/8sgjfPOb3+zv+xIRkRtAEASkswWSlwkdbV1Z1m89wms7TlBwizMR0bDNsvsmsvz+OhJR55L7GQQYXp4gmwK/QCRsE41FLulcHrgFUgfeILnzJdyOltJxe9S4nqaA92FYl96/PwzLxgzH1FRQRG4Jtm0TBOe+P1s9M8df/OIX8TyPVatWsXTpUk6ePEkQBJimyXe/+1127dpFY2MjX//611m4cCG///u/3+9nfvKTn+QTn/gECxYsYPr06UyceK58uXXezLXv+1iWhe/7PPnkk/zu7/5u6XhraysVFZevcnjZ99nnCbZNZ2dnad3t+++/3++bi4jI9XW10HG6I8PzjU007jpZKqcbjzo8en8dS+dNJBq59EeEQYBRyBLk0xi+SyxiE71M5Sov001qz6skd7+Kn02WjocnzqRsznLCE2cOcj+HgemEMMNxjFBYe0JE5JbxyCOP8NWvfpXPfe5zlJWV8a//+q8AvPbaa3z3u99l5syZHDx4kB07drBq1Sr27dvHb//2b/PMM8/Q0NDAmDFj+MlPfnLVZ9i2jed5BEGAYRiMHz+euXPn8vWvf/2S0PKTn/yET3/60+zZs4fDhw9z//33Ew6H+YM/+AN+6Zd+iZqaGr7//e/zne98h3Xr1vX7ffYZPn7jN36Dp556ijNnzvDFL36R119/na9+9av9foCIiFx7VwsdJ8+kWNfYxJvvtuD3/JatPB7iAwvqePjeiYRDl84iFENHhiCbwjQCYhGLsHNp6Ci0nyK58yVSB94Ar7hfBNMqNgWcs5zQ6MH1kDJMAyNUnOUw7dCg7iEiciNbvHgxP//zP88nP/lJIpEI06dPJxqN8iu/8it8/vOfp6Kigmg0yv33309zczOf+MQnWLVqFR/72MeIxWJEIpE+Zz2qq6u56667WLVqFd///vepqqpi9erV/PEf/zGPPPLIBedu376dZ555Bt/3+eY3v0lFRQUPPfQQ/+k//Sf+43/8jxiGQSKR4K//+q8H9IsgIzh/fucKjhw5wuuvv47v+yxatOiCZVjD7dixY6xYsYINGzZcMPUjIiJ96w0dqYxL4aKW5MdaunmusYm397XS+41/VHmElYsm80DDOBz7cqHDK8505FI4hkE0bF1SLjcIAnIn3iO5YyPZ5j3nrg3HzjUFjPd/Sv6C51s2ZiSGGdLSKhG5te3atYu3336bz3zmMwD80z/9Ezt27OD//J//M2LP9H2fr371q4wfP55f/dVfLR2/8847aWxsZNSoUcP+zH6V2o3FYixYsKD0595d8SIicmO4Wug4fKKTtZub2HnwTOlYdWWUxxfXs3D2WGzLvPh253p05DOELZNIzLkknASeR+bQdrp3bqRw5ljpuFU+hrKGpcTuXDS4DeCGgelEirMcaiooIreJKVOm8K1vfYtnnnkGwzAYN24cf/zHfzzg+/yH//AfSKVSl33te9/7HolEsTdTMplk2bJlNDQ08KUvfWlIYx+IPmc+/uRP/oTvfe97lJWVlTbBGIZBY2PjiAxIMx8iIv0XBAHpnEsqXbgkdLzX3M5zm5vY23Sucd+4MXFWLa7nvlk1l1SkOr9HR5DPEnVMIhH7kvP8XIbU3teLTQFTHaXjodoplM1ZTqS+AcO8NND0xTBNjFAMKxId9CZ0ERG5sfU587F+/XpeffVVqqqqrsV4RESkH64UOoIg4N3DbazdfJiDxzpLxyfVlvHEknrmzKjGvGhtrmGA4Rcgl8YoZAmHbaJl4UsqV7ndbSR3bSK1dzNBIVe6ODplDok5ywnXThnEOzEw7POqVhkDDy0iInLz6DN81NfXl+oNi4jI9XWl0OEHATvfO8PazYc5cqq7dPyOCRWsWlLP7DtGX7IhsNgYMA+5NKaXJxK2iEQiGBeFjnzrkZ6mgO9AcK4pYHzmYhINS7HLxwz8jZSWVsUwQ+rNISJyu+gzfPziL/4iTz31FAsXLsS2z53+hS98YUQHJiIi51wxdPgB2/e3snZzE8dPnytpe2ddFauW1HPn5KrLVCEJML08QS6FGXjEwibhWPiCylVB4JNt2k33zo3kTx4qHTdjFSTueZjEXQ9ihmMDfh+GaZ2b5bD6te1QRERuIX1+5/+rv/orRo8eTXd3d1+niojIMAuCgEzOJXlR6PA8nzfebWFdYxMtbenS8bvvGM2qJfVMm1h5yb0MwHCLlassfGJhi9BFsw5+IU/6wNZiU8DO06XjzugJJOYsJzZ13iBCg4HhOFjhGEYooqVVIiK3sT5/gmQyGb71rW9di7GIiEiPK4WOguvTuOsEz285wtnObOn43BnVrFpSz+Sxly6TPdcYMIVjBESiNiH7wg3dXrqL5O5XSL37Gn72XJWUyKS7ivs5JswYeEM/w8AMRYtVqwZT9UpERK67Z599lr/5m7+hUCjw2c9+ll/4hV8Y0v36DB/Tp09n3759zJw5c0gPEhG5VW3b28KaTQdpaUtTOyrG6qXTmD+rdlD3ulLoyBc8Xn3nOC9sbaYzWdzsbRgwf1Ytjy+uZ0J14pJ7GfgYhQzk0oQtg0jMvqSsbqHtJN07N5I+sA383qaANrEZ91PWsAxn1LgBvwfDsouBIxxTbw4RkZtYS0sL3/zmN1mzZg2hUIhPfepTLFy4cEgtN/oMH62trXz84x9nwoQJhELnuso+++yzg36oiMitYtveFp5esxPbNiiL2rR3ZXh6zU5Y3TCgAHKl0JHJuby8/Rgb3mymO10AwDQNFs0ey2OL6qkddem+CwMPI5+BfJqIYxJNOJjnlb4NgoDc8QPFpoBH3y0dNyNx4nc9SGL2w1ixgRYaMTCdUDFwhCIDnyUREZFBG85fgp1v8+bNLFq0iMrKSgAee+wx1q1bN6S9332Gjy9+8YuDvrmIyK1uzaaD2LZBpKfrdyRkk8VlzaaD/frGHwQB2bxLd+rC0JHKFNi47SgvbTtKOleckbAtkyUN43hs0WRGV0QvuI8BGIELhQxGPkM4ZBFNXFguN/Bc0oe2k9zxEoWz55oC2hXVJBqWEZuxENMJMRCGaWCEihvITXtg14qIyNAN1y/BLqe1tZXq6urSn2tqati5c+eQ7tln+JgxY8aQHiAicitraUtTFr3wW2nYsWg9bxP4lWRyhUtCR1cqz4Y3m9m0/Ri5vAdAyDF5+N6JfGBBHRWJC/dOnGsMmMIs5IiELaJlF1au8nNpku8WmwL66XO9P0LjplLWsJxI/ewBbwIvLq3qqVqlpVUiItfNUH8JdjWX60U+1JntPsPHokWLMAyDIAhKD6uuruaVV14Z0oNFRG4FtaNitHdlSt/0AXIFj5qe5VAXT4V/Yvl0ZtZXkUy75F2vdE17V5b1bzTz6jvHKbjFMBIJWyy7bxIr5k8iEbtwVqHYo6OAkUth+gWiYZNw5MLQ4XadIblzE6l9jQRuvudCk+gdcymbs5xQzeSBvVnDwHTCmKEYRiispVUiIjeAofwSrC+1tbVs27at9OfW1lZqamqGdM8+w8e+fftK/1woFHjhhRcuOCYicjtbvXQaT6/ZSRaXsGORK3i4bsDqpdMumAqvqYxgEPAPP9tNACQzBcZURFk0u5bDJ7pp3HUC1yv+hikesVlxfx1L75tILHJhVSrDAMPNQT6NFXjEQuYl5XJzLYdJ7thI5vAO6PmtleFEiM9aTOKepdhlowb0HotLq+JY4SjGRVWyRETk+urrl2BDsWTJEv7qr/6KtrY2otEoL7zwAn/8x388pHsOqFi74zh88IMf5B/+4R/47d/+7SE9WETkVjB/Vi2sbmDNpoO0tqWpOW+j31f+5nXK4g6ViTC5gsfpjiwtZ1NYlsHo8gjNp7o40Nxeuld5PMSjC+p4+N4JF/wQKeppDJhP4QQ+0YiFc94ei8D3yR7ZRfeOjeRPvV86bsUrSdyzlPisJZjhKANh2E5xL0dIS6tERG5UV/sl2FDV1tbyW7/1W3zmM5+hUCjw8Y9/nIaGhiHds8/w0dHRUfrnIAjYvXs3XV1dQ3qoiMhwGqkqH/01f1btZZ/nej6RkM3Zziyu59PW05fDdQNOtWVK59mWwceWT+eBhvGEnAs/5BsEPTMdKcJmQCRiY5/X5M8v5Ejv30r3zpfwus6UjjtjJlE2ZznRO+4le3wfZ57/Fl7XWazy0ZTNXUG07u7LvxnDwHQiPaEjMpQvi4iIXANX+yXYcPjwhz/Mhz/84WG5FwxwzwfA6NGj+b3f+71hG4CIyFCMZJWPwcrkCiTTLgbQ2p4u/SYqV/AuOM+2DMpiDoZhsOy+SRe8ZgQBhpfFyKUI2xCN2ReUy/VSnSR3v0Ly3dcIcufW9Ubq7iYxZwXh8dMwDINM8x46Xv0hWBZGOIaX7iz++SEuCCCGaWKEYliRKIalpVUiIjeTK/0S7EY0oD0fIiI3mpGs8jFQmVyBVNol17ORfPn8Sfzzc3tp786RL5yraGWZBpWJELGITd71qUicm2HobQxo5LNEQhCNOxjnlcstnD1RbAr43jbwe8KMZROfsYBEwzKcqrEXjKn7nQ1gWZh2cV+IYYfxydH9zgaidXf3LK3qqVo1wIpXIiIiA9Vn+Dhz5gw7duxgxYoVfP3rX2ffvn185StfUcdzEbkhjGSVj/7K9jQHTL+/HW/nWvyu07xnTuX59N10ptzSeY5lYlkG5XGHsGORd308L+DxRZMxAg+jkMYs5IiGDCIJu1S5KggCcsf20b1jI7lj534hZEYSxO/uaQoYLbvs2LyusxjhCzcdmtFiA0G7bDTmRZvVRURERlKf4eO//bf/xoMPPkhjYyNbtmzhs5/9LP/rf/0vvvvd716L8YmIXNVIVvnoS2/oyLkeXvMOCq/9M3tyY3mh80GOZMuBYvCYMr6cVUumcM/U0ex5/ywvbG3mbGeGcWPirLp/AjPGOZiZNqIhk3DZeZvIvQLp994iufMlCm0nSsftyhoSDcuJz7gfo4/Gflb5aLx0J0Yo2lMiN4pfyGA5EQUPERG55vq14fyzn/0sf/qnf8qHPvQhVq9ezfe+971rMTYRkT6NZJWPK8nmXJKZQmkPhx8EbHt1Cy+0PMjx/LkZiGmRNh4b28rsT/7nUk+M2VPHcM+0McUeHfkUtu8SsV1C0XNBwM+mSL77Gsndr+CnzxX4CI+fTmLOciJ1d/V7iVTZvR+g+63nMcIxgiDA6z4NhTxVj39uOL4UIiIiA9Jn+CgUChQKBV599VW+8Y1vkMlkSKev3XIGEZGrGekqH+fL5Vy6MwXyBY8A8HyfN99tYV1jE6fOngs7s2JtrBzdzB2RTsinzmvGVyyXSz5NyPCJhk1s69zMhdt5mu6dL5Hev/XCpoBT7y02Bayu6/9ge6pWld31IHbFaDpf/wleZyt2ZQ0Vi58kPnXe0L8gIiIiA9Rn+FixYgWLFy9m1qxZzJ49mw996EN86EMf6tfN//qv/5q1a9cC8Mgjj/ClL31paKMVEbmMka7ycXHoKLg+W3af5PktRzjTca5k7j2xVh4bc4y6SBKAoJDHKK/BAAw3C/k0ETMgErWwzGJFqSAIyJ86TPfODWQP7wJ6mgKGIsRnLSEx+5EBNQU0TKtnA3mkVLUqPmUu8Slzh+NLISIiMiR9ho//+l//Kz//8z9PbW3xB/uf//mf92uz+ebNm3nttdf48Y9/jGEYfO5zn2P9+vV84AMfGPqoRUSugYtDR77g8fqOE7yw9Qjt3TkADOC+WbWsnJKjds9aMG2CIAS+ixmK4Mx5HCt9llCpXG7PJnLfI3N4J8kdG8m3NpWeaSWqepoCLsYM9bcpoFGsWhWJYYYiqlolIiLDKplM8qlPfYq//du/ZeLEiUO6V5/hI5PJ0NjYSGdnZ6nXR2NjI7/8y7981euqq6v5b//tvxEKFZcUTJ06lRMnTlz1GhGRG8HFoSObc3n57eO8+MYRutMFAEzDYOHssTy2aDJjR8cB8CptvN0vYObTGFVjsevvJV47kYhjl8rl+vksqX1bSO56Ca+7rfRMp7qupyng3P53E+9tCBiJYTraPC4icrtKHdpOZ+NPcTuGf3ntjh07+P3f/32ampqG5X59ho/f+q3forW1lRkzZpy3brlv06dPL/1zU1MTzz33HD/4wQ8GN0oRkWsgm3dJpV3Sh97C3bmWVEc7r+Tv5uWOiaTzxV++2JbBkobxrFw4mTGVF85M2JNmExp7B6abJxqCsHOuXK6X7CC5+2WS775OkO9dqmUQqZ9NWcNyQuOm9vt77LmlVVEMq89v4yIicgtLHdrO2XV/D5aNEUngJtuLf378c8MSQJ555hn+6I/+aNi2T/T5U+v999/nueeew7YH9wPuvffe49d+7df48pe/TH19/aDuISIyknpDR67g4jbvoOOVf+Gl7jt4tftecr4NBDgWPHTvJD6wsI6qsvObAoLhuxhuGsvNEw2ZhBLnOoTnzxwjuWMj6UNvgV9sNGjYDrEZC4tNAStr+jnK4tIqKxLD0NIqERHp0dn4U7BsTKf4s8lwIvhk6Wz86bCEj6997WtDvsf5+kwUY8eO7euUK3rrrbf4r//1v/KVr3yFD37wg4O+j4jISDg/dARAR3eOdc/vZnPbUvJBcelT2HB5qPwoy8Z1MPrRFaVrDQMMv4CRS+MEBSJhCydSXGYaBD7Z5r0kd24kd/xA6RozWkZi9sPE73oQK5ro3yANAzMUxQxHtbRKREQu4Xa0YkQu/Jli2GHcjtbrNKKr6zN8zJgxg8985jM89NBDRCLnftvX156PkydP8vnPf55vfvObLF68eOgjFREZJtm8SyrjkssXQ8fZzgzPbznC5p0ncL3iL1xiZoFHqo7zcOUJYmYBMimgJ3R4eYxcmpDpEQlbpXK5gVsg/d42unduxG0/VXqeXTWWsoblxKbPx7CdS8ZzOYZll0KHllaJiMiV2JU1uMl2DOfc5/TAzWH3e2b92urzJ1oqlWLy5Mk0NzcP6Mb/8A//QC6X4xvf+Ebp2Kc+9Sk+/elPD3yUIiLD4OLQ0dKW5vnGJrbsOYXvF/d0JKwCy8qbeHBUK1Gr2EQwKBQwR03E9HIY+RRhMyAatTB7yuV6mSSp3qaAme7S88ITZhSbAk6a1c9lUgaG42CFi53IB7LPTkREbk8Vi5/k7Lq/xyeLYYcJ3Bx4LhWLn7zeQ7ssI+gtYdWH48eP47oukydPHtEBHTt2jBUrVrBhw4Yhl/ISkRvPtr0trNl0kJa2NLUj2BDwfBeHjuOnk6xrbGLb3hZ6vwNWloX5wII6loxuw9z6XTBtcMKYpoXpONh3ryA+YeoFlasKHa0kd75E+sBWArdYBQvTJDbtPhINywmN6d/3MMM0MJxibw4trRIRkYEayWpXvZYvX853vvOdkS+1e+TIEf7zf/7PtLa24vs+VVVVPP3000ydOnVIDxaR28+2vS08vWYntm1QFrVp78rw9JqdsLphRALIxaHjyKku1m5u4p0Dp0vnjK6I8PjiehbNHodjm0Adnm3g79+EmU+BEyV25wLK6+8EwyAIAnInDtK9cyPZpt2cawoYJXHXAyRmP4KVqOzX+AzLLu7lCMf6X15XRETkIvGp84Y9bFxs48aNw3KfPsPHV7/6VT73uc/x0Y9+FIAf/ehH/M//+T/5zne+MywDEJHbx5pNB7Ftg0io+K0nErLJ4rJm08FhDR8XbyQ/dKyD5zY3sef9s6VzakfFWLW4nvvvqsWyzi2JMggIjZuOVT2JqAOhnrEGvkfm0Dt079hI4fS5ZahW2SgSDcuIz1zcz1mL3qVV8Z6qVVpaJSIit48+w8fZs2dLwQPgYx/7GN/+9rdHckwicp2M9JKolrY0ZdELv+2EHYvWtvSw3P/8mQ4/CNh/pJ21m5vY39xeOmdCdYJVS+qZd2dNqds4gIGHWcji+DnCjkEoXBynn8+Q2ttIctcmvOS5+4Rq60k0LCc6paFfsxZaWiUiItKP8OF5Hh0dHVRWVgLQ1tZ29QtE5KZ0LZZE1Y6K0d6VKc18AOQKHjWjYkO6b67gkUwXSqFj9/tnWbu5ifePd5bOmTyunA8uqeeeaWMumG0wAg+rkCYUFAiHTOyeylJusp3krpdJ7X2dIJ/tPZvolAYSc5YTHntHv8ZWXFrV0xBQS6tEROQ212f4eOqpp/jkJz/JqlWrAFi7di2/9Eu/NOIDE5Fr61osiVq9dBpPr9lJFpewY5EreLhuwOql0/q89nKb6ey6OaTSBbJ5Fy8I2HHgNM9tbuJoy7mKU9MmVvLEA/XMqh9VCh29jQFNN02IAtGQhWkW33f+9FG6d2wk8/7285oChojNXETZPUuxK6r78U4NTCdU3MuhpVUiIiIlfYaPT37yk0yePJlXX30V3/f5H//jf6hvh8gtaKSXRAHFELO6gTWbDtLalqamn0u7Uoe2c3bd34NlY0QSFLrbOf3ct7CWPEUw8R627W1lXWMTJ8+kStfMqh/FE0vqmV5XVTrW2xjQymdwTLcndDgEgU/myG6SOzaSO/Fe6XwzVk5i9sMk7noQMxLv8/0ZpoERKs5ymHZoEF8hERGRW1uf4aOlpYV169bxP/7H/+D999/nz//8z5k2bRrV1f357Z+I3CxGaknUxebPqh3wTEpn40+LwcMO4/sBvulQIGDbpjd5MZ3idEemdG7DtDGsWlLPlPEVpWO9jQGtQoaw5RGNWGDYBG6e5L43Se58CbejpXS+PWpcT1PA+zCsvpsCammViIhI//QZPr785S+zfPlyACZMmMCCBQv4yle+wre+9a0RH5yIXDtDWRI10godLQShOIHnk/dNtnSN5cW2SXS4ESCDAcybWcOqxfVMrC0778oAy8tju1nClke4J3R4mW5Se14luftV/GyydHZ44kzK5iwnPHFmP5ZK9S6timOEwlpaJSIi0g99ho/29nY+85nPABAOh/nsZz/LT37yk5Eel4hcY4NdEjWS8gWPVKZAEB9Dprub11P1bGyfSLdXXNJkErBg9jgeX1zP2NHnlkUZBJheDsfNErZ8QlEbsCm0nyK5cxOpA2+A19sU0CI2fT5lDctxRo/vc0xaWiUiIjJ4/ap21dLSQm1t8QPImTNn6GdTdBG5yQxmSdRI6A0dmbxLKlNgo/kIG492kPZ7Q4fPvPAR5t07g3lL7y5dZxBgulkcP0vYhlDUIggMssffI7lzI9kju0vn5owQweQFTHnocax4xSVjuJhh2ZiRGGZIS6tEREQGq8/w8dnPfpaPfOQjPPTQQxiGwebNm/nSl750LcYmIrewi3uKfHzZNGZPHVMKHd2pPBu2HeWlt46SzXlACAuP+eHDNERPssucyZq9FpG6s9x9RyVWIUsoyBF2TOyQReB5pN/bVmwKeOZo6bldJNhrz2SvP4Vck8UnpxeYPfUKgzQMTCeMGYppaZWIiMgwMIJ+TGPs27ePLVu2YFkWCxcuZMaMGSM2oGPHjrFixQo2bNjAxIkTR+w5InL9nN9TJBF1sC0D1wt4bFE946sTrH+jmVfePka+UCx1Gw5ZxCI2lmkQ62n+59gmMQcmjQrx6aWTiIRMTNPEz2VI7d1cbAqY6ig984xVwzvBDE45dQRGsaN5ruBRnojwxU/Pu2B8xaVVcaxwFMPue8O5iIiI9E+fMx8AM2fOZObMmSM9FhG5TazZdJBoxKKqLAJAMp2nrSvLt/99L6lMAdcrho5Y2GbZ/Eksnz+Jr337DaIhi3DIoipmUhkOMApZTp1oJxaZgtvdRteuTaT2NhIUepoCGgbRKXNIzFnO3/z4BPGwdcHsRcg2aes8VylLS6tERERGVr/Ch4jIcMoVXCoTYZLpPN3pAl2pPKmsW3o9EXV4dEEdj8ybSLRnpmNidYIQBcZEAwI3TbIzT3c6T12km7Pr/4nM++9AcK4pYHzmYhINS7HLxwAwuqKdrmSWsHMuVORdn7FjyjBD0eIG8lDk2n0RREREbkMKHyJyzfRuJA87Ns0t3WRyHunzQodlGaxeOo0H50wgHOoNCQGWl2P1gipe3HyIM2cLBH7AWPcoD/n7GJc6TeZQ8UwzVkHinp6mgOEL+5OsXFDHv6zfTw6PiGNh2BaRSIIVj8zGLqtCRERERp7Ch4iMuILrkUwXN5IfOdlNOlPgbGeu9LppGkRDFr/4xCzmzqgBziuX62WJ2AH31Fdi5MdzaPNLTM3vppLu0vXO6Akk5iwnNnUehnX5b2uzp47BMAxe2dVKe8YgFIvx2KIpzJl5/at7iYiI3C4UPkRkxJwfOg4d6+S5zYfZfehs6XXHNgk5JuPHJHhs0eRiQCDAKmR6KlcZ2I6Jl+6ic/srjHr3NSqzqdL1kUl3kZiznPCEGVevRGUYmE6EOXOmc+/994zkWxYREZGrUPgQkWFXcD3efLeFZ197nyOnunDdgEzu3PKq8dVxVi2u576ZtZhmMTQYeNiFJCHyRBwT07QotJ2kbedG0ge2gd9zvWkTm3E/ZQ3LcEaNu+o4DNPEDMcxwxEMS1WrRERErjeFDxEZNr0zHdv2neLbz75LJu9RcP3S69VVUT62bDoN08dgGgYGYARusUeHkS/uxTAscsf3071jI7mje0vXmpE48bseJDH7YaxY+VVGYWDYNma42IXc6CmrKyIiItefwoeIDFlv6EjlCryz/zTf/rd3yRW80uthxyQatqlMhJk7oxrDAMMvYBWyhM0CkZAFAaTfe4PkzpconD1eutauqCbRsJzYjAWYTuiKY3i3qY1X95zlVJdPOBrliSVTmD8rPqLvW0RERAZG4UNEBq0UOrIFtu1tYe3mJk6cObcnIxyyqIg7pfK22ZyL5eWwvBwRyyUctvDzebp3vEZy1yv46c7StaFx0yibs5zI5LuvOnthmBb7TmT4f6+dJusGmIZBWyrJ02t2wuoG5s/ShnIREZEbhcKHiAxYb+hIZvJs2X2KdY1NtLafa9YXjziEHIOyWAjDgFjIpjwSUBOHRJAiFLFxuzro2LmJ1L5GAjdfvNAwid4xl7I5ywnVTL7KCAwM2+lpCBjhX57ZQnfWIxIqfkuLhGyyuKzZdFDhQ0RE5Aai8CEi/dYbOrrSOV7fcZLntxyhravYTdwA5t5ZzarFU+hK5Xhm/QEcx2BCuUUoyJFOZ1kwbwpB+1HO7thI5vAOCILitU6E+KzFJO5Zil026soD6KladXFDwJNnUpRFL/x2FnYsWtvSw/41EBERkcFT+BCRPvWGjo5kjlfePs76N47QmSzOVhgGLLhrLI8tnsz4MYniMeJUOFPYte8Yp053YDgmH7ojQ9WO/8vplsOl+1rxShL3LCU+awlmOHrF5xumdW4D+WX6eNSOitHelSnNfADkCh41o2KXnCsiIiLXj8KHiFxRb0fytq4sm7Yf48U3mklmCgBYpsGie8bx2KLJ1FQVP+QXy+VmCAV55tZFmTuhnvT+LXTv3IS34ww9i6twxkyibM5yonfci2FZV3h6cWmVFYlhhCKX7PtIHdpOZ+NPcTta+aVQJT9yp3GUyYQdi1zBw3UDVi+dNkJfGRERERkMhQ8RuURv6DjdkWHDm8289NaxUp8OxzZ5oGE8KxdOZlRFpFQu13ZzhIwcEcfCz6TofvNlku++TpA7t/QpUnc3iTkrCI+fduWmgIaBGYoWl1Y54cuekjq0nbPr/h4sGyOSIOqm+ETsDV4ww7ydrKVmVIzVS6dpv4eIiMgNRuFD5BZ3/gyBXVlDxeIniU+dd9lze0PHqbYU699o5pW3j5PLF0vmhh2Lh+dN4NH766hIhIuhw3exvSxhI08kZFFoa6V950ZSB97ECIr9PVwsvAlzqHtwFU7V2CuO07DsUui43NKq83U2/hQsG9Mp7vswnAhh4KOJ9/j8bz418C+SiIiIXBMKHyK3sItnCNxkO2fX/T0H7/oY/7IvQktbmok1CZ586A6mjK/gxJkkz285wms7TpSaA0bDNsvum8jy++tIRB0MA0yvgO1liZguTsgkd+w9Tu/YSO7YPqC4+TxDmP3WDHYH00gdD/PJNpvZVReP0MBwHKxwDCMUvfJsyEXcjlaMSOLCO9lh3I7WIX7FREREZCQpfIjcwi43Q5DOJTm7+SckIx9lYnWMfL7A3/xoB6Mqouw/0o7nFytQxaMOj95fx9J5E4lG7J7QkSPk5wiZPo7tkX7vLdp3vkSh7UTpmV1mBTuCGRwNTcUzit9irILHC280M3vqmOJJ/VhadTV2ZQ1ush3DOVfxKnBz2JU1g/1SiYiIyDWg8CFyC7vcDEFHJmCUkWRUeYQzHRlOd2RJZ11OtRX7dJTHQ3xgQR0P3Tuhp3pUgO3lCPlZwnaA6WdI7n6NM7tfwU93le4bHj+dxJzl/M3aDuJh+4JZjJBt0pnMFZdWhaOY4RiGeaWN5n2rWPwkZ9f9PT5ZDDtM4ObAc6lY/OSg7ykiIiIjT+FDZAAGsn/iRnDxDEFAgOkXeM8bx97D7aR7NpEDmAb8/Afu5IGGcTi2hUGA7WcJB1nCFvjps3TvfIn0/q0XNgWcOq/YFLB6EgCjK7bTlcyWupo7jgWWQ2VFBXZFdb+XVl1NfOo8ePxzN9W/CxEREVH4EOm3K+2f4PHP3bAfentnCDyyBKbD+11h/r3rfg4UxgLF4GFbBrGITe2oOEvnTcQIAkJ+FoccYSOgcLqJtp0byB7eBfQ0BQxFiM96gMTshy9pCrhyQR3PvLgfwzKJJsrozJl0pH0+u3zqsASPXvGp827Yr7uIiIhcnsKHSD9dbv+ET5bOxp/ekB+Ct+9r4fmtLtHMQmoyh9mWnsh7+erS65ZlUBEPYVsGBgZPPlhP2MsQJk/I9Mg07eLMjo3kW5vOXZOo6mkKuBgzdPmmgPfMGEsoUcHPtp7kUEuSURVhPvshlb0VERERhQ+RfruZKixt39fC/3t+L+3dOTqSo8gXKkuvTaotY/Ydozh4rJPuVJ47xidYOa+aGWMtHL+b1L4ttO16Ca+7rXSNU13X0xRw7uX3ahgGphPGDMUwQmFmVxrMvmtyv8Z6sy1lExERkcFT+BDpp5uhwlK+4NGdzvOPz+7h+OkkrheUXnNsk+qqGF/57P2YhoGBS9jPEyKHle0muW09Z959nSCf6bnCIFI/m7KG5YTGXX7JlGGaGKEYVjiKYTsDHu/NuJRNREREBk/hQ6SfbuQKS10HttH2+k/ZdspiffednMjFSq+FHYuKhEPINvGDABuPSJDHIU/QcYLkjo2kD70FfrGvB5ZD/M6FJBqW4VwhWBm2gxmOYYYiQ6padbMtZRMREZGhUfgQ6acbscJSwfVo3f0Grz73Iuu7ZtFaiJdem+q0kIhFaI9MYIZ9gkXh96ggRWHtJqyx9aROHiJ3/EDpfDNaRmL2w8TvehArmrj0YYaB6UR6QsfAe3Nczs20lE1ERESGTuFDZABulApLBdejvSvHxreaWbvhKG2FhtJrDaFmHo3uZpzZTiYymuOJBu4ovEc+mcSyChS6UhSO7S2db1eNpaxhObHp8y+7dMowrWLgCEcwrIEvrbqam2Epm4iIiAwfhQ+Rm0jB9TjbmWX9G0d4YWszHd05IIxBwLxIMXSMd5KYoShGqBrPjzCt43V8z6fMKGC4fuleRijKqBW/RKRuFoZhXvQko7i0KtKztOqS1wfn4s3l4cmzcXe+dEMuZRMREZHhp/Aht6xbqYpSwfU43Z5h3ZYmXnyjme50AQDTNFhQ3sqKxAFqcs2YkQRmpJogn8FLdxAzLAKvZwN5z95zIxzDjCTAc4lOvvvCB/UurYrEMJ3hWVrV63Kby92dLxFvWEbuyO5b4t+TiIiIXJ3Ch9ySbrQqStv2trBm00Fa2tLUjoqxemn/+l4UXI/Wtgz/9vr7bNx2lHS2tzGgyQNzxrFy4WQqO98j2L4PI1qLl03idrSAVwwnpVpXhtETTBIYlo3v5rDKR5eeY1g2ZiiKGY5iWCPzbeFKm8tzR3Yz/qn/OSLPFBERkRuLwofckoZSRWmwQeFq93t6zU5s26AsatPeleHpNTthdcMV71twfU6cTvJvr7/PpreOkc17AIQck4fnTuTRBXVUloUxDZ9IxQx8YxXdr3yfINVx4Y0Mk9DEmbjtpzBsG0wL382B51E2byWGE8IKxzFCkQF3Hx/ozJI2l4uIiIjCh9wSLv4gnD9zFCsx+oJz+vNBdzBBoS9rNh3Etg0ioeJ/bpGQTRaXNZsOXnLPgutztKWbn75yiFffOU6hZ49GJGyxdN4kVtw/ibJYCAuPKFmsXAe5/VtI7tqEn2o/dyPTwq6oJnzHXAonDxF4eYJcBmybUO0UyuevIj51LqYdGtR7GszMkjaXi4iIiMKH3PQu90E4yKXxTRsrXlk673IfdC8OLVvPTse2x/YrKPRXS1uasuiF/6mFHYvWtnTpzwXX5/CJTn76yiE27zxRag4Yj9gsv7+OpfdNJBFxsHCJksFKtZDa/Qqpva8T5LM9dzGITmkgMWc54bF3kGneQ8erPwTLwiobg2k7GJZD5eInid8xd1DvpddgZpZu5D4pIiIicm0ofMhN77IfhCNleOmu4nKiK3zQvVxoWZR8kZyzlKPUl867OChcyZWWIdWOitHelSkFGoBcwWN8dZyC63PwaDs/fvkQW3efwg+KoaMs5vCBhZN5eO4EQqf3weZv4aXO4gY+BdMkf+r9UlNAww4Rm7mIsnuWYldUl57R/c4GjEgcOzEKTIugkMNLd9C5+cdDDh+DWUJ1I/ZJERERkWtL4UNuepf7IGzFK8H3sBNVV/yge7nQgpnhXvctjjr1pfNyBY+aUTGu5mrLkFYvncbTa3aSxSXsWHh+QDzicN+dNXz921t5a29raWN4VVmYlYsm80DDeMIhC+PEHgrbf4yfbidIJ4shqocZKycx+2ESdz2IGYlfMB7DNDFMCyteRVDIErjFDeiGFRqWPRaDXUJ1o/RJERERketD4UNuelf6IByqnnTVKkqXCy1lZXGMzg6y+WJQyBU8XDdg9dJpVx3D1ZYhzX/qf8LqBn726iFSmQKxqE0qU+Dvf7andP2YyiiPLZrM4nvG4VgGYcMl5HbQ9tp38DpPg++de5hpYZWPYewnvnxR0z8Dw7Z7GgJGMewQbveZ0ph6vy7DscdCS6hERERkMBQ+5KY32A/ClwstEdsnqB5HlReltS1NTT+rXfW1DGnO9Gp8L+BHm95j18EzpXPGjo6xanE98++qxbFMwkYBJ32a7J5XOLvnVfxs8tz9nAhmtAzsEOQz54JHb2+OcAwzdK43R8WiD49YQNASKhERERkMhQ+56Q32g/CVQsvED3yCrw/wQ/SVZl/M8mpee+c4P375IAeaO0qvTYikeXx+LfctuR/bhKhZwGw7QmbXRjoOvAGeWzrXCEWwYhUYPZWpfDeHVVGNYVo9sxyRi2ZAhvZ16S8toRIREZGBUviQW8JgPgj358P5xT0/7pk6ml2Hzl7SA6Q3yHj5DrxsksB12VOYyHpjLk07tpXuNzncwcpRx7g7ehr7jEOkJYJDgfSODWSbzy3DMsIxEnc9iF1VS9ebzxEQQBCAEWBFyql88GPYldUYhnnJ+7q0T8l/HlKfEhEREZHhYgRBEPR92rVz7NgxVqxYwYYNG5g4ceL1Ho7cxs7v+RF2LDqSeTq6c1SWhahMhOlI5ulK5YlFbOrGlvMfavcT2b+eHbkJrM/M5rhbVbrXtFgXK8vfY2ZlDisSwzRNvLbj+JkugsK5TeRW+RjKGpYRu3MhplNcQpVp3kPy3dcJ8jns8tGUzXuU+JS5/Rpz756VXxtCnxIRERGR4aKZD7mtbdvbwtYX1jMruZVRZpIgPobNwRy2J2tJZQrcHTrOA+ykPN/FGT/BRutuDqUnEXJsOpN5AgJ8P8DzXF7b2cKbmQ/R6p7b+zEzeobHxp5mqnUCMzEay4jgtR8nn+y4YBN5qHYKZXOWE6lvwDDPzWYYpkXizkWUNyzDsPr+z3UgDQ1FRERErjWFD7ltbdvbwgtr/o3HeRUPi6TnYLafZaH1IrnQUlqTaR5jK65rkTJClBsZPh7byr+m4VDnJEKOSSJik3N93mvu4l3vrtK9Z8fP8NjoZiYn8liGgRUaQ771EF42VVw+1cOIJBiz6lcJ1045b2QGhu1gRWLFPiWXWVp1JVdqaBhv28eJ776gzeEiIiJyXSl8yG1rzaaDfMB4Bw8b13DwCx4eNobvcp+3nVzEww0s8tiYQB4bAng0uodTwR0EQcDpzux5WSLgLuc4Pze+hQkJDyscxU924ac6cLPd54UOoxgqnDBVj3zqXPAwDMxQFDMcLS25GqjLNTQclzvMY+bruMnEJT1IFEBERETkWur/r1RFbjEtbWkq6cbtyeBBABiQDyzKg27G2CnyWMXXANOArBlmf2EcHd05OpL5Up6IR2zmVnbwVO0+JpaDWUhROLYH70wzfqYLggAjHMMqG40Zr8AZM5GqRz5FtO5uDMvGipXhVFRjJyoHHTwAVi+dhusGZPMuQVD8//v9t4nFIphOBKOnLC+WXexNIiIiInINaeZDbgmpQ9sHXFK2dlSMjvYyEmRwcTCMYgAJGR5dRhkYECJJwbAp4LA9X8+2bD2ZIFS6R8g2GVMZYVSZw5hYmFD4DN7RbeAVSuc4oyeQmLOc2NR55+3bMDAcByscwwhFMQxjWL4O82fVwuoG1mw6WOpTMimbIxKvuOC883uQiIiIiFwrCh9y00sd2l5cRmTZA1pWtHrpNF5YM5fHeRWCAM+0MD0Xx/RptObhBwELzS1syU7jzdwUckGxl4ZJwD3Tq7nvzhr2HzlLudfOjPSb1J95F7OQKd0/MukuEnOWE54woxQuDNPAcIq9OYYyw3E182fVXrC5/MR3X7hsD5Lh6HQuIiIiMhAKH3LT62z8KVh2cTkRxU7gPlk6G3961fBRnCX4EI0vhIvVrqwkQfkYthpzOZIfTybvsblrFAW/eL6Dy/i4y8pH72PBrDE47UdYdPZVMu9tA7+nKaBpE5sxn7KG5TijxpWeZVh2cS9HOIZhWiP2tbicwXaAFxERERluCh9y03M7WjEiiQuO9XdZUXGW4CngKQCOtybJbjhA89vHcb1i6ohFbJbPn8Ty+ZMoDwVYJ3aRW/t/SR99t3QfMxInfteDJGY/jBUr7x0FphMqBo5QZNiWVg3USHc6FxEREekvhQ+56dmVNUNeVnTkVBfPrD/AaztP4PvFXeRlMYdHF9TxyLyJlFsFOPQy2V0bKZw9fu7ZFdUkGpYRm7EQ0ynuBSktrYpEMe3QZZ93scHsWRmIwXSAFxERERluCh9y0xvKsqKDxzp4Zv0Btuw5WapcVVkW5gML6nho7njK/CTeuz8jtXsTfrqzdF1o3FTKGpYTqZ9d6sNRXFoVwwxHB7S0arB7VkRERERuNgofckPbtreFNZsO0tKWpnZUjNVLp13SqXswy4r2NbXxL+sPsG1fS+nYKCvNB8ae5oFH7idRaeG++c9079tM4OZL55iRBIl5H6C8YXnPkd6lVXGMULjfS6vOn+nwsylwwtg9S8f6u2dFRERE5Gaj8CE3rG17W3h6zU5s26AsatPeleHpNTthdcNlA0h/PqjvPHiGf1m/n50Hz5SO1dhJPjCqmQU1GaxCGn/jG3TnsxS7ewAYGOEIZrQC8Entfo3QmEnE7phb3ETez6VVvc6f6QgMAz+XglyKfKYbq2w0ViSuUrgiIiJyS1L4kBtS6tB2sj/7Dr9BB91+Odu9eTSH6snismbTwUvCx9UEQcDb+0/zg/X72dvUVjo+oTrBB+w3uNc5gukX8E524wVe6XUrXtkTEMByosWKWuE4GAapfVsov+eRQb233upc+B5e91nAAALwXLzuYigyLEulcEVEROSWo/AhN5zemYGQmyNHmFiQZmnhZTYBR5zJtLal+7VBOwgCtuw+xTMvHuDgsY7S8cnjyvngknrudprxX9mPn0riBwG9C6ZcTPI45Bd9gdFb/z+sRBVWJFEMIoUcfi6N19HCYPVW53LbTwAGWBZ4Lr0zLX6yDStRpVK4IiIicstR+JAbTu/MQGBB4Pm4hgMBzHO3c8CfyL2JFs6u+/EVN2j7fsBrO47zzIvvceRUV+m+0yZW8MQDU5hd7cG768nsfBH8czMdPhBg4APtRhVv7W7lU5Nm4iY7CNwcQTYJQFDIDmlWorc6V+C5PZvVTQIzKLZXDwICAkZrs7mIiIjcghQ+5IaSOrSd7LH9EPiMNm06CJP3w7hYlAVduH7Ao9E94F/aVLBt809pbBvDv254j+Onk6V7zqofxRMP1DMz1o6381/IbNh2SejwMQgwMW2bUCTK+5EHae4OUbZsOWfXfasYdIapQV9vdS4Mk8D3wTDAMLDKq4vLrRJVCh4iIiJyS1L4kEHrTyWqgehdbmUYBgEGZuBTZabpwqTgQ9qu5Nd+roHohjUXNBXsyri8dqaW11P1tL3zdul4w7QxrFpcxzS/icKuvyV9bF/pNTOSwHBCBIZJd3eOqANOJEJgmLTlHLZ2VFNZHiI+9V6yDcvo3vosfj6DGYpStvDDQwoHvdW52jZ+l8LpoximjREfhdGz/ErLrURERORWpfAhg7Jtbwt//t1tpHMuQQCn29O8f6yD33lq/qADSO9yKzMx6tzGa6DCTGOXVzH68c8Qn1rLibeKy5YKVoxNp0ezoX0SXX60dB/TgJXzx7J6Qiv5zd8n3X6y9JpdWUuiYRnxGfeTPXGQrjefozw+hjPJAkamG6uQYYM5n4IfsHrpNFKHtpPa+RJmohLLriVwc6R2vkRk/NQhB5D41HkX7l3p2eehWQ8RERG5VSl8yKD8zY92kMq6pT8HAaSyLn/zox38w++vvOJ1V5st6d2IbTrFrd9+uoPAdTGCC/dAhOd/mHU/2sCGzil0eWEADHwqrCzlZRGWxQ4w6/0fkjmUKT03PH46iTnLidTdhWFYGLZNYtZirIpqurb8lMrO07QEMV5mPqnKO/m1nnGd+O7/VwxEFy3xGq4eHOo8LiIiIrcThQ8ZlNMdxQ/25/fUC4Jzxy+nr74dvRuxDSeCFYmTI0R3V5JOL8K3XsjwxJLjHG3p5mevtJLMzATAxOeu0Emqy0zuCp3kjtw+7J5Q5GOQmH4fiYblhKongWFgOpFiF/JQMbQk7phD4o45AEwHHrxozL2B6HzqwSEiIiIyOAof0m/nz1oEweXPudJxgDWbDmLbBpFQ8a9dJGRf0LejYvGTnPjZ03S1Z0i7BlbgEjJ9toce4uSZJP/7n7fh99zfsU0eahhHtOMQM1OHmFRowsgVX8sGNjsLU9gfmsl/X7ESw7SKgSMcxbAG9lf+/EBUeo9uTj04RERERAZhxMNHMpnkU5/6FH/7t3/LxIkTR/pxcp7+9MLor4tnLXp/739x2AiHrCveo6UtTVn0wr9yYceitS0NwN78BF5IL2Cx8Q5ldHHUH83a7P2c6ogRBFmgONOy8v5JPDa2hdCB7+N1NJXu1elH2ZafxjuFOsoqyhg/dhR2ohIjFOkpaTtwvZWpfLLDVu1KRERE5HY1ouFjx44d/P7v/z5NTU0j+Ri5jN7KUVfqhTFQ589apDKF3p7cFzCAjy2bdsV71I6K0d6VKc18AOQKHjWjYqVntNuTOR2ayvHTSTK5c+VwDQNqy2B52WEWn/p3/INn6X01Ha1lfXsd+wrjScSijKlO4BphHloyGzMc6/O9XS2k9VamGq4QJyIiInI7G9Hw8cwzz/BHf/RHfOlLXxrJx8hllCpHDdNG6fNnLTqSOWzLxPP90jIow4DqyiifXjnzivdYvXQaT6/ZSRaXsGORK3i4brGqFBQrZhVcj2OtqQuuqwln+VjNIaamd+Fk8vjFJxKpn03ZnOWExk7FP9qFtaeN5rN5gkiYjz40lXvv7HtpVH9CmjaFi4iIiAyPEQ0fX/va10by9nIVw7FR+vwZgV+2w7yea+BU5A4Kro9pGFiWSdgymVAdJwgCkhn3qrMI82fVwuoG1mw6SGtbmpqealc1VVH+7J+3ceps+oLnT412sCqxl6neQcxUMeUEpk1i5iISDctwKmsxHAcrHOeeueNpuNe45D30ZbhDmoiIiIhcmTac36KGulH64hmBGi/Fo8lXeDELx6waCp6PgUFlWbFqVK7gcW+ihdM/+z5BPkPg+3ipDlp//E3s8mqCfAa7soZZi5/k67/xAACHjnXwg/X72br7VGkJl0HAvMQpHo3uYbx3gt61VVkjQnDHIu548DHseBmGE8MMRzCd8KC/Rtv2tmAfbSblh7Atl6qyMLGIo2pWIiIiIiNE4eMWNdSN0hfPCMQSxVmUB7I72RV6DC8bUB4PEQtbZPMuk9wjPJZej+8XijcwLQLfAzdP4ewxnOrJpSVN7839RX68B7bvP/cBf1yVw3znfe4P3qHCay+FjrNBOe/H7uEjv/AxzHC0538xDPPKG9v7o3cD/X8wEiRIU/AMTndkqK6EiOWpmpWIiIjICFD4uEUNdaP05ZZtReNx6qwk3/3yqlLZ3da2NPcmWljpv4GZ7gkeGOB7xf8H8H3A4GC+hudaJ7D//XOhY+oYk09OPEb1qS2Y+WTp+DFq2e/cRWtoIq4Zxqms6alaNfClVZfTu4H+HfM+lhZeBlwKgUV3V5JIuaNqViIiIiIjQOHjFjaUjdJ9LduaP6u21Jn8xHf/CDcZxr1gy0axHlYQwL7CONY3zeZQpqL06pxaj9VjDlLZuh2ai6HFCwz2uhN5051Gp11NTeUo8oaDFYpghqNXHe/VOqdfTu8G+majnk3APHc75XTR7pcx8/Ff1n4PERERkRFwTcLHxo0br8VjpB/62/tjIMu2SrMkdgjcPAB+ALsKk1ifuYej3pieMwMejL3PqvL9JPJn4WRxp0eeEHuNqewxZnDWimJG46TyBu+eLBCPwq+tnnXV99RX5/TLOb/sb7NdT7NdTzbvUlUeZbmCh4iIiMiI0MzHbWQgvT8Gsmyrd5bESoyi0HmGt7MTeSF7D6e8KgBMfB4v28sjkX1EvBQU8wlW2WgSDUv5i60WiYpKHCeK0elxvC1NLu9iGAZf/IX7rjqDAX13Tr+cvsr+ioiIiMjwU/i4jQy0rOzB5na6j3cSczOkU52UNbczZ+ql961Y/CSta/+BN1ITeb7zAU67cQDC5Pno6APcb+zB9nPnNpFb1bzlTScbuYsVY+6kfFwLx89mIeODYTBudLw0C9FX8IC+O6dfzpXK/vbneSIiIiIyOAof19lA9yoMRe/yqHS2QHt3DtfzsU2DUZmTl5y746UNFF7/ZyzfpDtwCHldFF7/Z3YAc5atKJ2XL3hsOlXJD0+v4myymC6qzCQfr36Pu4IDmG6upxW6Qb5mJuvOTCQVm0gonqAtHfA3/36Yh+6dwP6jR7FtY1CzEH11Tr+S8/etiIiIiMjIU/i4jgazV2Eo7MoaUi3H8LIpqvDwscj4IY6mK+jc23LBM9sbf0rIMylggwH5wCbwXJKNP4VlK8jmXNZtaWLNSwdp784BMMk+y5Oj3mOq+x5mobcpoEPirsWU3bOMv3/5LF2VkAts2rqL3dEDAnYdOsuvrW5g6wvrmZXcyigzSbR6LBNDo4ELvw6X27OiJVQiIiIiNweFj+toMHsVhiI8eTapI3uwMPAxMAOPBGneK9Rg/vhrNG8onNvb4XWSJkSpsq0BhcDCdlM88+IBfvLyIbrTeQwC7gkd5+dGvUdN/ii4xdMzRNhjzuA9ZyY/N20B1XUT2H/mNRzLwDC80pimG8eY2/YWY9alWJVLY5WVY8bGELipS/aj9O5ZCTwXL5vE7T5L9th+pjzwMX5t9cNaQiUiIiJyg1P4uI4Gs1eh10CXa6UObad767NAgAFYQUAhsCgEJg12M22FBFnKifRsQs/6Dg4ebs9fkYzv8E6+jjfzU8mt3YuDy4ORw6xM7KPCby9tIu/wY7g4RGJRJkcDWgouz7x2kj++ewoVifAFy6Pq3CYeKWwiMB2CQg4CHy/diWE7mOH4JftROht/Wgwe6U7AwOhpZNi1+UfM+vjUUud0EREREbkxmdd7ALez2lExcgXvgmP92avQu1yrvStzwXKtbXtbLnt+74yBX8jiY+EHJj4GXUEUx/AwDR/XsGlP5oub0S0bxzawDY+cb/FydiZ/172c13IzcXD5UHwnXxvzEz4RaywGD+AoY3mlcA9Wogq7fAxdro135iiLu9cTObMXKFaYct2AbN4lCALmFt7CxaKsPEHguWBYgIGX6gDAsMO4HecaErodrXjZJGBgGCZggGER+H5xM72IiIiI3NA083EdXWmvwidnZouN+65Q4nagy7V6q1wZtoNZKOAGYGJQbmSwDZ9CYGEYBq7nA8UP/VYIvtWxgtZsCA+LWrODZdF3WRA+jIUHPniYHDImczg+h6bCKJ6IbSaTdcnmO3qebIEX8ICzA7i0wlSVmSRWXkEs4lBI2wSeh2EYxSDChU0Noaekb/dZDNM6790FGJZzQUgRERERkRuTwsd1NH9WLe/dP4mfvvI+mZxLNGzzmYYCVe8+T+GifQ0VD3yM0Q99Aigu17rbOc592e2UB110GeW8Zc3j3bYJl31Ob5UrM1ZJ0HEakwAfsA0fH5NMECIgwLYsTufDPN86ji3d4/ACg2l2C8uje7jbOV66nxGOkbjrQf5xXyVmeS1Jz+ZwSwexyFFSQZhid/OiPBYVQVdpo3hNRytfqKyhYuWTdDbW4SaLMydmrBK36zSuF+Bh0t7aTnnEZPQHzjU1rFj8JNlj+wl8r2eWJAACjHDsgpAiIiIiIjcmhY/raNveFja+eZSqshBjR0XJFTwi760lF8lhFXqWF523ryEyvthk49fNf6WycBYfkxRxYqRZWthEOPHoZZ+RTYUJdbYRWGHCfoi4mcUOAnwM3inUcYd1mk43QmN2JntOjwPg3lATj8b2Mt48W7qXVT6GsoZlxO9+iNR72/go/47R2oEXGHRHQpSZWRJBls4gSjYIAxDCI4Nz2eaG8YZluDtfwidLLnBI+WFi5HBx6AoiPJ+ey8r8BOb3PD8+dR4VD3yMrs0/IvA9DMvBCMcwbeeynddFRERE5Mai8HEdbX1hPf/B2Eql102XX852ex6VdONmMwQ9sxMGAbZpgu/TtuG7BIUsVUZncaYCjwq6CALIEObR6J4L7r9tbwsvrPk3lpGmik58z8A0fAggMIAAaowu/jn9ME2F0USMAksj77I0so8K89ym9xajmiNlc7h76aNMurOOjm3P0fHy9zF88AMfh4BRpkvKt4mYHqOMFO0+eIFFyPLxLeeyzQ1zR3YzuqeLevpoMx1GJZuc+2i26wHI5i9dSjb6oU8QGT+1X53XRUREROTGovBxnaQObWdR8kXC5ImQozzoZkL+OCmiWIFHYFilxUuu72NZNm7bCazKGkzfK/bt62EAMXKYXccveMbWF9bzITYRJgcE2D1XBUCTO4b1mXt4tzCJKjPJR2LbWBw+SMQo9JxjcJiJHIg2kCqfQnvW4NXnmvllu5wxm39MEICHgd1zP4Co6dHmJyg30lSaGY4FNWwy7uUT4a0YdviCsfVuJo9PnUd86jz+4GvrKYvaGMa5JVtXqvzVe42IiIiI3FwUPq6TzsafEqFAJMiVjhlAnEwxdAQ9m64pBoGU51Bm5Yof4gP/svcM8pkL/nxv8mUiZAATHxsTl0NuDc9nGjjgjqfOOsMvxV9mbqgZ0yhGiEJgs9urZ6d1Fx12NZYZw0gZ+H6AT8CaTQf5XD6DGxgYgGGci0EGAeVWlgwJwGfD6E+zeuk04m814ybbMXpmPopv78LN5IPtUi4iIiIiNw+Fj+vE7WglTPaS48Zl/mwQEAuSGGYYL9VxwazH+YLAp/mvf6O0FGkMnQSBgR/AAXcsG7N3c9it4W7nKP+lbB3TnNbzroWCFeFMeALvF2ZxoGsMOdfFtlJMqI4D52YizHAUI5chwCC4aMwmPpVmEmf0RL7+q8W+G6nQk8VSv2Qx7DCBmwPPvWCfhrqUi4iIiNz6FD6usd7mgI922ky+UoqASz7Ue1iEIolS+Lg4pJSuOW9DdxAE7M5P5MXsPbR4FSwIH+LT8c3UWN0XXuOEMaMVOL5LLN3GI4WXOO0txLJgaWgPNZkUXUY5W5hL56g7KZv9Ydpe+RfgwhkY//xxnTfA+NR50LO340r7NC4uw6su5SIiIiK3HoWPa6i3OaBtG7zj3Mfk/Il+X2sSYMUrCdw8fqb7sudkCRMxDAI7wlvd5aztWkjSD/NQZB8PhA+QMHPnnW1gRmIQSUA+S6G7Dd8PiBEQGAafS2zoeSoYQUA0SPM4G2HmZEY/9AlOnu7G2LueCHkCwCveEdO2sRKVBLkLl4D1Z5/G/Fm1ChsiIiIitzCFj2tozaaDTDOPssh/h2p/YE3xfMPCz6Xwc+mePSHnvdgzy2AFPo0d1aw7MxHTy7Ms8i7zQ+9jG8UZigAwTAsjksAKRfCzKbzO0xD4mMG5dveeYVDsH+6DUWwmaAIJI0/o4L/DshXMXv0f2bb3g7T/7E8Iud0EVpiqsjCRiINfyGInqob0tRIRERGRW4/CxzUUb9vHSl7DNSwc3KuffNG6KitWUVxyVdyBfkH28HyTrfmpbMjezZjuJB+NbOau0LlZlQAwLAcrVgEE+LkUbrqz9Jjggn8Ai6D0fAMD2yh2EQ98j8LZc/edP6uWVOgz53p42DZ+IXvJfg4REREREVD4uKYesXdRcE0KgY0ZXGXDx0V8J0akrJzC6Xa8IMDsCQr5wKIxN51XsrOY6rTyK4mXmWi3l64LANOJYMYqoJDDS3WA1xN6zgs3vf8YXBR4ijknwAggCAIM49K9Jv3ZzyEiIiIiAgof11RtKE2ra+N5Pr5p9OyouDwTwDAJ1d2FSbE6lulESOUCzMBjS3YaW3LTmBtq5jcr1lFpnttjYYSiJO79AKl9Wwhy6dLSqisJrvCH3smQwADP87ANcMZMuOR69d0QERERkf5Q+LiG4tXjqD57mpOdLt1+mArz0lK7Fwh88kd2E5v9MHVP/U9a9mzjxz/YwL5cDYvCB/lSxb8TNnr6gQTQFh7HO/El/Mp/+himE6Zty7OlxoJXfsaVX+qtXlUsqWuQDkKMXfHUgN6ziIiIiEgvhY9rqGLxk7jr/p4KK0PI72PPx7nFULTsepNnuzeyf18TS6xTfLj8zVJTQD+AjF3OvooHeMefhu2EMZ1iN/GcVYbtdV3+9v3IJKe8KgICYqZLyq7gNX8Ov6cZDhEREREZJIWPayg+dR5HEnUk2t/EuFyjjot0+FE2ZmbR7Ud5+OAzrIieLr2WMmLsc+5ib+geKoMOGjq38THvNeLV40gdChOfOg/PD+j0w5Sbucv2BbmaTBDi2cw89rkTsEyTsaOjVFVGB3gXEREREZFzFD5GUG9DwXjbPh6xdzHW6iCU6yYwwMfEusI+jLNegk25WZgEPBzZxxgrWXrNNx1C/397dx4eVX33ffx9Zs5MJvskkICCYCFYFosLKESQRcsaEAVscaNWUdqLqhftZV1q2/vWtgpqcWt9tPXSVlHUW4QH60NZhN6FpCqigAUUUQQESViyTmY55/yePwIDYaeaZJDP6y9n5szM73ydM5MPv611e84c+D0cryMVCxbRp3YR+AJk5YYJeXUNq08Nn0S5k0k2PrJI4GERwD2udrtY1HjpXBL6Nx/VtcPvs7TbuIiIiIh8ZQofTWTfhoJFvi0MZVnDKldOPcHkKraHBo8dbg7LY2eR46tnRPoqMn3x5GOe5cfOyMHOLYRYLRWzf09eWgYjXQcrO4Q/M7z/WKJUlc1laexsrgj9C5ejT24/kAF2e1nE8dPKVwtYnNY6kx+UdNcGgCIiIiLylSh8NJHZSz/Bti36eh/gWH5svCPO89jmhFkR78RpdiVjMlYmNwV0jYVl2wQycvBj4cXrccs/wxgPjMGLRsBLQKwOr74Gf3Y+vrRMLDsNp7Kc2vxB/M9Ow+j0lbT1Vx6zzQaoMenETJCg5RBLy+OXV/ZR6BARERGRr4XCxwmq27jyuPa02LE7Qna6TU60GmMssqg95JjNTj5rE+3pFKhgTObK5P0J48cfsAlm5oITw62rxvJZDRsMunHwBxqWtzIJ9q1HZZwETvVO7BzA58cOF3JR4WnMWlDNuup2dAt8weSsxUc8rwR+6kwa9VY66bZLXkaA0y+bSGZnBQ8RERER+Xr4WroBJ5O6jSvZNf/POLV7sEJZOLV72DX/z9RtXHnIsW3yM4glXKqtHDKp48Dt+TYmClgS7U7A8hiRsZpvB7YDUG8CmGAGaeFW2IEgbvVO3Loq8BIYJwHGBSwsy9q/b4fPv/dVG7Y9d2p2J3cYX7NxF3k5IdLTbDZ4Zxxx4JUBFmdfRpUvTJY/QW5BIadfNll7d4iIiIjI10o9Hyegqmwu+G18gRAAViCUnF9x8B/qYwcV8dTs1fzLdy5jeRPP+NiQaMMuL5vuwS8oCu5fuarGC5GdESAzGGrYFLCyAss6OCoY8FywfBjPbbjt82P5/A3DsPayjKHV8Elkdj6fHbsXEs4KkpfdsPTu+1WdON/+9JDz2pzZgym3XQtoDw8RERERaToKH+xflWrH7ght8jMYO6josPMcnMpyrFBWo/v2za84WO9ubWBsT15bks77O9bhx6V74AvOsnYADfM5asgkL9MmbAdw62twq2qO3Eg72BA+AMvnw+xdq9cYD3w+7JzWDcOtsvKSQahNfgZ7qusJBRv+N5fmlmCq3uBcexN+DB4WWzK7c8nUe0+8aCIiIiIiJ+iUDx/7VqWybYvsdJs91fU8NXs1jO1J725tGgWTH9ppFLp1ZGTtDyDGiWGHCw+ZC5J14Wi8L+sZVPV/6Rz4FN/eUVcxY1NnZdIqO0C+5eFFanHq4oe0y7B/oJaVESaQ0wpjDCZaS6sRN7F78Qskdm4Bv40/K79h+NXe4Vb77Ot9ieKQFvATS7gsDAyj095zA+jSVIUVERERETnIKR8+9q1Kta93IBS0ieIwe+knAI2CyfJYT75b+78ApGdmYpwYuA5pHc9u2FvDb5PwLNZ/upv0jf+HdvYeWgNYUOll4PhDFOb6SU8kcCOV4B5rl3MgmEEgpxWwP+hkdj6fzM7nNw48WXmHTH7f1/sye+knlO+OUHiUXh0RERERkaZ2yoePfatSHSgt4Kd8d+SQYPJlqBOLotCn7gPCkZ3s9rJYl3UR3123Ehs/n+/xk+vsocgfSb5WhZeD3ekClkS7M67yOdyqyv2TxY/CGIhZQexgNgFjkkHnwJ6NfSHkaHp3a6OwISIiIiIp4ZQPHwfPiwCIJVwK8zMOG0w+MWdQuqc1p7fOIC3NT6C+iq3V1bS1dnGmlQAfeAa2uq3JzAjQNpwJu1czouZfeF7dcbfLAFVkU1/r5wyvisyC0464rK+IiIiIyMnglA8fh5sX4TiGsYOKmL30k0OCyZ7qGAG/xRn2HnpGV/JtbwN+X8PKVHHjZ5PbhoIcm28FY3jRWtxdFeB5hA5Yavd4WBaErAR/9X+PvFA6v7u239d63iIiIiIize2UDx8Hz4s4L2sH303/N+mLZ/ODYJjXnCK20LEhmMQdugW2MDi0ljOj2xpewIJqL8Rnblu+FYZu/lq8WBVuTQzL8jWMn2LvClV7V6s6HgaotrKTQ8BERERERE52p3z4gP3zIho2EXwdPBsrlEW6U8eVGe+wyLKxotX08lbRKrQn+bztTi4r6cGe/B50yaojzynDrdjdsAJVdivc6p0NB1oNGwM6WPiPuNVfAwN4WICPlfb5ySFgIiIiIiInO4WPAxy8iSD+AC4xBtXNJ439y+F+nGjL+1YPInlnUe/ZVNUkqPRa02Xo7XQLfpFcgcoXCGEFQ3ixOozrYiw/rnHw0bCMrgHixsaHIWb8BCwP23Ix+HjX14uPvfbJIWAiIiIiIic7hY8D7NtE0LgOkdo6fPW7CdKwMpVrLFY5nUh0vpjCoq64a3cR+vJDBrofkO+vpaoumwWzz4Wxo+h97X8D7O1J+TO+tEzcukpsC1zjo9IL4eHjfyJ9WO+0o0+4gmLfKvJ9tcQyW1NqzuH92jYUhtO1NK6IiIiIfGMofNAQEipL5+DUVRGvqSHo1RPY+1jEC7Ii0ZnA2ZfSr+/Z5ORmk5Fus/G9d+nNMlzbJkaILOoZzj8pW5BG727XAg1L4TJ8ElVlczGeA46DZyyiXh7/cL6D3bErvzpMuDivmc9fRERERKQ5nPLho3bDCnb+7Y/E6qMEvBjBvffvdLN4J96F3JwMBo4oJqfLeWSm28mVr4qqynDx41gNMcUhAMbQrfZt4Nrk6x9uL44uQP9mODcRERERkVRyUoePVUsWU/POPDKcSiJ2mOwLR3PO4EuP67leLEL1+4uoWPISfi+e7On4zGnNu7HOdMh2GNHZT2bPfoS/3avRcrsA+b5aIl6w0QK6CWzyfbVfz8mJiIiIiHzDnLThY9WSxTilzxPET4w0gk4NTunzrIKjBhCnqoKdi56j9qN38RkXPw2bAq5JdOD9xLc4O1zH93I/gXgdp1/5l0aho27jyuRk8ix/AuO51HsZWFbDiro2Dumt2jb9yYuIiIiInIRO2vBR8848gvhxfQ0DpVyCBLxagmXPsGnVTJx4nPoEVJDHuqw+nHlmO7I+XUy7yHp8GHxAzNi8HevMOqcDffN2cn1wDcQjEHWwsA4JHrvm/xn8Dcvw2q5DjlOJH4saEyLk88gJ2Zx+6ZUtVBERERERkdR20oaPDKeSGGnJ20EvRiZRLOPhRhw8Y0jDom2gljPq/x/+D6PJY6u8dP432pXPaccl4c1MtkohFgFvbzmMwW7VrtH7HbwMr52VB0BOIkY45MMOtyW3eMwh8ztERERERKRByoaP+s3/ZtvSP+FUlmOHCw/5wz5ih8l0dhHyEvhxsTAY9u6fYUEgEMQ4CexEdfI525wwS6LdqbDy6Zuznd68T5ZTi/EiWBgwBsvnw0rLIv/Saxu1Z98yvAfyZ4Yx0Vo6/OTJpiyFiIiIiMg3QsqGjz3/mEVaXjYeFrEvPmbHy/cTKDiD/EuuJbPz+YS79CRt3ZsYLAwWfjwsOw18PkhEMfH9PR3rEqexpL4Hm63TuCJ/PUO9t3Hchp3GI1YQj3SyA4ZgRvZhgw6AHS7Eqd2DtW8DQsA4MexwYfMURERERETkJJey4SMejVG/qxYbb2+Pho/E7u0N8y6GTyI/8jl1oVy8WAQ7YGMZD5OIJlefcoyP9+LfYkm0O/lpDr3CO9iV6MQWt5CzvPUY10ccP0HbYPDz97TvMuUn1x6xPbnFY9g1/894RLHsNIwTA9cht3hMs9RDRERERORkl7Lhg3gNdrBhMnlDoPAwrgN+m6qyuSSqdhII2tiuhYlHksfVeUGWx77NsuhZdM6o5trWqzjN3c4/vZ5cH/gbmU4VES8AGLLsBDVWDu/Z57O29ui7iB+4YeCRhoKJiIiIiMiRpWz48B3mPmM8rLRMElUVuHWVkIglH6tws1ka7caKWCfOyargJ4VlFDhfYhIeUSuDvmmfUp+wqDVBgpZL0O/xj+AgNttnEo07FOanH7NNh9swUEREREREjk/Kho/GLKxgCJ/PR2LHp+A6yUc+TRSwJNqDtYnT6ZO9nTvCb5Hv7ISE1/BMn58MYviD6eTkhcmOJqiorMclwfnOSj722uM4hrGDilrq5ERERERETgmpHT58fqxgesN8jlgEs/duz1isindgSbQ727x8+mVv5Vf5C8hN7IKEafQS/pwC3OoK3Ggt/swwGaEABWHYU22R7VWTF05n7KAienc7+rArERERERH5alI2fFihLCy/BdHaZOiIGpt/xbrwj2hX6kw6A3I2c1PwX2S7eyDR6NmAAcuHP5SJV1eJcfcfkBEKEPK72FmF/O7afs14ViIiIiIip66UDR9Ea8FumHBe6aXzj2g3ymJngZ3GpX070G/bX8mo/hzcwz25ce+HlZaBqa/BS2ilKhERERGRlpK64QPY6uSxJNqD9+MdSfe5fDd3E/2zN5H9rasJdvkekQV/xMQiHBw29q2PhR3AS0Tx2QGy+40j9vmHWqlKRERERKSFpGz4+EtNf76If5scf4zRuespDvybkBeFOvBKX6DNT56kLjNIVdlc4ju3YGIRrFA2/swwbl0lJlqDFQxhZ+XtDxoXX9nSpyUiIiIicspK2fCxizBXhldxgbWWoOWAB/vmcrhV5dRtXNlo6du6jSuTe3AEW52ung0RERERkRSTsuHjexmlnGfVYu0dQdWwy/l+VWVzG4UL7cEhIiIiIpLaDreXX0pI84Nn+cAcOKNj73/5bJzK8hZqmYiIiIiI/CdSNnzgJoh4wYbRVuzr9bAals/NzMUOF7Zc20RERERE5ISlbPiIkM5cdxArQ8VYPhvL54dAEH9WHpbf1jK5IiIiIiInmZSd89H/1v9mQvv2QOPJ5FomV0RERETk5JSy4eNAmkwuIiIiInLyS9lhVyIiIiIi8s2i8CEiIiIiIs1C4UNERERERJqFwoeIiIiIiDQLhQ8REREREWkWCh8iIiIiItIsFD5ERERERKRZKHyIiIiIiEizUPgQEREREZFm0aThY968eYwcOZIhQ4Ywc+bMpnwrERERERFJcXZTvfCOHTuYMWMGs2fPJhgMMmHCBPr06UNRUVFTvaWIiIiIiKSwJuv5KC0tpW/fvoTDYTIyMhg2bBjz589vqrcTEREREZEU12Q9H+Xl5RQUFCRvFxYWsnr16mM+z3VdAL788sumapqIiIiISLNq27Yttt1kf3qfNJqsAsaYQ+6zLOuYz6uoqADgmmuu+drbJCIiIiLSEhYvXkz79u1buhktrsnCR5s2bVixYkXydnl5OYWFhcd83tlnn83MmTMpKCjA7/c3VfNERERERJpN27ZtW7oJKaHJwsdFF13E448/zu7du0lPT2fBggXcd999x3xeKBSid+/eTdUsERERERFpIU3a8zF16lQmTpxIIpFg/Pjx9OzZs6neTkREREREUpxlDjc5Q0RERERE5GumHc5FRERERKRZKHyIiIiIiEizUPgQEREREZFmofAhIiIiIiLNQuFDRERERESahcLHCaqtrWXUqFFs3boVgNLSUkaPHs3QoUOZMWNGC7cuNT3xxBOUlJRQUlLC9OnTAdXteDz66KOMHDmSkpISnn32WUB1O17Tpk3jzjvvBGDdunWMGzeOYcOG8Ytf/ALHcVq4daln4sSJlJSUMGbMGMaMGcOqVauYN28eI0eOZMiQIcycObOlm5iS3nrrLcaOHcvw4cP5zW9+A+gaPZZXX301+TkbM2YMvXr14t5771XdjsPcuXOTv6XTpk0D9P12LE8//TTDhg1j9OjRPPnkk4BqlhKMHLcPPvjAjBo1yvTo0cNs2bLF1NfXm4EDB5rNmzebRCJhbrjhBrN06dKWbmZKWb58ufn+979vYrGYicfjZuLEiWbevHmq2zG8/fbbZsKECSaRSJj6+nozePBgs27dOtXtOJSWlpo+ffqYO+64wxhjTElJiXn//feNMcbcddddZubMmS3YutTjeZ7p16+fSSQSyfu+/PJLM3jwYLNnzx5TV1dnRo8ebTZs2NCCrUw9mzdvNv379zfbt2838XjcXHXVVWbp0qW6Rk/Axx9/bIYMGWK2bdumuh1DJBIxF1xwgdm1a5dJJBJm/PjxZvny5fp+O4rly5ebUaNGmZqaGuM4jpk8ebL5+9//rpqlAPV8nIBXXnmFX//61xQWFgKwevVqOnbsyBlnnIFt24wePZr58+e3cCtTS0FBAXfeeSfBYJBAIEDnzp3ZtGmT6nYMF154IX/961+xbZtdu3bhui7V1dWq2zFUVlYyY8YMfvSjHwHwxRdfEI1GOffccwEYO3asanaQTz/9FMuyuOmmm7jssst44YUXKC0tpW/fvoTDYTIyMhg2bJjqdpCFCxcycuRI2rZtSyAQYMaMGaSnp+saPQH/9V//xdSpU9myZYvqdgyu6+J5HvX19TiOg+M42Lat77ejWLt2Lf379ycrKwu/38/FF1/M888/r5qlAIWPE/Db3/6W3r17J2+Xl5dTUFCQvF1YWMiOHTtaomkpq0uXLsmLfNOmTbz55ptYlqW6HYdAIMBjjz1GSUkJxcXF+rwdh1/96ldMnTqVnJwc4NBrtKCgQDU7SHV1NcXFxfzhD3/gueeeY9asWWzbtk2ftWP4/PPPcV2XG2+8kcsuu4wXX3xR1+gJKC0tJRqNMmLECNXtOGRlZXHbbbcxYsQIBgwYQLt27QgEAvp+O4oePXqwbNkyKisricVivPXWW9i2rZqlAIWPr8AcZnN4y7JaoCWpb8OGDdxwww3ccccddOjQ4ZDHVbfDu/XWWykrK2P79u1s2rTpkMdVt/1effVVTjvtNIqLi5P36Ro9tvPOO4/p06eTkZFBfn4+48eP57HHHjvkONWtMdd1KSsr48EHH+SVV15hzZo1ybmAB1LdDm/WrFn88Ic/BHSdHo/169fz2muvsWTJEpYtW4bP52P58uWHHKe67VdcXMzYsWO57rrrmDRpEr169cJ13UOOU82an93SDTiZtWnThp07dyZvl5eXJ4dkyX7vvfcet956K3fffTclJSW88847qtsxbNy4kXg8Trdu3UhPT2fo0KHMnz8fv9+fPEZ1a+zNN9+koqKCMWPGUFVVRSQSwbKsRp+1iooK1ewgK1asIJFIJEObMYZ27drpGj2G1q1bU1xcTH5+PgCXXnqprtHjFI/Heffdd3nggQcA/ZYej2XLllFcXEyrVq2AhuFCzzzzjL7fjqK2tpYhQ4YkQ+6zzz5Lu3btWLFiRfIY1axlqOfjKzjnnHP47LPPkt3vb7zxBgMGDGjpZqWU7du3M2XKFB566CFKSkoA1e14bN26lXvuuYd4PE48Hmfx4sVMmDBBdTuKZ599ljfeeIO5c+dy6623cskll3D//feTlpbGe++9B8CcOXNUs4PU1NQwffp0YrEYtbW1vP766zz44IOUlZWxe/du6uvrWbBggep2kMGDB7Ns2TKqq6txXZd//vOfDB8+XNfocfjoo48488wzycjIAPSbcDy6du1KaWkpkUgEYwxvvfUWF154ob7fjmLr1q1MmTIFx3Goqanh1VdfZfz48apZClDPx1eQlpbGAw88wC233EIsFmPgwIEMHz68pZuVUp555hlisVjyX7gAJkyYoLodw8CBA1m1ahWXX345fr+foUOHUlJSQn5+vup2gh566CHuuece6urq6N69OxMnTmzpJqWUwYMHJz9rnudx9dVX06tXL6ZOncrEiRNJJBKMHz+enj17tnRTU8o555zDpEmTuPrqq0kkEvTr14+rrrqKTp066Ro9hi1bttC2bdvkbf2WHlv//v1Zu3YtY8eOJRAI8J3vfIebb76ZIUOG6PvtCLp27crQoUO57LLLcF2X66+/nl69euk3IQVY5nCDLUVERERERL5mGnYlIiIiIiLNQuFDRERERESahcKHiIiIiIg0C4UPERERERFpFgofIiIiIiLSLBQ+RERSxPz587nuuusAePTRR5kzZ85Rj3/iiSdYtGhRM7Ts8LZu3cp5553X6L4333yTPn36UFZW1kKtEhGRVKZ9PkREUtBtt912zGPefvttioqKmqE1x2fWrFn88Y9/5LnnnqNbt24t3RwREUlBCh8iIi3o0UcfZd68eYTDYTp27Ji8/84776RLly7ceOONPPbYYyxcuJBAIEBeXh73338/Cxcu5MMPP2T69On4/X6Kioq49957iUQilJeX07VrVx555BHS0tKSG5ItX76c8vJyJk6cyPXXXw/AU089xeuvv45t23Ts2JEHHniA7OxsXn31VV566SU8zyMcDvPLX/6Szp07H/E8nn76aWbPns2LL75I+/btgYZw9Pvf/57CwkI2bNhAeno6t9xyC88//zyfffYZQ4cO5e67727S+oqISGrRsCsRkRayaNEiFixYwJw5c5g1axa1tbWHHLN9+3b+8pe/8NprrzF79mz69evH6tWrueaaazj77LP5+c9/zpAhQ3jllVe4/PLLefnll1mwYAFbt25l6dKlAMTjcfLy8pg1axaPPfYYDz/8MLFYjMWLFzN79mxefvll3njjDdq3b88LL7zAO++8w5w5c5g5cyZz5sxh0qRJ3HLLLUc8j+nTp/Pwww9z3XXXJYPHPmvWrOHHP/4x8+fPp1WrVjz99NM89dRTyaCyY8eOr7WmIiKS2tTzISLSQsrKyhgyZAhZWVkAjBs3jueff77RMW3atKFr165cccUVDBgwgAEDBlBcXHzIa91+++0sX76cP/3pT2zatIny8nIikUjy8UsvvRSAHj16EI/HiUQilJWVMXz4cHJzcwG46667gIYw8fnnnzNhwoTk86uqqqisrCQcDjd630gkwscff8zTTz/N1KlTOf/88xsNuWrfvj3du3cHoEOHDmRnZxMMBsnPzyczM5OqqiratGnzn5ZQREROMgofIiItxLIsjDHJ236//5BjfD4fL7zwAmvWrKGsrIzf/e539OnTh3vuuafRcT/96U9xXZcRI0YwaNAgtm/f3ui109LSku8JYIzB7/cnbwNUV1dTXV2N53mMGTOG22+/HQDP8ygvL0+GlAOFQiGefPJJAoEAkydPZsqUKcyePTsZUoLBYKPjbVs/OyIipzINuxIRaSEXX3wx8+fPT/7BP3fu3EOOWb9+PaNGjaJz585MnjyZ66+/no8++ghoCCuO4wCwbNkypkyZwsiRI7Esi1WrVuG67lHf/6KLLmLhwoXJ4V6PP/44zz33HP369eNvf/sb5eXlALz00kv84Ac/OOxr+Hw+AoEAADfffDNFRUX87Gc/w/O8/6woIiLyjaZ/ghIRaSEDBw7ko48+Yty4ceTk5NC1a1f27NnT6JiuXbsyYsQIxo0bR0ZGBqFQKNnrMXjwYKZNm0YikWDq1KlMmTKF3Nxc0tPTueCCC9i8efMx3/+TTz7hqquuAqCoqIj77ruPrKwsbrrpJm644QYsyyIrK4snnniiUS/J4ViWxbRp07jiiit45JFH6Nev31eojoiIfBNZ5sB+eRERERERkSaiYVciIiIiItIsFD5ERERERKRZKHyIiIiIiEizUPgQEREREZFmofAhIiIiIiLNQuFDRERERESahcKHiIiIiIg0C4UPERERERFpFv8f1CyB8YOzHVgAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Consume vs Km_absolute\n", + "sns.lmplot(data = df_train, x = 'distance', y = 'consume_100Km', hue = 'gas_type', height=6,aspect=1.7)\n", + "plt.xlabel('distance Km')\n", + "plt.ylabel('consume l/100km')" + ] + }, + { + "cell_type": "code", + "execution_count": 512, + "metadata": {}, + "outputs": [], + "source": [ + "#gas_type[['consume_100Km','speed',]].mean().plot(kind='bar')\n", + "#'SP98': 1, 'E10': 0" + ] + }, + { + "cell_type": "code", + "execution_count": 513, + "metadata": {}, + "outputs": [], + "source": [ + "#gas_type.agg({'consume_100Km':'min','speed':'max',}).plot(kind='bar')\n", + "#'SP98': 1, 'E10': 0" + ] + }, + { + "cell_type": "code", + "execution_count": 516, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume_100Kmspeeddistance
gas_type
05.993888130.3
12.69288256.1
\n", + "
" + ], + "text/plain": [ + " consume_100Km speed distance\n", + "gas_type \n", + "0 5.9938 88 130.3\n", + "1 2.6928 82 56.1" + ] + }, + "execution_count": 516, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg({'consume_100Km':'max','speed':'max','distance':'max' })" + ] + }, + { + "cell_type": "code", + "execution_count": 515, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume_100Kmspeeddistance
gas_type
00.1638164.1
10.2035162.9
\n", + "
" + ], + "text/plain": [ + " consume_100Km speed distance\n", + "gas_type \n", + "0 0.1638 16 4.1\n", + "1 0.2035 16 2.9" + ] + }, + "execution_count": 515, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg({'consume_100Km':'min','speed':'min', 'distance':'min',})" + ] + }, + { + "cell_type": "code", + "execution_count": 517, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume_100Kmspeeddistance
gas_type
01.02524643.98089221.463057
10.74855240.60280415.987383
\n", + "
" + ], + "text/plain": [ + " consume_100Km speed distance\n", + "gas_type \n", + "0 1.025246 43.980892 21.463057\n", + "1 0.748552 40.602804 15.987383" + ] + }, + "execution_count": 517, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg({'consume_100Km':'mean','speed':'mean','distance':'mean' })" + ] + }, + { + "cell_type": "code", + "execution_count": 518, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
gas_type01
distancemin4.1000002.900000
max130.30000056.100000
mean21.46305715.987383
consumemin3.7000003.700000
max8.1000008.700000
mean4.8668794.814019
speedmin16.00000016.000000
max88.00000082.000000
mean43.98089240.602804
temp_insidemin21.00000019.000000
max25.00000025.500000
mean21.91266621.978344
temp_outsidemin-5.000000-3.000000
max27.00000031.000000
mean10.07006412.233645
ACmin0.0000000.000000
max1.0000001.000000
mean0.0445860.102804
rainmin0.0000000.000000
max1.0000001.000000
mean0.0955410.140187
sunmin0.0000000.000000
max1.0000001.000000
mean0.0764330.084112
consume_100Kmmin0.1638000.203500
max5.9938002.692800
mean1.0252460.748552
\n", + "
" + ], + "text/plain": [ + "gas_type 0 1\n", + "distance min 4.100000 2.900000\n", + " max 130.300000 56.100000\n", + " mean 21.463057 15.987383\n", + "consume min 3.700000 3.700000\n", + " max 8.100000 8.700000\n", + " mean 4.866879 4.814019\n", + "speed min 16.000000 16.000000\n", + " max 88.000000 82.000000\n", + " mean 43.980892 40.602804\n", + "temp_inside min 21.000000 19.000000\n", + " max 25.000000 25.500000\n", + " mean 21.912666 21.978344\n", + "temp_outside min -5.000000 -3.000000\n", + " max 27.000000 31.000000\n", + " mean 10.070064 12.233645\n", + "AC min 0.000000 0.000000\n", + " max 1.000000 1.000000\n", + " mean 0.044586 0.102804\n", + "rain min 0.000000 0.000000\n", + " max 1.000000 1.000000\n", + " mean 0.095541 0.140187\n", + "sun min 0.000000 0.000000\n", + " max 1.000000 1.000000\n", + " mean 0.076433 0.084112\n", + "consume_100Km min 0.163800 0.203500\n", + " max 5.993800 2.692800\n", + " mean 1.025246 0.748552" + ] + }, + "execution_count": 518, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg(['min', 'max','mean']).T" + ] + }, + { + "cell_type": "code", + "execution_count": 519, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsunconsume_100Km
27393.94.88823.01801014.5072
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside gas_type AC rain \\\n", + "273 93.9 4.8 88 23.0 18 0 1 0 \n", + "\n", + " sun consume_100Km \n", + "273 1 4.5072 " + ] + }, + "execution_count": 519, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_max_speed=df_train[df_train.speed == df_train['speed'].max()]\n", + "df_max_speed" + ] + }, + { + "cell_type": "code", + "execution_count": 520, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsunconsume_100Km
24511.86.11622.5600100.7198
37315.36.61624.02711001.0098
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside gas_type AC rain \\\n", + "245 11.8 6.1 16 22.5 6 0 0 1 \n", + "373 15.3 6.6 16 24.0 27 1 1 0 \n", + "\n", + " sun consume_100Km \n", + "245 0 0.7198 \n", + "373 0 1.0098 " + ] + }, + "execution_count": 520, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_min_speed=df_train[df_train.speed == df_train['speed'].min()]\n", + "df_min_speed" + ] + }, + { + "cell_type": "code", + "execution_count": 522, + "metadata": {}, + "outputs": [], + "source": [ + "group_cols = ['gas_type']\n", + "agg_dict = {'speed':['min', 'max','mean','var'],\n", + " 'distance':['min', 'max','mean','var'],\n", + " 'consume_100Km':['min', 'max','mean','var']}\n", + "df_groupby=df_train.groupby(group_cols).agg(agg_dict)" + ] + }, + { + "cell_type": "code", + "execution_count": 523, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['speed', 'speed', 'speed', 'speed', 'distance', 'distance', 'distance',\n", + " 'distance', 'consume_100Km', 'consume_100Km', 'consume_100Km',\n", + " 'consume_100Km'],\n", + " dtype='object')" + ] + }, + "execution_count": 523, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "level0 = df_groupby.columns.get_level_values(0)\n", + "level0" + ] + }, + { + "cell_type": "code", + "execution_count": 524, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['min', 'max', 'mean', 'var', 'min', 'max', 'mean', 'var', 'min', 'max',\n", + " 'mean', 'var'],\n", + " dtype='object')" + ] + }, + "execution_count": 524, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "level1 = df_groupby.columns.get_level_values(1)\n", + "level1" + ] + }, + { + "cell_type": "code", + "execution_count": 525, + "metadata": {}, + "outputs": [], + "source": [ + "df_groupby.columns = level0 + '_' + level1" + ] + }, + { + "cell_type": "code", + "execution_count": 526, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
gas_type01
speed_min16.00000016.000000
speed_max88.00000082.000000
speed_mean43.98089240.602804
speed_var189.685530143.151354
distance_min4.1000002.900000
distance_max130.30000056.100000
distance_mean21.46305715.987383
distance_var413.09196068.495192
consume_100Km_min0.1638000.203500
consume_100Km_max5.9938002.692800
consume_100Km_mean1.0252460.748552
consume_100Km_var0.9188980.136241
\n", + "
" + ], + "text/plain": [ + "gas_type 0 1\n", + "speed_min 16.000000 16.000000\n", + "speed_max 88.000000 82.000000\n", + "speed_mean 43.980892 40.602804\n", + "speed_var 189.685530 143.151354\n", + "distance_min 4.100000 2.900000\n", + "distance_max 130.300000 56.100000\n", + "distance_mean 21.463057 15.987383\n", + "distance_var 413.091960 68.495192\n", + "consume_100Km_min 0.163800 0.203500\n", + "consume_100Km_max 5.993800 2.692800\n", + "consume_100Km_mean 1.025246 0.748552\n", + "consume_100Km_var 0.918898 0.136241" + ] + }, + "execution_count": 526, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_groupby.T" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### speed outliers" + ] + }, + { + "cell_type": "code", + "execution_count": 527, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable height\n", + "ax = sns.distplot(df_train.speed, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('speed', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of speed', fontsize=20);" + ] + }, + { + "cell_type": "code", + "execution_count": 528, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\_decorators.py:36: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Distribution of speed')" + ] + }, + "execution_count": 528, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# box plot of the variable consume\n", + "ax = sns.boxplot(df_train.speed)\n", + "\n", + "# notation indicating an outlier\n", + "ax.annotate('Outlier', xy=(80,0), xytext=(75,-0.05), fontsize=14,\n", + " arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle=\"round\", fc=\"0.8\"))\n", + "ax.annotate('Outlier', xy=(90,0), xytext=(95,-0.05), fontsize=14,\n", + " arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle=\"round\", fc=\"0.8\"))\n", + "\n", + "# xtick, label, and title\n", + "plt.xticks(fontsize=14)\n", + "plt.xlabel('speed', fontsize=14)\n", + "plt.title('Distribution of speed', fontsize=20)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### consume outliers" + ] + }, + { + "cell_type": "code", + "execution_count": 529, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZMAAAEmCAYAAACnG32nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABPNUlEQVR4nO3deVhUZfvA8e+wryIioIAiqOCCIpqSS5q+ZrlUiku/XCstd8ss08zcc+k1S8vK3N5cKsuybDFLyyXXFHEnARVcWARlh2GY+f1BHBmHZRSYAb0/18XVnHOeOec+kHPPs5znUel0Oh1CCCFEOViYOwAhhBDVnyQTIYQQ5SbJRAghRLlJMhFCCFFukkyEEEKUmyQTIYQQ5SbJ5AG1YsUKAgMD9X6aNGlCq1at6NGjBzNnziQ6OtrgfVeuXCEwMJBx48bd03VPnjzJ/v377yrG33//vUKuXZb9+/dz8uRJZfvw4cMEBgayYMGCSrleRdNoNCxevJiOHTvSokULnnzySXOHJB4gVuYOQJjXf/7zH5o2bQqAVqslIyOD8+fPs2XLFn744Qc++OADHn30UaV8jRo1mDBhAv7+/nd9rT///JOxY8fyxhtv0KlTpzLLt2vXjgkTJuDn53fX17pbmzdvZs6cOXz00UfKPm9vbyZMmEBwcHClX78ifPPNN6xduxY/Pz/69euHm5ubuUMSDxBJJg+47t27ExYWZrB/z549jB8/nsmTJ7Nt2zZ8fX2BgmQyceLEe7pWSkoKWq3W6PKhoaGEhobe07XuVnJyssE+Hx+fe75Xczh79iwAb7/9Nh06dDBzNOJBI81colhdunTh5ZdfJisri5UrV5o7HGEEtVoNgKurq5kjEQ8iSSaiREOHDsXW1padO3ei0WiA4vstNBoNH374IU8++SStWrWiXbt2jBw5koMHDyplpk2bxvTp0wFYuHAhgYGBXLlyRemX2Lx5M6+++iotW7akU6dOHDt2zKDPpKidO3fy5JNP0qJFCx5//HE+/fRT8vLy9MoEBgby9NNPG7z322+/JTAwkPXr1wMwbNgwPvzwQwDGjx9PYGAgUHKfycWLF3nttdfo0KEDQUFBdO/enSVLlpCenq5Xbtq0aQQGBpKamsqsWbOUvoywsDB+/fVXo/4GAH/99RfPP/88rVu3pmXLlvTr149NmzYptbzCv8l3330HQN++fQkMDOTw4cOlnvfKlSvMmDGDzp07ExwcTO/evVm7dq3B77Gy7nfDhg2EhYUREhJC69atGTx4ML/88kux5zx37pzB++/8+xb+XY8cOcKqVavo1q0bLVu2pG/fvuzbtw8oaArs2bMnwcHBPPnkk+zYscPgvBkZGfz3v/+le/fuBAUF8cgjjzBr1qxia6/iNkkmokT29vY0a9aMrKysYv8xF5o3bx4rVqygZs2aDBkyhCeeeIKIiAhGjhypfKB1796d//znPwB06tSJCRMmUKNGDeUcH330EadOnWLo0KE0a9aM5s2bl3i9EydO8PLLL1OvXj2effZZVCoV7733HlOnTr2n++zXrx/t2rUDoFevXkyYMKHEshEREYSFhfHTTz/RqlUrhgwZgpubG2vWrGHQoEHcunXL4D3PP/88+/bto2fPnjz55JNcuHCBl19+2aiBCBs2bOCFF17g1KlTPPbYY/Tv35/09HTmzp3LlClT0Ol0Sj9WkyZNAHjmmWeYMGEC3t7eJZ73n3/+oX///mzdupVmzZoxePBg7OzsWLx4MW+99Val3++qVauYP38+AP/3f/9HWFgYsbGxvPLKK2zbtq3M30tp3nnnHdauXUvXrl3p3bs3//zzD2PHjmX+/PksWLCA1q1bExYWxpUrV5g8ebLSPAiQnp7Os88+y2effYaPjw/Dhw8nJCSELVu2MHDgQBITE8sV231NJx5Iy5cv1wUEBOi2bt1aarlJkybpAgICdLt27dLpdDpdXFycLiAgQDd27FidTqfTpaen65o0aaIbMmSI3vtOnjypCwgI0E2cOFHZt3XrVl1AQIBu3bp1yr5Dhw7pAgICdMHBwbrExMRiY/ztt9/0rh0QEKD73//+p5TLzs7WDR8+XBcQEKDbv3+/sj8gIED31FNPGdxTcXHcea2isc2fP1+n0+l0Go1G16NHD12zZs10e/bs0Tvnu+++qwsICNBNnz5d2ffGG2/oAgICdAMGDNBlZmYq+3/44QddQECA7pVXXjGIrajY2Fhds2bNdI8++qguNjZW2Z+Zmanc73fffWdwvbNnz5Z6Xp1Opxs8eLAuMDBQ9+uvvyr7tFqt7oUXXtAFBAToTp8+Xan3265dO1337t11eXl5yr7r16/rgoKCdGFhYUbd051/38K/a+vWrXVXr15V9i9dulQXEBCga9q0qe7cuXPK/m+//VYXEBCgW7JkibJv9uzZuoCAAN3GjRv1rvX777/rAgICdJMmTSrhNyqkZiJKZWNjAxRU/Yuj1WrR6XRcv36dpKQkZX+LFi34/fffWbp0qVHXad26Ne7u7kaVrV+/PkOGDFG27ezsmDx5MgDbt2836hz3Ijw8nEuXLtG7d286d+6sd2zSpEl4enqyfft2pe+i0JAhQ3BwcFC2u3TpAsDVq1dLvd4PP/yARqNh/Pjx1KtXT9nv4OCg1B62bt161/cRHx/P33//TYcOHejRo4eyX6VS8eqrrzJhwgRsbGwq9X51Oh0pKSnExcUp++rUqcMvv/zC5s2b7/qeiurRowdeXl7KduvWrQFo3769UnsDaNmypV5cGo2Gbdu20bhxY73/v6Bg1GPr1q357bffSvy38KCT0VyiVJmZmQB6Hw5F1ahRg169evHTTz/RtWtXQkJC6Ny5M127dqVRo0ZGX8fHx8fossHBwVhaWurta968ORYWFpw/f97o89ytwqa+tm3bGhyzsbFREmhMTIzeh9adQ5udnZ0BDD6E71R4L8Vdr3HjxtSoUeOe7jcyMhKAVq1aGRxr3ry50sS4YcOGEq9f3vt95plnWLVqFb169aJFixZ07tyZLl260KJFi7u+nzvVr19fb9ve3h4w/H/M1tZWL66LFy+SlZVFfn4+K1asMDhvbm4u+fn5REZG0qZNm3LHeb+RZCJKVfitreg34zstXryYoKAgvv32W44cOcKRI0f473//S1BQEPPnz1eeYylN4T9sY9SuXdtgn7W1Nba2tmRlZRl9nrtV+I3Uycmp2OMeHh4AZGdn6+0vrN0VUqlUQMG3c2OuV/hhXNz1Ll++XEbUhlJTU4GS7+PO61fG/b766qv4+vry5ZdfcvLkSSIiIlixYgV+fn7MmjWL9u3b38Ud6StMHne6M647paWlARATE6MMyChO4e9P6JNkIkp069YtoqKiqFGjRqm1DGtra1544QVeeOEFrl27xl9//cWOHTvYv38/o0ePZteuXVhbW1dYXIX/6ItKT08nOzsbFxcXvf3FPddy54efsRwdHQFISEgoNa6aNWve0/lLu16tWrUMjqempt7TtQprmYW1zqK0Wi1qtRo7O7tKvV+VSsWAAQMYMGAAycnJHDhwgN9++42dO3cyduxYdu/eTa1atZREdOff8V7/hqUpvN+nn36aJUuWVPj573fSZyJKtGXLFjQaDT179jRoVioUFxfHe++9xx9//AGAl5cXAwcOZM2aNTz88MMkJCRw5coV4PY31PI6deqUwb7w8HAAvVFg1tbWxX7oFG2nL2RMbIU1rOPHjxsc02q1HDt2DAcHh1JHUd2NwqajY8eOGRy7fPkySUlJNG7c+K7PWzj0uejUMYXCw8Np1aoVH3/8caXd782bN1mxYoUylNnNzY0nn3yS5cuXExYWRnZ2tjLCqvBLyJ1/x9jY2Lu6pjH8/PywsbHhzJkzxdYa169fz8qVK7l582aFX/t+IMlEFOvgwYN89NFHODg4MHr06BLL2dnZ8dlnn/HBBx/otYmr1WqSkpKwsbFROtatrAoqwnc+x3C3/vnnH73nETIyMnj//fdRqVR6T/P7+/tz5coVLly4oOy7evVqsUNPC2MrrR+jTZs2+Pr6snPnTvbs2aN3bPny5Vy/fp2ePXuW2ZxirKeffhorKys++eQTvQSYlZXF3LlzlTJ3q169eoSEhLB//37l+QsoSBCfffYZOp2Ojh07Vtr9Ojo68vnnn7Ns2TKDocXXrl0DUDrQC6ftKfyyUhjnJ598clfXNIatrS29evUiKiqKdevW6R07fPgwS5YsYevWrQa1X1FAmrkecL///rvSL1I4N9fZs2f5+++/sbOzY9myZaV+83R3d2fEiBGsW7eOPn360KVLFywsLNi3bx/R0dGMGzdOaXP39PQE4IsvviA1NZVhw4bdU8z169fntdde4/fff8fV1ZU//viDK1eu8NJLLykjdAAGDRrEvHnzGDZsGH369EGtVvPLL78QEBDA33//rXfOwtg+/vhjzp07V+yzJhYWFixatIiRI0cyZswYunbtSv369QkPD+fEiRM0bNjwnp91KU69evV44403WLBgAf369aN79+44ODiwd+9e4uLi6N27N3379r2nc8+ZM4ehQ4cyevRounfvjre3N4cOHeLs2bMMHz5c+T1Wxv3a2NgwadIk5s+fT58+fXjsscews7Pj6NGjnDp1iqefflpJIn369OGDDz5gzZo1xMXF4ePjw19//UV6erreiK2K8sYbbxAeHs7ixYvZtWsXLVu2JCEhgZ07d2JlZcU777yDhYV8By+OJJMH3K5du9i1a5eybW9vj7e3N0OHDmXEiBEGI2OK8/rrr+Pr68vXX3/Nd999R35+Po0a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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable consume\n", + "ax = sns.distplot(df_train.consume_100Km, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('consume / 100 Km', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of consume', fontsize=20);" + ] + }, + { + "cell_type": "code", + "execution_count": 530, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\_decorators.py:36: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Distribution of consume')" + ] + }, + "execution_count": 530, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# box plot of the variable consume\n", + "ax = sns.boxplot(df_train.consume_100Km)\n", + "\n", + "# notation indicating an outlier\n", + "ax.annotate('Outlier', xy=(9,0), xytext=(8,-0.05), fontsize=14,\n", + " arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle=\"round\", fc=\"0.8\"))\n", + "\n", + "# xtick, label, and title\n", + "plt.xticks(fontsize=14)\n", + "plt.xlabel('consume_100Km', fontsize=14)\n", + "plt.title('Distribution of consume', fontsize=20)" + ] + }, + { + "cell_type": "code", + "execution_count": 531, + "metadata": {}, + "outputs": [], + "source": [ + "q_low = df_train[\"consume\"].quantile(0.01)\n", + "q_hi = df_train[\"consume\"].quantile(0.99)\n", + "\n", + "df_train = df_train[(df_train[\"consume\"] < q_hi) & (df_train[\"consume\"] > q_low)]" + ] + }, + { + "cell_type": "code", + "execution_count": 532, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable consume\n", + "ax = sns.distplot(df_train.consume, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('consume', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of consume', fontsize=20);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### distance outliers" + ] + }, + { + "cell_type": "code", + "execution_count": 533, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable consume\n", + "ax = sns.distplot(df_train.distance, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('distance', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of distance', fontsize=20);" + ] + }, + { + "cell_type": "code", + "execution_count": 617, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\_decorators.py:36: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", + " warnings.warn(\n" + ] + }, + { + "ename": "TypeError", + "evalue": "Horizontal orientation requires numeric `x` variable.", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# box plot of the variable consume\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0max\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mboxplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf_train\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdistance\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# notation indicating an outlier\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m ax.annotate('Outlier', xy=(9,0), xytext=(8,-0.05), fontsize=14,\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\seaborn\\_decorators.py\u001b[0m in \u001b[0;36minner_f\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 44\u001b[0m )\n\u001b[0;32m 45\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m{\u001b[0m\u001b[0mk\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0marg\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mk\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0marg\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msig\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mparameters\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 46\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 47\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0minner_f\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 48\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\seaborn\\categorical.py\u001b[0m in \u001b[0;36mboxplot\u001b[1;34m(x, y, hue, data, order, hue_order, orient, color, palette, saturation, width, dodge, fliersize, linewidth, whis, ax, **kwargs)\u001b[0m\n\u001b[0;32m 2238\u001b[0m ):\n\u001b[0;32m 2239\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2240\u001b[1;33m plotter = _BoxPlotter(x, y, hue, data, order, hue_order,\n\u001b[0m\u001b[0;32m 2241\u001b[0m \u001b[0morient\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpalette\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msaturation\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2242\u001b[0m width, dodge, fliersize, linewidth)\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\seaborn\\categorical.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, x, y, hue, data, order, hue_order, orient, color, palette, saturation, width, dodge, fliersize, linewidth)\u001b[0m\n\u001b[0;32m 404\u001b[0m width, dodge, fliersize, linewidth):\n\u001b[0;32m 405\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 406\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mestablish_variables\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0morient\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0morder\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhue_order\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 407\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mestablish_colors\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcolor\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpalette\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msaturation\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 408\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\seaborn\\categorical.py\u001b[0m in \u001b[0;36mestablish_variables\u001b[1;34m(self, x, y, hue, data, orient, order, hue_order, units)\u001b[0m\n\u001b[0;32m 154\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 155\u001b[0m \u001b[1;31m# Figure out the plotting orientation\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 156\u001b[1;33m orient = infer_orient(\n\u001b[0m\u001b[0;32m 157\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0morient\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrequire_numeric\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrequire_numeric\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 158\u001b[0m )\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\seaborn\\_core.py\u001b[0m in \u001b[0;36minfer_orient\u001b[1;34m(x, y, orient, require_numeric)\u001b[0m\n\u001b[0;32m 1319\u001b[0m \u001b[0mwarnings\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwarn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msingle_var_warning\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Vertical\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"x\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1320\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mrequire_numeric\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mx_type\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[1;34m\"numeric\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1321\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnonnumeric_dv_error\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Horizontal\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"x\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1322\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[1;34m\"h\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1323\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mTypeError\u001b[0m: Horizontal orientation requires numeric `x` variable." + ] + } + ], + "source": [ + "# box plot of the variable consume\n", + "ax = sns.boxplot(df_train.distance)\n", + "\n", + "# notation indicating an outlier\n", + "ax.annotate('Outlier', xy=(9,0), xytext=(8,-0.05), fontsize=14,\n", + " arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle=\"round\", fc=\"0.8\"))\n", + "\n", + "# xtick, label, and title\n", + "plt.xticks(fontsize=14)\n", + "plt.xlabel('distance', fontsize=14)\n", + "plt.title('Distribution of distance', fontsize=20)" + ] + }, + { + "cell_type": "code", + "execution_count": 535, + "metadata": {}, + "outputs": [], + "source": [ + "q_low = df_train[\"distance\"].quantile(0.01)\n", + "q_hi = df_train[\"distance\"].quantile(0.99)\n", + "\n", + "df_train = df_train[(df_train[\"distance\"] < q_hi) & (df_train[\"distance\"] > q_low)]" + ] + }, + { + "cell_type": "code", + "execution_count": 536, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\pinil\\anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram and kernel density estimation function of the variable consume\n", + "ax = sns.distplot(df_train.distance, hist=True, hist_kws={\"edgecolor\": 'w', \"linewidth\": 3}, kde_kws={\"linewidth\": 3})\n", + "\n", + "plt.xticks(fontsize=14)\n", + "plt.yticks(fontsize=14)\n", + "\n", + "# labels and title\n", + "plt.xlabel('distance', fontsize=14)\n", + "plt.ylabel('frequency', fontsize=14)\n", + "plt.title('Distribution of distance', fontsize=20);" + ] + }, + { + "cell_type": "code", + "execution_count": 537, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsunconsume_100Km
consume-19.328871100.000000-10.660054-14.960494-40.515699-3.3176824.54282527.351497-19.047784-0.639884
rain-4.11181927.3514972.659649-2.075481-17.1970775.74685420.559670100.000000-10.9984222.075743
AC2.8964574.542825-1.10055635.05109620.5729969.916979100.00000020.55967011.1880644.206289
consume_100Km97.784761-0.63988447.2155991.415629-2.614758-17.2570734.2062892.0757433.747622100.000000
gas_type-15.443003-3.317682-10.2466552.61174417.052824100.0000009.9169795.7468540.473920-17.257073
speed47.216761-10.660054100.0000003.985971-0.453907-10.246655-1.1005562.6596499.60327747.215599
temp_inside4.069561-14.9604943.985971100.00000035.4393412.61174435.051096-2.07548123.1731431.415629
sun8.265346-19.0477849.60327723.17314331.3151660.47392011.188064-10.998422100.0000003.747622
distance100.000000-19.32887147.2167614.0695616.752227-15.4430032.896457-4.1118198.26534697.784761
temp_outside6.752227-40.515699-0.45390735.439341100.00000017.05282420.572996-17.19707731.315166-2.614758
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside \\\n", + "consume -19.328871 100.000000 -10.660054 -14.960494 -40.515699 \n", + "rain -4.111819 27.351497 2.659649 -2.075481 -17.197077 \n", + "AC 2.896457 4.542825 -1.100556 35.051096 20.572996 \n", + "consume_100Km 97.784761 -0.639884 47.215599 1.415629 -2.614758 \n", + "gas_type -15.443003 -3.317682 -10.246655 2.611744 17.052824 \n", + "speed 47.216761 -10.660054 100.000000 3.985971 -0.453907 \n", + "temp_inside 4.069561 -14.960494 3.985971 100.000000 35.439341 \n", + "sun 8.265346 -19.047784 9.603277 23.173143 31.315166 \n", + "distance 100.000000 -19.328871 47.216761 4.069561 6.752227 \n", + "temp_outside 6.752227 -40.515699 -0.453907 35.439341 100.000000 \n", + "\n", + " gas_type AC rain sun consume_100Km \n", + "consume -3.317682 4.542825 27.351497 -19.047784 -0.639884 \n", + "rain 5.746854 20.559670 100.000000 -10.998422 2.075743 \n", + "AC 9.916979 100.000000 20.559670 11.188064 4.206289 \n", + "consume_100Km -17.257073 4.206289 2.075743 3.747622 100.000000 \n", + "gas_type 100.000000 9.916979 5.746854 0.473920 -17.257073 \n", + "speed -10.246655 -1.100556 2.659649 9.603277 47.215599 \n", + "temp_inside 2.611744 35.051096 -2.075481 23.173143 1.415629 \n", + "sun 0.473920 11.188064 -10.998422 100.000000 3.747622 \n", + "distance -15.443003 2.896457 -4.111819 8.265346 97.784761 \n", + "temp_outside 17.052824 20.572996 -17.197077 31.315166 -2.614758 " + ] + }, + "execution_count": 537, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "corr = (df_train.corr().sort_values('consume', ascending=False))*100\n", + "corr" + ] + }, + { + "cell_type": "code", + "execution_count": 538, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(10.5, -0.5)" + ] + }, + "execution_count": 538, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAogAAAJ2CAYAAADc0XPTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAACweUlEQVR4nOzdd1xV9R/H8RfDhYiiDBU1Z6b9NBuOypUzzZGjco/S3OZMFNyaWzNxT9xarkzFmZl7NJQclXuxBEQZcoH7+wO7eYOroBccvJ+Px308POd8zjmfczjAx8/3nION0Wg0IiIiIiJyn+3TTkBEREREni0qEEVERETEjApEERERETGjAlFEREREzKhAFBEREREzKhBFRERExIwKRBEREZFnyN27d2nQoAHXrl1LsuzMmTM0a9aMunXr4uXlRVxcHAA3btygdevWvP/++3Tr1o3IyMgnykEFooiIiMgz4vfff6dly5ZcunQp2eUDBw5k6NChbN++HaPRyNq1awEYOXIkrVq1ws/Pj//973/MmjXrifJQgSgiIiKSxiIiIrh27VqST0REhFnc2rVrGT58OG5ubkm2cf36dWJiYihXrhwATZs2xc/PD4PBwLFjx6hbt67Z/Cdh/0Rri4iIiDyn/qpcN9325fdJA3x8fJLM79mzJ7169TJNjx071uI2goKCcHV1NU27uroSGBhIWFgYjo6O2Nvbm81/EioQRURERNJY+/btadKkSZL5Tk5OKd5Gcn8d2cbGxuL8J6ECUURERDImm/S7087JySlVxWBy3N3dCQkJMU0HBwfj5uZG7ty5uXv3LvHx8djZ2ZnmPwndgygiIiLyHPDw8CBLliycOHECgI0bN1K1alUyZcrEW2+9xdatW83mPwkViCIiIiLPsM6dO3Pq1CkAJk+ezLhx46hXrx7R0dG0a9cOgOHDh7N27Vrq16/P8ePH6dOnzxPt08aY3MC1iIiIyAvur6r1021fJfZtTbd9WYM6iCIiIiJiRg+piIiISMZk+2RP+r7I1EEUERERETPqIIqIiEiGZJOOr7l53ujMiIiIiIgZdRBFREQkY9I9iBapgygiIiIiZtRBFBERkYzpCf9e8YtMHUQRERERMaMOooiIiGRMtuqTWaIzIyIiIiJm1EEUERGRjEn3IFqkDqKIiIiImFEHUURERDIkG3UQLVIHUURERETMqEAUERERETMaYhYREZGMSa+5sUhnRkRERETMqIMoIiIiGZMeUrFIHUQRERERMaMOooiIiGRMtuogWqIOooiIiIiYUQdRREREMiYb9cks0ZkRERERETPqIIqIiEiGZKN7EC1SB1FEREREzKiDKCIiIhmT3oNokTqIIiIiImJGHUQRERHJmPQUs0U6MyIiIiJiRh1EERERyZj0FLNF6iCKiIiIiBkViCIiIiJiRkPMIiIikjHpNTcWqYMoIiIiImbUQRQREZEMycZWfTJLdGZERERExIw6iCIiIpIx6R5Ei9RBFBEREREz6iCKiIhIxqR7EC3SmRERERERM+ogioiISMakexAtUgdRRERERMyogygiIiIZkzqIFqmDKCIiIiJm1EEUERGRDEl/ScUynRkRERERMaMOooiIiGRMugfRInUQRURERMSMCkQRERERMaMhZhEREcmYbDXEbIk6iCIiIiJiRh1EERERyZhs1CezRGdGRERERMyogygiIiIZk+5BtEgdRBERERExow6iiIiIZEx6UbZF6iCKiIiIiBl1EEVERCRDstFTzBapQBQRERF5hmzevJnZs2djMBjo0KEDrVu3Ni07c+YMnp6epunQ0FBy5szJDz/8wMaNG5k8eTJ58uQBoHr16vTt2/exclCBKCIiIhnTM/gUc2BgINOmTWP9+vVkzpyZFi1aULFiRYoXLw5AqVKl2LRpEwDR0dF89NFHjBgxAoBTp07h6elJgwYNnjgP9VZFRERE0lhERATXrl1L8omIiDCLO3jwIJUqVSJXrlw4ODhQt25d/Pz8kt3m3LlzKV++PG+99RaQWCBu3LiRRo0aMWDAAG7fvv3Y+b7wBaKnpydz5syhc+fOFmPu3LlD9+7d0zErEREReepsbNLt4+vrS82aNZN8fH19zVIKCgrC1dXVNO3m5kZgYGCS1CMiIli7di09e/Y0zXN1daVXr15s2rSJfPnyMWrUqMc+NRliiNnNzY358+dbXH779m3Onj2bjhmJiIhIRtK+fXuaNGmSZL6Tk5PZtNFoTBJjk8zreDZv3kytWrVM9xsCzJw50/TvTp06UatWrcfO94UrEI1GI+PHj2fv3r24ubkRHx9PhQoVqFGjBnv27GHz5s0sWLAAOzs7ChQowKRJkxgzZgxBQUH06NGDmTNnMm3aNA4dOsTt27dxdnZmxowZuLq6Urly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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.set(style=\"white\")\n", + "# Generate a mask for the upper triangle\n", + "mask = np.zeros_like(df_train.corr(), dtype=np.bool)\n", + "mask[np.triu_indices_from(mask)] = True\n", + "# Set up the matplotlib figure to control size of heatmap\n", + "fig, ax = plt.subplots(figsize=(10,10))\n", + "# Create a custom color palette\n", + "cmap = sns.diverging_palette(255, 10, as_cmap=True) # as_cmap returns a matplotlib colormap object rather than a list of colors\n", + "# Red=10, Green=128, Blue=255\n", + "# Plot the heatmap\n", + "sns.heatmap(df_train.corr(), mask=mask, annot=True, square=True, cmap=cmap , vmin=-1, vmax=1, ax=ax) # annot display corr label\n", + "# Prevent Heatmap Cut-Off Issue\n", + "bottom, top = ax.get_ylim()\n", + "ax.set_ylim(bottom+0.5, top-0.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Feature selection.2" + ] + }, + { + "cell_type": "code", + "execution_count": 540, + "metadata": {}, + "outputs": [], + "source": [ + "X = df_train[['speed', 'temp_inside','distance','consume', 'temp_outside',\n", + " 'gas_type', 'AC', 'rain', 'sun']].values\n", + "y = df_train['consume_100Km'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 541, + "metadata": {}, + "outputs": [], + "source": [ + "X_train,X_test,y_train,y_test = train_test_split(X,y, random_state=9, train_size = 0.8)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Models pipelines" + ] + }, + { + "cell_type": "code", + "execution_count": 542, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# We train different model to see which give us less error\n", + "models = { \"ridge\": Ridge(),\n", + " \"lasso\": Lasso(),\n", + " \"sgd\": SGDRegressor(),\n", + " \"knn\": KNeighborsRegressor(),\n", + " \"gradient\": GradientBoostingRegressor(),\n", + " \"rdm\": RandomForestRegressor(),}" + ] + }, + { + "cell_type": "code", + "execution_count": 543, + "metadata": {}, + "outputs": [], + "source": [ + "# Building pipelins of standard scaler and model for varios regressors.\n", + "\n", + "pipeline_lr=Pipeline([(\"scalar1\",StandardScaler()),\n", + " (\"lr_classifier\",LinearRegression())])\n", + "\n", + "pipeline_dt=Pipeline([(\"scalar2\",StandardScaler()),\n", + " (\"dt_classifier\",DecisionTreeRegressor())])\n", + "\n", + "pipeline_rf=Pipeline([(\"scalar3\",StandardScaler()),\n", + " (\"rf_classifier\",RandomForestRegressor())])\n", + "\n", + "pipeline_kn=Pipeline([(\"scalar4\",StandardScaler()),\n", + " (\"rf_classifier\",KNeighborsRegressor())])\n", + "\n", + "pipeline_xgb=Pipeline([(\"scalar5\",StandardScaler()),\n", + " (\"rf_classifier\",XGBRegressor())])\n", + "\n", + "pipeline_ridge=Pipeline([(\"scalar6\",StandardScaler()),\n", + " (\"rf_classifier\",Ridge())])\n", + "\n", + "pipeline_lasso=Pipeline([(\"scalar7\",StandardScaler()),\n", + " (\"rf_classifier\",Lasso())])\n", + "\n", + "pipeline_xgbr=Pipeline([(\"scalar8\",StandardScaler()),\n", + " (\"rf_classifier\",GradientBoostingRegressor())])" + ] + }, + { + "cell_type": "code", + "execution_count": 544, + "metadata": {}, + "outputs": [], + "source": [ + "# List of all the pipelines\n", + "pipelines = [pipeline_lr, pipeline_dt, pipeline_rf, pipeline_kn, \n", + " pipeline_xgb, pipeline_ridge,pipeline_lasso, pipeline_xgbr]" + ] + }, + { + "cell_type": "code", + "execution_count": 545, + "metadata": {}, + "outputs": [], + "source": [ + "# Dictionary of pipelines and model types for ease of reference\n", + "pipe_dict = {0: \"LinearRegression\", 1: \"DecisionTree\", 2: \"RandomForest\",\n", + " 3: \"KNeighbors\", 4: \"XGBRegressor\", 5:\"Ridge\", 6:\"Lasso\",\n", + " 7:'GradientBoostingRegressor'}" + ] + }, + { + "cell_type": "code", + "execution_count": 546, + "metadata": {}, + "outputs": [], + "source": [ + "# Fit the pipelines\n", + "for pipe in pipelines:\n", + " pipe.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 547, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "LinearRegression: -0.047035 \n", + "DecisionTree: -0.093148 \n", + "RandomForest: -0.084951 \n", + "KNeighbors: -0.231354 \n", + "XGBRegressor: -0.072891 \n", + "Ridge: -0.047132 \n", + "Lasso: -0.504632 \n", + "GradientBoostingRegressor: -0.066258 \n" + ] + } + ], + "source": [ + "cv_results_rms = []\n", + "for i, model in enumerate(pipelines):\n", + " cv_score = cross_val_score(model, X_train,y_train,scoring=\"neg_root_mean_squared_error\", cv=10)\n", + " cv_results_rms.append(cv_score)\n", + " print(\"%s: %f \" % (pipe_dict[i], cv_score.mean()))" + ] + }, + { + "cell_type": "code", + "execution_count": 548, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar1', StandardScaler()),\n", + " ('lr_classifier', LinearRegression())]) R^2: 0.9925376978865574\n", + "Adjusted R^2: 0.9922880297861076\n", + "MAE: 0.02837607364261138\n", + "MSE: 0.0020482755913549078\n", + "RMSE: 0.04525787877657224\n", + "Pipeline(steps=[('scalar2', StandardScaler()),\n", + " ('dt_classifier', DecisionTreeRegressor())]) R^2: 1.0\n", + "Adjusted R^2: 1.0\n", + "MAE: 0.0\n", + "MSE: 0.0\n", + "RMSE: 0.0\n", + "Pipeline(steps=[('scalar3', StandardScaler()),\n", + " ('rf_classifier', RandomForestRegressor())]) R^2: 0.9937861379766549\n", + "Adjusted R^2: 0.9935782392472493\n", + "MAE: 0.014543322580645234\n", + "MSE: 0.001705599923050192\n", + "RMSE: 0.041298909465628655\n", + "Pipeline(steps=[('scalar4', StandardScaler()),\n", + " ('rf_classifier', KNeighborsRegressor())]) R^2: 0.8836213486911326\n", + "Adjusted R^2: 0.8797276391677876\n", + "MAE: 0.11585992831541216\n", + "MSE: 0.031943969462365586\n", + "RMSE: 0.17872875947190364\n", + "Pipeline(steps=[('scalar5', StandardScaler()),\n", + " ('rf_classifier',\n", + " XGBRegressor(base_score=0.5, booster='gbtree',\n", + " colsample_bylevel=1, colsample_bynode=1,\n", + " colsample_bytree=1, gamma=0, gpu_id=-1,\n", + " importance_type='gain',\n", + " interaction_constraints='',\n", + " learning_rate=0.300000012, max_delta_step=0,\n", + " max_depth=6, min_child_weight=1, missing=nan,\n", + " monotone_constraints='()', n_estimators=100,\n", + " n_jobs=8, num_parallel_tree=1, random_state=0,\n", + " reg_alpha=0, reg_lambda=1, scale_pos_weight=1,\n", + " subsample=1, tree_method='exact',\n", + " validate_parameters=1, verbosity=None))]) R^2: 0.9999916674769973\n", + "Adjusted R^2: 0.9999913886936999\n", + "MAE: 0.0010687737832359861\n", + "MSE: 2.2871364923928635e-06\n", + "RMSE: 0.001512328169542862\n", + "Pipeline(steps=[('scalar6', StandardScaler()), ('rf_classifier', Ridge())]) R^2: 0.9925190981140424\n", + "Adjusted R^2: 0.9922688077163709\n", + "MAE: 0.028603398575988363\n", + "MSE: 0.002053380914011125\n", + "RMSE: 0.04531424625888778\n", + "Pipeline(steps=[('scalar7', StandardScaler()), ('rf_classifier', Lasso())]) R^2: 0.0\n", + "Adjusted R^2: -0.03345724907063197\n", + "MAE: 0.3432252283500982\n", + "MSE: 0.2744830697306047\n", + "RMSE: 0.5239113185746274\n", + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9993674801009855\n", + "Adjusted R^2: 0.9993463177251821\n", + "MAE: 0.009869758098748365\n", + "MSE: 0.0001736160035471743\n", + "RMSE: 0.013176342570955504\n" + ] + } + ], + "source": [ + "for i, model in enumerate(pipelines):\n", + " pred = model.predict(X_train)\n", + " print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + " print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + " print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + " print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + " print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 549, + "metadata": {}, + "outputs": [], + "source": [ + "# List of all the pipelines\n", + "pipelines = [pipeline_lr, pipeline_dt, pipeline_rf, pipeline_kn, \n", + " pipeline_xgb, pipeline_ridge,pipeline_lasso, pipeline_xgbr]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline ridge" + ] + }, + { + "cell_type": "code", + "execution_count": 550, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9925190981140424\n", + "Adjusted R^2: 0.9922688077163709\n", + "MAE: 0.028603398575988363\n", + "MSE: 0.002053380914011125\n", + "RMSE: 0.04531424625888778\n" + ] + } + ], + "source": [ + "pred = pipeline_ridge.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 551, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29151.359248-0.067748
10.65190.659642-0.007742
20.83600.8246960.011304
30.70930.6733650.035935
40.56640.5596900.006710
50.33810.518197-0.180097
60.79950.832087-0.032587
70.40670.3814000.025300
81.01281.0045310.008269
90.30340.2277740.075626
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 1.359248 -0.067748\n", + "1 0.6519 0.659642 -0.007742\n", + "2 0.8360 0.824696 0.011304\n", + "3 0.7093 0.673365 0.035935\n", + "4 0.5664 0.559690 0.006710\n", + "5 0.3381 0.518197 -0.180097\n", + "6 0.7995 0.832087 -0.032587\n", + "7 0.4067 0.381400 0.025300\n", + "8 1.0128 1.004531 0.008269\n", + "9 0.3034 0.227774 0.075626" + ] + }, + "execution_count": 551, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_ridge = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_ridge.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 552, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rnaNWbNmad++fXrppZeUmpqqPXv2qE+fPvr73/+u0NBQJScnV7uGJHXt2lUNGzbUlClT1L9/f0u2eakXXnhB27ZtU3FxsUJDQ+Xn56e4uDht3LhRJSUlmjlzpiV1XnvtNe3cuVP33XefNm7cqK5duyokJEQrVqzQgw8+qKFDh1pSB0Dt9I9//EPr168v94/onj17KiIiwu6hVUlxcbFSU1N16NAh9e3bV127dnUuW7RokSZOnGhZraysLNWvX1+33367Fi1apK+++kpdunTR2LFj5e/vb1mdiz311FNasGCBpdv85JNP1LdvX0nSihUr9Pe//935j2ir/qleXFyslStXql+/fqpfv75ef/117dmzR7/4xS80fvx4BQcHW1JnwoQJSkpK0i233GLJ9i6nuLhY6enpCgkJUUREhGbPnq0vvvhC7dq1U2Jioho0aGBJndLSUi1dulSZmZnl/hE9aNAgRUZGWlKjDM//qrHjuS9Z//z36kAaERGh9PR0XXfddeXmnz9/Xvfff7/Wr19vWa28vLyrLm/evHm1th8dHa20tDQFBAQoJydHY8eOVUJCggYOHKjY2Filp6dXa/sX11m5cqWOHz+uqKgobdmyRcHBwSosLNSQIUO0du3aateYO3eu0tPTNWHCBN1www2SpFdeeUWTJk2S9GOQtEJZII2JidFf/vIX3XjjjZKk/Px8DRkyxJL9P2jQIGVkZMjf31+xsbFavny5goKCVFJSoqioKH344YfVriFJsbGxmj9/vlJSUnThwgWNGTNGvXv3VkhIiCXbl37c92vWrFFhYaHCwsK0efNmBQYGyhijmJgYS/a9JMXExCg9PV1+fn66cOGCxo0bp6VLl+rMmTMaOnSoZY+ZxB+ma8EbU9fxxrTq3P3GdOHChdq9e7cGDx6sxo0bS5KOHj2q999/X61bt1ZiYmK1a0jSF198cdXl3bp1q3aNadOmqbS0VG3bttXbb7+toUOHasKECZKs/Uf0vHnztGPHDuXn56tx48Zq2LChIiMjtX79etWtW1fPPvtstWuMGjVKfn5+5eZlZ2erXbt2kqSlS5dWu4b038dl0aJF2rZtm0aNGiVjjN577z394he/0OTJk6tdY8qUKZKk5ORkLV68WOfOndOAAQO0adMmnT59Wi+++GK1a0hSjx49VL9+fQ0bNkyjRo1SYGCgJdu92NSpU3Xu3DkVFhbq1KlT6tChg4YOHarMzEzt3btXr7zyiiV1nn/+eRUVFSk8PFwbNmzQbbfdpmbNmmnp0qXq3r27JQc7JM88/z3x3Jc88/z3xHNf8szz36tP2Q0ICFBxcXGF+QUFBZY/scePH6+cnBw1btxYl2Z0Pz8/ZWZmVmv7xhjnzmzZsqVee+01jRkzRjfddFOFnVwdpaWlCgoKUosWLTR27Nhyb6hKSkosqZGYmKiePXvq5Zdf1lNPPaW7775bb731lmVBtExxcbFKS0vVsGFD1a1b1zk/KChIdepYc/lzSEiITpw44Xwinzt3TkFBQTp//rwCAqx7evj5+al169Z6++23lZWVpffee0+zZs1Sy5Yt1bRpU0v+ABpjdObMGZ07d04FBQXKz8/XjTfeqIKCAhUVFVnQxY8uXLig8+fPq27duiooKNCpU6ckSXXr1rVsv0hX/sO0cuVK7dy507I3ppX9Myg2NrbaNZ577jnnH6Znnnmm3B+mjRs3WhZIL/fHafjw4Vq/fr2ef/55t74xHT16tCTr3pj+4Q9/UN++fS/7xvSrr76y5I1p2e9QRESE5s6dq3PnzmnEiBHatGmTpk2bZtkb0127dunhhx926xvT5ORk5xvTt99+Wx06dNBLL72kzMxMPffcc5a9MZ0zZ46Kior0yCOPVHhjmpOTU+03puvWrdOHH35Y4bUkKipKUVFRlj3v//CHP2jnzp3q0KHDZf/mW/F7nJ2d7fxHYGxsrB566CGFhITooYceqlCzOj799FNlZGTo1KlT6tevn7Zu3ao6deqoZ8+elrx+SdKAAQP0+uuv68knn1SLFi1kjNGzzz6rJ554wpLtX+rjjz/WihUrnO9hwsPDFRUVZcnz/uuvv1ZGRoakH8PJmjVr5Ofnp7CwMEsvbWrSpIneeOMNvfDCC+rfv7+GDx+uyMhItWjRwrIae/fuVUZGhkpKShQWFqZly5ZJklq3bu08C88KW7Zscf4u33fffRo5cqTeffddhYWFafDgwZYFUk88/z3x3Jc88/z3xHNf8szz36sD6YQJExQbG6sePXqUO2V3y5YtlrwoXezdd9/ViBEjNH36dHXp0sXSbUs/7sxRo0Zp6tSp6tChg9q0aaOFCxfqiSeeUGFhoWV1+vfvr1//+tdaunSp803ul19+qeTkZA0cONCyOj169NDtt9+u6dOna9OmTZaF3YvdeOONCgsLk5+fn6ZPn645c+bo888/17x58zRgwABLajzxxBMaMmSIIiMj1apVK40aNUo9evTQ5s2b9cgjj1hSQ1K5F5977rlH99xzj4qKivTVV18pNzfXkhrjxo1T//79ZYxRQkKCxo4dqx49eujzzz+39HrYuLg4DR8+XPfee682b96suLg4HTx4UI8//riioqIsq+OpN6ZbtmzRhg0brvg7ZcWLOm9Mrx1vTF3jK29Mg4ODdfjw4QpnJeXl5Vl6HfySJUs0evRoPfjgg+rTp49l272YMUbnzp1T3bp1ddNNN2nJkiUaPny4GjZsaOk/oiWpsLBQN954oxITE52vmWfPnr3sP/WvxciRI3X33Xdr+vTp+tWvfqXY2Fhdf/31uuuuuyzZfplz587p+PHjat68uc6dO+d83hcUFFj2T+K6devqm2++UZs2bfTTn/5Uhw4dUvPmzXXkyBFLf8f8/Px0880364UXXlBOTo6WL1+usWPH6sKFC2ratKnzOVodderU0XfffaczZ87ozJkzcjgcCg0N1cmTJy3b99KPBzROnDihhg0b6tixYyooKJAkFRUVWfrPe088/z3x3Jc89/x393Nf8tDz33i5w4cPm7S0NPPaa6+ZP/7xjyYtLc0cPnzYLbV27dplkpOT3bJtY4zJysoy3377bbl5eXl5ZubMmZbW2bp1a7np/fv3m02bNlla42LLly83Y8aMcdv29+/fb/75z38aY4zZtm2b+dvf/mbp9v/973+bN99800yfPt0kJyebl19+2ezatcvSGsuXL7d0e1dy/vx5k5+fb4wx5ssvvzRvvPGG2bx5s+V1srKyzBtvvGGysrKMMcbk5+ebL7/80tIa0dHR5uDBgxXm//vf/zaDBw+2tNb48ePNihUrLN3mxaKioszZs2ed04cPHza9evUya9euNbGxsZbViYyMNAUFBcaY8r9zZ86cMYMGDbKszjfffGNGjBhh0tLSjDHG0h7K9O/f3xw7dsyMHz/enDx50jn/9OnTlvUydOhQ8/XXXxtjjHn88cedv2+HDx82MTExltQwpvzj891335m5c+ea/v37m7CwMPPAAw9YUmPw4MHmwIEDZteuXaZDhw4mNzfXGGPMiRMnLN33gwYNMsePHzfG/Pg4lfWWn59vIiMjq739zz77zISHh5uHHnrIJCQkmISEBPPQQw+Z8PBw8/nnn1d7+xc7cOCAmTdvnqXbvNiyZctM//79na+Txhjz7bffmvDwcNO+fXvL6qSmppr+/fub4uJi57zt27ebXr16mffee8+yOsYYc+HCBTN79mwzceJES3+vykydOtVERUWZLl26mCeeeMIYY8yGDRtMeHi4eeeddyypsWPHDvPLX/7STJw40TzzzDPml7/8pfnNb35jwsLCLH2vdKXXkJMnT1r2HuMf//iHCQsLM/fdd5/5+OOPzYABA8ykSZNMr169nK/PVli1apUJCwszv/3tb014eLjJyMgwOTk5JiwszKxcudKyOpd7/o8ZM8by57+7n/vGXP75v3//fkuf/1d67vfu3dvy574x7n3+e/U1pABqr6ysLCUlJally5blzpDIycnR7Nmz1b17d8tqHT16VBkZGXr44Yct2+bF3nvvPb355ptKSUlRjx49JP14B/FHHnlEJ06c0O7duy2p88477+itt97SunXrnNeL7tixQ08//bQmTJhg6Q2nCgsLtWDBAuXl5Wn//v364IMPLNu29OPN07Kzs3Xo0CH16NFDixYt0kcffaTZs2fr0Ucf1fDhw6td45///KcmTpyozp0767rrrtNnn32mO++8U3v37tXvfvc7hYWFWdCJrnifgP/85z/Kzc113k28OjZv3qzk5GSVlpbqueee04svvqi2bdtqz549mjRpkmVHyFevXq2FCxeqU6dO2rVrl6ZMmaL27dvrwQcf1MSJEy05G+ODDz7Qd999J39/f91yyy1q0qSJ7rzzTqWlpVl6R3pP3Pl+yZIlKiwsVHR0tLNGfn6+3nnnHT366KOW1JB+vKGhv7+/s5fDhw/rzJkz2rFjh2W9XPx4ORwOvf/++3r++ect/6SATz75RHl5eerZs6datmypr7/+WsYY7dy507I66enpcjgcCgkJUXFxsW6++Wbde++9+vTTTy2r8emnn6qoqMjtv2Nlj1d4eLjq1q2rbdu2qU2bNtq2bZul+6XsdzkyMlItW7ZUYWGhzp49q48++sjSOl9++aXOnDmjo0ePKicnR//3f/+nYcOGWXrWiqc+jeK7775TSEiImjVr5qzTvn17/ec//9FDDz1kWY26des6e9m1a5dCQ0OdlwVZ5eLH7L333tOuXbt07733WvaYEUgBeK0LFy5o9+7dOnr0qIwxzjemVp5W5e4bmpXJyclRUFBQue3l5+dr5cqVlv1hkuQ8ZatM2RvTNm3aWFbjYp999pk++OADPf/8827Z/vnz53X8+HHdcsstzjemP//5zy3bfn5+vrKysvT999+rpKTE+ca0adOmltX49NNPLQu3rjp+/Ljzjemtt95q6ba/++47ffXVV7rtttucb0zPnTtnyY2T5s+fr71796pVq1Zat26dpk6d6pY70nvizveeuru+r/VStv/d2YsnfsfmzZunvXv3un2/uPvxKqvjK58U4YkaldXp1KmTJZe52NXL4cOH1bdvX2vrWHq8FQAscvDgwat+WSUqKsq0a9fO9O7d2/Tq1avcV+/evS2p4alePFGHXryzjq/0EhUVZYqKiowxP57e3KtXL7Nu3TpjzJVPgfTWOlFRUc5T6XyhF1/aL/RS9Tqe+l0uKCgwDofDdOzY0XkJyoULF0x0dHSNqeGpOr7Ui1ff1AhA7eXuO1+XcfcNzSTP9eKJOper4efn57yTOL24VqeMO3uxuoYn6hgP3ZHeE3Uufnx8oRdf2i/0UvU6ZWr6J0V4ooan6vhSLxwhBeCVzpw5Y6Kjo822bdvcXsvdNzTzVC+eqEMv3lnHV3pZtGiRGT58eLmbvmzbts10797ddO7cuUbVoRfvrEMv3lvn5ZdfNiNGjCh3k559+/aZ+Ph4s2jRohpTw1N1fKkXAikAr+XuoOhJnurFE3XoxTvr+EovnrojvSfq0It31qEX763jiU+K8NSnUdCL67ipEQAAAADAFnUqXwUAAAAAAOsRSAEAAAAAtiCQAgAAAABsQSAFAAAAANiCQAoAAAAAsMX/BweF2rzsr9kTAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_ridge = results_ridge.head(35)\n", + "results_ridge.plot(kind='bar',figsize=(16,8))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 553, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_ridge.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 554, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.01688220269864965" + ] + }, + "execution_count": 554, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_ridge=np.mean(results_ridge.error)\n", + "meanerror_ridge" + ] + }, + { + "cell_type": "code", + "execution_count": 555, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.644335
10.555178
21.229197
30.663718
40.515901
......
650.774879
660.671756
671.801921
680.724719
690.807843
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.644335\n", + "1 0.555178\n", + "2 1.229197\n", + "3 0.663718\n", + "4 0.515901\n", + ".. ...\n", + "65 0.774879\n", + "66 0.671756\n", + "67 1.801921\n", + "68 0.724719\n", + "69 0.807843\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 555, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 556, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/ridge.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline rf" + ] + }, + { + "cell_type": "code", + "execution_count": 557, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9937861379766549\n", + "Adjusted R^2: 0.9935782392472493\n", + "MAE: 0.014543322580645234\n", + "MSE: 0.001705599923050192\n", + "RMSE: 0.041298909465628655\n" + ] + } + ], + "source": [ + "pred = pipeline_rf.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 558, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29151.319827-0.028327
10.65190.6498250.002075
20.83600.838836-0.002836
30.70930.733131-0.023831
40.56640.571842-0.005442
50.33810.3222800.015820
60.79950.7791410.020359
70.40670.412124-0.005424
81.01281.0126360.000164
90.30340.311385-0.007985
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 1.319827 -0.028327\n", + "1 0.6519 0.649825 0.002075\n", + "2 0.8360 0.838836 -0.002836\n", + "3 0.7093 0.733131 -0.023831\n", + "4 0.5664 0.571842 -0.005442\n", + "5 0.3381 0.322280 0.015820\n", + "6 0.7995 0.779141 0.020359\n", + "7 0.4067 0.412124 -0.005424\n", + "8 1.0128 1.012636 0.000164\n", + "9 0.3034 0.311385 -0.007985" + ] + }, + "execution_count": 558, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_rf = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_rf.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 559, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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BLKgoCANGjRIb7/9tjZu3KiXX375ousHBwe7vy8pKVFIyNloFh4e7p4XFhamdev+d2r+oUOHdOWVV0qSzP9/5WVQUJCCgoKqNNbSGpI0b948ZWVlKTY2Vr1791Z6erp722XVrVv3bD1VrVZlKj1CKkkTJ07Uhg0blJqaqgkTJkiSlixZonbt2kmSoqOjtX79eqWlpWnu3LkKCwtzdJAAAAAA4O8SEhK0fPlyNW3atNyNYM/nnXfekTFGBw4c0J49e8qdhSpJDRo0UMuWLd2B9KOPPtKIESMkSbfffrveeustSdK7774rl+vidwEODg5WUVHReZd99NFHuu+++9S/f38dPHhQhw8fVklJiUf9OsGju+wCAAAAAC6uWbNmatasme66665K183Pz1diYqJcLpdmzZqlq666qsI68+fPV3Jysl5++WWFhobq2WefVVBQkJ544glNmTJFy5cvV7t27XT55ZdftNZ1112nkydPasqUKRo8eHC5ZePGjdNjjz2mK664Qg0bNlTbtm2VnZ1dtcargUAKAAAAICCUFLm88hEtJUUu1Qm5+Fmgxhjl5ubq6NGj6t27d6Xb7NevnxISEsrNKz0btdR1112nv//97xV+tkmTJlq6dKl7+sknn7xorauuukrr1693T992223u72NjYxUbG3venysd3+bNm93zOnTpoAE9Bly0XlUQSAEAAAAEhMpC4/nknMxR8wbNq73dtLQ0JScnKzk5WWFhYXrqqaeUnp4uSSosKVRonbM3Hmrbtm2Vx+iJDRs26IU/vuCuU1bZ61D9DYEUAAAAAKqpX79+6tevn3t66tSp7u89Cb3VNWDAAHW4s4PX6zjNo5saAQAAAADgNAIpAAAAAMAKAikAAAAAwAoCKQAAAADACgIpAAAAgIDgKi6s8s94chOgS9kuPMNddgEAAAJA2c9JTI5KrjAPqA3CgkM1ZMWDjm935d1/dHybOItACgAAEADqhITp2zmJ5ea1mr7G0miA2unPf/6z3nnnHRUXF+uOO+7QsGHDNHbsWF1+xeVqUK+BBg4cqLVr1+qHH35Qjx49NGrUKE2fPl05OTkKCQnRpEmT1L17dy1evFi7du3SwYMHNWLECI0YMcJ2a15DIAUAAACAavrHP/6hjIwMrV69WkFBQZoyZYpSU1P13Xff6Y233lCnn3bSm2++qcOHD2vDhg0K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jxs3TpmZmWrcuLHOzehBQUHatGlTtbZvjHHvzJYtW+qll17S6NGj9eMf/7jCTq6OkpIShYWFqUWLFhozZky5N1TFxcWO1Jg6daq6d++u5557To8++qhuu+02/e1vf3MsiJYqKipSSUmJGjZsqHr16rnnh4WFqU4dZy5/Dg8P17Fjx9wv5NOnTyssLExnzpxRSIhzL4+goCBdf/31eu2115Senq4VK1Zozpw5atmypZo2berIH0BjjE6ePKnTp08rPz9feXl5uuqqq5Sfn6/CwkIHujiroKBAZ86cUb169ZSfn68ffvhBklSvXj3H9ot04T9Mq1ev1q5duxx7Y1rZP4MGDRpU7RpPPPGE+w/TY489Vu4P0+bNmx0LpOf74zRs2DBt3LhRTz75pFffmI4aNUqSc29M//CHP6h3797nfWP61VdfOfLGtPQ5FB0draeeekqnT5/W8OHDtWXLFj3++OOOvTHdvXu37rvvPq++MU1KSnK/MX3ttdfUvn17Pfvss9q0aZOeeOIJx96Yzps3T4WFhbr//vsrvDHNzMys9hvTDRs26J133qnwuyQ2NlaxsbGOve7/8Ic/aNeuXWrfvv15/+Y78TzOyMhw/yNw0KBBuvfeexUeHq577723Qs3q+PDDD5WamqoffvhBffr00ccff6w6deqoe/fujvz+kqR+/frpz3/+sx555BG1aNFCxhjNmDFDDz/8sCPbP9d7772nVatWud/DREVFKTY21pHX/b/+9S+lpqZKOhtO1q1bp6CgIEVGRjp6aVOTJk308ssv6+mnn1bfvn01bNgwxcTEqEWLFo7V2Lt3r1JTU1VcXKzIyEgtX75cknT99de7z8Jzwvbt293P5TvvvFMjRozQG2+8ocjISA0cONCxQOqL178vXvuSb17/vnjtS755/ft1IB0/frwGDRqkbt26lTtld/v27Y78UirrjTfe0PDhwzVz5kx17tzZ0W1LZ3fmyJEjNW3aNLVv316tW7fWokWL9PDDD8vlcjlWp2/fvvrlL3+ppUuXut/kfvnll0pKSlL//v0dq9OtWzfdeOONmjlzprZs2eJY2C3rqquuUmRkpIKCgjRz5kzNmzdP27Zt0/z589WvXz9Hajz88MMaPHiwYmJi1KpVK40cOVLdunXT1q1bdf/99ztSQ1K5Xz633367br/9dhUWFuqrr75SVlaWIzXGjh2rvn37yhijKVOmaMyYMerWrZu2bdvm6PWwCQkJGjZsmO644w5t3bpVCQkJOnDggB566CHFxsY6VsdXb0y3b9+utLS0Cz6nnPilzhvTS8cbU88EyhvTunXr6tChQxXOSsrJyXH0OvglS5Zo1KhRuueee9SrVy/HtluWMUanT59WvXr19OMf/1hLlizRsGHD1LBhQ0f/ES1JLpdLV111laZOner+nXnq1Knz/lP/UowYMUK33XabZs6cqV/84hcaNGiQLr/8ct16662ObL/U6dOndfToUTVv3lynT592v+7z8/Md+ydxvXr19PXXX6t169b6yU9+ooMHD6p58+Y6fPiwo8+xoKAgXX311Xr66aeVmZmplStXasyYMSooKFDTpk3dr9HqqFOnjr777judPHlSJ0+eVHZ2tiIiInT8+HHH9r109oDGsWPH1LBhQx05ckT5+fmSpMLCQkf/ee+L178vXvuS717/3n7tSz56/Rs/d+jQIbN27Vrz0ksvmT/96U9m7dq15tChQ16ptXv3bpOUlOSVbRtjTHp6uvnmm2/KzcvJyTGzZ892tM7HH39cbnr//v1my5YtjtYoa+XKlWb06NFe2/7+/fvNZ599ZowxZseOHeaDDz5wdPv//ve/zSuvvGJmzpxpkpKSzHPPPWd2797taI2VK1c6ur0LOXPmjMnLyzPGGPPll1+al19+2WzdutXxOunp6ebll1826enpxhhj8vLyzJdffulojbi4OHPgwIEK8//973+bgQMHOlpr3LhxZtWqVY5us6zY2Fhz6tQp9/ShQ4dMjx49zFtvvWUGDRrkWJ2YmBiTn59vjCn/nDt58qQZMGCAY3W+/vprM3z4cLN27VpjjHG0h1J9+/Y1R44cMePGjTPHjx93zz9x4oRjvQwZMsT861//MsYY89BDD7mfb4cOHTLx8fGO1DCm/OPz3Xffmaeeesr07dvXREZGmrvvvtuRGgMHDjTffvut2b17t2nfvr3Jysoyxhhz7NgxR/f9gAEDzNGjR40xZx+n0t7y8vJMTExMtbf/0UcfmaioKHPvvfeaKVOmmClTpph7773XREVFmW3btlV7+2V9++23Zv78+Y5us6zly5ebvn37un9PGmPMN998Y6Kioky7du0cq7Ns2TLTt29fU1RU5J63c+dO06NHD7NixQrH6hhjTEFBgZk7d66ZMGGCo8+rUtOmTTOxsbGmc+fO5uGHHzbGGJOWlmaioqLM66+/7kiNTz/91Pz85z83EyZMMI899pj5+c9/bn71q1+ZyMhIR98rXeh3yPHjxx17j/HPf/7TREZGmjvvvNO89957pl+/fmbixImmR48e7t/PTlizZo2JjIw0v/71r01UVJRJTU01mZmZJjIy0qxevdqxOud7/Y8ePdrx17+3X/vGnP/1v3//fkdf/xd67ffs2dPx174x3n39+/U1pABqr/T0dE2fPl0tW7Ysd4ZEZmam5s6dq65duzpWKzc3V6mpqbrvvvsc22ZZK1as0CuvvKLk5GR169ZN0tk7iN9///06duyY9uzZ40id119/XX/729+0YcMG9/Win376qX7zm99o/Pjxjt5wyuVyaeHChcrJydH+/fv19ttvO7Zt6ezN0zIyMnTw4EF169ZNixcv1rvvvqu5c+fqgQce0LBhw6pd47PPPtOECRPUqVMnXXbZZfroo4908803a+/evfrd736nyMhIBzrRBe8T8J///EdZWVnuu4lXx9atW5WUlKSSkhI98cQTeuaZZ9SmTRt9/vnnmjhxomNHyN98800tWrRIHTt21O7duzV58mS1a9dO99xzjyZMmODI2Rhvv/22vvvuOwUHB+uaa65RkyZNdPPNN2vt2rWO3pHeF3e+X7JkiVwul+Li4tw18vLy9Prrr+uBBx5wpIZ09oaGwcHB7l4OHTqkkydP6tNPP3Wsl7KPV3Z2ttavX68nn3zS8U8KeP/995WTk6Pu3burZcuW+te//iVjjHbt2uVYnZSUFGVnZys8PFxFRUW6+uqrdccdd+jDDz90rMaHH36owsJCrz/HSh+vqKgo1atXTzt27FDr1q21Y8cOR/dL6XM5JiZGLVu2lMvl0qlTp/Tuu+86WufLL7/UyZMnlZubq8zMTP3f//2fhg4d6uhZK776NIrvvvtO4eHhatasmbtOu3bt9J///Ef33nuvYzXq1avn7mX37t2KiIhwXxbklLKP2YoVK7R7927dcccdjj1mBFIAfqugoEB79uxRbm6ujDHuN6ZOnlbl7RualcrMzFRYWFi57eXl5Wn16tWO/WGS5D5lq1TpG9PWrVs7VqOsjz76SG+//baefPJJr2z/zJkzOnr0qK655hr3G9Of/vSnjm0/Ly9P6enp+v7771VcXOx+Y9q0aVPHanz44YeOhVtPHT161P3G9LrrrnN02999952++uor3XDDDe43pqdPn3bkxkkLFizQ3r171apVK23YsEHTpk3zyh3pfXHne1/dXT/Qeind/97sxRfPsfnz52vv3r1e3y/efrxK6wTKJ0X4okZldTp27OjIZS62ejl06JB69+7tbB1Hj7cCgEMOHDhw0S+nxMbGmrZt25qePXuaHj16lPvq2bOnIzV81Ysv6tCLf9YJlF5iY2NNYWGhMebs6c09evQwGzZsMMZc+BRIf60TGxvrPpUuEHoJpP1CL1Wv46vncn5+vsnOzjYdOnRwX4JSUFBg4uLiakwNX9UJpF78+qZGAGovb9/5upS3b2gm+a4XX9Q5X42goCD3ncTpxbM6pbzZi9M1fFHH+OiO9L6oU/bxCYReAmm/0EvV65Sq6Z8U4YsavqoTSL1whBSAXzp58qSJi4szO3bs8Hotb9/QzFe9+KIOvfhnnUDpZfHixWbYsGHlbvqyY8cO07VrV9OpU6caVYde/LMOvfhvneeee84MHz683E169u3bZxITE83ixYtrTA1f1QmkXgikAPyWt4OiL/mqF1/UoRf/rBMovfjqjvS+qEMv/lmHXvy3ji8+KcJXn0ZBL57jpkYAAAAAACvqVL4KAAAAAADOI5ACAAAAAKwgkAIAAAAArCCQAgAAAACsIJACAAAAAKz4/wDQzAm/JJr5wwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_rf = results_rf.head(35)\n", + "results_rf.plot(kind='bar',figsize=(16,8))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 560, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_rf.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 561, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.005028800000000358" + ] + }, + "execution_count": 561, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_rf=np.mean(results_rf.error)\n", + "meanerror_rf" + ] + }, + { + "cell_type": "code", + "execution_count": 562, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.653364
10.551886
21.187203
30.699820
40.524007
......
650.745894
660.655365
671.835191
680.726997
690.825854
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.653364\n", + "1 0.551886\n", + "2 1.187203\n", + "3 0.699820\n", + "4 0.524007\n", + ".. ...\n", + "65 0.745894\n", + "66 0.655365\n", + "67 1.835191\n", + "68 0.726997\n", + "69 0.825854\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 562, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 563, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../rf.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline kn" + ] + }, + { + "cell_type": "code", + "execution_count": 564, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.8836213486911326\n", + "Adjusted R^2: 0.8797276391677876\n", + "MAE: 0.11585992831541216\n", + "MSE: 0.031943969462365586\n", + "RMSE: 0.17872875947190364\n" + ] + } + ], + "source": [ + "pred = pipeline_kn.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 565, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29150.959760.33174
10.65190.650380.00152
20.83600.84794-0.01194
30.70930.424640.28466
40.56640.61854-0.05214
50.33810.72774-0.38964
60.79950.706480.09302
70.40670.47320-0.06650
81.01281.15570-0.14290
90.30340.42464-0.12124
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 0.95976 0.33174\n", + "1 0.6519 0.65038 0.00152\n", + "2 0.8360 0.84794 -0.01194\n", + "3 0.7093 0.42464 0.28466\n", + "4 0.5664 0.61854 -0.05214\n", + "5 0.3381 0.72774 -0.38964\n", + "6 0.7995 0.70648 0.09302\n", + "7 0.4067 0.47320 -0.06650\n", + "8 1.0128 1.15570 -0.14290\n", + "9 0.3034 0.42464 -0.12124" + ] + }, + "execution_count": 565, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_kn = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_kn.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 566, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6oAAAJDCAYAAAACQOngAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABG1UlEQVR4nO3de5hVddk//ntgGAgPWQqYUF8zNSs8m5ol4BEURhB8FOQriWVpCnmI4AmUycQTaBqWj1FWlidEBUkEFR4sQ7+eEsXHQ6njM8NBQLM4zzCs3x/+mBzOM7Nnz2dmXq/rmuuatfba6/7cs2Yf3nsddkGWZVkAAABAIlo19gAAAADg4wRVAAAAkiKoAgAAkBRBFQAAgKQUNvYAtmTt2rWxYMGC6NChQ7Ru3bqxhwMAAEAOVVVVxbJly6Jr167Rrl27zW5PMqguWLAgBg8e3NjDAAAAoAHdddddccQRR2w2P8mg2qFDh4j4aNB77rnnDt/v5mdujkuOvqSBRpXfOnpJs45e0qyjlzTr6CXNOnpJs45e0qyjlzTr6CXNOrWtsWTJkhg8eHB19ttUkkF14+G+e+65Z3Tp0mWH77fzHjvXavm6ykcdvaRZRy9p1tFLmnX0kmYdvaRZRy9p1tFLmnX0kmadutbY2qmeLqYEAABAUgRVAAAAkiKoAgAAkJQkz1EFAACoq8rKyigvL4+1a9fWeR09P9kzXnvttRyOqnFq5KvO1mq0bt06dtttt9hjjz2iVasd308qqAIAAM1KeXl57LLLLrH33ntHQUFBndaxaMWi2GuXvXI8svzXyFedLdXIsiwqKyvjvffei/Ly8vjc5z63w+tz6C8AANCsrF27Nnbfffc6h1Ryo6CgIIqKiqJz586xatWqWt1XUAUAAJodITUdtTnkt/o+DTAOAAAAqDNBFQAAaNYqKqtqfZ8dOaezLuvdljlz5sRvfvObWt3nlltuidmzZ+d0HClwMSUAAKBZK2rTOoovn5bz9U6/sW9O1/fqq6/W+j7f//73czqGVAiqAAAADWTEiBFxxBFHxFlnnRUREeecc0784Ac/iIMPPrjGcn//+9/j3nvvjYiIvfbaKxYtWhQvvfRSLF68OAYPHhz77bdf/PSnP421a9fGP//5zxgxYkSccsopMWrUqDjyyCPjyCOPjIsvvjj222+/eO2112L33XePW265JXbbbbd8t5wTDv0FAABoIAMGDIiHH344IiIWLlwYH3zwwWYhNSJi3333jYEDB8bAgQNjwIABERFRUVERM2bMiMGDB8cf/vCHuPrqq+Ohhx6KcePGxS9+8YvN1vH666/H0KFD449//GPsuuuuMX369IZtrgEJqgAAAA3kqKOOiqVLl0Z5eXlMnTo1+vbd8cOFDzrooOrfx48fH3/729/i5z//efzmN7/Z4te97L777vHlL385IiL222+/+Oc//1n/BhqJoAoAANBACgoKol+/fvHII4/EzJkzaxVU27VrV/372WefHS+//HJ07do1Lrjggi0u37Zt2xp1syyr+8AbmXNUAQAAGlD//v3j7LPPjn333Tc6deq01eVat24d69at22z+hx9+GKWlpXH33XdH27ZtY+LEiVFVldsrDqdGUAUAAJq1isqqnF+hd+N6i9q03u5yn/nMZ+Izn/lMnH766dtc7qtf/WqMHDky9thjjxrzd9ttt/iP//iP6N27d+y8885xyCGHxNq1a2P16tX1Gn/KBFUAAKBZ25EwualFKxZt97tUd2S9WZbF0qVLY/ny5XHiiSduc9mvfvWrMWfOnC3eNmrUqBg1alT1dElJSUREXHfdddXzPn7fYcOGbXdsKRNUAQAAGsisWbOipKQkSkpKoqioKK6//vqYN29eRERUbqiMNq3aRERE165dY9y4cY051KQIqgAAAA2kV69e0atXr+rpkSNHVv++I3ttWypX/QUAACApgioAAABJEVQBAABIiqAKANCMVFRu/t2KW5oHkDIXUwIAaEaK2rSO4sun1ZjXEN8fCU3JhvUV0aqwqFb32ZGLHNVlvewYQRUAAGjWWhUWxdvjBuR8vfuMfiDn68ylL37xi/HGG29s9faysrK47bbb4pprrtnhdc6ePTsWLFgQ3//+93MxxK0SVAEAAFqgRYsWRVlZWa3uc8IJJ8QJJ5zQQCP6N0EVAACggYwYMSKOOOKIOOussyIi4pxzzokf/OAHcfDBB2+27KhRo6KgoCDefPPNWLlyZVx44YXRr1+/mDhxYrz00kuxePHiGDx4cHzjG9+IkpKS+PDDD6Ndu3ZxxRVXxJe//OUoLy+PESNGxOrVq7e4/k1dffXVUV5eHj/+8Y+jV69eMX78+NiwYUPst99+cdlll8WPfvSjWLFiRSxbtix69+4dP/jBD+LBBx+MZ599Nq677ro4/vjj47TTTounnnoq/rXqX3HT+Juia9euOfm7uZgSAABAAxkwYEA8/PDDERGxcOHC+OCDD7YZIt977724995743e/+13ccMMNsWzZsoiIqKioiBkzZsTgwYNj5MiRMWLEiHjooYfiJz/5SVx66aUREfGTn/wk+vfvH9OmTYvDDjtsu2MbM2ZMdO3aNcaOHRsREaWlpfG73/0urr/++vjjH/8Yffr0icmTJ8fDDz8cd999d3zwwQebrWO33XaLKVOmxGn9T4vbb7+91n+fralXUL3lllvi1FNPjd69e8dvfvObzW6/9dZb47jjjou+fftG375946677qpPOQAAgCblqKOOiqVLl0Z5eXlMnTo1+vbd9sXN+vfvH23atIk999wzDjvssHjhhRciIuKggw6KiIhVq1bFggUL4j//8z+jb9++cfnll8fq1avjH//4Rzz77LNxyimnRETEaaedFm3atKnVWD//+c/HLrvsEhER3/rWt+Izn/lM/PrXv45x48ZFZWVlrFmzZrP7HHvssR/dd9/Px4cfflirettS50N/n3322XjmmWfi4YcfjvXr18epp54a3bt3j3322ad6mQULFsRNN90Uhx56aE4GCwAA0JQUFBREv3794pFHHomZM2fGr371q20u37p16+rfN2zYEIWFH0W2du3aVc8rKiqKadP+fXXvJUuWxG677RYREVmWVdctKCio1Vg31oiIuO6666KsrCz69OkTJ554YsybN6963R/Xtm3bj+pF7WptT533qB555JFx5513RmFhYbz//vtRVVUV7du3r7HMggULYtKkSVFcXBxXXXVVrFu3rt4DBgAAaEr69+8f9957b+y5557RqVOnbS776KOPRpZlsXDhwnj55Zfj8MMPr3H7LrvsEnvvvXd1UP3LX/4SgwcPjoiIY445pvow48ceeywqKiq2Wat169axfv36Ld72l7/8Jb71rW/FKaecEosXL4733nsvNmzYsEP95kJBtqVYXAs/+9nP4o477ohevXrFtddeW53aV61aFZdcckmMGTMmOnfuHKNGjYrOnTtXHz+9LeXl5XHCCSdE8bji2HmPnXd4LHNL50aPvXvUtZWk6uglzTp6SbOOXtKso5c06+glzTq5rFHSo2SL36NaMrekyfXS2HX0kmadHanR85M94//s+3+qpzu2/XQUFrXb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iPXr18chhxwSCxYsqLHcxIkTo0OHDjFw4MB48skn4yc/+UnMmDEjioqKtrn+8vLyOOGEE6J4XHHsvMfOOzyuuaVzo8fePWrbTq3lo45e0qyjlzTr6CXNOnpJs45e0qyjlzTr6CXNOnpJs05ta6xcvjKmj54es2fPji5dumy+QLYdM2bMyI499tgaP+ecc0527LHHVi9TWVmZde3adXuryoqLi7PXXnttu8uVlZVl+++/f1ZWVrbdZT9u7H+PrdXydZWPOnpJs45e0qyjlzTr6CXNOnpJs45e0qyjlzTr6CXNOrWtsb3Mt92LKZ1yyilxyimn1JhXWVkZRx11VFRVVUXr1q1j2bJl0bFjx83u+/vf/z769OkTn/rUpzaG4igsrPP1mwAAAGgB6nSOaps2beKII46IGTNmRETE1KlTo1u3bpst99xzz8WUKVMiIuLZZ5+NDRs2xD777FOP4QIAANDc1fmqv2PHjo3JkyfHqaeeGs8//3xccsklERFxzz33xC233BIREaNHj4558+ZFnz594vrrr48bb7wxWrXy1a0AAABsXZ2Pw+3cuXP8/ve/32z+oEGDqn/v1KlT/OY3v6lrCQAAAFoguzcBAABIiqAKAABAUgRVAAAAkiKoAgAAkJQkv9S0qqoqIiKWLFlSq/utXL4yysvLG2JIea+jlzTr6CXNOnpJs45e0qyjlzTr6CXNOnpJs45e0qxT2xobs97G7LepgizLspyMLIeef/75GDx4cGMPAwAAgAZ01113xRFHHLHZ/CSD6tq1a2PBggXRoUOHaN26dWMPBwAAgByqqqqKZcuWRdeuXaNdu3ab3Z5kUAUAAKDlcjElAAAAkiKoAgAAkBRBFQAAgKQIqgAAACRFUAUAACApgioAAABJEVQBAABIiqAKAABAUgobewD18dZbb8WsWbNiyZIl0apVq+jYsWMce+yxceCBBzb20GrliSeeiMWLF0f37t3jc5/7XPX8++67L84666yc1SktLY1PfOIT0alTp7j//vvjjTfeiMMOOyxOPfXUnNXIh5dffjkOOuigiIh4+umn48knn4zCwsI46aST4uCDD85prT//+c9x8MEHx6677hpTp06Nl19+Ob7yla/EgAEDcrL+q6++OoYNGxaf/OQnc7I+AABoDprsHtW77rorLrvssoiIOPDAA+MrX/lKRERcccUVcccddzTm0GplwoQJ8Yc//CFKS0tj4MCBMW3atOrb7r333pzV+e1vfxvf+ta3YuDAgfGf//mf8cgjj8TnP//5eOCBB+LnP/95zups6rrrrsv5OseOHRsRH/0PXHPNNbHnnnvGHnvsEVdeeWX84Q9/yFmdcePGxe233x7r1q2Lm2++OaZPnx777rtvPP7443H11VfnpMbUqVPjzDPPjMceeywn69uWp59+Ov76179GRMQdd9wRF1xwQdx6661RUVGRsxpPPPFEjBo1Kr71rW/FBRdcENdcc011TQCoiyeeeKL69/vvvz+GDRsWl156acyYMaMRRwU0tIIsy7LGHkRd9OzZM6ZOnRqf+MQnasxfs2ZNnH766TFz5syc1Fm0aNE2b99rr73qtf7i4uJ46KGHorCwMEpLS+O8886LESNGxCmnnBL9+vWLqVOn1mv9H68zZcqUWL58efTp0yeeeeaZaNu2bVRUVMQZZ5wRDz/8cL1r/Od//udm8+bMmRPHH398RERce+219a4REXH66afHQw89FH379o3f/va38alPfSoiIlauXBlnnHFGzrb9qaeeGtOnT4/WrVtHv379YvLkyVFUVBRVVVXRp0+fePTRR+tdo1+/fjFhwoQoKSmJdevWxdChQ+P444+Pdu3a5aCDf7vhhhvi+eefj/Xr10eXLl2ioKAg+vfvH3PmzImqqqqcBO/bb789XnrppTj22GNjzpw5ccQRR0S7du3i/vvvj29+85tx5pln5qATWronnngiTjzxxIj46A3rn/70p+ojKpra0SHU3p///OeYOXNmjSOpunXrFj179mzsodXK+vXr46677orFixfHiSeeGEcccUT1bRMnToxhw4blpM68efNil112iS996UsxceLEeOONN+Lwww+P8847L1q3bp2TGlty2WWXxU033ZSz9W183Z84cWI8//zzcc4550SWZXHffffFV77ylbj00ktzUmf9+vUxZcqUOOmkk2KXXXaJX/7yl/HKK6/EV77ylfjud78bbdu2rXeNCy64IEaPHh2f/exnczDirVu/fn1MnTo12rVrFz179oxrr702nnvuuejatWuMHDkydtttt3rX2LBhQ9x5550xe/bsWLZsWbRp0yY+97nPxamnnhq9e/eufxMf47FfO83lsd9kD/0tLCyM9evXbzZ/7dq10aZNm5zV+e53vxulpaXRsWPH2DTTFxQUxOzZs+u1/izLoqCgICIi9t5777j99ttj6NCh8elPf7p6fi5s2LAhioqKonPnznHeeefVeLKtqqrKSY3ddtstpk6dGhdccEHsuuuuERHxzDPPxJFHHpmT9W+0fv362LBhQ+y+++7Rvn376vlFRUXRqlXuDhJo165dvP/++9GxY8fYfffdY/Xq1VFUVBRr1qyJwsLcPHQKCgpi3333jT/84Q8xb968uO+++2LcuHGx9957x5577hk33nhjTur8+c9/jmnTpkVFRUV07949nnrqqWjTpk1069Yt+vbtm5MaM2bMiKlTp0ZBQUEMGDAgzj///LjzzjtjwIABceaZZ+Y0qHrBqr3GeNHK9QtWRMTPf/7zOPHEE7f4hvWNN97IyRvWfLxZjcjPG9Z8vFmNyM8b1ltuuSVefvnlOO2006Jjx44REbF06dKYMmVKvPTSSzFy5Mh613juuee2eftXv/rVeteIiLjyyitjw4YNsf/++8cPf/jDOPPMM+OCCy6IiI8+4M3FY3/8+PHx4osvxsqVK6tfxwYNGhQzZ86Ma665Jq644op614iIOOecczZ7v7JgwYIYMmRIRETceeedOakTEfH444/H/fffX/0Y7NGjR/Tp0ydnQXXj/1DPnj3j+uuvj9WrV8fZZ58dc+fOjR/96Ec5eU2eP39+9RFu55xzTk7fs37cmDFjYvXq1VFRURF/+MMf4qCDDoqf/vSnMXv27LjyyivjZz/7Wb1rXHfddVFZWRnf/va3Y9asWXHAAQfEZz7zmbjzzjujtLQ0Lrroohx04rFfW83psd9kg+oFF1wQ/fr1i6997WvRoUOHiIhYtmxZPPPMMzl7woqIuOeee+Lss8+OsWPHxuGHH56z9W7Uq1evOOecc2LUqFFx0EEHxX777Re33HJLXHzxxTk9JPPkk0+O//t//2/ceeed1Q+C119/PcaMGROnnHJKTmqMHDkyunXrFjfffHNcdtllcdRRR8Xvfve7OP3003Oy/o0+9alPRffu3aOgoCDGjh0b1113XTz99NMxfvz46NWrV87qXHzxxXHGGWdE7969Y5999olzzjknvva1r8VTTz0V3/72t3NS4+MffhxzzDFxzDHHRGVlZbzxxhtRVlaWkxob66xYsSJWr14da9eujZUrV8anPvWpWLt2bVRWVuakxrp162LNmjXRvn37WLt2bXz44YcREdG+ffucfoCQjxesiNju0Qz9+vWrd418vGBF5OdFK59vViMa9g1rPt6sRuTnDWs+3qxG5OcN64wZM+LRRx/d7PmkT58+0adPn5w89n/+85/HSy+9FAcddNAWP5zO1f/xggULqo9k6tevX5x77rnRrl27OPfcczerW1dPPvlkTJ8+PT788MM46aST4tlnn41WrVpFt27dcvL8tVGvXr3il7/8ZVxyySXRuXPnyLIsrrjiirj44otzVmP16tWxfPny2GuvvWL16tXVj/u1a9fm7IPjiIg333wzpk+fHhEfBZdp06ZFQUFBdO/ePWdHbHTq1Cl+9atfxQ033BAnn3xyDBo0KHr37h2dO3fOyfo3evXVV2P69OlRVVUV3bt3rz6dbN99983ZB9TPPPNM9f/xscceG4MHD4577rknunfvHqeddlrOgqrHfu00p8d+kw2qxcXFceSRR8bTTz8dS5cujSzL4ogjjohhw4ZFp06dclZn5513jquvvjruv//+BgmqF198cRx++OGx0047Vc87/PDD48EHH8zpubbf//7347nnnqux56SoqCiGDRsW3bt3z1mdr33ta/GlL30pxo4dG3Pnzs3Z3tqP2/hk8fbbb8e//vWviPiol+HDh0ePHj1yVuf444+P/fbbL5544ol4991345BDDomddtoprrvuuuqLOdXX4MGDN5vXpk2b6Nq1a3Tt2jUnNSIizj///Dj55JMjy7IYMWJEnHfeefG1r30tnn766ZxdGKp///4xaNCg+MY3vhFPPfVU9O/fPxYuXBgXXXRR9OnTJyc1IvLzghXx0QvwrFmztvrhRy6e7PPxghWRnxetfLxgReTnDWs+3qxG5OcNaz7erEbk5w1r27ZtY8mSJZudcrNo0aIoKiqq9/ojIiZNmhRDhgyJb37zm3HCCSfkZJ1bkmVZrF69Otq3bx+f/vSnY9KkSTFo0KDYfffdc3o0VUVFRXzqU5+KkSNHVj9nrlq1aotHpNXV4MGD46ijjoqxY8fGf/zHf0S/fv1ip512yunRVIcddlgMHTo0Fi9eHFdeeWVMnDgxHnvssbj22mvjO9/5Ts7qtG/fPv72t7/FfvvtF5/73Odi8eLFsddee8V7772Xs/+xgoKC2GOPPeKGG26I0tLSmDx5cpx33nmxbt262HPPPXN2fZJWrVrFO++8EytWrIgVK1ZEeXl5dOnSJT744IOcbf+qqqp4//33Y/fdd49ly5bF2rVrIyKisrIypx8geOzXXnN57EcGDWTy5MnZ0KFDG3sY/P/WrFmTrVy5MsuyLHv99dezX/3qV9lTTz2V0xrz5s3LfvWrX2Xz5s3LsizLVq5cmb3++us5rVFcXJwtXLhws/n/+7//m5122mk5rfXd7343u//++3O6zo/r06dPtmrVqurpJUuWZMcdd1z28MMPZ/369ctZnd69e2dr167Nsuyjx+VGK1asyE499dSc1fnb3/6WnX322dlDDz2UZVmW0x42GjVqVNanT5/s8MMPzy6++OIsy7Js1qxZWY8ePbK77747JzXOPPPM7M0338yyLMsuuuii6v+3JUuWZH379s1JjSyr+fd55513suuvvz47+eSTs+7du2dnnXVWTmqcdtpp2dtvv53Nnz8/O+igg7KysrIsy7Ls/fffz+m2P/XUU7Ply5dnWfbR32ljbytXrsx69+6dkxp/+ctfsh49emTnnntuNmLEiGzEiBHZueeem/Xo0SN7+umnc1Ijy7Ls7bffzsaPH5+z9W3Jvffem5188snVz5VZlmV///vfsx49emQHHnhgTmrcdddd2cknn5ytX7++et4LL7yQHXfccdl9992Xkxoft27duuzaa6/Nhg0bltP/rY0ef/zx7He/+132zjvvZFmWZW+88Ub2+uuvZ/fee2/Oarz44ovZ17/+9WzYsGHZD3/4w+zrX/969r3vfS/r3r17Nnfu3JzU2NpzyAcffJDNnz8/JzWyLMv+/Oc/Z927d8+OPfbY7PHHH8969eqVDR8+PDvuuOOqn6Pr64EHHsi6d++eff/738969OiRTZ8+PSstLc26d++eTZkyJSc1smzLj/2hQ4c2m8f+W2+9lZfH/vHHH9/kHvtN9mJKQMs0b968GD16dOy99941DvsvLS2Na6+9No4++uic1Vq6dGlMnz49vvWtb+VsnR933333xR133BElJSXxta99LSI++tqtb3/72/H+++/Hyy+/nJM6d999d/zud7+LGTNmVB9V8eKLL8YPfvCDuOCCC3J6/nBFRUXcdNNNsWjRonjrrbfikUceydm6P27NmjWxfPny+OxnPxtvvvlmZFkWX/ziF3Oy7r/+9a8xbNiwOOyww+ITn/hE/OUvf4mDDz44Xn311fjxj3+cs6NQtnbBvH/84x9RVlaWkyM3nnrqqRgzZkxs2LAhrrzyyrjxxhtj//33j1deeSWGDx+esz3qDz74YNxyyy1x6KGHxvz58+Pyyy+PAw88ML75zW/GsGHDcnbkxiOPPBLvvPNOtG7dOj772c9Gp06d4uCDD46HHnooZ1/nlq+vjJs0aVJUVFREcXFxdZ2VK1fG3XffnbO9hL/97W+jdevW1b0sWbIkVqxYES+++GJOe/n436y8vDz++Mc/xjXXXJOzv9mECRPi1VdfjX322SceffTRGDlyZPURARsvtJQrU6dOjfLy8mjXrl2sX78+9thjj/jGN74RTz75ZE56efLJJ6OysjIv/2NPPPFELFq0KHr06BHt27eP559/Pvbbb794/vnnc1Zn4/9x7969Y++9946KiopYtWpVPPbYYznt5fXXX48VK1bE0qVLo7S0NP7f//t/MXDgwJwe5ZKvr3F85513ol27dvGZz3ymus6BBx4Y//jHP+Lcc8/NWY327dtX9zJ//vzo0qVL9elFufLxv9l9990X8+fPj2984xs5+5sJqkCTs27dunj55ZerD/vf+GY1V4cARTT8Fb83Ki0tjaKiohrrW7lyZUyZMiVnL1gRUX3Y10Yb37Dut99+OavxcX/5y1/ikUceiWuuuSan683Xdlm5cmXMmzcv3n333aiqqqp+s7rnnnvmZP0RH71hzeWpFzti+fLl1W9Wv/CFL+R03e+880688cYbccABB1S/YV29enXOLtj08bAyY8aMGDVqVM7DyoQJE2LBggXxhS98oUEDUT7qNKde8vUNCfn4Hxs/fny8+uqredkuDR3u8/U/9tvf/jZ+//vfx4YNG+Loo4+OxYsXx0knnRRz5syJww47LCenFuSjxvbqHHrooTk5XaaxelmyZEmceOKJua2T0/2zAA1s4cKF2/zJlT59+mRdu3bNjj/++Oy4446r8XP88cfnpEa+eslHHdslzTrNqZc+ffpklZWVWZZ9dKj0cccdl82YMSPLsq0fTplijY11Nh6W1xx6aeg6vXv3rnEY45tvvpl9/etfz5555pmcnmLQ3P7H8tFLQ/8fb6yzdu3arLy8PDvkkEOqT2VZt25dVlxc3GRq5KtOc+qlyV5MCWiZGvorozZq6Ct+R+Svl3zU2VKNgoKC6q/gaurbpSF6aaztkusa+aqT5eHr3PJRY2OdjZpDLw1dJ1/fkNDc/sfy0ctGTf0rFvNRI191mlMv9qgCTcqKFSuy4uLi7Pnnn2/wWvPnz8/GjBnTYOvPVy/5qGO7pFmnOfUyceLEbNCgQTUuOPP8889nRx99dHbYYYc1mRr5qtOcesmyjy7W9/e//73GvEWLFmVXX311zmrYLunVyLIsu/nmm7Ozzz67xl711157LRswYEA2ceLEJlMjX3WaUy+CKtDkNHRQyad89ZKPOrZLmnWaUy/5CCv5qJGvOs2pl3yxXdKrkWVZ9uyzz9aYfuutt3J2JeZ81shXnebSi4spAQAAkJRWjT0AAAAA+DhBFQAAgKQIqgAAACRFUAUAACAp/x/8T7erRTRXEQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_kn = results_kn.head(35)\n", + "results_kn.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 567, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_kn.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 568, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.011010857142857142" + ] + }, + "execution_count": 568, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_kn=np.mean(results_kn.error)\n", + "meanerror_kn" + ] + }, + { + "cell_type": "code", + "execution_count": 569, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.62584
10.67650
20.71324
30.79172
40.54562
......
650.79428
660.60598
671.48028
680.73740
690.71318
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.62584\n", + "1 0.67650\n", + "2 0.71324\n", + "3 0.79172\n", + "4 0.54562\n", + ".. ...\n", + "65 0.79428\n", + "66 0.60598\n", + "67 1.48028\n", + "68 0.73740\n", + "69 0.71318\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 569, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 570, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/kn.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline xgb" + ] + }, + { + "cell_type": "code", + "execution_count": 571, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9999916674769973\n", + "Adjusted R^2: 0.9999913886936999\n", + "MAE: 0.0010687737832359861\n", + "MSE: 2.2871364923928635e-06\n", + "RMSE: 0.001512328169542862\n" + ] + } + ], + "source": [ + "pred = pipeline_xgb.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 572, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29151.2910560.000444
10.65190.6486070.003293
20.83600.836601-0.000601
30.70930.709783-0.000483
40.56640.567276-0.000876
50.33810.3380060.000094
60.79950.7990580.000442
70.40670.407544-0.000844
81.01281.013486-0.000686
90.30340.3031990.000201
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 1.291056 0.000444\n", + "1 0.6519 0.648607 0.003293\n", + "2 0.8360 0.836601 -0.000601\n", + "3 0.7093 0.709783 -0.000483\n", + "4 0.5664 0.567276 -0.000876\n", + "5 0.3381 0.338006 0.000094\n", + "6 0.7995 0.799058 0.000442\n", + "7 0.4067 0.407544 -0.000844\n", + "8 1.0128 1.013486 -0.000686\n", + "9 0.3034 0.303199 0.000201" + ] + }, + "execution_count": 572, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_xgb = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_xgb.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 573, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6QAAAJDCAYAAAAcidlTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABBvElEQVR4nO3de3RU9b03/k8EQsTL0aqgQvuz3o5tEe/XVgFvQSGC4LEgj1S0tloFRUuhBSXHilDBW7Wny2JttaKIoGAqggqHnipyrKggPl5aNT4JoIDWlltICPv3h4upETEJTGYP4fVaK2tlZu/s9/ebyQzzZu/ZuyBJkiQAAAAgx3ZKewAAAADsmBRSAAAAUqGQAgAAkAqFFAAAgFS0TDO8qqoqFi9eHPvss0+0aNEizaEAAACQZbW1tbFixYro2LFjFBUVbbY81UK6ePHi6N+/f5pDAAAAoIlNnDgxjj322M3uT7WQ7rPPPhHx6eD23XffBv/cHfPviGtOvKaJRpW7jFzlmEt+5phLfuaYS37mmEt+5jSnueQqx1zyM8dc8jPHXPIzp7EZH3zwQfTv3z/T/T4v1UK66TDdfffdNzp06NDgn9t1710btf7WyEVGrnLMJT9zzCU/c8wlP3PMJT9zmtNccpVjLvmZYy75mWMu+ZmztRlb+oimkxoBAACQCoUUAACAVCikAAAApCLVz5ACAABsjZqamqisrIyqqqpt2k7xvxXHG2+8kaVRpZeRq5wtZRQVFUWHDh2iVatWjdqeQgoAAGx3KisrY7fddosDDjggCgoKtno7S1ctjf132z+LI0snI1c5X5SRJEl89NFHUVlZGV//+tcbtT2H7AIAANudqqqq2GuvvbapjJIdBQUFsddee23V3mqFFAAA2C4po/ljax8LhRQAAIBUKKQAAECzUF1T2+ifachnLrdmu19mzpw58bvf/a5RP3PnnXfG7NmzszqOfOCkRgAAQLNQ2KpFlFw3PevbLbu1Z1a39/rrrzf6Z66++uqsjiFfKKQAAADbaOjQoXHsscfGd7/73YiIuOiii+LHP/5xHHHEEXXW+9vf/haTJk2KiIj9998/li5dGq+++mosW7Ys+vfvH4ccckjcfvvtUVVVFf/4xz9i6NChcfbZZ8fw4cPj+OOPj+OPPz6uuuqqOOSQQ+KNN96IvfbaK+68887YY489cj3lrHDILgAAwDbq06dPPPHEExERsWTJkvj44483K6MREQcffHD07ds3+vbtG3369ImIiOrq6pgxY0b0798/Hnzwwbjpppvi8ccfj9GjR8d//dd/bbaNN998MwYOHBh//OMfY/fdd4+ysrKmnVwTUkgBAAC20QknnBDLly+PysrKmDZtWvTs2fDDfDt16pT5fty4cfHXv/41fvWrX8Xvfve7WLNmzWbr77XXXvHNb34zIiIOOeSQ+Mc//rHtE0iJQgoAALCNCgoKolevXvHkk0/GzJkzG1VIi4qKMt9feOGFsWjRoujYsWNcfvnlX7h+69at6+QmSbL1A0+Zz5ACAABkQe/evePCCy+Mgw8+ONq1a7fF9Vq0aBHr16/f7P5PPvkkysvL46GHHorWrVvHXXfdFbW12T3Db75RSAEAgGahuqY262fE3bTdwlYt6l1vv/32i/322y/OO++8L13vuOOOi2HDhsXee+9d5/499tgj/uM//iO6d+8eu+66axx55JFRVVUVa9eu3abx5zOFFAAAaBYaUho/b+mqpfVei7Qh202SJJYvXx4rV66MM84440vXPe6442LOnDlfuGz48OExfPjwzO3S0tKIiBg7dmzmvs/+7KBBg+odWz5TSAEAALbRrFmzorS0NEpLS6OwsDB+8YtfxLx58yIiomZjTbTaqVVERHTs2DFGjx6d5lDzikIKAACwjbp16xbdunXL3B42bFjm+4bshd1ROcsuAAAAqVBIAQAASIVCCgAAQCoUUgCA7VB1Td1rE26sqc58X9ql9NP7NlQHQD5zUiMAgO1QYasWUXLd9Mztslt7xruj+9RZ58ARU3M9LEjVxg3VsVPLwkb9TENONrQ126VhFFIAAKBZ2Kll4Wb/MZMN+f6fO//+7/8eb7311haXV1RUxK9//eu4+eabG7zN2bNnx+LFi+Pqq6/OxhC3SCEFAABoxpYuXRoVFRWN+pnTTz89Tj/99CYa0b8opAAAANto6NChceyxx8Z3v/vdiIi46KKL4sc//nEcccQRm607fPjwKCgoiLfffjtWr14dV1xxRfTq1SvuuuuuePXVV2PZsmXRv3//+M53vhOlpaXxySefRFFRUVx//fXxzW9+MyorK2Po0KGxdu3aL9z+5910001RWVkZ//mf/xndunWLcePGxcaNG+OQQw6Ja6+9Nn72s5/FqlWrYsWKFdG9e/f48Y9/HI899li8+OKLMXbs2DjttNPi3HPPjeeeey7+ueafcdu426Jjx45Z+b05qREAAMA26tOnTzzxxBMREbFkyZL4+OOPv7QsfvjhhzFp0qS4//7745ZbbokVK1ZERER1dXXMmDEj+vfvH8OGDYuhQ4fG448/Hj//+c9jyJAhERHx85//PHr37h3Tp0+Po48+ut6xjRw5Mjp27BijRo2KiIjy8vK4//774xe/+EX88Y9/jB49esTkyZPjiSeeiIceeig+/vjjzbaxxx57xJQpU+Lc3ufGPffc0+jfz5YopAAAANvohBNOiOXLl0dlZWVMmzYtevbs+aXr9+7dO1q1ahX77rtvHH300bFgwYKIiOjUqVNERKxZsyYWL14cP/3pT6Nnz55x3XXXxdq1a+Pvf/97vPjii3H22WdHRMS5554brVq1atRYv/71r8duu+0WERGXXnpp7LfffvHb3/42Ro8eHTU1NbFu3brNfuaUU0759GcP/np88sknjcr7Mg06ZPfOO++MWbNmRUFBQZx//vkxcODAOsvvvvvumDp1auy+++4REXHBBRdE//79szZIAACAfFZQUBC9evWKJ598MmbOnBn33nvvl67fokWLzPcbN26Mli0/rWZFRUWZ+woLC2P69H+dTfuDDz6IPfbYIyIikiTJ5BYUFDRqrJsyIiLGjh0bFRUV0aNHjzjjjDNi3rx5mW1/VuvWrT/Ni8Zl1afePaQvvvhizJ8/P5544omYOnVq/OEPf4h33323zjqLFy+O2267LaZPnx7Tp09XRgEAgB1O7969Y9KkSbHvvvtGu3btvnTdp556KpIkiSVLlsSiRYvimGOOqbN8t912iwMOOCBTSJ9//vlMzzr55JMzhwc//fTTUV395dccbtGiRWzYsOELlz3//PNx6aWXxtlnnx3Lli2LDz/8MDZu3Nig+WZDvXtIjz/++HjggQeiZcuW8eGHH0ZtbW20adOmzjqLFy+OCRMmREVFRRx33HExbNiwTIMGAADIhY0bqpvkEi0NvQ7pfvvtF/vtt1+cd9559a5bVVUVffr0ierq6rjxxhtjzz333GydcePGRWlpadx7773RqlWruP3226OgoCBuuOGGGDp0aEyaNCkOP/zw2GWXXb4066CDDopVq1bF0KFD4/zzz6+z7Ic//GH85Cc/id133z322muv6NixY1RWVtY7/mwpSL5of+wX+OUvfxn33XdfdOvWLcaMGZPZLbxmzZq45pprYuTIkdG+ffsYPnx4tG/fPvOB2y9TWVkZp59+epSMLold9961wYOeWz43uhzQpcHrb41cZOQqx1zyM8dc8jPHXPIzx1zyM6c5zSVXOdnMKO1SGiXX/etQvrJbe252/cUDR0yN0rmlWcn7PI9LfubsSHMp/rfi+P8O/v+2OWfV+lWxW+vdtnk7SZLERys/imt+cE3c98h9UVj4rwL7+YyxpWPjyGOOjG4l3bY597OyNZetzXj/b+/HrH/MqnPf6pWro2xEWcyePTs6dOiw+Q8ljbB27dpkwIAByaRJk7a4zuuvv5707NmzQdurqKhIDj300KSioqIxw0hG/feoRq2/NXKRkascc8nPHHPJzxxzyc8cc8nPnOY0l1zlZDujx7XTMl9JkiTv3NS7zldT8rjkZ86ONJf/+3//b1ZylvxzSVa289RTTyUnnHBC8tRTTyVJkiRjx45Nzj333OTcc89Nzu5xdub7n/3sZ8mwYcOSqVOnZiV3kyeffLJOzme/sunLfl9f9JjU1/nqPWT3nXfeierq6vjGN74RO++8c5x11lnx1ltvZZYvXbo05s2bl9n1myRJ5gO5AAAAO4Ju3bpFt27/2uM5bNiwzPdLVy2N/Xfbv0nzzznnnDjylCObPCfb6j2pUWVlZYwcOTKqq6ujuro6Zs+eXecDt0VFRTFu3LioqKiIJEli4sSJceaZZzbpoAEAANj+1bsrs3PnzrFw4cLo1atXtGjRIs4666zo3r17XHbZZTF48OA4/PDD48Ybb4wrrrgiampq4uijj97ssjAAAADweQ06tnbw4MExePDgOvdNmDAh831xcXEUFxdnd2QAAAA0a/UesgsAAABNQSEFAACaheramkb/TENOArQ126VhnA4XAABoFgpbtIoLHrki69ud/N1fZ32bfEohBQAAyILf/OY38dRTT0VtbW185zvfiX79+sVll10Wu+y+S+zWZrc499xz4/HHH49PPvkkunbtGgMGDIgRI0bE0qVLo2XLljFkyJA49dRT46677opXX301li1bFv3794/+/funPbUmo5ACAABso//5n/+JxYsXx5QpU6KgoCCGDh0aZWVl8d5778XDTzwcR//70fHYY4/Fhx9+GDNmzIiWLVvG1VdfHSeeeGIMHDgw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HlIAAABoCgopAAAAqVBIAQAASIVCCgAAQCoUUgAAAFKhkAIAAJAKhRQAAIBUKKQAAACkQiEFAAAgFQopAAAAqVBIAQAASIVCCgAAQCoUUgAAAFKhkAIAAJAKhRQAAIBUKKQAAACkQiEFAAAgFQopAAAAqWiZZnhtbW1ERHzwwQeN+rnVK1dHZWVlUwwppxm5yjGX/Mwxl/zMMZf8zDGX/MxpTnPJVY655GeOueRnjrnkZ05jMzZ1vU3d7/MKkiRJsjKyrfDSSy9F//7904oHAAAgByZOnBjHHnvsZvenWkirqqpi8eLFsc8++0SLFi3SGgYAAABNoLa2NlasWBEdO3aMoqKizZanWkgBAADYcTmpEQAAAKlQSAEAAEiFQgoAAEAqFFIAAABSoZACAACQCoUUAACAVCikAAAApEIhBQAAIBUt0x5Afd55552YNWtWfPDBB7HTTjtF27Zt45RTTonDDz887aE12rPPPhvLli2Lzp07x9e+9rXM/Y888kh897vfzVpOeXl57LzzztGuXbt49NFH46233oqjjz46zjnnnKxl5MKiRYuiU6dOERHxwgsvxJ/+9Kdo2bJlnHnmmXHEEUdkLefPf/5zHHHEEbH77rvHtGnTYtGiRfGtb30r+vTpk7WMm266KQYNGhT/9m//lrVtAgDA9i6v95BOnDgxrr322oiIOPzww+Nb3/pWRERcf/31cd9996U5tEYbP358PPjgg1FeXh59+/aN6dOnZ5ZNmjQpazm///3v49JLL42+ffvGT3/603jyySfj61//ekydOjV+9atfZS3n88aOHZv1bY4aNSoiPv07uPnmm2PfffeNvffeO2644YZ48MEHs5IxevTouOeee2L9+vVxxx13RFlZWRx88MHxzDPPxE033ZSVjIiIadOmxQUXXBBPP/101rb5RV544YV45ZVXIiLivvvui8svvzzuvvvuqK6uzmrOs88+G8OHD49LL700Lr/88rj55pszuQCwNZ599tnM948++mgMGjQohgwZEjNmzEhxVEBTK0iSJEl7EFtSXFwc06ZNi5133rnO/evWrYvzzjsvZs6cmbWspUuXfuny/ffff5u2X1JSEo8//ni0bNkyysvL45JLLomhQ4fG2WefHb169Ypp06Zt0/Y/mzNlypRYuXJl9OjRI+bPnx+tW7eO6urqOP/88+OJJ57Y5oyf/vSnm903Z86cOO200yIiYsyYMducERFx3nnnxeOPPx49e/aM3//+97HnnntGRMTq1avj/PPPz8rjf84550RZWVm0aNEievXqFZMnT47CwsKora2NHj16xFNPPbXNGRERvXr1ivHjx0dpaWmsX78+Bg4cGKeddloUFRVlZfsREbfccku89NJLsWHDhujQoUMUFBRE7969Y86cOVFbW5u1gn3PPffEq6++GqecckrMmTMnjj322CgqKopHH300vve978UFF1yQlRx2bM8++2ycccYZEfHpG9P/+Z//yRwhsb0d7UHj/PnPf46ZM2fWOTLq1FNPjeLi4rSH1igbNmyIiRMnxrJly+KMM86IY489NrPsrrvuikGDBmUta968ebHbbrvFN77xjbjrrrvirbfeimOOOSYuueSSaNGiRdZyPuvaa6+N2267Lavb3PTv/l133RUvvfRSXHTRRZEkSTzyyCPxrW99K4YMGbLNGRs2bIgpU6bEmWeeGbvttlv85je/iddeey2+9a1vxQ9/+MNo3bp1FmYScfnll8eIESPiq1/9ala290U2bNgQ06ZNi6KioiguLo4xY8bEX/7yl+jYsWMMGzYs9thjj6zkbNy4MR544IGYPXt2rFixIlq1ahVf+9rX4pxzzonu3btnJWMTz//GSeO5H5H9539eH7LbsmXL2LBhw2b3V1VVRatWrbKa9cMf/jDKy8ujbdu28fmOXlBQELNnz96m7SdJEgUFBRERccABB8Q999wTAwcOjK985SuZ+7Nh48aNUVhYGO3bt49LLrmkzgtrbW1tVjL22GOPmDZtWlx++eWx++67R0TE/Pnz4/jjj8/K9jfZsGFDbNy4Mfbaa69o06ZN5v7CwsLYaafs7NwvKiqKjz76KNq2bRt77bVXrF27NgoLC2PdunXRsmX2nh4FBQVx8MEHx4MPPhjz5s2LRx55JEaPHh0HHHBA7LvvvnHrrbduc8af//znmD59elRXV0fnzp3jueeei1atWsWpp54aPXv2zMIsPjVjxoyYNm1aFBQURJ8+feKyyy6LBx54IPr06RMXXHBBVgupf5gar7m8Mf3Vr34VZ5xxxhe+MX3rrbe8Mf2c5vLG9M4774xFixbFueeeG23bto2IiOXLl8eUKVPi1VdfjWHDhm1zRkTEX/7yly9dftxxx21zxg033BAbN26MQw89NH7yk5/EBRdcEJdffnlEfPqfuNl63o8bNy5efvnlWL16debfsn79+sXMmTPj5ptvjuuvv36bMy666KLN3qssXrw4BgwYEBERDzzwwDZnfNYzzzwTjz76aOY52KVLl+jRo0dWnveb/oaKi4vjF7/4RaxduzYuvPDCmDt3bvzsZz/Lyr/HERELFy7MHLF20UUXZf19a0TEyJEjY+3atVFdXR0PPvhgdOrUKW6//faYPXt23HDDDfHLX/4yKzljx46Nmpqa+P73vx+zZs2Kww47LPbbb7944IEHory8PK688sqs5OTi+Z+L535Ebp7/uXjuR+Tm+Z/XhfTyyy+PXr16xUknnRT77LNPRESsWLEi5s+fn5UXpc96+OGH48ILL4xRo0bFMccck9VtR0R069YtLrroohg+fHh06tQpDjnkkLjzzjvjqquuyurhlGeddVb8n//zf+KBBx7I/LG/+eabMXLkyDj77LOzkjFs2LA49dRT44477ohrr702TjjhhLj//vvjvPPOy8r2N9lzzz2jc+fOUVBQEKNGjYqxY8fGCy+8EOPGjYtu3bplJeOqq66K888/P7p37x4HHnhgXHTRRXHSSSfFc889F9///vezkhERdf6T4+STT46TTz45ampq4q233oqKioqsZaxatSrWrl0bVVVVsXr16thzzz2jqqoqampqspIREbF+/fpYt25dtGnTJqqqquKTTz6JiIg2bdpk7T8KInL3xrS+oxN69eq1zRnemG49b0wbprm8MZ0xY0Y89dRTm72W9OjRI3r06JG15/2vfvWrePXVV6NTp05f+J/Q2fg7Xrx4ceaopF69esXFF18cRUVFcfHFF2+WuS3+9Kc/RVlZWXzyySdx5plnxosvvhg77bRTnHrqqVl5/Yr49D3Mb37zm7jmmmuiffv2kSRJXH/99XHVVVdlZfubrF27NlauXBn7779/rF27NvO8r6qqytp/Er/99ttRVlYWEZ+Wk+nTp0dBQUF07tw5q0dftGvXLu6999645ZZb4qyzzop+/fpF9+7do3379lnLeP3116OsrCxqa2ujc+fOmY+AHXzwwVn9j+j58+dn/pZPOeWU6N+/fzz88MPRuXPnOPfcc7NWSHPx/M/Fcz8iN8//XDz3I3Lz/M/rQlpSUhLHH398vPDCC7F8+fJIkiSOPfbYGDRoULRr1y6rWbvuumvcdNNN8eijjzZJIb3qqqvimGOOiV122SVz3zHHHBOPPfZYVj8Pe/XVV8df/vKXOntCCgsLY9CgQdG5c+es5Zx00knxjW98I0aNGhVz587N2t7Xz9r0ovDuu+/GP//5z4j4dC6DBw+OLl26ZCXjtNNOi0MOOSSeffbZeP/99+PII4+MXXbZJcaOHZs5oVI29O/ff7P7WrVqFR07doyOHTtmJeOyyy6Ls846K5IkiaFDh8Yll1wSJ510UrzwwgtZPUFT7969o1+/fvGd73wnnnvuuejdu3csWbIkrrzyyujRo0fWcnL1xnT+/Pkxa9asLf4nRzZe1L0xbTxvTBunubwxbd26dXzwwQebfUxm6dKlUVhYuE3b/qwJEybEgAED4nvf+16cfvrpWdvuZyVJEmvXro02bdrEV77ylZgwYUL069cv9tprr6weGRURUV1dHXvuuWcMGzYs85q5Zs2aLzzKbGv0798/TjjhhBg1alT8x3/8R/Tq1St22WWXrB8ZdfTRR8fAgQNj2bJlccMNN8Rdd90VTz/9dIwZMyZ+8IMfZCWjTZs28de//jUOOeSQ+NrXvhbLli2L/fffPz788MOs/o0VFBTE3nvvHbfcckuUl5fH5MmT45JLLon169fHvvvum5Xzh+y0007x3nvvxapVq2LVqlVRWVkZHTp0iI8//jhrj33Ep0fYffTRR7HXXnvFihUroqqqKiIiampqsno0WS6e/7l47kfk7vnf1M/9iBw9/xPYRpMnT04GDhyY9jBIkmTdunXJ6tWrkyRJkjfffDO59957k+eeey7rOfPmzUvuvffeZN68eUmSJMnq1auTN998M6sZJSUlyZIlSza7///9v/+XnHvuuVnN+uEPf5g8+uijWd3mZ/Xo0SNZs2ZN5vYHH3yQdO3aNXniiSeSXr16ZS2ne/fuSVVVVZIknz4vN1m1alVyzjnnZC3nr3/9a3LhhRcmjz/+eJIkSVbnsMnw4cOTHj16JMccc0xy1VVXJUmSJLNmzUq6dOmSPPTQQ1nJuOCCC5K33347SZIkufLKKzN/bx988EHSs2fPrGQkSd3fz3vvvZf84he/SM4666ykc+fOyXe/+92sZJx77rnJu+++myxcuDDp1KlTUlFRkSRJknz00UdZfezPOeecZOXKlUmSfPp72jS31atXJ927d9/m7T///PNJly5dkosvvjgZOnRoMnTo0OTiiy9OunTpkrzwwgvbvP3Pevfdd5Nx48ZldZufNWnSpOSss87KvE4mSZL87W9/S7p06ZIcfvjhWcuZOHFictZZZyUbNmzI3LdgwYKka9euySOPPJK1nCRJkvXr1ydjxoxJBg0alNW/q8965plnkvvvvz957733kiRJkrfeeit58803k0mTJmVl+y+//HLy7W9/Oxk0aFDyk5/8JPn2t7+d/OhHP0o6d+6czJ07NysZSZJs8TXk448/ThYuXJiVjD//+c9J586dk1NOOSV55plnkm7duiWDBw9Ounbtmnl9zoapU6cmnTt3Tq6++uqkS5cuSVlZWVJeXp507tw5mTJlStZyvuj5P3DgwKw//5v6uZ8kX/z8f+edd7L6/N/Sc/+0007L+nM/SZr2+Z/XJzUCdlzz5s2LESNGxAEHHFDnkP3y8vIYM2ZMnHjiiVnLWr58eZSVlcWll16atW1+1iOPPBL33XdflJaWxkknnRQRn17S6vvf/3589NFHsWjRoqzkPPTQQ3H//ffHjBkzMkdJvPzyy/HjH/84Lr/88qx+vre6ujpuu+22WLp0abzzzjvx5JNPZm3bn7Vu3bpYuXJlfPWrX4233347kiSJf//3f8/Ktl955ZUYNGhQHH300bHzzjvH888/H0cccUS8/vrr8Z//+Z9ZO6pkSyeu+/vf/x4VFRVZORrjueeei5EjR8bGjRvjhhtuiFtvvTUOPfTQeO2112Lw4MFZ20P+2GOPxZ133hlHHXVULFy4MK677ro4/PDD43vf+14MGjQoK0djPPnkk/Hee+9FixYt4qtf/Wq0a9cujjjiiHj88cezeom0XFyKbcKECVFdXR0lJSWZjNWrV8dDDz2UtT1+EZ+eYb9FixaZuXzwwQexatWqePnll7M2l8/+viorK+OPf/xj3HzzzVn9fY0fPz5ef/31OPDAA+Opp56KYcOGZfbwbzrhUTZMmzYtKisro6ioKDZs2BB77713fOc734k//elPWZvLn/70p6ipqWnyv7Fnn302li5dGl26dIk2bdrESy+9FIcccki89NJLWX2+bPpb7t69exxwwAFRXV0da9asiaeffjqrOW+++WasWrUqli9fHuXl5fG///u/0bdv36wetZKryyO+9957UVRUFPvtt18m5/DDD4+///3vcfHFF2cto02bNpm5LFy4MDp06JD5WFC2fPZ39sgjj8TChQvjO9/5TtZ+ZwopkLfWr18fixYtyhyyv+mNaTYPq2rqM2xvUl5eHoWFhXW2t3r16pgyZUrW/mGKiMwhW5tsemN6yCGHZC3js55//vl48skn4+abb87qdnP1uKxevTrmzZsX77//ftTW1mbemO67775Z2X7Ep29Ms/mRiYZYuXJl5o3pQQcdlNVtv/fee/HWW2/FYYcdlnljunbt2qycOOmzhWTGjBkxfPjwJikk48ePj8WLF8dBBx3UZMUnFxm5ysnVXHJxRYJc/Y2NGzcuXn/99SZ/XHJR4HP1+P/+97+PP/zhD7Fx48Y48cQTY9myZXHmmWfGnDlz4uijj87KZ1VzkVFfzlFHHZWVj7mkNZcPPvggzjjjjOzmZHV/K0CWLFmy5Eu/sqVHjx5Jx44dk9NOOy3p2rVrna/TTjstKxm5mksucjwu+ZnTXObSo0ePpKamJkmSTw9v7tq1azJjxowkSbZ8CGS+5vTo0SNzKF1zmEsuHpfu3bvXOfzw7bffTr797W8n8+fPz9pHA5rb31iu5pKrv+WqqqqksrIyOfLIIzMfQVm/fn1SUlKy3WTkKqc5zSWvT2oE7Lia+lJMmzT1GbYjcjeXXOR8UUZBQUHm0lbb++PSFHNJ63HJdkYucpIcXSItFzmf/f00h7nk4nHJxRUJmtvfWK7mssn2funCXGTkKqc5zcUeUiAvrVq1KikpKUleeumlJs9auHBhMnLkyCbbfq7mkoscj0t+5jSXudx1111Jv3796pz05aWXXkpOPPHE5Oijj96ucsxl68ybNy/529/+Vue+pUuXJjfddFNWtu9xyd+cO+64I7nwwgvr7CV/4403kj59+iR33XXXdpORq5zmNBeFFMhbTV1IcilXc8lFjsclP3Oay1yaupDkMsdc8pPHJX9zXnzxxTq333nnnaye/ThXGbnKaS5zcVIjAAAAUrFT/asAAABA9imkAAAApEIhBQAAIBUKKQAAAKn4/wE/XTQOTTQ34QAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_xgb = results_xgb.head(35)\n", + "results_xgb.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 574, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_xgb.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 575, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.0002484967735835318" + ] + }, + "execution_count": 575, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_xgb=np.mean(results_xgb.error)\n", + "meanerror_xgb" + ] + }, + { + "cell_type": "code", + "execution_count": 576, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.658282
10.562751
21.115470
30.695167
40.526078
......
650.746965
660.647061
671.791030
680.770550
690.816548
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.658282\n", + "1 0.562751\n", + "2 1.115470\n", + "3 0.695167\n", + "4 0.526078\n", + ".. ...\n", + "65 0.746965\n", + "66 0.647061\n", + "67 1.791030\n", + "68 0.770550\n", + "69 0.816548\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 576, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 577, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/xgb.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline lr" + ] + }, + { + "cell_type": "code", + "execution_count": 578, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9925376978865574\n", + "Adjusted R^2: 0.9922880297861076\n", + "MAE: 0.02837607364261138\n", + "MSE: 0.0020482755913549078\n", + "RMSE: 0.04525787877657224\n" + ] + } + ], + "source": [ + "pred = pipeline_lr.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 579, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29151.362385-0.070885
10.65190.657699-0.005799
20.83600.8233900.012610
30.70930.6746660.034634
40.56640.5596960.006704
50.33810.519135-0.181035
60.79950.830816-0.031316
70.40670.3812560.025444
81.01281.0048100.007990
90.30340.2264870.076913
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 1.362385 -0.070885\n", + "1 0.6519 0.657699 -0.005799\n", + "2 0.8360 0.823390 0.012610\n", + "3 0.7093 0.674666 0.034634\n", + "4 0.5664 0.559696 0.006704\n", + "5 0.3381 0.519135 -0.181035\n", + "6 0.7995 0.830816 -0.031316\n", + "7 0.4067 0.381256 0.025444\n", + "8 1.0128 1.004810 0.007990\n", + "9 0.3034 0.226487 0.076913" + ] + }, + "execution_count": 579, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_lr = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_lr.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 580, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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nHvuufH000/Hvzf8O+6YfEd06dIlKz83gxoBAAA00eDBg+ORRx6JiIjly5fHBx988Klh8b333ovp06fH7373u7j11ltjzZo1ERFRVVUV8+fPj2HDhsXYsWNjzJgxMXv27Pjxj38co0ePjoiIH//4xzFo0KCYO3dudO/evd62TZgwIbp06RITJ06MiIiysrL43e9+F7fcckv88Y9/jH79+sWMGTPikUceifvvvz8++OCDOtvYb7/9YubMmXHuoHPj7rvvbvTP55MIpAAAAE100kknxerVq6OioiLmzJkTAwYM+NT1Bw0aFK1bt46DDjoounfvHi+88EJERBx99NEREbFhw4ZYtmxZ/OAHP4gBAwbENddcExs3box//vOf8dxzz8XZZ58dERHnnntutG7dulFt/fznPx/77LNPRER84xvfiIMPPjh+/etfx6RJk6K6ujo++uijOt9z6qmnfvy9R3w+Pvzww0bV+zQu2QUAAGiigoKCGDhwYDz66KPx+OOPxz333POp67dq1SrzesuWLVFY+HE0Ky4uzswrKiqKuXPnZtZbtWpV7LfffhERkSRJpm5BQUGj2rq1RkTEzTffHOXl5dGvX78444wzYsmSJZltb6tNmzYf14vG1aqPM6QAAABZMGjQoJg+fXocdNBB0aFDh09d97HHHoskSWL58uXxyiuvxHHHHVdr+T777BOHHnpoJpD+5S9/iWHDhkVExCmnnJK5PPiJJ56IqqpPf+Zwq1atYvPmzTtc9pe//CW+8Y1vxNlnnx0rV66M9957L7Zs2dKg/maDM6QAAECLsGVzVbM8oqWhzyE9+OCD4+CDD47zzjuv3nUrKytj8ODBUVVVFddff33sv//+ddaZPHlylJaWxj333BOtW7eOn/zkJ1FQUBDXXXddjBkzJqZPnx5du3aNvfba61NrHX744bFu3boYM2ZMnH/++bWWffvb347vf//7se+++0a7du2iS5cuUVFRUW/7s0UgBQAAWoSGhMbtrVi3Ig7Z55AmbzdJkli9enWsXbs2zjjjjHrX79OnTwwaNKjWvJEjR9aaPvzww+P3v/99ne/t0KFD3HfffZnp+p4vuv/++8cf//jHzPRJJ52Ued2vX7/o16/fDr9va/sWLVqUmdft+G5xTu9zPrVeYwikAAAATbRgwYIoLS2N0tLSKCoqiltuuSWWLFkSERHV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rrF58+aYOXNmnHnmmbHPPvvEr371q/jb3/4WX/rSl+Lb3/52tGnTJgs9ibjsssti/Pjx8dnPfjYr29uRzZs3x5w5c6K4uDhKSkripptuir/+9a/RpUuXGDt2bOy3335ZqbNly5a47777YuHChbFmzZpo3bp1fO5zn4tzzjkn+vbtm5UaWzn+GyeNYz8i+8d/Xl+yW1hYGJs3b64zv7KyMlq3bp3VWt/+9rejrKws2rdvH9tn9IKCgli4cGGTtp8kSRQUFERExKGHHhp33313jBgxIj7zmc9k5mfDli1boqioKDp27BiXXHJJrT+sNTU1Wamx3377xZw5c+Kyyy6LfffdNyIinn322TjxxBOzsv2tNm/eHFu2bIl27dpF27ZtM/OLiopijz2yc3K/uLg43n///Wjfvn20a9cuNm7cGEVFRfHRRx9FYWH2Do+CgoI44ogj4g9/+EMsWbIkHnzwwZg0aVIceuihcdBBB8Xtt9/e5Bp//vOfY+7cuVFVVRU9e/aMp59+Olq3bh09evSIAQMGZKEXH5s/f37MmTMnCgoKYvDgwXHppZfGfffdF4MHD44LLrggq4HUP6bGaylvTH/+85/HGWecscM3pm+88YY3pttpKW9M77zzznjllVfi3HPPjfbt20dExOrVq2PmzJnx8ssvx9ixY5tcIyLir3/966cuP+GEE5pc47rrrostW7bEkUceGd///vfjggsuiMsuuywiPv4QN1vH/eTJk+PFF1+M9evXZ/6XDR06NB5//PG48cYb49prr21yjYsuuqjOe5Vly5bF8OHDIyLivvvua3KNbT355JPx0EMPZY7BXr16Rb9+/bJy3G/9HSopKYlbbrklNm7cGBdeeGEsXrw4fvjDH2bl/3FExNKlSzNXrF100UVZf98aETFhwoTYuHFjVFVVxR/+8Ic4+uij4yc/+UksXLgwrrvuuvjZz36WlTo333xzVFdXxze/+c1YsGBBHHXUUXHwwQfHfffdF2VlZXHFFVdkpU4ujv9cHPsRuTn+c3HsR+Tm+M/rQHrZZZfFwIED48tf/nIceOCBERGxZs2aePbZZ7PyR2lbDzzwQFx44YUxceLEOO6447K67YiIPn36xEUXXRTjxo2Lo48+Ojp37hx33nlnXHnllVm9nPKss86K//W//lfcd999mV/2119/PSZMmBBnn312VmqMHTs2evToET/96U/j6quvjpNOOil+97vfxXnnnZeV7W+1//77R8+ePaOgoCAmTpwYN998czzzzDMxefLk6NOnT1ZqXHnllXH++edH375947DDDouLLroovvzlL8fTTz8d3/zmN7NSIyJqfchxyimnxCmnnBLV1dXxxhtvRHl5edZqrFu3LjZu3BiVlZWxfv362H///aOysjKqq6uzUiMiYtOmTfHRRx9F27Zto7KyMj788MOIiGjbtm3WPiiIyN0b0/quThg4cGCTa3hjuvO8MW2YlvLGdP78+fHYY4/V+VvSr1+/6NevX9aO+5///Ofx8ssvx9FHH73DD6Gz8Xu8bNmyzFVJAwcOjIsvvjiKi4vj4osvrlOzKf70pz/FvHnz4sMPP4wzzzwznnvuudhjjz2iR48eWfn7FfHxe5hf/epX8d3vfjc6duwYSZLEtddeG1deeWVWtr/Vxo0bY+3atXHIIYfExo0bM8d9ZWVl1j4kfvPNN2PevHkR8XE4mTt3bhQUFETPnj2zevVFhw4d4p577olbb701zjrrrBg6dGj07ds3OnbsmLUar776asybNy9qamqiZ8+emVvAjjjiiKx+EP3ss89mfpdPPfXUGDZsWDzwwAPRs2fPOPfcc7MWSHNx/Ofi2I/IzfGfi2M/IjfHf14H0v79+8eJJ54YzzzzTKxevTqSJInjjz8+Ro4cGR06dMhqrb333jtuuOGGeOihh5olkF555ZVx3HHHxV577ZWZd9xxx8XDDz+c1fthr7rqqvjrX/9a60xIUVFRjBw5Mnr27Jm1Ol/+8pfjC1/4QkycODEWL16ctbOv29r6R+Htt9+Of//73xHxcV9GjRoVvXr1ykqN0047LTp37hxPPfVUvPvuu9GtW7fYa6+94uabb84MqJQNw4YNqzOvdevW0aVLl+jSpUtWalx66aVx1llnRZIkMWbMmLjkkkviy1/+cjzzzDNZHaBp0KBBMXTo0PjqV78aTz/9dAwaNCiWL18eV1xxRfTr1y9rdXL1xvTZZ5+NBQsWfOKHHNn4o+6NaeN5Y9o4LeWNaZs2bWLVqlV1bpNZsWJFFBUVNWnb25o6dWoMHz48vv71r8fpp5+ete1uK0mS2LhxY7Rt2zY+85nPxNSpU2Po0KHRrl27rF4ZFRFRVVUV+++/f4wdOzbzN3PDhg07vMpsZwwbNixOOumkmDhxYvzXf/1XDBw4MPbaa6+sXxnVvXv3GDFiRKxcuTKuu+66mDJlSjzxxBNx0003xbe+9a2s1Gjbtm38/e9/j86dO8fnPve5WLlyZRxyyCHx3nvvZfV3rKCgIA444IC49dZbo6ysLGbMmBGXXHJJbNq0KQ466KCsjB+yxx57xDvvvBPr1q2LdevWRUVFRXTq1Ck++OCDrO37iI+vsHv//fejXbt2sWbNmqisrIyIiOrq6qxeTZaL4z8Xx35E7o7/5j72I3J0/CfQRDNmzEhGjBiRdjNIkuSjjz5K1q9fnyRJkrz++uvJPffckzz99NNZr7NkyZLknnvuSZYsWZIkSZKsX78+ef3117Nao3///sny5cvrzP+///f/Jueee25Wa337299OHnrooaxuc1v9+vVLNmzYkJletWpV0rt37+SRRx5JBg4cmLU6ffv2TSorK5Mk+fi43GrdunXJOeeck7U6f//735MLL7wwmT17dpIkSVb7sNW4ceOSfv36Jccdd1xy5ZVXJkmSJAsWLEh69eqV3H///VmpccEFFyRvvvlmkiRJcsUVV2R+31atWpUMGDAgKzWSpPbP55133kluueWW5Kyzzkp69uyZfO1rX8tKjXPPPTd5++23k6VLlyZHH310Ul5eniRJkrz//vtZ3ffnnHNOsnbt2iRJPv45be3b+vXrk759+zZ5+3/5y1+SXr16JRdffHEyZsyYZMyYMcnFF1+c9OrVK3nmmWeavP1tvf3228nkyZOzus1tTZ8+PTnrrLMyfyeTJEn+8Y9/JL169Uq6du2atTrTpk1LzjrrrGTz5s2ZeS+88ELSu3fv5MEHH8xanSRJkk2bNiU33XRTMnLkyKz+Xm3rySefTH73u98l77zzTpIkSfLGG28kr7/+ejJ9+vSsbP/FF19MvvKVryQjR45Mvv/97ydf+cpXku985ztJz549k8WLF2elRpIkn/g35IMPPkiWLl2alRp//vOfk549eyannnpq8uSTTyZ9+vRJRo0alfTu3Tvz9zkbZs2alfTs2TO56qqrkl69eiXz5s1LysrKkp49eyYzZ87MWp0dHf8jRozI+vHf3Md+kuz4+H/rrbeyevx/0rF/2mmnZf3YT5LmPf7zelAjYPe1ZMmSGD9+fBx66KG1LtkvKyuLm266KU4++eSs1Vq9enXMmzcvvvGNb2Rtm9t68MEH4957743S0tL48pe/HBEfP9Lqm9/8Zrz//vvxyiuvZKXO/fffH7/73e9i/vz5maskXnzxxfje974Xl112WVbv762qqoo77rgjVqxYEW+99VY8+uijWdv2tj766KNYu3ZtfPazn40333wzkiSJ//zP/8zKtl966aUYOXJkdO/ePfbcc8/4y1/+Esccc0y8+uqr8aMf/ShrV5V80sB1//znP6O8vDwrV2M8/fTTMWHChNiyZUtcd911cfvtt8eRRx4Zf/vb32LUqFFZO0P+8MMPx5133hnHHntsLF26NK655pro2rVrfP3rX4+RI0dm5WqMRx99NN55551o1apVfPazn40OHTrEMcccE7Nnz87qI9Jy8Si2qVOnRlVVVfTv3z9TY/369XH//fdn7YxfxMcj7Ldq1SrTl1WrVsW6devixRdfzFpftv15VVRUxB//+Me48cYbs/rzuu222+LVV1+Nww47LB577LEYO3Zs5gz/1gGPsmHOnDlRUVERxcXFsXnz5jjggAPiq1/9avzpT3/KWl/+9Kc/RXV1dbP/jj311FOxYsWK6NWrV7Rt2zaef/756Ny5czz//PNZPV62/i737ds3Dj300KiqqooNGzbEE088kdU6r7/+eqxbty5Wr14dZWVl8b//9/+OIUOGZPWqlVw9HvGdd96J4uLiOPjggzN1unbtGv/85z/j4osvzlqNtm3bZvqydOnS6NSpU+a2oGzZ9mf24IMPxtKlS+OrX/1q1n5mAimQtzZt2hSvvPJK5pL9rW9Ms3lZVXOPsL1VWVlZFBUV1dre+vXrY+bMmVn7xxQRmUu2ttr6xrRz585Zq7Gtv/zlL/Hoo4/GjTfemNXt5mq/rF+/PpYsWRLvvvtu1NTUZN6YHnTQQVnZfsTHb0yzectEQ6xduzbzxvTwww/P6rbfeeedeOONN+Koo47KvDHduHFjVgZO2jaQzJ8/P8aNG9csgeS2226LZcuWxeGHH95swScXNXJVJ1d9ycUTCXL1OzZ58uR49dVXm32/5CLA52r///a3v43f//73sWXLljj55JNj5cqVceaZZ8aiRYuie/fuWblXNRc16qtz7LHHZuU2l7T6smrVqjjjjDOyWyer51sBsmT58uWf+pUt/fr1S7p06ZKcdtppSe/evWt9nXbaaVmpkau+5KKO/ZKfdVpKX/r165dUV1cnSfLx5c29e/dO5s+fnyTJJ18Cma91+vXrl7mUriX0JRf7pW/fvrUuP3zzzTeTr3zlK8mzzz6btVsDWtrvWK76kqvf5crKyqSioiLp1q1b5haUTZs2Jf37999lauSqTkvqS14PagTsvpr7UUxbNfcI2xG560su6uyoRkFBQebRVrv6fmmOvqS1X7JdIxd1khw9Ii0Xdbb9+bSEvuRiv+TiiQQt7XcsV33Zald/dGEuauSqTkvqizOkQF5at25d0r9//+T5559v9lpLly5NJkyY0Gzbz1VfclHHfsnPOi2lL1OmTEmGDh1aa9CX559/Pjn55JOT7t2771J19GXnLFmyJPnHP/5Ra96KFSuSG264ISvbt1/yt85Pf/rT5MILL6x1lvy1115LBg8enEyZMmWXqZGrOi2pLwIpkLeaO5DkUq76kos69kt+1mkpfWnuQJLLOvqSn+yX/K3z3HPP1Zp+6623sjr6ca5q5KpOS+mLQY0AAABIxR71rwIAAADZJ5ACAACQCoEUAACAVAikAAAApOL/AyPH/gHHPC3eAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_lr = results_lr.head(35)\n", + "results_lr.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 581, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_lr.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 582, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.017118101693194786" + ] + }, + "execution_count": 582, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_lr=np.mean(results_lr.error)\n", + "meanerror_lr" + ] + }, + { + "cell_type": "code", + "execution_count": 583, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.644653
10.554524
21.231013
30.662338
40.512779
......
650.773317
660.670450
671.802453
680.725688
690.809162
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.644653\n", + "1 0.554524\n", + "2 1.231013\n", + "3 0.662338\n", + "4 0.512779\n", + ".. ...\n", + "65 0.773317\n", + "66 0.670450\n", + "67 1.802453\n", + "68 0.725688\n", + "69 0.809162\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 583, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 584, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/lr.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline kn" + ] + }, + { + "cell_type": "code", + "execution_count": 585, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.8836213486911326\n", + "Adjusted R^2: 0.8797276391677876\n", + "MAE: 0.11585992831541216\n", + "MSE: 0.031943969462365586\n", + "RMSE: 0.17872875947190364\n" + ] + } + ], + "source": [ + "pred = pipeline_kn.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 586, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29150.959760.33174
10.65190.650380.00152
20.83600.84794-0.01194
30.70930.424640.28466
40.56640.61854-0.05214
50.33810.72774-0.38964
60.79950.706480.09302
70.40670.47320-0.06650
81.01281.15570-0.14290
90.30340.42464-0.12124
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 0.95976 0.33174\n", + "1 0.6519 0.65038 0.00152\n", + "2 0.8360 0.84794 -0.01194\n", + "3 0.7093 0.42464 0.28466\n", + "4 0.5664 0.61854 -0.05214\n", + "5 0.3381 0.72774 -0.38964\n", + "6 0.7995 0.70648 0.09302\n", + "7 0.4067 0.47320 -0.06650\n", + "8 1.0128 1.15570 -0.14290\n", + "9 0.3034 0.42464 -0.12124" + ] + }, + "execution_count": 586, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_kn = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_kn.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 587, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6oAAAJDCAYAAAACQOngAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABG1UlEQVR4nO3de5hVddk//ntgGAgPWQqYUF8zNSs8m5ol4BEURhB8FOQriWVpCnmI4AmUycQTaBqWj1FWlidEBUkEFR4sQ7+eEsXHQ6njM8NBQLM4zzCs3x/+mBzOM7Nnz2dmXq/rmuuatfba6/7cs2Yf3nsddkGWZVkAAABAIlo19gAAAADg4wRVAAAAkiKoAgAAkBRBFQAAgKQUNvYAtmTt2rWxYMGC6NChQ7Ru3bqxhwMAAEAOVVVVxbJly6Jr167Rrl27zW5PMqguWLAgBg8e3NjDAAAAoAHdddddccQRR2w2P8mg2qFDh4j4aNB77rnnDt/v5mdujkuOvqSBRpXfOnpJs45e0qyjlzTr6CXNOnpJs45e0qyjlzTr6CXNOrWtsWTJkhg8eHB19ttUkkF14+G+e+65Z3Tp0mWH77fzHjvXavm6ykcdvaRZRy9p1tFLmnX0kmYdvaRZRy9p1tFLmnX0kmadutbY2qmeLqYEAABAUgRVAAAAkiKoAgAAkJQkz1EFAACoq8rKyigvL4+1a9fWeR09P9kzXnvttRyOqnFq5KvO1mq0bt06dtttt9hjjz2iVasd308qqAIAAM1KeXl57LLLLrH33ntHQUFBndaxaMWi2GuXvXI8svzXyFedLdXIsiwqKyvjvffei/Ly8vjc5z63w+tz6C8AANCsrF27Nnbfffc6h1Ryo6CgIIqKiqJz586xatWqWt1XUAUAAJodITUdtTnkt/o+DTAOAAAAqDNBFQAAaNYqKqtqfZ8dOaezLuvdljlz5sRvfvObWt3nlltuidmzZ+d0HClwMSUAAKBZK2rTOoovn5bz9U6/sW9O1/fqq6/W+j7f//73czqGVAiqAAAADWTEiBFxxBFHxFlnnRUREeecc0784Ac/iIMPPrjGcn//+9/j3nvvjYiIvfbaKxYtWhQvvfRSLF68OAYPHhz77bdf/PSnP421a9fGP//5zxgxYkSccsopMWrUqDjyyCPjyCOPjIsvvjj222+/eO2112L33XePW265JXbbbbd8t5wTDv0FAABoIAMGDIiHH344IiIWLlwYH3zwwWYhNSJi3333jYEDB8bAgQNjwIABERFRUVERM2bMiMGDB8cf/vCHuPrqq+Ohhx6KcePGxS9+8YvN1vH666/H0KFD449//GPsuuuuMX369IZtrgEJqgAAAA3kqKOOiqVLl0Z5eXlMnTo1+vbd8cOFDzrooOrfx48fH3/729/i5z//efzmN7/Z4te97L777vHlL385IiL222+/+Oc//1n/BhqJoAoAANBACgoKol+/fvHII4/EzJkzaxVU27VrV/372WefHS+//HJ07do1Lrjggi0u37Zt2xp1syyr+8AbmXNUAQAAGlD//v3j7LPPjn333Tc6deq01eVat24d69at22z+hx9+GKWlpXH33XdH27ZtY+LEiVFVldsrDqdGUAUAAJq1isqqnF+hd+N6i9q03u5yn/nMZ+Izn/lMnH766dtc7qtf/WqMHDky9thjjxrzd9ttt/iP//iP6N27d+y8885xyCGHxNq1a2P16tX1Gn/KBFUAAKBZ25EwualFKxZt97tUd2S9WZbF0qVLY/ny5XHiiSduc9mvfvWrMWfOnC3eNmrUqBg1alT1dElJSUREXHfdddXzPn7fYcOGbXdsKRNUAQAAGsisWbOipKQkSkpKoqioKK6//vqYN29eRERUbqiMNq3aRERE165dY9y4cY051KQIqgAAAA2kV69e0atXr+rpkSNHVv++I3ttWypX/QUAACApgioAAABJEVQBAABIiqAKANCMVFRu/t2KW5oHkDIXUwIAaEaK2rSO4sun1ZjXEN8fCU3JhvUV0aqwqFb32ZGLHNVlvewYQRUAAGjWWhUWxdvjBuR8vfuMfiDn68ylL37xi/HGG29s9faysrK47bbb4pprrtnhdc6ePTsWLFgQ3//+93MxxK0SVAEAAFqgRYsWRVlZWa3uc8IJJ8QJJ5zQQCP6N0EVAACggYwYMSKOOOKIOOussyIi4pxzzokf/OAHcfDBB2+27KhRo6KgoCDefPPNWLlyZVx44YXRr1+/mDhxYrz00kuxePHiGDx4cHzjG9+IkpKS+PDDD6Ndu3ZxxRVXxJe//OUoLy+PESNGxOrVq7e4/k1dffXVUV5eHj/+8Y+jV69eMX78+NiwYUPst99+cdlll8WPfvSjWLFiRSxbtix69+4dP/jBD+LBBx+MZ599Nq677ro4/vjj47TTTounnnoq/rXqX3HT+Juia9euOfm7uZgSAABAAxkwYEA8/PDDERGxcOHC+OCDD7YZIt977724995743e/+13ccMMNsWzZsoiIqKioiBkzZsTgwYNj5MiRMWLEiHjooYfiJz/5SVx66aUREfGTn/wk+vfvH9OmTYvDDjtsu2MbM2ZMdO3aNcaOHRsREaWlpfG73/0urr/++vjjH/8Yffr0icmTJ8fDDz8cd999d3zwwQebrWO33XaLKVOmxGn9T4vbb7+91n+fralXUL3lllvi1FNPjd69e8dvfvObzW6/9dZb47jjjou+fftG375946677qpPOQAAgCblqKOOiqVLl0Z5eXlMnTo1+vbd9sXN+vfvH23atIk999wzDjvssHjhhRciIuKggw6KiIhVq1bFggUL4j//8z+jb9++cfnll8fq1avjH//4Rzz77LNxyimnRETEaaedFm3atKnVWD//+c/HLrvsEhER3/rWt+Izn/lM/PrXv45x48ZFZWVlrFmzZrP7HHvssR/dd9/Px4cfflirettS50N/n3322XjmmWfi4YcfjvXr18epp54a3bt3j3322ad6mQULFsRNN90Uhx56aE4GCwAA0JQUFBREv3794pFHHomZM2fGr371q20u37p16+rfN2zYEIWFH0W2du3aVc8rKiqKadP+fXXvJUuWxG677RYREVmWVdctKCio1Vg31oiIuO6666KsrCz69OkTJ554YsybN6963R/Xtm3bj+pF7WptT533qB555JFx5513RmFhYbz//vtRVVUV7du3r7HMggULYtKkSVFcXBxXXXVVrFu3rt4DBgAAaEr69+8f9957b+y5557RqVOnbS776KOPRpZlsXDhwnj55Zfj8MMPr3H7LrvsEnvvvXd1UP3LX/4SgwcPjoiIY445pvow48ceeywqKiq2Wat169axfv36Ld72l7/8Jb71rW/FKaecEosXL4733nsvNmzYsEP95kJBtqVYXAs/+9nP4o477ohevXrFtddeW53aV61aFZdcckmMGTMmOnfuHKNGjYrOnTtXHz+9LeXl5XHCCSdE8bji2HmPnXd4LHNL50aPvXvUtZWk6uglzTp6SbOOXtKso5c06+glzTq5rFHSo2SL36NaMrekyfXS2HX0kmadHanR85M94//s+3+qpzu2/XQUFrXb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iPXr18chhxwSCxYsqLHcxIkTo0OHDjFw4MB48skn4yc/+UnMmDEjioqKtrn+8vLyOOGEE6J4XHHsvMfOOzyuuaVzo8fePWrbTq3lo45e0qyjlzTr6CXNOnpJs45e0qyjlzTr6CXNOnpJs05ta6xcvjKmj54es2fPji5dumy+QLYdM2bMyI499tgaP+ecc0527LHHVi9TWVmZde3adXuryoqLi7PXXnttu8uVlZVl+++/f1ZWVrbdZT9u7H+PrdXydZWPOnpJs45e0qyjlzTr6CXNOnpJs45e0qyjlzTr6CXNOrWtsb3Mt92LKZ1yyilxyimn1JhXWVkZRx11VFRVVUXr1q1j2bJl0bFjx83u+/vf/z769OkTn/rUpzaG4igsrPP1mwAAAGgB6nSOaps2beKII46IGTNmRETE1KlTo1u3bpst99xzz8WUKVMiIuLZZ5+NDRs2xD777FOP4QIAANDc1fmqv2PHjo3JkyfHqaeeGs8//3xccsklERFxzz33xC233BIREaNHj4558+ZFnz594vrrr48bb7wxWrXy1a0AAABsXZ2Pw+3cuXP8/ve/32z+oEGDqn/v1KlT/OY3v6lrCQAAAFoguzcBAABIiqAKAABAUgRVAAAAkiKoAgAAkJQkv9S0qqoqIiKWLFlSq/utXL4yysvLG2JIea+jlzTr6CXNOnpJs45e0qyjlzTr6CXNOnpJs45e0qxT2xobs97G7LepgizLspyMLIeef/75GDx4cGMPAwAAgAZ01113xRFHHLHZ/CSD6tq1a2PBggXRoUOHaN26dWMPBwAAgByqqqqKZcuWRdeuXaNdu3ab3Z5kUAUAAKDlcjElAAAAkiKoAgAAkBRBFQAAgKQIqgAAACRFUAUAACApgioAAABJEVQBAABIiqAKAABAUgobewD18dZbb8WsWbNiyZIl0apVq+jYsWMce+yxceCBBzb20GrliSeeiMWLF0f37t3jc5/7XPX8++67L84666yc1SktLY1PfOIT0alTp7j//vvjjTfeiMMOOyxOPfXUnNXIh5dffjkOOuigiIh4+umn48knn4zCwsI46aST4uCDD85prT//+c9x8MEHx6677hpTp06Nl19+Ob7yla/EgAEDcrL+q6++OoYNGxaf/OQnc7I+AABoDprsHtW77rorLrvssoiIOPDAA+MrX/lKRERcccUVcccddzTm0GplwoQJ8Yc//CFKS0tj4MCBMW3atOrb7r333pzV+e1vfxvf+ta3YuDAgfGf//mf8cgjj8TnP//5eOCBB+LnP/95zups6rrrrsv5OseOHRsRH/0PXHPNNbHnnnvGHnvsEVdeeWX84Q9/yFmdcePGxe233x7r1q2Lm2++OaZPnx777rtvPP7443H11VfnpMbUqVPjzDPPjMceeywn69uWp59+Ov76179GRMQdd9wRF1xwQdx6661RUVGRsxpPPPFEjBo1Kr71rW/FBRdcENdcc011TQCoiyeeeKL69/vvvz+GDRsWl156acyYMaMRRwU0tIIsy7LGHkRd9OzZM6ZOnRqf+MQnasxfs2ZNnH766TFz5syc1Fm0aNE2b99rr73qtf7i4uJ46KGHorCwMEpLS+O8886LESNGxCmnnBL9+vWLqVOn1mv9H68zZcqUWL58efTp0yeeeeaZaNu2bVRUVMQZZ5wRDz/8cL1r/Od//udm8+bMmRPHH398RERce+219a4REXH66afHQw89FH379o3f/va38alPfSoiIlauXBlnnHFGzrb9qaeeGtOnT4/WrVtHv379YvLkyVFUVBRVVVXRp0+fePTRR+tdo1+/fjFhwoQoKSmJdevWxdChQ+P444+Pdu3a5aCDf7vhhhvi+eefj/Xr10eXLl2ioKAg+vfvH3PmzImqqqqcBO/bb789XnrppTj22GNjzpw5ccQRR0S7du3i/vvvj29+85tx5pln5qATWronnngiTjzxxIj46A3rn/70p+ojKpra0SHU3p///OeYOXNmjSOpunXrFj179mzsodXK+vXr46677orFixfHiSeeGEcccUT1bRMnToxhw4blpM68efNil112iS996UsxceLEeOONN+Lwww+P8847L1q3bp2TGlty2WWXxU033ZSz9W183Z84cWI8//zzcc4550SWZXHffffFV77ylbj00ktzUmf9+vUxZcqUOOmkk2KXXXaJX/7yl/HKK6/EV77ylfjud78bbdu2rXeNCy64IEaPHh2f/exnczDirVu/fn1MnTo12rVrFz179oxrr702nnvuuejatWuMHDkydtttt3rX2LBhQ9x5550xe/bsWLZsWbRp0yY+97nPxamnnhq9e/eufxMf47FfO83lsd9kD/0tLCyM9evXbzZ/7dq10aZNm5zV+e53vxulpaXRsWPH2DTTFxQUxOzZs+u1/izLoqCgICIi9t5777j99ttj6NCh8elPf7p6fi5s2LAhioqKonPnznHeeefVeLKtqqrKSY3ddtstpk6dGhdccEHsuuuuERHxzDPPxJFHHpmT9W+0fv362LBhQ+y+++7Rvn376vlFRUXRqlXuDhJo165dvP/++9GxY8fYfffdY/Xq1VFUVBRr1qyJwsLcPHQKCgpi3333jT/84Q8xb968uO+++2LcuHGx9957x5577hk33nhjTur8+c9/jmnTpkVFRUV07949nnrqqWjTpk1069Yt+vbtm5MaM2bMiKlTp0ZBQUEMGDAgzj///LjzzjtjwIABceaZZ+Y0qHrBqr3GeNHK9QtWRMTPf/7zOPHEE7f4hvWNN97IyRvWfLxZjcjPG9Z8vFmNyM8b1ltuuSVefvnlOO2006Jjx44REbF06dKYMmVKvPTSSzFy5Mh613juuee2eftXv/rVeteIiLjyyitjw4YNsf/++8cPf/jDOPPMM+OCCy6IiI8+4M3FY3/8+PHx4osvxsqVK6tfxwYNGhQzZ86Ma665Jq644op614iIOOecczZ7v7JgwYIYMmRIRETceeedOakTEfH444/H/fffX/0Y7NGjR/Tp0ydnQXXj/1DPnj3j+uuvj9WrV8fZZ58dc+fOjR/96Ec5eU2eP39+9RFu55xzTk7fs37cmDFjYvXq1VFRURF/+MMf4qCDDoqf/vSnMXv27LjyyivjZz/7Wb1rXHfddVFZWRnf/va3Y9asWXHAAQfEZz7zmbjzzjujtLQ0Lrroohx04rFfW83psd9kg+oFF1wQ/fr1i6997WvRoUOHiIhYtmxZPPPMMzl7woqIuOeee+Lss8+OsWPHxuGHH56z9W7Uq1evOOecc2LUqFFx0EEHxX777Re33HJLXHzxxTk9JPPkk0+O//t//2/ceeed1Q+C119/PcaMGROnnHJKTmqMHDkyunXrFjfffHNcdtllcdRRR8Xvfve7OP3003Oy/o0+9alPRffu3aOgoCDGjh0b1113XTz99NMxfvz46NWrV87qXHzxxXHGGWdE7969Y5999olzzjknvva1r8VTTz0V3/72t3NS4+MffhxzzDFxzDHHRGVlZbzxxhtRVlaWkxob66xYsSJWr14da9eujZUrV8anPvWpWLt2bVRWVuakxrp162LNmjXRvn37WLt2bXz44YcREdG+ffucfoCQjxesiNju0Qz9+vWrd418vGBF5OdFK59vViMa9g1rPt6sRuTnDWs+3qxG5OcN64wZM+LRRx/d7PmkT58+0adPn5w89n/+85/HSy+9FAcddNAWP5zO1f/xggULqo9k6tevX5x77rnRrl27OPfcczerW1dPPvlkTJ8+PT788MM46aST4tlnn41WrVpFt27dcvL8tVGvXr3il7/8ZVxyySXRuXPnyLIsrrjiirj44otzVmP16tWxfPny2GuvvWL16tXVj/u1a9fm7IPjiIg333wzpk+fHhEfBZdp06ZFQUFBdO/ePWdHbHTq1Cl+9atfxQ033BAnn3xyDBo0KHr37h2dO3fOyfo3evXVV2P69OlRVVUV3bt3rz6dbN99983ZB9TPPPNM9f/xscceG4MHD4577rknunfvHqeddlrOgqrHfu00p8d+kw2qxcXFceSRR8bTTz8dS5cujSzL4ogjjohhw4ZFp06dclZn5513jquvvjruv//+BgmqF198cRx++OGx0047Vc87/PDD48EHH8zpubbf//7347nnnqux56SoqCiGDRsW3bt3z1mdr33ta/GlL30pxo4dG3Pnzs3Z3tqP2/hk8fbbb8e//vWviPiol+HDh0ePHj1yVuf444+P/fbbL5544ol4991345BDDomddtoprrvuuuqLOdXX4MGDN5vXpk2b6Nq1a3Tt2jUnNSIizj///Dj55JMjy7IYMWJEnHfeefG1r30tnn766ZxdGKp///4xaNCg+MY3vhFPPfVU9O/fPxYuXBgXXXRR9OnTJyc1IvLzghXx0QvwrFmztvrhRy6e7PPxghWRnxetfLxgReTnDWs+3qxG5OcNaz7erEbk5w1r27ZtY8mSJZudcrNo0aIoKiqq9/ojIiZNmhRDhgyJb37zm3HCCSfkZJ1bkmVZrF69Otq3bx+f/vSnY9KkSTFo0KDYfffdc3o0VUVFRXzqU5+KkSNHVj9nrlq1aotHpNXV4MGD46ijjoqxY8fGf/zHf0S/fv1ip512yunRVIcddlgMHTo0Fi9eHFdeeWVMnDgxHnvssbj22mvjO9/5Ts7qtG/fPv72t7/FfvvtF5/73Odi8eLFsddee8V7772Xs/+xgoKC2GOPPeKGG26I0tLSmDx5cpx33nmxbt262HPPPXN2fZJWrVrFO++8EytWrIgVK1ZEeXl5dOnSJT744IOcbf+qqqp4//33Y/fdd49ly5bF2rVrIyKisrIypx8geOzXXnN57EcGDWTy5MnZ0KFDG3sY/P/WrFmTrVy5MsuyLHv99dezX/3qV9lTTz2V0xrz5s3LfvWrX2Xz5s3LsizLVq5cmb3++us5rVFcXJwtXLhws/n/+7//m5122mk5rfXd7343u//++3O6zo/r06dPtmrVqurpJUuWZMcdd1z28MMPZ/369ctZnd69e2dr167Nsuyjx+VGK1asyE499dSc1fnb3/6WnX322dlDDz2UZVmW0x42GjVqVNanT5/s8MMPzy6++OIsy7Js1qxZWY8ePbK77747JzXOPPPM7M0338yyLMsuuuii6v+3JUuWZH379s1JjSyr+fd55513suuvvz47+eSTs+7du2dnnXVWTmqcdtpp2dtvv53Nnz8/O+igg7KysrIsy7Ls/fffz+m2P/XUU7Ply5dnWfbR32ljbytXrsx69+6dkxp/+ctfsh49emTnnntuNmLEiGzEiBHZueeem/Xo0SN7+umnc1Ijy7Ls7bffzsaPH5+z9W3Jvffem5188snVz5VZlmV///vfsx49emQHHnhgTmrcdddd2cknn5ytX7++et4LL7yQHXfccdl9992Xkxoft27duuzaa6/Nhg0bltP/rY0ef/zx7He/+132zjvvZFmWZW+88Ub2+uuvZ/fee2/Oarz44ovZ17/+9WzYsGHZD3/4w+zrX/969r3vfS/r3r17Nnfu3JzU2NpzyAcffJDNnz8/JzWyLMv+/Oc/Z927d8+OPfbY7PHHH8969eqVDR8+PDvuuOOqn6Pr64EHHsi6d++eff/738969OiRTZ8+PSstLc26d++eTZkyJSc1smzLj/2hQ4c2m8f+W2+9lZfH/vHHH9/kHvtN9mJKQMs0b968GD16dOy99941DvsvLS2Na6+9No4++uic1Vq6dGlMnz49vvWtb+VsnR933333xR133BElJSXxta99LSI++tqtb3/72/H+++/Hyy+/nJM6d999d/zud7+LGTNmVB9V8eKLL8YPfvCDuOCCC3J6/nBFRUXcdNNNsWjRonjrrbfikUceydm6P27NmjWxfPny+OxnPxtvvvlmZFkWX/ziF3Oy7r/+9a8xbNiwOOyww+ITn/hE/OUvf4mDDz44Xn311fjxj3+cs6NQtnbBvH/84x9RVlaWkyM3nnrqqRgzZkxs2LAhrrzyyrjxxhtj//33j1deeSWGDx+esz3qDz74YNxyyy1x6KGHxvz58+Pyyy+PAw88ML75zW/GsGHDcnbkxiOPPBLvvPNOtG7dOj772c9Gp06d4uCDD46HHnooZ1/nlq+vjJs0aVJUVFREcXFxdZ2VK1fG3XffnbO9hL/97W+jdevW1b0sWbIkVqxYES+++GJOe/n436y8vDz++Mc/xjXXXJOzv9mECRPi1VdfjX322SceffTRGDlyZPURARsvtJQrU6dOjfLy8mjXrl2sX78+9thjj/jGN74RTz75ZE56efLJJ6OysjIv/2NPPPFELFq0KHr06BHt27eP559/Pvbbb794/vnnc1Zn4/9x7969Y++9946KiopYtWpVPPbYYznt5fXXX48VK1bE0qVLo7S0NP7f//t/MXDgwJwe5ZKvr3F85513ol27dvGZz3ymus6BBx4Y//jHP+Lcc8/NWY327dtX9zJ//vzo0qVL9elFufLxv9l9990X8+fPj2984xs5+5sJqkCTs27dunj55ZerD/vf+GY1V4cARTT8Fb83Ki0tjaKiohrrW7lyZUyZMiVnL1gRUX3Y10Yb37Dut99+OavxcX/5y1/ikUceiWuuuSan683Xdlm5cmXMmzcv3n333aiqqqp+s7rnnnvmZP0RH71hzeWpFzti+fLl1W9Wv/CFL+R03e+880688cYbccABB1S/YV29enXOLtj08bAyY8aMGDVqVM7DyoQJE2LBggXxhS98oUEDUT7qNKde8vUNCfn4Hxs/fny8+uqredkuDR3u8/U/9tvf/jZ+//vfx4YNG+Loo4+OxYsXx0knnRRz5syJww47LCenFuSjxvbqHHrooTk5XaaxelmyZEmceOKJua2T0/2zAA1s4cKF2/zJlT59+mRdu3bNjj/++Oy4446r8XP88cfnpEa+eslHHdslzTrNqZc+ffpklZWVWZZ9dKj0cccdl82YMSPLsq0fTplijY11Nh6W1xx6aeg6vXv3rnEY45tvvpl9/etfz5555pmcnmLQ3P7H8tFLQ/8fb6yzdu3arLy8PDvkkEOqT2VZt25dVlxc3GRq5KtOc+qlyV5MCWiZGvorozZq6Ct+R+Svl3zU2VKNgoKC6q/gaurbpSF6aaztkusa+aqT5eHr3PJRY2OdjZpDLw1dJ1/fkNDc/sfy0ctGTf0rFvNRI191mlMv9qgCTcqKFSuy4uLi7Pnnn2/wWvPnz8/GjBnTYOvPVy/5qGO7pFmnOfUyceLEbNCgQTUuOPP8889nRx99dHbYYYc1mRr5qtOcesmyjy7W9/e//73GvEWLFmVXX311zmrYLunVyLIsu/nmm7Ozzz67xl711157LRswYEA2ceLEJlMjX3WaUy+CKtDkNHRQyad89ZKPOrZLmnWaUy/5CCv5qJGvOs2pl3yxXdKrkWVZ9uyzz9aYfuutt3J2JeZ81shXnebSi4spAQAAkJRWjT0AAAAA+DhBFQAAgKQIqgAAACRFUAUAACAp/x/8T7erRTRXEQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_kn = results_kn.head(35)\n", + "results_kn.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 588, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_lr.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 589, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.011010857142857142" + ] + }, + "execution_count": 589, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_kn=np.mean(results_kn.error)\n", + "meanerror_kn" + ] + }, + { + "cell_type": "code", + "execution_count": 590, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.644653
10.554524
21.231013
30.662338
40.512779
......
650.773317
660.670450
671.802453
680.725688
690.809162
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.644653\n", + "1 0.554524\n", + "2 1.231013\n", + "3 0.662338\n", + "4 0.512779\n", + ".. ...\n", + "65 0.773317\n", + "66 0.670450\n", + "67 1.802453\n", + "68 0.725688\n", + "69 0.809162\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 590, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 591, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/kn.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pipeline xgbr" + ] + }, + { + "cell_type": "code", + "execution_count": 592, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pipeline(steps=[('scalar8', StandardScaler()),\n", + " ('rf_classifier', GradientBoostingRegressor())]) R^2: 0.9993674801009855\n", + "Adjusted R^2: 0.9993463177251821\n", + "MAE: 0.009869758098748365\n", + "MSE: 0.0001736160035471743\n", + "RMSE: 0.013176342570955504\n" + ] + } + ], + "source": [ + "pred = pipeline_xgbr.predict(X_train)\n", + "print(pipelines[i],\"R^2:\",metrics.r2_score(y_train, pred))\n", + "print(\"Adjusted R^2:\",1 - (1-metrics.r2_score(y_train, pred))*(len(y_train)-1)/(len(y_train)-X_test.shape[1]-1))\n", + "print(\"MAE:\",metrics.mean_absolute_error(y_train, pred))\n", + "print(\"MSE:\",metrics.mean_squared_error(y_train, pred))\n", + "print(\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_train, pred)))" + ] + }, + { + "cell_type": "code", + "execution_count": 593, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
y_trainy_pred_trainerror
01.29151.293343-0.001843
10.65190.660147-0.008247
20.83600.8293070.006693
30.70930.735015-0.025715
40.56640.5554470.010953
50.33810.340216-0.002116
60.79950.7850160.014484
70.40670.427782-0.021082
81.01281.035999-0.023199
90.30340.3028000.000600
\n", + "
" + ], + "text/plain": [ + " y_train y_pred_train error\n", + "0 1.2915 1.293343 -0.001843\n", + "1 0.6519 0.660147 -0.008247\n", + "2 0.8360 0.829307 0.006693\n", + "3 0.7093 0.735015 -0.025715\n", + "4 0.5664 0.555447 0.010953\n", + "5 0.3381 0.340216 -0.002116\n", + "6 0.7995 0.785016 0.014484\n", + "7 0.4067 0.427782 -0.021082\n", + "8 1.0128 1.035999 -0.023199\n", + "9 0.3034 0.302800 0.000600" + ] + }, + "execution_count": 593, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_xgbr = pd.DataFrame(zip( y_train, pred, y_train - pred), columns = [ 'y_train','y_pred_train', 'error'])\n", + "results_xgbr.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 594, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6QAAAJDCAYAAAAcidlTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABDnElEQVR4nO3de3QV5b0//k8EQsTL0aqgQvuz3o61oIh3q4LXoBBB8FiUr1S0tloFRUuhgpJjQVG8Vnu6LNZWK4oICqZeUOHQU0WPFRXFr5dWjd8EUEBry8WQEOb3h4tdAmgS2NmzE16vtbJW5pL5PE9mz85+Z2aeKUiSJAkAAADIsW3SbgAAAABbJ4EUAACAVAikAAAApEIgBQAAIBWt0yxeVVUVCxYsiN122y1atWqVZlMAAADIstra2li6dGl07tw5ioqKNlqeaiBdsGBBDBw4MM0mAAAA0MQmTZoUhx122EbzUw2ku+22W0R82bjdd9+9wT93+0u3xxVHXdFErcpdjVzV0Zf8rKMv+VlHX/Kzjr7kZ52W1Jdc1dGX/KyjL/lZR1/ys05ja3z88ccxcODATPbbUKqBdN1lurvvvnt06tSpwT+3/a7bN2r9zZGLGrmqoy/5WUdf8rOOvuRnHX3JzzotqS+5qqMv+VlHX/Kzjr7kZ53NrfFVt2ga1AgAAIBUCKQAAACkQiAFAAAgFaneQwoAALA5ampqorKyMqqqqrZoO8X/Vhxvv/12llqVXo1c1fmqGkVFRdGpU6do06ZNo7YnkAIAAM1OZWVl7LDDDrHXXntFQUHBZm9n0fJFsecOe2axZenUyFWdTdVIkiQ+/fTTqKysjG9/+9uN2p5LdgEAgGanqqoqdtllly0Ko2RHQUFB7LLLLpt1tlogBQAAmiVhNH9s7r4QSAEAAEiFQAoAALQI1TW1jf6ZhtxzuTnb/TqzZ8+O3/3ud436mTvuuCNmzZqV1XbkA4MaAQAALUJhm1ZRctWMrG+37JY+Wd3eW2+91eifufzyy7PahnwhkAIAAGyh4cOHx2GHHRbf//73IyLivPPOi5/+9Kdx8MEH11nvb3/7W0yePDkiIvbcc89YtGhRvP7667F48eIYOHBg7LfffnHbbbdFVVVV/OMf/4jhw4fHaaedFiNHjowjjjgijjjiiLjssstiv/32i7fffjt22WWXuOOOO2KnnXbKdZezwiW7AAAAW6h///7x+OOPR0TEwoUL47PPPtsojEZE7LvvvjFgwIAYMGBA9O/fPyIiqqur48knn4yBAwfGAw88EGPHjo3HHnssxo0bF//1X/+10TbeeeedGDx4cPzxj3+MHXfcMcrKypq2c01IIAUAANhCRx55ZCxZsiQqKytj+vTp0adPwy/zPeiggzLfT5gwIf7617/Gr371q/jd734XK1eu3Gj9XXbZJQ488MCIiNhvv/3iH//4x5Z3ICUCKQAAwBYqKCiIvn37xhNPPBFPP/10owJpUVFR5vtzzz033njjjejcuXNcfPHFm1y/bdu2deomSbL5DU+Ze0gBAACyoF+/fnHuuefGvvvuGx06dPjK9Vq1ahWrV6/eaP7nn38e5eXl8eCDD0bbtm3jzjvvjNra7I7wm28EUgAAoEWorqnN+oi467Zb2KZVvevtsccesccee8SZZ575tesdfvjhMWLEiNh1113rzN9pp53iP/7jP6JXr16x/fbbR9euXaOqqipWrVq1Re3PZwIpAADQIjQkNG5o0fJF9T6LtCHbTZIklixZEsuWLYuTTz75a9c9/PDDY/bs2ZtcNnLkyBg5cmRmurS0NCIixo8fn5m3/s8OGTKk3rblM4EUAABgC82cOTNKS0ujtLQ0CgsL48Ybb4y5c+dGRETN2ppos02biIjo3LlzjBs3Ls2m5hWBFAAAYAv17NkzevbsmZkeMWJE5vuGnIXdWhllFwAAgFQIpAAAAKRCIAUAACAVAikAQDNUXVP7tdMAzYFBjQAAmqHCNq2i5KoZmekZN54WEV8+mqK0R2lERKxdUx3btC5MoXWQjs15zTdksCHHUtMRSAEAWoBtWhfGB+P615m396hpKbUG0rGp4yAb8v1Y+vd///d49913v3J5RUVF/PrXv47rr7++wducNWtWLFiwIC6//PJsNPErCaQAAAAt2KJFi6KioqJRP3PSSSfFSSed1EQt+heBFAAAYAsNHz48DjvssPj+978fERHnnXde/PSnP42DDz54o3VHjhwZBQUF8d5778WKFSvikksuib59+8add94Zr7/+eixevDgGDhwYxx57bJSWlsbnn38eRUVFcc0118SBBx4YlZWVMXz48Fi1atUmt7+hsWPHRmVlZfznf/5n9OzZMyZMmBBr166N/fbbL6688sq4+uqrY/ny5bF06dLo1atX/PSnP41HH300Xn755Rg/fnyceOKJccYZZ8Tzzz8f/1z5z7h1wq3RuXPnrPzeDGoEAACwhfr37x+PP/54REQsXLgwPvvss68Ni5988klMnjw57rvvvrjpppti6dKlERFRXV0dTz75ZAwcODBGjBgRw4cPj8ceeyx+8YtfxLBhwyIi4he/+EX069cvZsyYEd26dau3baNHj47OnTvHmDFjIiKivLw87rvvvrjxxhvjj3/8Y/Tu3TumTJkSjz/+eDz44IPx2WefbbSNnXbaKaZOnRpn9Dsj7r777kb/fr6KQAoAALCFjjzyyFiyZElUVlbG9OnTo0+fPl+7fr9+/aJNmzax++67R7du3WLevHkREXHQQQdFRMTKlStjwYIF8fOf/zz69OkTV111VaxatSr+/ve/x8svvxynnXZaREScccYZ0aZNm0a19dvf/nbssMMOERFx4YUXxh577BG//e1vY9y4cVFTUxNffPHFRj9z3HHHffmz+347Pv/880bV+zoNumT3jjvuiJkzZ0ZBQUGcddZZMXjw4DrL77rrrpg2bVrsuOOOERFx9tlnx8CBA7PWSAAAgHxWUFAQffv2jSeeeCKefvrpuOeee752/VatWmW+X7t2bbRu/WU0KyoqyswrLCyMGTP+NZr2xx9/HDvttFNERCRJkqlbUFDQqLauqxERMX78+KioqIjevXvHySefHHPnzs1se31t27b9sl40rlZ96j1D+vLLL8dLL70Ujz/+eEybNi3+8Ic/xAcffFBnnQULFsStt94aM2bMiBkzZgijAADAVqdfv34xefLk2H333aNDhw5fu+5TTz0VSZLEwoUL44033ohDDz20zvIddtgh9tprr0wgfeGFFzI565hjjslcHvzMM89EdXX119Zq1apVrFmzZpPLXnjhhbjwwgvjtNNOi8WLF8cnn3wSa9eubVB/s6HeM6RHHHFE3H///dG6dev45JNPora2Ntq1a1dnnQULFsTEiROjoqIiDj/88BgxYkQmQQMAAOTC2jXVTfKIloY+h3SPPfaIPfbYI84888x6162qqor+/ftHdXV1XHfddbHzzjtvtM6ECROitLQ07rnnnmjTpk3cdtttUVBQENdee20MHz48Jk+eHF26dIntttvua2vts88+sXz58hg+fHicddZZdZb9+Mc/jp/97Gex4447xi677BKdO3eOysrK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EEgBAABIhUAKAABAKlo3ZKW77rornnrqqYiI6N69e/zsZz/baPm0adNixx13jIiIs88+OwYOHJjlpgIAANCS1BtI586dG88//3w89thjUVBQED/84Q/j2WefjVNOOSWzzoIFC+LWW2+NQw45pEkbCwAAQMtRbyDdbbfdYuTIkVFYWBgREfvss08sWrSozjoLFiyIiRMnRkVFRRx++OExYsSIaNu2bdO0GAAAgBahIEmSpKErl5eXx4ABA2Ly5Mmx1157RUTEypUr44orrojRo0dHx44dY+TIkdGxY8cYNmxYvdurrKyMk046KUrGlcT2u27f4EbPKZ8TPfbq0eD1N0cuauSqjr7kZx19yc86+pKfdfQlP+u0pL7kqk42a5T2KI2Sq2Zkpstu6RMfjOtfZ529R02L0jmlWam3IfslP+voS37W2Zr7smLZiigbVRazZs2KTp06bbxC0kDvvfdecsIJJySPPvro16731ltvJX369GnQNisqKpL9998/qaioaGgzkiRJkjH/PaZR62+OXNTIVR19yc86+pKfdfQlP+voS37WaUl9yVWdbNfofeX0zFeSJMn7Y/vV+WpK9kt+1tGX/KyzNfelvszXoFF2582bF+eff35cddVVceaZZ9ZZtmjRopg6der6ATdat27QWEkAAABsxeoNpIsXL45LL700br755ujVq9dGy4uKimLChAlRUVERSZLEpEmT6gx4BAAAAJtS76nM3/72t7F69eoYP358Zt6AAQNi9uzZMXTo0OjSpUtcd911cckll0RNTU1069YtBg8e3KSNBgAAoPmrN5COHj06Ro8evdH8c845J/N9cXFxFBcXZ7dlAAAAtGgNuocUAAAAsk0gBQAAIBUCKQAAAKkQSAEAAEiFQAoAAEAqBFIAAABSIZACAACQCoEUAACAVAikAAAApEIgBQAAIBUCKQAAAKkQSAEAAEiFQAoAAEAqBFIAAABSIZACAACQCoEUAACAVAikAAAApEIgBQAAIBUCKQAAAKkQSAEAAEiFQAoAAEAqBFIAAABSIZACAACQCoEUAACAVAikAAAApEIgBQAAIBUCKQAAAKkQSAEAAEiFQAoAAEAqBFIAAABSIZACAACQCoEUAACAVAikAAAApEIgBQAAIBUCKQAAAKkQSAEAAEiFQAoAAEAqBFIAAABSIZACAACQCoEUAACAVAik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N+Kggw6KiIgXX3wx/vSnP0Xr1q3jlFNOiYMPPjhrdf785z/HwQcfHDvuuGNMnz493njjjfjud78b/fv3z1qNsWPHxpAhQ+Lf/u3fsrZNAABo7vL6DOmkSZPiyiuvjIiILl26xHe/+92IiLjmmmvi3nvvTbNpjXbzzTfHAw88EOXl5TFgwICYMWNGZtnkyZOzVuf3v/99XHjhhTFgwID4+c9/Hk888UR8+9vfjmnTpsWvfvWrrNXZ0Pjx47O+zTFjxkTEl6+D66+/PnbffffYdddd49prr40HHnggKzXGjRsXd999d6xevTpuv/32KCsri3333TeeffbZGDt2bFZqRERMnz49zj777HjmmWeyts1NefHFF+O1116LiIh77703Lr744rjrrruiuro6q3Wee+65GDlyZFx44YVx8cUXx/XXX5+pCwCb47nnnst8/8gjj8SQIUNi2LBh8eSTT6bYKqCpFSRJkqTdiK9SXFwc06dPj2233bbO/C+++CLOPPPMePrpp7NWa9GiRV+7fM8999yi7ZeUlMRjjz0WrVu3jvLy8rjgggti+PDhcdppp0Xfvn1j+vTpW7T99etMnTo1li1bFr17946XXnop2rZtG9XV1XHWWWfF448/vsU1fv7zn280b/bs2XHiiSdGRMQNN9ywxTUiIs4888x47LHHok+fPvH73/8+dt5554iIWLFiRZx11llZ2f+nn356lJWVRatWraJv374xZcqUKCwsjNra2ujdu3c89dRTW1wjIqJv375x8803R2lpaaxevToGDx4cJ554YhQVFWVl+xERN910U7zyyiuxZs2a6NSpUxQUFES/fv1i9uzZUVtbm7WAfffdd8frr78exx13XMyePTsOO+ywKCoqikceeSR+8IMfxNlnn52VOmzdnnvuuTj55JMj4ssPpv/zP/+TuUKiuV3tQeP8+c9/jqeffrrOlVHHH398FBcXp920RlmzZk1MmjQpFi9eHCeffHIcdthhmWV33nlnDBkyJGu15s6dGzvssEN85zvfiTvvvDPefffdOPTQQ+OCCy6IVq1aZa3O+q688sq49dZbs7rNdX/377zzznjllVfivPPOiyRJ4uGHH47vfve7MWzYsC2usWbNmpg6dWqccsopscMOO8RvfvObePPNN+O73/1u/PjHP462bdtmoScRF198cYwaNSq++c1vZmV7m7JmzZqYPn16FBUVRXFxcdxwww3xl7/8JTp37hwjRoyInXbaKSt11q5dG/fff3/MmjUrli5dGm3atIlvfetbcfrpp0evXr2yUmMdx3/jpHHsR2T/+M/rS3Zbt24da9as2Wh+VVVVtGnTJqu1fvzjH0d5eXm0b98+NszoBQUFMWvWrC3afpIkUVBQEBERe+21V9x9990xePDg+MY3vpGZnw1r166NwsLC6NixY1xwwQV13lhra2uzUmOnnXaK6dOnx8UXXxw77rhjRES89NJLccQRR2Rl++usWbMm1q5dG7vssku0a9cuM7+wsDC22SY7J/eLiori008/jfbt28cuu+wSq1atisLCwvjiiy+idevsHR4FBQWx7777xgMPPBBz586Nhx9+OMaNGxd77bVX7L777nHLLbdscY0///nPMWPGjKiuro7u3bvH888/H23atInjjz8++vTpk4VefOnJJ5+M6dOnR0FBQfTv3z8uuuiiuP/++6N///5x9tlnZzWQ+sPUeC3lg+mvfvWrOPnkkzf5wfTdd9/1wXQDLeWD6R133BFvvPFGnHHGGdG+ffuIiFiyZElMnTo1Xn/99RgxYsQW14iI+Mtf/vK1yw8//PAtrnHttdfG2rVrY//994+f/exncfbZZ8fFF18cEV/+Ezdbx/2ECRPi1VdfjRUrVmT+lp1zzjnx9NNPx/XXXx/XXHPNFtc477zzNvqssmDBghg0aFBERNx///1bXGN9zz77bDzyyCOZY7BHjx7Ru3fvrBz3615DxcXFceONN8aqVavi3HPPjTlz5sTVV1+dlb/HERHz58/PXLF23nnnZf1za0TE6NGjY9WqVVFdXR0PPPBAHHTQQXHbbbfFrFmz4tprr41f/vKXWakzfvz4qKmpiR/+8Icxc+bMOOCAA2KPPfaI+++/P8rLy+PSSy/NSp1cHP+5OPYjcnP85+LYj8jN8Z/XgfTiiy+Ovn37xtFHHx277bZbREQsXbo0Xnrppay8Ka3voYceinPPPTfGjBkThx56aFa3HRHRs2fPOO+882LkyJFx0EEHxX777Rd33HFHXHbZZVm9nPLUU0+N//N//k/cf//9mRf7O++8E6NHj47TTjstKzVGjBgRxx9/fNx+++1x5ZVXxpFHHhn33XdfnHnmmVnZ/jo777xzdO/ePQoKCmLMmDExfvz4ePHFF2PChAnRs2fPrNS47LLL4qyzzopevXrF3nvvHeedd14cffTR8fzzz8cPf/jDrNSIiDr/5DjmmGPimGOOiZqamnj33XejoqIiazWWL18eq1atiqqqqlixYkXsvPPOUVVVFTU1NVmpERGxevXq+OKLL6Jdu3ZRVVUVn3/+eUREtGvXLmv/KIjI3QfT+q5O6Nu37xbX8MF08/lg2jAt5YPpk08+GU899dRG7yW9e/eO3r17Z+24/9WvfhWvv/56HHTQQZv8J3Q2XscLFizIXJXUt2/fOP/886OoqCjOP//8jWpuiT/96U9RVlYWn3/+eZxyyinx8ssvxzbbbBPHH398Vt6/Ir78DPOb3/wmrrjiiujYsWMkSRLXXHNNXHbZZVnZ/jqrVq2KZcuWxZ577hmrVq3KHPdVVVVZ+yfxe++9F2VlZRHxZTiZMWNGFBQURPfu3bN69UWHDh3innvuiZtuuilOPfXUOOecc6JXr17RsWPHrNV46623oqysLGpra6N79+6ZW8D23XffrP4j+qWXXsq8lo877rgYOHBgPPTQQ9G9e/c444wzshZIc3H85+LYj8jN8Z+LYz8iN8d/XgfSkpKSOOKII+LFF1+MJUuWRJIkcdhhh8WQIUOiQ4cOWa21/fbbx9ixY+ORRx5pkkB62WWXxaGHHhrbbbddZt6hhx4ajz76aFbvh7388svjL3/5S50zIYWFhTFkyJDo3r171uocffTR8Z3vfCfGjBkTc+bMydrZ1/Wte1P44IMP4p///GdEfNmXoUOHRo8ePbJS48QTT4z99tsvnnvuufjoo4+ia9eusd1228X48eMzAyplw8CBAzea16ZNm+jcuXN07tw5KzUuuuiiOPXUUyNJkhg+fHhccMEFcfTRR8eLL76Y1QGa+vXrF+ecc04ce+yx8fzzz0e/fv1i4cKFcemll0bv3r2zVidXH0xfeumlmDlz5lf+kyMbb+o+mDaeD6aN01I+mLZt2zY+/vjjjW6TWbRoURQWFm7Rttc3ceLEGDRoUPzgBz+Ik046KWvbXV+SJLFq1apo165dfOMb34iJEyfGOeecE7vssktWr4yKiKiuro6dd945RowYkXnPXLly5SavMtscAwcOjCOPPDLGjBkT//Ef/xF9+/aN7bbbLutXRnXr1i0GDx4cixcvjmuvvTbuvPPOeOaZZ+KGG26IH/3oR1mp0a5du/jrX/8a++23X3zrW9+KxYsXx5577hmffPJJVl9jBQUFseuuu8ZNN90U5eXlMWXKlLjgggti9erVsfvuu2dl/JBtttkmPvzww1i+fHksX748Kisro1OnTvHZZ59lbd9HfHmF3aeffhq77LJLLF26NKqqqiIioqamJqtXk+Xi+M/FsR+Ru+O/qY/9iBwd/wlsoSlTpiSDBw9OuxkkSfLFF18kK1asSJIkSd55553knnvuSZ5//vms15k7d25yzz33JHPnzk2SJElWrFiRvPPOO1mtUVJSkixcuHCj+f/v//2/5IwzzshqrR//+MfJI488ktVtrq93797JypUrM9Mff/xxcsIJJySPP/540rdv36zV6dWrV1JVVZUkyZfH5TrLly9PTj/99KzV+etf/5qce+65yWOPPZYkSZLVPqwzcuTIpHfv3smhhx6aXHbZZUmSJMnMmTOTHj16JA8++GBWapx99tnJe++9lyRJklx66aWZ19vHH3+c9OnTJys1kqTu7+fDDz9MbrzxxuTUU09Nunfvnnz/+9/PSo0zzjgj+eCDD5L58+cnBx10UFJRUZEkSZJ8+umnWd33p59+erJs2bIkSb78Pa3r24oVK5JevXpt8fZfeOGFpEePHsn555+fDB8+PBk+fHhy/vnnJz169EhefPHFLd7++j744INkwoQJWd3m+iZPnpyceuqpmffJJEmSv/3tb0mPHj2SLl26ZK3OpEmTklNPPTVZs2ZNZt68efOSE044IXn44YezVidJkmT16tXJDTfckAwZMiSrr6v1Pfvss8l9992XfPjhh0mSJMm7776bvPPOO8nkyZOzsv1XX301+d73vpcMGTIk+dnPfpZ873vfS37yk58k3bt3T+bMmZOVGkmSfOV7yGeffZbMnz8/KzX+/Oc/J927d0+OO+645Nlnn0169uyZDB06NDnhhBMy78/ZMG3atKR79+7J5ZdfnvTo0SMpKytLysvLk+7duydTp07NWp1NHf+DBw/O+vHf1Md+kmz6+H///fezevx/1bF/4oknZv3YT5KmPf7zelAjYOs1d+7cGDVqVOy11151LtkvLy+PG264IY466qis1VqyZEmUlZXFhRdemLVtru/hhx+Oe++9N0pLS+Poo4+OiC8fafXDH/4wPv3003jjjTeyUufBBx+M++67L5588snMVRKvvvpq/PSnP42LL744q/f3VldXx6233hqLFi2K999/P5544omsbXt9X3zxRSxbtiy++c1vxnvvvRdJksS///u/Z2Xbr732WgwZMiS6desW2267bbzwwgtx8MEHx1tvvRX/+Z//mbWrSr5q4Lq///3vUVFRkZWrMZ5//vkYPXp0rF27Nq699tq45ZZbYv/9948333wzhg4dmrUz5I8++mjccccdccghh8T8+fPjqquuii5dusQPfvCDGDJkSFauxnjiiSfiww8/jFatWsU3v/nN6NChQxx88MHx2GOPZfURabl4FNvEiROjuro6SkpKMjVWrFgRDz74YNbO+EV8OcJ+q1atMn35+OOPY/ny5fHqq69mrS/r/74qKyvjj3/8Y1x//fVZ/X3dfPPN8dZbb8Xee+8dTz31VIwYMSJzhn/dgEfZMH369KisrIyioqJYs2ZN7LrrrnHsscfGn/70p6z15U9/+lPU1NQ0+Wvsueeei0WLFkWPHj2iXbt28corr8R+++0Xr7zySlaPl3Wv5V69esVee+0V1dXVsXLlynjmmWeyWuedd96J5cuXx5IlS6K8vDz+93//NwYMGJDVq1Zy9XjEDz/8MIqKimKPPfbI1OnSpUv8/e9/j/PPPz9rNdq1a5fpy/z586NTp06Z24KyZf3f2cMPPxzz58+PY489Nmu/M4EUyFurV6+ON954I3PJ/roPptm8rKqpR9hep7y8PAoLC+tsb8WKFTF16tSs/WGKiMwlW+us+2C63377Za3G+l544YV44okn4vrrr8/qdnO1X1asWBFz586Njz76KGprazMfTHffffesbD/iyw+m2bxloiGWLVuW+WC6zz77ZHXbH374Ybz77rtxwAEHZD6Yrlq1KisDJ60fSJ588skYOXJkkwSSm2++ORYsWBD77LNPkwWfXNTIVZ1c9SUXTyTI1WtswoQJ8dZbbzX5fslFgM/V/v/9738ff/jDH2Lt2rVx1FFHxeLFi+OUU06J2bNnR7du3bJyr2ouatRX55BDDsnKbS5p9eXjjz+Ok08+Obt1snq+FSBLFi5c+LVf2dK7d++kc+fOyYknnpiccMIJdb5OPPHErNTIVV9yUcd+yc86LaUvvXv3TmpqapIk+fLy5hNOOCF58sknkyT56ksg87VO7969M5fStYS+5GK/9OrVq87lh++9917yve99L3nppZeydmtAS3uN5aovuXotV1VVJZWVlUnXrl0zt6CsXr06KSkpaTY1clWnJfUlrwc1ArZeTf0opnWaeoTtiNz1JRd1NlWjoKAg82ir5r5fmqIvae2XbNfIRZ0kR49Iy0Wd9X8/LaEvudgvuXgiQUt7jeWqL+s090cX5qJGruq0pL44QwrkpeXLlyclJSXJK6+80uS15s+fn4wePbrJtp+rvuSijv2Sn3VaSl/uvPPO5Jxzzqkz6Msrr7ySHHXUUUm3bt2aVR192Txz585N/va3v9WZt2jRomTs2LFZ2b79kr91br/99uTcc8+tc5b87bffTvr375/ceeedzaZGruq0pL4IpEDeaupAkku56ksu6tgv+VmnpfSlqQNJLuvoS36yX/K3zssvv1xn+v3338/q6Me5qpGrOi2lLwY1AgAAIBXb1L8KAAAAZJ9ACgAAQCoEUgAAAFIhkAIAAJCK/x+flKqUVmqvmgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results_xgbr = results_xgbr.head(35)\n", + "results_xgbr.plot(kind='bar',figsize=(16,10))\n", + "plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')\n", + "plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 595, + "metadata": {}, + "outputs": [], + "source": [ + "pred_final = pipeline_xgbr.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 596, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.0018557211348477257" + ] + }, + "execution_count": 596, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meanerror_xgbr=np.mean(results_xgbr.error)\n", + "meanerror_xgbr" + ] + }, + { + "cell_type": "code", + "execution_count": 597, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume
id
00.642547
10.542795
21.128493
30.693970
40.530295
......
650.748831
660.653880
671.799503
680.727153
690.791244
\n", + "

70 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " consume\n", + "id \n", + "0 0.642547\n", + "1 0.542795\n", + "2 1.128493\n", + "3 0.693970\n", + "4 0.530295\n", + ".. ...\n", + "65 0.748831\n", + "66 0.653880\n", + "67 1.799503\n", + "68 0.727153\n", + "69 0.791244\n", + "\n", + "[70 rows x 1 columns]" + ] + }, + "execution_count": 597, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pred = pd.DataFrame({'consume': pred_final})\n", + "df_pred['id'] = df_pred.index\n", + "df_pred=df_pred.set_index('id')\n", + "df_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 598, + "metadata": {}, + "outputs": [], + "source": [ + "df_pred.to_csv('../reto_data/outputs/xgbr.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### data frame errores medios" + ] + }, + { + "cell_type": "code", + "execution_count": 599, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0
xgbr-0.001856
kn0.011011
rf0.005029
lr-0.017118
xgb-0.000248
ridge-0.016882
\n", + "
" + ], + "text/plain": [ + " 0\n", + "xgbr -0.001856\n", + "kn 0.011011\n", + "rf 0.005029\n", + "lr -0.017118\n", + "xgb -0.000248\n", + "ridge -0.016882" + ] + }, + "execution_count": 599, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.DataFrame([[meanerror_xgbr, meanerror_kn, meanerror_rf, meanerror_lr, meanerror_xgb, meanerror_ridge]], \n", + " columns=['xgbr','kn','rf','lr','xgb','ridge']).T\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exporting best model" + ] + }, + { + "cell_type": "code", + "execution_count": 600, + "metadata": {}, + "outputs": [], + "source": [ + "import pickle" + ] + }, + { + "cell_type": "code", + "execution_count": 605, + "metadata": {}, + "outputs": [], + "source": [ + "#Saving the Model\n", + "pickle_out = open(\"../reto_data/outputs/xgb.pkl\", \"wb\") \n", + "pickle.dump(pipeline_xgb, pickle_out) \n", + "pickle_out.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 606, + "metadata": {}, + "outputs": [], + "source": [ + "df_train.to_excel(\"../reto_data/outputs/clean_df.xls\")" + ] + }, + { + "cell_type": "code", + "execution_count": 607, + "metadata": {}, + "outputs": [], + "source": [ + "df=pd.read_excel(\"../reto_data/outputs/clean_df.xls\")" + ] + }, + { + "cell_type": "code", + "execution_count": 608, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsunconsume_100Km
0028.05.02621.51200001.4000
1112.04.23021.51300000.5040
2211.25.53821.51500000.6160
3312.93.93621.51400000.5031
4418.54.54621.51500000.8325
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 distance consume speed temp_inside temp_outside gas_type \\\n", + "0 0 28.0 5.0 26 21.5 12 0 \n", + "1 1 12.0 4.2 30 21.5 13 0 \n", + "2 2 11.2 5.5 38 21.5 15 0 \n", + "3 3 12.9 3.9 36 21.5 14 0 \n", + "4 4 18.5 4.5 46 21.5 15 0 \n", + "\n", + " AC rain sun consume_100Km \n", + "0 0 0 0 1.4000 \n", + "1 0 0 0 0.5040 \n", + "2 0 0 0 0.6160 \n", + "3 0 0 0 0.5031 \n", + "4 0 0 0 0.8325 " + ] + }, + "execution_count": 608, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Conclusiones_\n" + ] + }, + { + "cell_type": "code", + "execution_count": 649, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
distanceconsumespeedtemp_insidetemp_outsidegas_typeACrainsunconsume_100Km
distance100.000000-12.89667656.2298827.5178238.817534-5.341141-2.573817-1.9790658.11198199.210074
consume-12.896676100.000000-22.786618-16.062288-32.081059-1.5326979.65914024.811771-17.066738-5.218780
speed56.229882-22.786618100.0000005.9292961.541101-9.736041-3.5408000.9489468.16182855.184655
temp_inside7.517823-16.0622885.929296100.00000035.9500421.01976729.737625-3.69372424.2247946.237325
temp_outside8.817534-32.0810591.54110135.950042100.00000014.87050116.756227-18.63148934.6903413.787710
gas_type-5.341141-1.532697-9.7360411.01976714.870501100.00000010.5285406.0328192.276096-5.534834
AC-2.5738179.659140-3.54080029.73762516.75622710.528540100.00000024.2914718.859801-1.870021
rain-1.97906524.8117710.948946-3.693724-18.6314896.03281924.291471100.000000-11.2649990.912464
sun8.111981-17.0667388.16182824.22479434.6903412.2760968.859801-11.264999100.0000006.424729
consume_100Km99.210074-5.21878055.1846556.2373253.787710-5.534834-1.8700210.9124646.424729100.000000
\n", + "
" + ], + "text/plain": [ + " distance consume speed temp_inside temp_outside \\\n", + "distance 100.000000 -12.896676 56.229882 7.517823 8.817534 \n", + "consume -12.896676 100.000000 -22.786618 -16.062288 -32.081059 \n", + "speed 56.229882 -22.786618 100.000000 5.929296 1.541101 \n", + "temp_inside 7.517823 -16.062288 5.929296 100.000000 35.950042 \n", + "temp_outside 8.817534 -32.081059 1.541101 35.950042 100.000000 \n", + "gas_type -5.341141 -1.532697 -9.736041 1.019767 14.870501 \n", + "AC -2.573817 9.659140 -3.540800 29.737625 16.756227 \n", + "rain -1.979065 24.811771 0.948946 -3.693724 -18.631489 \n", + "sun 8.111981 -17.066738 8.161828 24.224794 34.690341 \n", + "consume_100Km 99.210074 -5.218780 55.184655 6.237325 3.787710 \n", + "\n", + " gas_type AC rain sun consume_100Km \n", + "distance -5.341141 -2.573817 -1.979065 8.111981 99.210074 \n", + "consume -1.532697 9.659140 24.811771 -17.066738 -5.218780 \n", + "speed -9.736041 -3.540800 0.948946 8.161828 55.184655 \n", + "temp_inside 1.019767 29.737625 -3.693724 24.224794 6.237325 \n", + "temp_outside 14.870501 16.756227 -18.631489 34.690341 3.787710 \n", + "gas_type 100.000000 10.528540 6.032819 2.276096 -5.534834 \n", + "AC 10.528540 100.000000 24.291471 8.859801 -1.870021 \n", + "rain 6.032819 24.291471 100.000000 -11.264999 0.912464 \n", + "sun 2.276096 8.859801 -11.264999 100.000000 6.424729 \n", + "consume_100Km -5.534834 -1.870021 0.912464 6.424729 100.000000 " + ] + }, + "execution_count": 649, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(df_train.corr())*100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* El mejor modelo de prediccion es XGB. Diferentes variables afectan al consumo: velocidad, distancia por supuesto. En cuanto al tipo de combustible, solo afecta un 5,53% al precio." + ] + }, + { + "cell_type": "code", + "execution_count": 645, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "distance 18.639912\n", + "consume 4.899123\n", + "speed 40.820175\n", + "temp_inside 21.938007\n", + "temp_outside 12.228070\n", + "gas_type 1.000000\n", + "AC 0.100877\n", + "rain 0.140351\n", + "sun 0.087719\n", + "consume_100Km 0.883618\n", + "dtype: float64" + ] + }, + "execution_count": 645, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#SP98\n", + "gas_type.get_group(1).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 646, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "distance 21.096250\n", + "consume 4.931250\n", + "speed 43.506250\n", + "temp_inside 21.917429\n", + "temp_outside 10.118750\n", + "gas_type 0.000000\n", + "AC 0.043750\n", + "rain 0.100000\n", + "sun 0.075000\n", + "consume_100Km 1.008933\n", + "dtype: float64" + ] + }, + "execution_count": 646, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#E10\n", + "gas_type.get_group(0).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 644, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
consume_100Kmspeeddistance
gas_type
01.00893343.50625021.096250
10.88361840.82017518.639912
\n", + "
" + ], + "text/plain": [ + " consume_100Km speed distance\n", + "gas_type \n", + "0 1.008933 43.506250 21.096250\n", + "1 0.883618 40.820175 18.639912" + ] + }, + "execution_count": 644, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gas_type.agg({'consume_100Km':'mean','speed':'mean','distance':'mean' })" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* El consumo de E10es superior pero también la velocidad y la distancia." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": { + "height": "calc(100% - 180px)", + "left": "10px", + "top": "150px", + "width": "402.712px" + }, + "toc_section_display": true, + "toc_window_display": true + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/outputs/clean_df.xls b/outputs/clean_df.xls new file mode 100644 index 0000000..ead0830 Binary files /dev/null and b/outputs/clean_df.xls differ diff --git a/outputs/kn.csv b/outputs/kn.csv new file mode 100644 index 0000000..a8d8585 --- /dev/null +++ b/outputs/kn.csv @@ -0,0 +1,71 @@ +id,consume +0,0.6446531013415518 +1,0.5545237978315094 +2,1.2310126010662652 +3,0.662338451309622 +4,0.5127791248136123 +5,1.2100265863533535 +6,0.3761590715533426 +7,0.639020291293014 +8,2.458872547620752 +9,0.7239324228995845 +10,0.6092048698043159 +11,0.8150952193751146 +12,0.5397752384672238 +13,0.9325818878649366 +14,1.0111508938365765 +15,0.7181969453500753 +16,0.5872806822696226 +17,1.1335907989649683 +18,0.4340843519788302 +19,0.6096089481654952 +20,0.7137345236320148 +21,0.6167482439313391 +22,1.365073509035355 +23,0.6422863269637789 +24,0.7670646882414927 +25,0.5060915815293254 +26,0.5976297939239505 +27,0.6276035210033102 +28,0.5133667440905664 +29,1.316319616711609 +30,0.44792965939051943 +31,0.5579865847917009 +32,0.6909197011151609 +33,0.7844485068701966 +34,1.867599681714788 +35,0.8374833196644822 +36,0.67618951449456 +37,0.5121438490047697 +38,1.2993252510213664 +39,0.6520260349559175 +40,0.6349510878480118 +41,0.7116410578357492 +42,1.295412820762181 +43,0.8291166171473964 +44,0.6209702718858676 +45,0.8849831759661384 +46,0.633585987110071 +47,1.0813856866657123 +48,1.4165824913741687 +49,0.6500607820134497 +50,0.20804779067279466 +51,0.6243896593302024 +52,0.39608060660603933 +53,0.5191340274717423 +54,0.4790935421607486 +55,0.5000576374557513 +56,0.6215074492094629 +57,0.642154008247682 +58,0.6793879652227113 +59,0.94955851921092 +60,0.8605486137066692 +61,0.8828655731845727 +62,0.8414991759325091 +63,1.5285702399021828 +64,0.7065719849157088 +65,0.7733166467535953 +66,0.670449913484552 +67,1.8024533173981734 +68,0.7256881532494817 +69,0.8091618318406606 diff --git a/outputs/lr.csv b/outputs/lr.csv new file mode 100644 index 0000000..a8d8585 --- /dev/null +++ b/outputs/lr.csv @@ -0,0 +1,71 @@ +id,consume +0,0.6446531013415518 +1,0.5545237978315094 +2,1.2310126010662652 +3,0.662338451309622 +4,0.5127791248136123 +5,1.2100265863533535 +6,0.3761590715533426 +7,0.639020291293014 +8,2.458872547620752 +9,0.7239324228995845 +10,0.6092048698043159 +11,0.8150952193751146 +12,0.5397752384672238 +13,0.9325818878649366 +14,1.0111508938365765 +15,0.7181969453500753 +16,0.5872806822696226 +17,1.1335907989649683 +18,0.4340843519788302 +19,0.6096089481654952 +20,0.7137345236320148 +21,0.6167482439313391 +22,1.365073509035355 +23,0.6422863269637789 +24,0.7670646882414927 +25,0.5060915815293254 +26,0.5976297939239505 +27,0.6276035210033102 +28,0.5133667440905664 +29,1.316319616711609 +30,0.44792965939051943 +31,0.5579865847917009 +32,0.6909197011151609 +33,0.7844485068701966 +34,1.867599681714788 +35,0.8374833196644822 +36,0.67618951449456 +37,0.5121438490047697 +38,1.2993252510213664 +39,0.6520260349559175 +40,0.6349510878480118 +41,0.7116410578357492 +42,1.295412820762181 +43,0.8291166171473964 +44,0.6209702718858676 +45,0.8849831759661384 +46,0.633585987110071 +47,1.0813856866657123 +48,1.4165824913741687 +49,0.6500607820134497 +50,0.20804779067279466 +51,0.6243896593302024 +52,0.39608060660603933 +53,0.5191340274717423 +54,0.4790935421607486 +55,0.5000576374557513 +56,0.6215074492094629 +57,0.642154008247682 +58,0.6793879652227113 +59,0.94955851921092 +60,0.8605486137066692 +61,0.8828655731845727 +62,0.8414991759325091 +63,1.5285702399021828 +64,0.7065719849157088 +65,0.7733166467535953 +66,0.670449913484552 +67,1.8024533173981734 +68,0.7256881532494817 +69,0.8091618318406606 diff --git a/outputs/ridge.csv b/outputs/ridge.csv new file mode 100644 index 0000000..f7de279 --- /dev/null +++ b/outputs/ridge.csv @@ -0,0 +1,71 @@ +id,consume +0,0.6443350143378077 +1,0.5551782781913281 +2,1.229196881053583 +3,0.6637175414531918 +4,0.5159011525294468 +5,1.20997614490246 +6,0.37698832312872865 +7,0.6388688220739709 +8,2.4539957365996017 +9,0.7234696693878642 +10,0.6103657117486018 +11,0.8132485983348791 +12,0.5409467654659743 +13,0.9317861278872266 +14,1.0101246148467653 +15,0.7188731821277354 +16,0.587611989448436 +17,1.1335712173073156 +18,0.4337205503921924 +19,0.6111171007356049 +20,0.7139754460415114 +21,0.6180651206689125 +22,1.361615996164917 +23,0.6441436011507358 +24,0.7654247693918648 +25,0.5060234052894627 +26,0.5985281853841152 +27,0.6302195218295403 +28,0.5146345391861872 +29,1.3160078241407875 +30,0.4476157883429854 +31,0.5576402821284928 +32,0.6913648705480615 +33,0.7855932874847282 +34,1.8634140201021543 +35,0.8366539535613932 +36,0.676329787927801 +37,0.5134051050588007 +38,1.29627112197351 +39,0.6534719681754992 +40,0.6350209753599954 +41,0.7114225302747568 +42,1.293990171773236 +43,0.8300377656393744 +44,0.6219152859430643 +45,0.8833225909187314 +46,0.6344037366357966 +47,1.0822300358953154 +48,1.412604619358905 +49,0.6517686265188323 +50,0.21083923535156246 +51,0.6265899246705774 +52,0.3962227375841674 +53,0.5235742253146667 +54,0.47840838002851205 +55,0.5007371163671808 +56,0.6221454802332524 +57,0.64386834364805 +58,0.680515060603715 +59,0.945384755267151 +60,0.8621732565429373 +61,0.883052314631486 +62,0.8411358665923198 +63,1.5240483268033456 +64,0.7088434357928639 +65,0.77487872092376 +66,0.6717560056896899 +67,1.8019213990048795 +68,0.7247192230442077 +69,0.8078432149019346 diff --git a/outputs/xgb.csv b/outputs/xgb.csv new file mode 100644 index 0000000..e313662 --- /dev/null +++ b/outputs/xgb.csv @@ -0,0 +1,71 @@ +id,consume +0,0.65828216 +1,0.5627512 +2,1.11547 +3,0.6951666 +4,0.5260782 +5,1.2601169 +6,0.33083522 +7,0.647491 +8,2.7360463 +9,0.7265857 +10,0.6120059 +11,0.796028 +12,0.54496926 +13,0.95246136 +14,0.98197746 +15,0.73732936 +16,0.58700544 +17,1.1066695 +18,0.3376275 +19,0.61996675 +20,0.69685334 +21,0.60885316 +22,1.2475682 +23,0.63842976 +24,0.75075454 +25,0.38044584 +26,0.64984953 +27,0.6426794 +28,0.53366584 +29,1.3764828 +30,0.3344693 +31,0.6276004 +32,0.7046652 +33,0.7615409 +34,1.7390988 +35,0.82717127 +36,0.7022999 +37,0.5204532 +38,1.3509506 +39,0.6391053 +40,0.623842 +41,0.7437572 +42,1.2709372 +43,0.85014254 +44,0.6362851 +45,0.9749964 +46,0.63479203 +47,1.1146688 +48,1.4583389 +49,0.6573372 +50,0.2562379 +51,0.62435263 +52,0.32927048 +53,0.5035113 +54,0.33637568 +55,0.47874388 +56,0.61915845 +57,0.63948184 +58,0.6826929 +59,0.87838745 +60,0.82341933 +61,0.8341866 +62,0.80633444 +63,1.4191955 +64,0.7007489 +65,0.74696547 +66,0.6470611 +67,1.79103 +68,0.77055043 +69,0.81654805 diff --git a/outputs/xgb.pkl b/outputs/xgb.pkl new file mode 100644 index 0000000..d1122a9 Binary files /dev/null and b/outputs/xgb.pkl differ diff --git a/outputs/xgbr.csv b/outputs/xgbr.csv new file mode 100644 index 0000000..2b0ec8b --- /dev/null +++ b/outputs/xgbr.csv @@ -0,0 +1,71 @@ +id,consume +0,0.642546716956961 +1,0.5427953185324578 +2,1.1284933435594784 +3,0.69397003848653 +4,0.530294703094617 +5,1.2482447357417854 +6,0.3500441390944467 +7,0.6479503952305834 +8,2.7169306972458966 +9,0.731753190122496 +10,0.6036134221984873 +11,0.8065536319068729 +12,0.5380100082765393 +13,0.9681206035272446 +14,0.9945212298738573 +15,0.7310098918265033 +16,0.5710210754051207 +17,1.1127051226121405 +18,0.32830989505434766 +19,0.6071630835549795 +20,0.6960605756504287 +21,0.6206610699763324 +22,1.2649576621777157 +23,0.655785180902456 +24,0.7409622158808087 +25,0.3814544983144875 +26,0.602648360809084 +27,0.6384212617595652 +28,0.5347643754111566 +29,1.3853321961379075 +30,0.32860246300962437 +31,0.6047600596712412 +32,0.6971385189384713 +33,0.7549239305179224 +34,1.8730534057374657 +35,0.826015062436743 +36,0.6989189782058608 +37,0.5250024275999118 +38,1.365465281526806 +39,0.6337701494195299 +40,0.6114864422113444 +41,0.7544576976659303 +42,1.2974956325465863 +43,0.85711147095743 +44,0.6530418073990186 +45,0.8268476948722364 +46,0.6194782909482631 +47,1.0880979963917627 +48,1.3838634245301926 +49,0.653688319324298 +50,0.24742882014067766 +51,0.6209664893429457 +52,0.3683052501286956 +53,0.5215896606601408 +54,0.3326277095616918 +55,0.4768653252391541 +56,0.5927016926678768 +57,0.6340755687861432 +58,0.6875007413994565 +59,0.90308359251766 +60,0.8288679509169876 +61,0.8372043154080816 +62,0.8037750772178087 +63,1.5349886395429673 +64,0.6886141091292204 +65,0.7488311215326812 +66,0.6538798014831229 +67,1.799503463613003 +68,0.7271531429545913 +69,0.791244255308263 diff --git a/outputs/xgbr.pkl b/outputs/xgbr.pkl new file mode 100644 index 0000000..52d2643 Binary files /dev/null and b/outputs/xgbr.pkl differ