[7bf731]: / 03-Experiments / 17-LightBGM_Final.ipynb

Download this file

737 lines (736 with data), 126.6 kB

{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Gloabl Experiment Setup"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import mlflow\n",
    "# Set the MLflow tracking URI to a new SQLite URI\n",
    "mlflow.set_tracking_uri(\"sqlite:///new_mlflow.db\")\n",
    "mlflow.set_experiment(\"LightGBM\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from sklearn.model_selection import train_test_split\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import numpy as np\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "import lightgbm as lgb\n",
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "def load_data(path):\n",
    "    df = pd.read_csv(path)\n",
    "    train_df, test_df = train_test_split(df, test_size=0.35, random_state=42)\n",
    "    train_df, val_df,  = train_test_split(train_df, test_size=0.20, random_state=42)\n",
    "    train_df = train_df.drop(['id'], axis=1).drop_duplicates().reset_index(drop=True)\n",
    "    test_df = test_df.drop(['id'], axis=1).drop_duplicates().reset_index(drop=True)\n",
    "    val_df = val_df.drop(['id'], axis=1).drop_duplicates().reset_index(drop=True)\n",
    "    return train_df, val_df, test_df\n",
    "\n",
    "def encode_target(train):\n",
    "    target_key = {'Insufficient_Weight': 0, 'Normal_Weight': 1, 'Overweight_Level_I': 2, 'Overweight_Level_II': 3, 'Obesity_Type_I': 4,'Obesity_Type_II' : 5, 'Obesity_Type_III': 6}\n",
    "    train['NObeyesdad'] = train['NObeyesdad'].map(target_key)\n",
    "    return train\n",
    "\n",
    "def make_gender_binary(train):\n",
    "    train['Gender'] = train['Gender'].map({'Male':0, 'Female':1})\n",
    "\n",
    "def datatypes(train):\n",
    "    train['Weight'] = train['Weight'].astype(float)\n",
    "    train['Age'] = train['Age'].astype(float)\n",
    "    train['Height'] = train['Height'].astype(float)\n",
    "    return train\n",
    "\n",
    "# def age_binning(train_df):\n",
    "#     train_df['Age_Group'] = pd.cut(train_df['Age'], bins=[0, 20, 30, 40, 50, train_df['Age'].max()], labels=['0-20', '21-30', '31-40', '41-50', '50+'])\n",
    "#     return train_df\n",
    "\n",
    "def age_binning(df):\n",
    "    age_groups = []\n",
    "    for age in df['Age']:\n",
    "        if age <= 20:\n",
    "            age_group = 1\n",
    "        elif age <= 30:\n",
    "            age_group = 2\n",
    "        elif age <= 40:\n",
    "            age_group = 3\n",
    "        elif age <= 50:\n",
    "            age_group = 4\n",
    "        else:\n",
    "            age_group = 5\n",
    "        age_groups.append(age_group)\n",
    "    df['Age_Group'] = age_groups\n",
    "    return df\n",
    "\n",
    "def age_scaling_log(train_df):\n",
    "    train_df['Age'] = train_df['Age'].astype(float)\n",
    "    train_df['Log_Age'] = np.log1p(train_df['Age'])\n",
    "    return train_df\n",
    "\n",
    "def age_scaling_minmax(train_df):\n",
    "    train_df['Age'] = train_df['Age'].astype(float)\n",
    "    scaler_age = MinMaxScaler()\n",
    "    train_df['Scaled_Age'] = scaler_age.fit_transform(train_df['Age'].values.reshape(-1, 1))\n",
    "    return train_df, scaler_age\n",
    "\n",
    "def weight_scaling_log(train_df):\n",
    "    train_df['Weight'] = train_df['Weight'].astype(float)\n",
    "    train_df['Log_Weight'] = np.log1p(train_df['Weight'])\n",
    "    return train_df\n",
    "\n",
    "def weight_scaling_minmax(train_df):\n",
    "    train_df['Weight'] = train_df['Weight'].astype(float)\n",
    "    scaler_weight = MinMaxScaler()\n",
    "    train_df['Scaled_Weight'] = scaler_weight.fit_transform(train_df['Weight'].values.reshape(-1, 1))\n",
    "    return train_df, scaler_weight\n",
    "\n",
    "def height_scaling_log(train_df):\n",
    "    train_df['Log_Height'] = np.log1p(train_df['Height'])\n",
    "    return train_df\n",
    "\n",
    "def height_scaling_minmax(train_df):\n",
    "    scaler_height = MinMaxScaler()\n",
    "    train_df['Scaled_Height'] = scaler_height.fit_transform(train_df['Height'].values.reshape(-1, 1))\n",
    "    return train_df, scaler_height\n",
    "\n",
    "def make_gender_binary(train):\n",
    "    train['Gender'] = train['Gender'].map({'Female':1, 'Male':0})\n",
    "    return train\n",
    "\n",
    "def fix_binary_columns(train):\n",
    "    Binary_Cols = ['family_history_with_overweight','FAVC', 'SCC','SMOKE']\n",
    "    # if yes then 1 else 0\n",
    "    for col in Binary_Cols:\n",
    "        train[col] = train[col].map({'yes': 1, 'no': 0})\n",
    "    return train\n",
    "\n",
    "def freq_cat_cols(train):\n",
    "    # One hot encoding\n",
    "    cat_cols = ['CAEC', 'CALC']\n",
    "    for col in cat_cols:\n",
    "        train[col] = train[col].map({'no': 0, 'Sometimes': 1, 'Frequently': 2, 'Always': 3})\n",
    "    return train\n",
    "\n",
    "def Mtrans(train):\n",
    "    \"\"\"\n",
    "    Public_Transportation    8692\n",
    "    Automobile               1835\n",
    "    Walking                   231\n",
    "    Motorbike                  19\n",
    "    Bike                       16\n",
    "    \"\"\"\n",
    "    # train['MTRANS'] = train['MTRANS'].map({'Public_Transportation': 3, 'Automobile': 5, 'Walking': 1, 'Motorbike': 4, 'Bike': 2})\n",
    "    # dummify column\n",
    "    train = pd.get_dummies(train, columns=['MTRANS'])\n",
    "    return train\n",
    "\n",
    "\n",
    "def other_features(train):\n",
    "    train['BMI'] = train['Weight'] / (train['Height'] ** 2)\n",
    "    # train['Age'*'Gender'] = train['Age'] * train['Gender']\n",
    "    polynomial_features = PolynomialFeatures(degree=2)\n",
    "    X_poly = polynomial_features.fit_transform(train[['Age', 'BMI']])\n",
    "    poly_features_df = pd.DataFrame(X_poly, columns=['Age^2', 'Age^3', 'BMI^2', 'Age * BMI', 'Age * BMI^2', 'Age^2 * BMI^2'])\n",
    "    train = pd.concat([train, poly_features_df], axis=1)\n",
    "    return train\n",
    "\n",
    "\n",
    "def test_pipeline(test, scaler_age, scaler_weight, scaler_height):\n",
    "    test = datatypes(test)\n",
    "    test = encode_target(test)\n",
    "    test = age_binning(test)\n",
    "    test = age_scaling_log(test)\n",
    "    test['Scaled_Age'] = scaler_age.transform(test['Age'].values.reshape(-1, 1))\n",
    "    test = weight_scaling_log(test)\n",
    "    test['Scaled_Weight'] = scaler_weight.transform(test['Weight'].values.reshape(-1, 1))\n",
    "    test = height_scaling_log(test)\n",
    "    test['Scaled_Height'] = scaler_height.transform(test['Height'].values.reshape(-1, 1))\n",
    "    test = make_gender_binary(test)\n",
    "    test = fix_binary_columns(test)\n",
    "    test = freq_cat_cols(test)\n",
    "    test = Mtrans(test)\n",
    "    test = other_features(test)\n",
    "\n",
    "    return test\n",
    "\n",
    "def train_model(params, X_train, y_train):\n",
    "    lgb_train = lgb.Dataset(X_train, y_train)\n",
    "    model = lgb.train(params, lgb_train, num_boost_round=1000)\n",
    "    return model\n",
    "\n",
    "def evaluate_model(model, X_val, y_val):\n",
    "    y_pred = model.predict(X_val)\n",
    "    y_pred = [np.argmax(y) for y in y_pred]\n",
    "    accuracy = accuracy_score(y_val, y_pred)\n",
    "    return accuracy\n",
    "\n",
    "def objective(trial, X_train, y_train):\n",
    "    params = {\n",
    "        'objective': 'multiclass',\n",
    "        'num_class': 7,\n",
    "        'metric': 'multi_logloss',\n",
    "        'boosting_type': 'gbdt',\n",
    "        'learning_rate': trial.suggest_loguniform('learning_rate', 0.005, 0.5),\n",
    "        'num_leaves': trial.suggest_int('num_leaves', 10, 1000),\n",
    "        'max_depth': trial.suggest_int('max_depth', -1, 20),\n",
    "        'bagging_fraction': trial.suggest_uniform('bagging_fraction', 0.6, 0.95),\n",
    "        'feature_fraction': trial.suggest_uniform('feature_fraction', 0.6, 0.95),\n",
    "        'verbosity': -1\n",
    "    }\n",
    "\n",
    "    n_splits = 5\n",
    "    kf = StratifiedKFold(n_splits=n_splits, shuffle=True, random_state=42)\n",
    "    scores = []\n",
    "\n",
    "    for train_index, val_index in kf.split(X_train, y_train):\n",
    "        X_tr, X_val = X_train.iloc[train_index], X_train.iloc[val_index]\n",
    "        y_tr, y_val = y_train.iloc[train_index], y_train.iloc[val_index]\n",
    "\n",
    "        model = train_model(params, X_tr, y_tr)\n",
    "        accuracy = evaluate_model(model, X_val, y_val)\n",
    "        scores.append(accuracy)\n",
    "\n",
    "    return np.mean(scores)\n",
    "\n",
    "def optimize_hyperparameters(X_train, y_train, n_trials=2):\n",
    "    study = optuna.create_study(direction='maximize')\n",
    "    study.optimize(lambda trial: objective(trial, X_train, y_train), n_trials=n_trials)\n",
    "    return study.best_params\n",
    "\n",
    "def New_Test_Instances_Pipeline(test, scaler_age, scaler_weight, scaler_height):\n",
    "    test = datatypes(test)\n",
    "    test = age_binning(test)\n",
    "    test = age_scaling_log(test)\n",
    "    test['Scaled_Age'] = scaler_age.transform(test['Age'].values.reshape(-1, 1))\n",
    "    test = weight_scaling_log(test)\n",
    "    test['Scaled_Weight'] = scaler_weight.transform(test['Weight'].values.reshape(-1, 1))\n",
    "    test = height_scaling_log(test)\n",
    "    test['Scaled_Height'] = scaler_height.transform(test['Height'].values.reshape(-1, 1))\n",
    "    test = make_gender_binary(test)\n",
    "    test = fix_binary_columns(test)\n",
    "    test = freq_cat_cols(test)\n",
    "    test = Mtrans(test)\n",
    "    test = other_features(test)\n",
    "\n",
    "    return test"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Experiment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.9952747150931159\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABBMAAAK7CAYAAACgWcfkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeVyUVf//8dewOCwKyGJAobiiuZL7kkIpuKRZmVsuqNmm5p7ikpgLpqaWppkh3N6ZWWlmRiqpZG65UmbllmQumOaCgOEA8/vDH/NtbnAZU0F4Px+Pech1zuc61zkzJ5r5cK4zBrPZbEZERERERERE5BbZFXQHREREREREROT+omSCiIiIiIiIiNhEyQQRERERERERsYmSCSIiIiIiIiJiEyUTRERERERERMQmSiaIiIiIiIiIiE2UTBARERERERERmyiZICIiIiIiIiI2UTJBRERERERERGyiZIKIiIgUCXFxcRgMhnwfI0aMuCvX/Pnnn4mKiiI5OfmutP9vJCcnYzAYiIuLK+iu3Lb4+HiioqIKuhsiIpIPh4LugIiIiMidFBsbS9WqVa3K/P3978q1fv75ZyZOnEhISAiBgYF35Rq3y8/Pj+3bt1OxYsWC7spti4+P591331VCQUSkEFIyQURERIqUGjVqUK9evYLuxr9iMpkwGAw4ONz+WzWj0UijRo3uYK/unYyMDFxcXAq6GyIicgO6zUFERESKleXLl9O4cWNcXV0pWbIk4eHh7Nu3zypm9+7ddO3alcDAQJydnQkMDKRbt278/vvvlpi4uDieffZZAEJDQy23VOTeVhAYGEhERESe64eEhBASEmI5TkxMxGAw8N///pfhw4fz4IMPYjQaOXLkCADffPMNjz/+OG5ubri4uNC0aVM2bNhw03Hmd5tDVFQUBoOBH3/8kWeffRZ3d3c8PT0ZNmwYWVlZHDx4kNatW1OqVCkCAwOZPn26VZu5ff3www8ZNmwYvr6+ODs706JFizzPIcDq1atp3LgxLi4ulCpVilatWrF9+3armNw+7d27l06dOlG6dGkqVqxIREQE7777LoDVLSu5t5S8++67NG/enDJlyuDq6krNmjWZPn06JpMpz/Ndo0YNdu3axaOPPoqLiwsVKlRg2rRp5OTkWMVevHiR4cOHU6FCBYxGI2XKlKFt27b8+uuvlpirV68yefJkqlatitFoxMfHhz59+nD27NmbviYiIkWJkgkiIiJSpGRnZ5OVlWX1yDV16lS6devGww8/zCeffMJ///tfLl++zKOPPsrPP/9siUtOTiYoKIg5c+awbt063nzzTU6fPk39+vU5d+4cAO3atWPq1KnAtQ+227dvZ/v27bRr1+62+h0ZGcnx48d57733+PLLLylTpgwffvghYWFhuLm58Z///IdPPvkET09PwsPDbymhcD2dO3emdu3arFixgv79+zN79myGDh1Kx44dadeuHZ9//jmPPfYYo0aNYuXKlXnOHzNmDL/99hsffPABH3zwAadOnSIkJITffvvNEvPRRx/x5JNP4ubmxrJly4iJieHChQuEhISwZcuWPG0+/fTTVKpUiU8//ZT33nuP8ePH06lTJwDLc7t9+3b8/PwAOHr0KN27d+e///0va9asoV+/fsyYMYMXX3wxT9spKSk899xz9OjRg9WrV9OmTRsiIyP58MMPLTGXL1+mWbNmLFy4kD59+vDll1/y3nvvUaVKFU6fPg1ATk4OTz75JNOmTaN79+589dVXTJs2jYSEBEJCQrhy5cptvyYiIvcds4iIiEgREBsbawbyfZhMJvPx48fNDg4O5kGDBlmdd/nyZbOvr6+5c+fO1207KyvLnJaWZnZ1dTW//fbblvJPP/3UDJg3bdqU55xy5cqZe/funae8RYsW5hYtWliON23aZAbMzZs3t4pLT083e3p6mtu3b29Vnp2dba5du7a5QYMGN3g2zOZjx46ZAXNsbKylbMKECWbA/NZbb1nF1qlTxwyYV65caSkzmUxmHx8f89NPP52nr4888og5JyfHUp6cnGx2dHQ0P//885Y++vv7m2vWrGnOzs62xF2+fNlcpkwZc5MmTfL06fXXX88zhgEDBphv5e1qdna22WQymZcsWWK2t7c3nz9/3lLXokULM2D+/vvvrc55+OGHzeHh4ZbjN954wwyYExISrnudZcuWmQHzihUrrMp37dplBszz58+/aV9FRIoKrUwQERGRImXJkiXs2rXL6uHg4MC6devIysqiV69eVqsWnJycaNGiBYmJiZY20tLSGDVqFJUqVcLBwQEHBwdKlixJeno6v/zyy13p9zPPPGN1vG3bNs6fP0/v3r2t+puTk0Pr1q3ZtWsX6enpt3WtJ554wuq4WrVqGAwG2rRpYylzcHCgUqVKVrd25OrevTsGg8FyXK5cOZo0acKmTZsAOHjwIKdOnaJnz57Y2f3f282SJUvyzDPPsGPHDjIyMm44/pvZt28fHTp0wMvLC3t7exwdHenVqxfZ2dkcOnTIKtbX15cGDRpYldWqVctqbF9//TVVqlShZcuW173mmjVr8PDwoH379lavSZ06dfD19bWaQyIiRZ02YBQREZEipVq1avluwHjmzBkA6tevn+95//zQ2717dzZs2MD48eOpX78+bm5uGAwG2rZte9eWsucu3//f/uYu9c/P+fPncXV1tflanp6eVsclSpTAxcUFJyenPOWpqal5zvf19c237IcffgDgr7/+AvKOCa59s0ZOTg4XLlyw2mQxv9jrOX78OI8++ihBQUG8/fbbBAYG4uTkxM6dOxkwYECe18jLyytPG0aj0Sru7NmzlC1b9obXPXPmDBcvXqREiRL51ufeAiMiUhwomSAiIiLFgre3NwCfffYZ5cqVu27cpUuXWLNmDRMmTGD06NGW8szMTM6fP3/L13NyciIzMzNP+blz5yx9+ad//qX/n/2dO3fudb+V4YEHHrjl/txJKSkp+ZblfmjP/Td3r4F/OnXqFHZ2dpQuXdqq/H/HfyOrVq0iPT2dlStXWr2WSUlJt9zG//Lx8eHEiRM3jPH29sbLy4u1a9fmW1+qVKnbvr6IyP1GyQQREREpFsLDw3FwcODo0aM3XFJvMBgwm80YjUar8g8++IDs7GyrstyY/FYrBAYG8uOPP1qVHTp0iIMHD+abTPhfTZs2xcPDg59//pmBAwfeNP5eWrZsGcOGDbMkAH7//Xe2bdtGr169AAgKCuLBBx/ko48+YsSIEZa49PR0VqxYYfmGh5v55/Pr7OxsKc9t75+vkdlsZtGiRbc9pjZt2vD666+zceNGHnvssXxjnnjiCT7++GOys7Np2LDhbV9LRKQoUDJBREREioXAwEDeeOMNxo4dy2+//Ubr1q0pXbo0Z86cYefOnbi6ujJx4kTc3Nxo3rw5M2bMwNvbm8DAQL799ltiYmLw8PCwarNGjRoAvP/++5QqVQonJyfKly+Pl5cXPXv2pEePHrzyyis888wz/P7770yfPh0fH59b6m/JkiWZO3cuvXv35vz583Tq1IkyZcpw9uxZfvjhB86ePcuCBQvu9NN0S/7880+eeuop+vfvz6VLl5gwYQJOTk5ERkYC124ZmT59Os899xxPPPEEL774IpmZmcyYMYOLFy8ybdq0W7pOzZo1AXjzzTdp06YN9vb21KpVi1atWlGiRAm6devGa6+9xt9//82CBQu4cOHCbY9pyJAhLF++nCeffJLRo0fToEEDrly5wrfffssTTzxBaGgoXbt2ZenSpbRt25bBgwfToEEDHB0dOXHiBJs2beLJJ5/kqaeeuu0+iIjcT7QBo4iIiBQbkZGRfPbZZxw6dIjevXsTHh7Oa6+9xu+//07z5s0tcR999BGhoaG89tprPP300+zevZuEhATc3d2t2itfvjxz5szhhx9+ICQkhPr16/Pll18C1/ZdmD59OuvWreOJJ55gwYIFLFiwgCpVqtxyf3v06MGmTZtIS0vjxRdfpGXLlgwePJi9e/fy+OOP35kn5TZMnTqVcuXK0adPH/r27Yufnx+bNm2iYsWKlpju3buzatUq/vrrL7p06UKfPn1wc3Nj06ZNNGvW7Jau0717d55//nnmz59P48aNqV+/PqdOnaJq1aqsWLGCCxcu8PTTTzNo0CDq1KnDO++8c9tjKlWqFFu2bKFfv368//77tGvXjv79+3Pw4EH8/f0BsLe3Z/Xq1YwZM4aVK1fy1FNP0bFjR6ZNm4aTk5Ml+SEiUhwYzGazuaA7ISIiIiKFX2JiIqGhoXz66ac33BhSRESKPq1MEBERERERERGbKJkgIiIiIiIiIjbRbQ4iIiIiIiIiYhOtTBARERERERERmyiZICIiIiIiIiI2UTJBRERERERERGziUNAdEJGCl5OTw6lTpyhVqhQGg6GguyMiIiIiIgXEbDZz+fJl/P39sbO7/voDJRNEhFOnThEQEFDQ3RARERERkULijz/+4KGHHrpuvZIJIkKpUqUAOHbsGJ6engXcGykoJpOJ9evXExYWhqOjY0F3RwqQ5oLk0lyQXJoLkktzoehLTU0lICDA8hnhepRMEBHLrQ2lSpXCzc2tgHsjBcVkMuHi4oKbm5veHBRzmguSS3NBcmkuSC7NheLjZrc/awNGEREREREREbGJkgkiIiIiIiIiYhMlE0RERERERETEJkomiIiIiIiIiIhNlEwQEREREREREZsomSAiIiIiIiIiNlEyQURERERERERsomSCiIiIiIiIiNhEyQQRERERERERsYmSCSIiIiIiIiJiEyUTRERERERERMQm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pmSCSCHw+eefU7JkSSpXrsyRI0cYPHgwTZs2pWLFigXdNRERERERkTyUTBApBC5fvsxrr73GH3/8gbe3Ny1btuStt94q6G6JiIiIiIjkS8kEkUKgV69e9OrVq6C7ISIiIiIicku0AaOIiIiIiIiI2ETJBBERERERERGxiZIJIiIiIiIiImITJRNERERERERExCZKJoiIiIiIiIiITZRMEBERERERERGbKJkgIiIiIiIiIjZRMkFEREREREREbKJkgoiIiIiIFGvR0dHUr1+fUqVKUaZMGTp27MjBgwct9SaTiVGjRlGzZk1cXV3x9/enV69enDp1yqqdzMxMBg0ahLe3N66urnTo0IETJ07kud5XX31Fw4YNcXZ2xtvbm6effjrffv3111889NBDGAwGLl68eEfHLPJvKZkgUkhduXKFZs2aYTAYmD17dkF3R0RERKTI+vbbbxkwYAA7duwgISGBrKwswsLCSE9PByAjI4O9e/cyfvx49u7dy8qVKzl06BAdOnSwamfIkCF8/vnnfPzxx2zZsoW0tDSeeOIJsrOzLTErVqygZ8+e9OnThx9++IGtW7fSvXv3fPvVr18/atWqdfcGLvIvKJkgBWLbtm3Y29vTunXrAutDSEiIzfEGgwGDwYCdnR0PPPAAzz77LL///rslJjk5GYPBgIODAydPnrQ6//Tp0zg4OGAwGEhOTraKT0pKsorNysqiU6dOnDt3jnfeeYfRo0ezZMmSPH1atGgRjz76KKVLl6Z06dK0bNmSnTt32jQuERERkeJu7dq1REREUL16dWrXrk1sbCzHjx9nz549ALi7u5OQkEDnzp0JCgqiUaNGzJ07lz179nD8+HEALl26RExMDG+99RYtW7YkODiYDz/8kP379/PNN98A197jDR48mBkzZvDSSy9RpUoVgoKC6NSpU54+LViwgIsXLzJixIh790SI2MChoDsgxdPixYsZNGgQH3zwAcePH6ds2bL35Lpr1qzB39+fRx55xFL28ccf88gjj1ClSpWbnt+/f3/eeOMNzGYzv//+O0OGDKFHjx589913VnH+/v4sWbKEyMhIS9l//vMfHnzwQcv/cK7HbDYTERHByZMn2bx5M2XKlKFcuXJ0796d0qVL0759e0tsYmIi3bp1o0mTJjg5OTF9+nTCwsI4cOAADz744K0+LRYNozeQ5eBq83lSNBjtzUxvADWi1pGZbSjo7kgB0lyQXJoLkqsoz4Xkae3ylF26dAkAT0/P65536dIlDAYDHh4eAOzZsweTyURYWJglxt/fnxo1arBt2zbCw8PZu3cvJ0+exM7OjuDgYFJSUqhTpw4zZ86kevXqlvN+/vln3njjDb7//nt+++23OzRSkTtLyQS559LT0/nkk0/YtWsXKSkpxMXF8frrr1vqV69ezfDhwzlx4gSNGjUiIiKCiIgILly4YPllvW3bNkaPHs2uXbvw9vbmqaeeIjo6GlfXG38QrlChAkOHDqVRo0ZcvHiRzp074+XlRXh4+C313cXFBV9fXwD8/PwYMGAAL730Up643r17Exsba5VMiIuLo3fv3kyaNOmG1xg8eDCHDx9m06ZNlC5dGoAOHTrw+eef061bN1auXEnz5s0BWLp0qdW5ixYt4rPPPmPDhg306tXrutfIzMwkMzPTcpyamgqA0c6Mvb35hv2TostoZ7b6V4ovzQXJpbkguYryXDCZTFbHZrOZIUOG0LRpU4KCgvLUA/z999+MGjWKrl274uzsjMlk4sSJE5QoUYKSJUtanVOmTBlOnTqFyWTi0KFDAERFRTF9+nQCAwOZPXs2LVq04MCBA3h6epKZmUnXrl2Jjo7Gz8/Pco7JZMq3L/dabh8KQ1/k7rjV11bJBLnnli9fTlBQEEFBQfTo0YNBgwYxfvx4y/L/Tp06MXjwYJ5//nn27duXZ2nX/v37CQ8PZ9KkScTExHD27FkGDhzIwIEDiY2NveG1H374YdatW0f37t354YcfGDBgAP3797+tcZw/f55PP/2Uhg0b5qnr0KED7733Hlu2bKFZs2Zs2bKF8+fP0759+5smE9555518y1u1asW5c+dueG5GRgYmk+mGWXS4tsnQxIkT85SPC87BxSU7nzOkOJlUL6eguyCFhOaC5NJckFxFcS7Ex8dbHS9cuJDdu3cTHR2dpw6u3aowffp0Ll68SPv27S0xSUlJ5OTk5Dnn7Nmz2NvbEx8fz969ewFo164dTk5OpKSk0KlTJ77++msmTpxIeHg4ixcvxt3dndKlSxMfH8/+/fsBWL9+PSVLlrwbT8FtSUhIKOguyF2SkZFxS3EGs9lc9NKLUqg1bdqUzp07M3jwYLKysvDz82PZsmW0bNmS0aNH89VXX1l+aQKMGzeOKVOmWFYm9OrVC2dnZxYuXGiJ2bJlCy1atCA9PR0nJ6frXvvgwYMMGTKE+vXrs3r1aqpUqYK3tzdTpkyxrAK4npCQELZt20aJEiUwm81kZGRQpUoV1q1bR2BgIHBtD4Ty5cuzb98+/vOf/3Dp0iUWL15M3759LX0PDg7m2LFjBAYGWsXXqVPnXz2vAAMGDGDdunX89NNPN3we8luZEBAQwMMjPybLUbc5FFdGOzOT6uUwfrcdmTlFawmr2EZzQXJpLkiuojwXfor6vxWqQ4YMYfXq1WzYsIHy5cvniTWZTHTr1o1jx46xfv16vLy8LHWbNm0iPDycM2fOWL2vrFu3Lh06dGDChAkkJiYSFhbGpk2baNq0qSWmadOmPPbYY0yaNIl69erx008/YTBce57NZjM5OTnY29szevRoJkyYcDeehltmMplISEigVatWODo6Fmhf5O5ITU3F29ubS5cu4ebmdt04rUyQe+rgwYPs3LmTlStXAuDg4ECXLl1YvHgxLVu25ODBg9SvX9/qnAYNGlgd79mzhyNHjlgt8c/9JXvs2DGqVat23esfOnSIKVOm8Mgjj7B582Y++eQTli1bxtmzZ2+aTAB47rnnGDt2LABnzpxh6tSphIWFsWfPHkqVKmUV269fPxo3bszUqVP59NNP2b59O1lZWTe9xu2aPn06y5YtIzEx8YaJBACj0YjRaMxTnpljIKuI3QcptsvMMRS5+2Hl9mguSC7NBclVFOeCo6MjZrOZQYMGsWrVKhITE6lcuXKeOJPJxHPPPcfRo0fZtGkTPj4+VvUNGzbE0dGRxMREOnfuDFzbgPvAgQPMmDEDR0dHGjZsiNFo5OjRo5bNwE0mE7///jsVKlTA0dGRlStXcuXKFUu7u3btom/fvnz33XdUrFix0HyAd3R0LDR9kTvrVl9XJRPknoqJiSErK8tqc0Cz2YyjoyMXLlzAbDZbsrD/rP+nnJwcXnzxRV599dU87d9sI8d/bl6Yq1u3brfcf3d3dypVqgRApUqViImJwc/Pj+XLl/P8889bxdaoUYOqVavSrVs3qlWrRo0aNfJ8a8OdMnPmTKZOnco333zzr74+6PvIx60y7FK8mEwm4uPj+SkqXG8OijnNBcmluSC5ivpcGDBgAB999BFffPEFpUqVIiUlBbj23s/Z2dnyTVt79+5lzZo1ZGdnW2I8PT0pUaIE7u7u9OvXj+HDh+Pl5YWnpycjRoygZs2atGzZEgA3NzdeeuklJkyYQEBAAOXKlWPGjBkAPPvsswBUrFjRqm+5t7lWq1bNsn+YSGGgZILcM1lZWSxZsoS33nrLapdbgGeeeYalS5dStWrVPPeZ7d692+r4kUce4cCBA5YP9bcrMTHxX50PYG9vD2CVPf6nvn378sorr7BgwYJ/fa3rmTFjBpMnT2bdunXUq1fvrl1HREREpKjKfa/2v18dHhsbS0REBCdOnGD16tUAeW5N3bRpk+W82bNn4+DgQOfOnbly5QqPP/44cXFxlveMcO29m4ODAz179uTKlSs0bNiQjRs33tIqWZHCRMkEuWfWrFnDhQsX6NevH+7u7lZ1nTp1IiYmhpUrVzJr1ixGjRpFv379SEpKIi4uDsCyYmHUqFE0atTIsnmiq6srv/zyCwkJCcydO/eujiEjI8OShT5z5gyTJ0/GyckpT3IkV//+/Xn22WfvWhZ5+vTpjB8/no8++ojAwEBL30qWLFmoNugRERERKcxuto1cYGDgTWMAnJycmDt37g3fkzo6OjJz5kxmzpx5S30LCQm5pWuL3Gt2Bd0BKT5iYmJo2bJlnkQCXFuZkJSUxIULF/jss89YuXIltWrVYsGCBZY9CnLv8a9Vqxbffvsthw8f5tFHHyU4OJjx48fj5+d318ewaNEi/Pz88PPzIzQ0lLNnzxIfH09QUFC+8Q4ODnh7e+PgcHfydvPnz+fq1at06tTJ0i8/P79b/p+TiIiIiIjI7dDKBLlnvvzyy+vWPfLII5aM6yOPPEKHDh0sdVOmTOGhhx6y2lSwfv36rF+//u51Nh+3clvEzbLWderUsaq/1Sz39SQnJ9/2uSIiIiIiIrdLyQQpdObPn0/9+vXx8vJi69atzJgxg4EDBxZ0t0REREREROT/UzJBCp3Dhw8zefJkzp8/T9myZRk+fDiRkZG3dO53331HmzZtrluflpZ2R88TEREREREpjpRMkEJn9uzZzJ49+7bOrVev3m19/eLtniciIiIiIlIcKZkgRYqzs/NtfWXk7Z4nIiIiIiJSHOnbHERERERERETEJkomiIiIiIiIiIhNlEwQEREREREREZsomSAiIiIiIiIiNlEyQURERERERERsomSCiIiIiIiIiNhEyQQRERERERERsYmSCSIiIiIiRczmzZtp3749/v7+GAwGVq1aZVV/5swZIiIi8Pf3x8XFhdatW3P48GGrmPfff5+QkBDc3NwoUaIEaWlpea7ToUMHypYti5OTE35+fvTs2ZNTp05Z6uPi4jAYDPk+/vzzz7sydhG5N5RMEClg27Ztw97entatWxd0V0RERKSISE9Pp3bt2sybNy9PndlspmPHjvz222988cUX7Nu3j3LlytGyZUvS09MtcRkZGbRu3ZoxY8Zc9zqhoaF88sknHDx4kBUrVnD06FE6depkqe/SpQunT5+2eoSHh9OiRQvKlClzZwctIveUQ0F3QKS4W7x4MYMGDeKDDz7g+PHjlC1btqC7JCIiIve5Nm3a0KZNm3zrDh8+zI4dO/jpp5+oXr06APPnz6dMmTIsW7aM559/HoAhQ4YAkJiYeN3rDB061PJzuXLlGD16NB07dsRkMuHo6IizszPOzs6WmLNnz7Jx40ZiYmL+5QhFpKApmSBSgNLT0/nkk0/YtWsXKSkpxMXF8frrr1vqV69ezfDhwzlx4gSNGjUiIiKCiIgILly4gIeHB3BtZcPo0aPZtWsX3t7ePPXUU0RHR+Pq6mpzfxpGbyDLwfbzpGgw2puZ3gBqRK0jM9tQ0N2RAqS5ILk0F+4/ydPa3TQmMzMTACcnJ0uZvb09JUqUYMuWLZZkgq3Onz/P0qVLadKkCY6OjvnGLFmyBBcXF6vVCyJyf1IyQaQALV++nKCgIIKCgujRoweDBg1i/PjxGAwGkpOT6dSpE4MHD+b5559n3759jBgxwur8/fv3Ex4ezqRJk4iJieHs2bMMHDiQgQMHEhsbe93rZmZmWt5IAKSmpgJgtDNjb2++O4OVQs9oZ7b6V4ovzQXJpblw/zGZTPmWZ2VlWeoqVqxIuXLlGDVqFPPnz8fV1ZU5c+aQkpLCqVOn8rSRlZV1w/YjIyNZsGABGRkZNGzYkFWrVl23HzExMXTt2hUHB4frxkjhlvu66fUrum71tTWYzWb930GkgDRt2pTOnTszePBgsrKy8PPzY9myZbRs2ZLRo0fz1VdfsX//fkv8uHHjmDJlimVlQq9evXB2dmbhwoWWmC1bttCiRQvS09Ot/uLwT1FRUUycODFP+UcffYSLi8udH6iIiIgUmI4dOzJ69GgaNWpkKTty5Ajz5s0jOTkZOzs7ateujcFwbfXJP1dJwrU/XowfP54PP/yQkiVL5mk/NTWVy5cvc/bsWZYvX46Liwvjxo2ztJfr119/ZfTo0cycOZNKlSrdhZGKyJ2QkZFB9+7duXTpEm5ubteN08oEkQJy8OBBdu7cycqVKwFwcHCgS5cuLF68mJYtW3Lw4EHq169vdU6DBg2sjvfs2cORI0dYunSppcxsNpOTk8OxY8eoVq1avteOjIxk2LBhluPU1FQCAgKYvM+OLEf7OzVEuc8Y7cxMqpfD+N12ZOZoOXNxprkguTQX7j8/RYXnW163bl3atm1rVfbqq69y6dIlrl69io+PD02bNs037p+3TrZq1eq6tzAA9OrViwoVKuDl5WWVvABYtWoVtWvX5tVXX7V1WFKImEwmEhISbjoX5P6Vu2r5ZpRMECkgMTExZGVl8eCDD1rKzGYzjo6OXLhwAbPZnCej/78LiXJycnjxxRfz/Z/yjTZyNBqNGI3GPOWZOQaydE9ssZeZY9C90QJoLsj/0Vy4f1zvw52Dg0O+dd7e3sC1TRn37NnD5MmT88Q5OPzfRwZHR8cbfoDMjc3OzraKS0tL47PPPiM6OlofQIuIm80FuX/d6uuqZIJIAcjKymLJkiW89dZbhIWFWdU988wzLF26lKpVqxIfH29Vt3v3bqvjRx55hAMHDtyxpYLfRz6Ol5fXHWlL7j8mk4n4+Hh+igrXm4NiTnNBcmku3L/S0tI4cuSI5fjYsWMkJSXh6elJ2bJl+fTTT/Hx8aFs2bLs37+fwYMH07FjR6v3JSkpKaSkpFja+f3330lKSqJixYp4enqyc+dOdu7cSbNmzShdujS//fYbr7/+OhUrVqRx48ZW/Vm+fDlZWVk899xz9+YJEJG7zq6gOyBSHK1Zs4YLFy7Qr18/atSoYfXo1KkTMTExvPjii/z666+MGjWKQ4cO8cknnxAXFwdgWbEwatQotm/fzoABA0hKSuLw4cOsXr2aQYMGFeDoREREpKDt3r2b4OBggoODARg2bBjBwcGW/RBOnz5Nz549qVq1Kq+++io9e/Zk2bJlVm289957BAcH079/fwDGjh1LgwYNWL16NQDOzs6sXLmSxx9/nKCgIPr27UuNGjX49ttv86yAjImJ4emnn6Z06dJ3e+gico9oA0aRAtC+fXtycnL46quv8tTt3buXunXrsmfPHk6cOMHw4cP5448/aNy4MV26dOHll1/mypUrls0Vd+3axdixY9m+fTtms5mKFSvSpUsXxowZc8v9SU1Nxd3dnXPnzmllQjGW+xfItm3b6i+QxZzmguTSXJBcmguSS3Oh6Mv9bKANGEUKoS+//PK6dY888ohlb4RHHnmEDh06WOqmTJnCQw89ZPUtDfXr12f9+vV3r7MiIiIiIiL/Q8kEkUJs/vz51K9fHy8vL7Zu3cqMGTMYOHBgQXdLRERERESKOSUTRAqxw4cPM3nyZM6fP0/ZsmUZPnw4kZGRBd0tEREREREp5pRMECnEZs+ezezZswu6GyIiIiIiIlb0bQ4iIiIiIiIiYhMlE0RERERERETEJkomiIiIiIiIiIhNlEwQEREREREREZsomSAiIiIiIiIiNlEyQURERERERERsomSCiIiIiIiIiNhEyQQRERERERERsYmSCSIiIiKF3ObNm2nfvj3+/v4YDAZWrVplVR8VFUXVqlVxdXWldOnStGzZku+//95Sn5ycjMFgyPfx6aefWrX11Vdf0bBhQ5ydnfHz82PatGn59umvv/7ioYcewmAwcPHixTs9ZBERKeSUTBAREREp5NLT06lduzbz5s3Lt75KlSrMmzeP/fv3s2XLFgIDAwkLC+Ps2bMABAQEcPr0aavHxIkTcXV1pU2bNpZ2VqxYQc+ePenTpw8//PADiYmJNG/ePN9r9uvXj1q1at35wYqIyH1ByQSRQiAiIiLfvxYdOXIEgKlTp2Jvb5/vX4fi4uLyPfeDDz6418MQEZG7pE2bNkyePJmnn3463/ru3bvTsmVLKlSoQPXq1Zk1axapqan8+OOPANjb2+Pr62v1+Pzzz+nSpQslS5YEICsri8GDBzNjxgxeeuklqlSpQlBQEE2aNMlzvQULFnDx4kVGjBhx9wYtIiKFmkNBd0BErmndujWxsbFWZT4+PgDExsby2muvsXjxYkaPHp3nXDc3Nw4ePGhV5u7ufvc6KyIihdbVq1d5//33cXd3p3bt2vnG7Nmzh6SkJN59911L2d69ezl58iR2dnYEBweTkpJC7dq1adeundW5P//8M2+88Qbff/89v/32210di4iIFF5KJogUEkajEV9f3zzl3377LVeuXOGNN95gyZIlbN68Oc+SU4PBkO+5tmoYvYEsB9d/3Y7cn4z2ZqY3gBpR68jMNhR0d6QAaS4ULsnT2t08CFizZg1du3YlIyMDPz8/EhIS8Pb2zjc2JiaGatWqWa06yE0MREVFMWvWLAIDA5kxYwZjx46lc+fOPPDAA2RmZtKtWzdmzJhB2bJllUwQESnGlEwQKeRiYmLo1q0bjo6OdOvWjZiYmOvev3qrMjMzyczMtBynpqYCYLQzY29v/ldty/3LaGe2+leKL82FwsVkMuUpy8rKylPerFkzdu3axV9//UVMTAydO3dmy5YtlClTxiruypUrfPTRR4wZM8aqjatXrwIwevRoOnToAFy7nSEwMJBPPvmEl156iVGjRhEUFESXLl0wmUxkZWVZ+phfP6XoyH199TqL5kLRd6uvrZIJIoXEmjVrLPetwrX7Y2NiYlixYgXbtm0DoEePHjRt2pS5c+fi5uZmib106ZLVuSVLliQlJeW614qOjmbixIl5yscF5+Dikn0nhiP3sUn1cgq6C1JIaC4UDvHx8XnK9uzZg6Oj43XP6dixI+vWrWP06NF06tTJqm7Tpk2kp6fj6+tr1fbx48cBuHjxolX5Aw88wObNmylbtixffPEFx48fZ8WKFVZt+vr68uyzz9KtW7fbGqPcPxISEgq6C1JIaC4UXRkZGbcUp2SCSCERGhrKggULLMeurq589NFHVKhQwXLPa506dahQoQIff/wxL7zwgiW2VKlS7N2713JsZ3fjvVUjIyMZNmyY5Tg1NZWAgAAm77Mjy9H+Tg1J7jNGOzOT6uUwfrcdmTla2l6caS4ULj9Fhecpq1u3Lm3btr3heS4uLgQGBuaJmzVrFu3bt8/zwb9Zs2ZMnjwZLy8vyzkZGRn8+eeftGjRgrZt2xIUFMSVK1cs5+zZs4f+/fuTmJhIhQoV8qyCkKLDZDKRkJBAq1atbpjIkqJPc6Hoy121fDNKJogUEq6urlSqVMmqbPHixRw4cAAHh//7TzUnJ4eYmBirZIKdnV2ec2/EaDRiNBrzlG8e1RIvL6/b6L0UBSaTifj4ePa83lpvDoo5zYXCJy0tzfINPwB//PEHBw4cwNPTEy8vL6ZMmUKHDh3w8/Pjr7/+Yv78+Zw4cYKuXbtavYZHjhzhu+++Iz4+Ps9r6+XlxUsvvcQbb7xBYGAg5cqV48033wSgc+fOODo6UrVqVatzLl26BEDNmjXx8PC4S6OXwsTR0VG/FwTQXCjKbvV1VTJBpJDav38/u3fvJjExEU9PT0v5xYsXad68OT/99BM1atQowB6KiMi9snv3bkJDQy3HuavLevfuzXvvvcevv/7Kf/7zH86dO4eXlxf169fnu+++o3r16lbtLF68mAcffJCwsLB8rzNjxgwcHBzo2bMnV65coUGDBkyaNInSpUvfvcGJiMh9SckEkUIqJiaGBg0a5LvZYuPGjYmJiWH27NkF0DMREbnXQkJCMJuvvyHmypUrb6mdqVOnMnXq1OvWOzo6MnPmTGbOnAn83yqV2+2XiIgUXTe+sVpECsTVq1f58MMPeeaZZ/Ktf+aZZ/jwww8tO2+LiIiIiIjcS1qZIFIIxMXFWR2XKFGCc+fOXTd+2LBhliWuERERRERE3MXeiYiIiIiIWNPKBBERERERERGxiZIJIiIiIiIiImITJRNERERERERExCZKJoiIiIiIiIiITZRMEBERERERERGbKJkgIiIiIiIiIjZRMkFEREREREREbKJkgoiIiIiIiIjYRMkEEREREREREbGJkgkiIiIiIiIiYhMlE0RERERERETEJkomiIiIiNwhmzdvpn379vj7+2MwGFi1apWlzmQyMWrUKGrWrImrqyv+/v706tWLU6dOWbVx9OhRnnrqKXx8fHBzc6Nz586cOXPGUp+cnEy/fv0oX748zs7OVKxYkQkTJnD16tU8/YmLi6NWrVo4OTnh6+vLwIED79rYRUSkeFEyQUREROQOSU9Pp3bt2sybNy9PXUZGBnv37mX8+PHs3buXlStXcujQITp06GB1flhYGAaDgY0bN7J161auXr1K+/btycnJAeDXX38lJyeHhQsXcuDAAWbPns17773HmDFjrK43a9Ysxo4dy+jRozlw4AAbNmwgPDz87j4BIiJSbCiZIHIHpaSkMGjQICpUqIDRaCQgIID27duzYcMGAAIDA5kzZ06e86KioqhTp47leNGiRTz66KOULl2a0qVL07JlS3bu3JnnvD/++IN+/frh7+9PiRIlKFeuHIMHD+avv/66W0MUEZEbaNOmDZMnT+bpp5/OU+fu7k5CQgKdO3cmKCiIRo0aMXfuXPbs2cPx48cB2Lp1K8nJycTFxVGzZk1q1qxJbGwsu3btYuPGjQC0bt2a2NhYwsLCqFChAh06dGDEiBGsXLnScq0LFy4wbtw4lixZQvfu3alYsSLVq1enffv29+aJEBGRIs+hoDsgUlQkJyfTtGlTPDw8mD59OrVq1cJkMrFu3ToGDBjAr7/+esttJSYm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fJhffvmFd955h8aNG1vFtmjRgkqVKtGrVy8qVapE8+bNreqHDBlC06ZNefzxx3n33Xf54Ycf+O233/jkk09o2LAhhw8fvpdDExG5a3K/tSZ3w9lhw4YRHBzM66+/DsDq1asJDg6mXbtr3/7QtWtXgoODee+994Breyx8//337N+/n0qVKuHn52d5/PHHH5brzJgxg65du9KzZ0/q16/P77//zsaNGyldujQAzs7OLFq0iGbNmlGtWjWGDBnCE088wZo1a+7l0yEiIlIo6DYHkXuofPny7N27lylTpjB8+HBOnz6Nj48PdevWtdpjIVffvn0ZM2YMI0eOzFNnNBpJSEhg9uzZLFy4kBEjRuDi4kK1atV49dVXLd/6ICJyvwsJCcFsvv43S0RERBAREXHb5+dydHRk5syZzJw5M9/60NBQtm3bdtN2REREigMlE0TusLi4uBvW+/n5MW/ePObNm3fTtiIjI4mMjLxuvdFoZPTo0YwePdrWboqIiIiIiNw23eYgIiIiIiIiIjZRMkFEREREREREbKJkgoiIiIiIiIjYRMkEEREREREREbGJkgkiIiIiIiIiYhMlE0RERERERETEJkomiIiIiIiIiIhNlEwQEREREREREZsomSAiIiIiIiIiNlEyQURERERERERsomSCiIiIiIiIiNhEyQQREZEi7PLlywwZMoRy5crh7OxMkyZN2LVrl6U+KiqKqlWr4urqSunSpWnZsiU7d+60aiMlJYWePXvi6+uLq6srjzzyCJ999plVzN69e2nVqhUeHh54eXnxwgsvkJaWdk/GKCIiIveekgkiIiJF2PPPP09CQgL//e9/2b9/P2FhYbRs2ZKTJ08CUKVKFebNm8f+/fvZsmULgYGBtG3blkuXLlna6NmzJwcPHmT16tXs37+fp59+mi5durBv3z4ATp06RcuWLalUqRLff/89a9eu5cCBA0RERBTEkEVEROQeUDJBpABERERgMBiYNm2aVfmqVaswGAyWY7PZzPvvv0/Dhg0pWbIkHh4e1KtXjzlz5pCRkQFc+6uiwWDAYDBgb29PQEAAzz//PGfPnr2nYxKRwufKlSusWLGC6dOn07x5cypVqkRUVBTly5dnwYIFAHTv3p2WLVtSoUIFqlevzqxZs0hNTSU5OdnSzvbt2xk0aBANGjSgQoUKjBs3Dg8PD/bu3QvAmjVr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iLhufUBAAN9+++0N23jkkUfYsWPH7XRPRERERO4xJRNEbBAXF3fTD+lm8/W/WtHDwyNP/Y3ibyYxMfG2zxUREREREblddjcPERERERERERH5P0omiIiIiIiIiIhNlEwQEREREREREZsomSAiIiIiIiIiNlEyQURERERERERsomSCiIiIiIiIiNhEyQQRERERERERsYmSCSIiIiIiIiJiEyUTRERERERERMQmSiaIiIiIiIiIiE2UTBARERERERERmyiZICIiIiIiIiI2UTJBRESuKyoqCoPBYPXw9fW11K9cuZLw8HC8vb0xGAwkJSXlaSMzM5NBgwbh7e2Nq6srHTp04MSJE1Yxhw4d4sknn8Tb2xs3NzeaNm3Kpk2b7vbwREREROQ2KZkgcpekpKQwaNAgKlSogNFoJCAggPbt27NhwwaruKlTp2Jvb8+0adPytBEXF4eHh8cduY7I7apevTqnT5+2PPbv32+pS09Pp2nTpvnO31xDhgzh888/5+OPP2bLli2kpaXxxBNPkJ2dbYlp164dWVlZbNy4kT179lCnTh2eeOIJUlJS7urYREREROT2ONyphi5evHjTDz0ixUVycjJNmzbFw8OD6dOnU6tWLUwmE+vWrWPAgAH8+uuvltjY2Fhee+01Fi9ezOjRo+/adURul4ODg9VqhH/q2bMncG0u5ufSpUvExMTw3//+l5YtWwLw4YcfEhAQwDfffEN4eDjnzp3jyJEjLF68mFq1agEwbdo05s+fz4EDB657bREREREpOLeVTHjzzTcJDAykS5cuAHTu3JkVK1bg6+tLfHw8tWvXvqOdFLnfvPLKKxgMBnbu3Imrq6ulvHr16vTt29dy/O2333LlyhXeeOMNlixZwubNm2nevPkdv86tahi9gSwH15sHSpFktDczvQHUiFpHZraB5GntADh8+DD+/v4YjUYaNmzI1KlTqVChwi21uWfPHkwmE2FhYZYyf39/atSowbZt2wgPD8fLy4tq1aqxZMkSHnnkEYxGIwsXLuSBBx6gbt26d2WsIiIiIvLv3FYyYeHChXz44YcAJCQkkJCQwNdff80nn3zCyJEjWb9+/R3tpMj95Pz586xdu5YpU6ZYfcDP9c8VPDExMXTr1g1HR0e6detGTEzMLScTbLnO/8rMzCQzM9NynJqaCoDRzoy9vfmWri9Fj9HObPWvyWSibt26LF68mMqVK/Pnn38SHR1NkyZNSEpKwsvLy3KuyWSy/Jv7M8CJEycoUaIEJUuWtCovU6YMp06dspTFx8fzzDPPUKpUKezs7HjggQf48ssvcXV1tTpP7o1/vp5SvGkuSC7NBcmluVD03epre1vJhNOnTxMQEADAmjVr6Ny5M2FhYQQGBtKwYcPbaVKkyDhy5Ahms5mqVaveMC41NZUVK1awbds2AHr06EHTpk2ZO3cubm5ud+w6+YmOjmbixIl5yscF5+Dikp3PGVKcTKqXA1z7gA/g5OTEH3/8AVxbDfPSSy8xZswYnnzyScs5Z86cAWDLli2cOnXKUp6UlEROTo6lrVxnz57F3t6e+Ph4zGYz0dHRwLU9REqUKEFCQgJt2rRhxowZeHp63r3Byg0lJCQUdBekkNBckFyaC5JLc6HoysjIuKW420omlC5dmj/++IOAgADWrl3L5MmTATCbzVYbaokUR2bztb/qGgyGG8Z99NFHVKhQwXJbUJ06dahQoQIff/wxL7zwwh27Tn4iIyMZNmyY5Tg1NZWAgAAm77Mjy9He5vakaDDamZlUL4fxu+3IzDHwU1R4vnGLFi3C0dGRtm3bWspy90xo1qwZderUsZQ7Ozsze/ZsGjduTOnSpS3l48ePp169erRt25aNGzeye/du/vzzT0sibdCgQTz88MOcOnWKHj163PnByg2ZTCYSEhJo1aoVjo6OBd0dKUCaC5JLc0FyaS4Ufbmrlm/mtpIJTz/9NN27d6dy5cr89ddftGnTBrj2F6hKlSrdTpMiRUblypUxGAz88ssvdOzY8bpxixcv5sCBAzg4/N9/hjk5OcTExNxSMuFWr5Mfo9GI0WjMU755VEurpetSvJhMJuLj49nzeuvrvjnIzMzk119/pXnz5lYxuT87OjpalTds2BBHR0cSExPp3LkzcG1124EDB5gxYwaOjo5cvXoVuDYv/3munZ0dBoNBb1QK0P++nlJ8aS5ILs0FyaW5UHTd6ut6W18NOXv2bAYOHMjDDz9MQkICJUuWBK69QXzllVdup0mRIsPT05Pw8HDeffdd0tPT89RfvHiR/fv3s3v3bhITE0lKSrI8Nm/ezK5du/jpp5/uyHVE/q0RI0bw7bffcuzYMb7//ns6depEamoqvXv3Bq7t3ZGUlMTPP/8MwMGDB0lKSrJ8paO7uzv9+vVj+PDhbNiwgX379tGjRw9q1qxp+XaH3FULvXv35ocffuDQoUOMHDmSY8eO0a5du4IZuIiIiIjc0G2tTHB0dGTEiBF5yocMGfJv+yNSJMyfP58mTZrQoEED3njjDWrVqkVWVhYJCQksWLCA8PBwGjRokO9mi40bNyYmJobZs2cDkJ2dTVJSklVMiRIlePjhh296nV9++eVeDFeKsBMnTtCtWzfOnTuHj48PjRo1YseOHZQrVw6A1atX06dPH0t8165dAZgwYQJRUVHAtQS0g4MDnTt35sqVKzz++OPExcVhb3/tlhpvb2/Wrl3L2LFjeeyxxzCZTFSvXp0vvvhC3w4kIiIiUkjdVjIB4L///S8LFy7kt99+Y/v27ZQrV445c+ZQvnx5q025RIqj8uXLs3fvXqZMmcLw4cM5ffo0Pj4+1K1bl7fffpvu3bszatSofM995plniI6O5s033wQgLS2N4OBgq5hy5cqRnJx8w+ssWLDgro9Tir6PP/74hvURERFERETcMMbJyYm5c+cyd+7c68bUq1ePdevW3U4XRURERKQA3NZtDgsWLGDYsGG0adOGixcvWjZd9PDwYM6cOXeyfyL3LT8/P+bNm0dycjKZmZmcOHGCL774grCwMM6dO8fIkSPzPW/YsGGcPXuWEiVKEBERgdlszvPI3ezuRtcJCQm5NwMVEREREZFi57aSCXPnzmXRokWMHTvWskwVrv1laf/+/XescyIiIiIiIiJS+NxWMuHYsWN5ll3DtZ2489sITkRERERERESKjttKJpQvXz7PhnAAX3/9NQ8//PC/7ZOIiIiIiIiIFGK3tQHjyJEjGTBgAH///Tdms5mdO3eybNkyoqOj+eCDD+50H0VERERERESkELmtZEKfPn3IysritddeIyMjg+7du/Pggw/y9ttvW74WTERERERERESKJpuTCVlZWSxdupT27dvTv39/zp07R05ODmXKlLkb/RMRERERERGRQsbmPRMcHBx4+eWXyczMBMDb21uJBBEREREREZFi5LY2YGzYsCH79u27030RERERERERkfvAbe2Z8MorrzB8+HBOnDhB3bp1cXV1taqvVavWHemciIiIiIiIiBQ+t5VM6NKlCwCvvvqqpcxgMGA2mzEYDGRnZ9+Z3omIiIiIiIhIoXNbyYRjx47d6X6IiIiIiIiIyH3itvZMKFeu3A0fIiJy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Dg4OuLi48M477zytpomIiIiIPFMKJojIa2Pr1q306tWLPXv2EBUVRUJCAnXq1CE2NtbIExsbS6VKlZg8efJDy+rWrRsXLlwwPp999pnV/pUrV9K+fXs6derETz/9xM6dO2nTps1TaZeIiIiIyLOmYILIUxQYGJjsCbbJZOLEiRMATJo0CRsbG6sb15UrV2JjY8OZM2dSLNPHx4e+ffsa2ydOnKBTp07kyZMHe3t78ufPT+vWrdm/f//TbdxLaMOGDQQGBlKsWDF8fX0JCwvjzJkzHDhwwMjTvn17Ro0ahb+//0PLypgxI25ubsbH0dHR2JeQkMD777/PlClT6NGjB4ULF8bb25tmzZo9tbaJiIiIiDxLts+7AiKvunr16hEWFmaVliNHDgDCwsIYMmQIoaGhDBs2DIBGjRrh7OzMggULGDlypNVxO3fu5NixYyxduhSA/fv3U6tWLYoXL85nn32Gj48P//vf/1izZg0DBw5k69ataaprueDNJNhmetymvtBOT66fLO369esAZM+ePc3lLV68mEWLFpEzZ07eeustRo8eTZYsWQD48ccfOXfuHOnSpcPPz4+LFy9SqlQppk6dSrFixf5bQ0REREREXgAKJog8Zfb29ri5uSVL37p1K7du3WLcuHEsXLiQbdu2UbVqVezs7Gjfvj3h4eGMGDECk8lkHBMaGkqZMmXw9fXFbDYTGBhIoUKF2L59O+nS/d9Ao1KlSvH+++8/sE5xcXHExcUZ2zExMXfrms6MjY35STT7hRMfH2+1bTab6devH5UqVcLb2zvZfst2fHx8sn2tWrXC09OTnDlzcuTIEUaOHMmhQ4f49ttvAfj9998BGDNmDB999BGenp7MmDGDatWqceTIkccKXjwL97ZZXm/qC2KhviAW6gtiob7w6kvtd6tggshzEhISQuvWrbGzs6N169aEhIRQtWpVALp06cL06dPZunUr1atXB+7O5V+2bBkfffQRAIcOHeLIkSN89dVXVoEECycnpweeOzg4mLFjxyZLH+GXRMaMif+9cS+gyMhIq+3PPvuM/fv3ExwcnGwfwN9//w3Ajh07OH/+vNU+d3d34uLiOHPmDFmyZKF3794MGjSIWbNmUbBgQX788UcA6tevT4YMGbh48SLNmjXj22+/ZezYsdStW/cptfLJiIqKet5VkBeE+oJYqC+IhfqCWKgv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Pz9GjRqFjY0Nhw8f5u2336Zw4cJ07NiRwoULs3v3brJkyQLcnRbxww8/cPjwYby8vHB3dzc+ltEHDg4OREREUKtWLby9vencuTPFixdn69atKQZgREREREReRxqZIPKM/fPPPzRv3pzOnTtTsmRJsmTJwv79+/noo494++23yZQpE/Pnz6d58+Y0atSIvn374uXlxZUrV1i2bBlnzpxhyZIllCtXjiFDhjBw4EDOnTtHkyZNyJUrFydOnGDevHlUrlzZ6i0Pr4Lq1as/dBrIxo0b/9PxACVKlGDLli2PVT8RERERkdeFggkiz1jmzJkpV64cM2bM4OTJk8THx+Ph4UG3bt0YPnw4AG+//Ta7du0iODiYNm3aGGsa1KxZkwkTJhhlffjhh5QpU4ZPP/2UefPmkZSURMGCBWnWrBkdO3Z8Xk0UEREREZFXnIIJIs+Yvb09wcHBBAcHPzTfG2+8wcqVKx9ZXosWLWjRosWTqp6IiIiIiMgjac0EEREREREREUkTBRNEREREREREJE0UTBARERERERGRNFEwQURERERERETSRMEEEREREREREUkTBRNEREREREREJE0UTBARERERERGRNFEwQURERERERETSRMEEEREREREREUkTBRNEREREREREJE0UTBARERERERGRNFEwQUSeuf/973/069ePfPny4eDgQMWKFdm3b5+x32QypfiZMmUKAKdPn35gnuXLlz+vZomIiIiIvDYUTBB5jkwmE6tXr37gfstN86FDhwCIjo7GZDLx77//PpP6PS1du3YlKiqKL7/8ksOHD1OnTh38/f05d+4cABcuXLD6hIaGYjKZaNq0KQAeHh7J8owdO5ZMmTLx1ltvPc+miYiIiIi8FhRMeAkEBgZiMpno0aNHsn09e/bEZDIZeR72CQwMBKyf+mbOnBlfX1/Cw8NTPPdXX32FjY1Niue23NgWL16cxMREq31OTk5WZR48eJAGDRrg6upKhgwZ8PT0pGXLlly5ciVN16JOnTrY2NiwZ8+eNB1n8aib9xeN5aa5ePHiz7sqT8ytW7dYuXIlH330EVWrVsXLy4sxY8aQP39+5s6dC4Cbm5vVZ82aNdSoUYMCBQoAYGNjkyzPqlWraNmyJZkzZ36ezRMREREReS3YPu8KSOp4eHiwZMkSZsyYgYODAwC3b9/m66+/Jm/evMDdp7kW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cXZ2ZufOnUyZMoXevXs/72qJiIiIiIi8tBRMkFfe8ePHmTBhAlevXiVv3rwMHDiQoKCgVB27fft23nrrrQfuv3HjxhM9TkRERERE5GWgYIK88mbMmMGMGTMe69g33njjsV6/+LjHiYiIiIiIvAwUTBB5CAcHh8d6ZeTjHiciIiIiIvIy0NscRERERERERCRNFEwQERERERERkTRRMEFERERERERE0kTBBBERERERERFJEwUTRERERERERCRNFEwQERERERERkTRRMEFERERERERE0kTBBBF5qODgYMqWLUuWLFlwdXWlcePGHDt2zCpPREQEdevWxcXFBZPJxKFDh5KV8+6771KwYEEcHBzIkSMHb7/9Nr/99tszaoWIiIiIiDxJCiaIyENt3bqVXr16sWfPHqKiokhISKBOnTrExsYaeWJjY6lUqRKTJ09+YDllypQhLCyMo0ePsnHjRsxmM3Xq1CExMfFZNENERERERJ4g2+ddAZH/YteuXVSpUoXatWuzYcOGZ37+EydOMGnSJL777jv+/vtvXFxc8PHxoXPnzrRs2RJb25f/V+z+6xoWFoarqysHDhygatWqALRv3x6A06dPP7Cc7t27Gz97enoyYcIEfH19OX36NAULFnzyFRcRERERkafm5b/TkddaaGgoffr0Yf78+Zw5c4a8efM+s3Pv3bsXf39/ihUrxqeffoqPjw83btzg119/Zd68eRQvXhxfX98Uj42Pj8fOzu6Z1TW1ygVvJsE2k7F9enL9ZHmuX78OQPbs2R/7PLGxsYSFhZE/f348PDweuxwREREREXk+FEyQl1ZsbCzLli1j3759XLx4kfDwcEaNGmXsX7t2LQMHDuSvv/6ifPnyBAYGEhgYyLVr13BycgLujmwYNmwY+/btw8XFhSZNmhAcHEymTJkecNa7zGYzgYGBFC5cmJ07d5Iu3f/NGPLz86Nt27aYzWbg7tP6/Pnzs3TpUubMmcOePXuYO3cuHTt2ZMKECXz++edcvnyZIkWKMHnyZOrVqwdAdHQ0NWrUsKrvoUOH8PPz49SpU3h6ehIeHk6/fv0IDw9nyJAhnDlzhipVqhAaGvrQm/S4uDji4uKM7ZiYGADs05mxsfl/7d15XE35/wfw102326KFLBXJEhUlu7JMbt5NOwAAIxxJREFUYZIoZqyRbdAwhGzf+BlhSJaJGWNG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",
      "text/plain": [
       "<Figure size 1000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.9040385327899222\n"
     ]
    }
   ],
   "source": [
    "path = '/Users/arham/Downloads/Projects/01-Dataset/01-Data-for-model-building/train.csv'\n",
    "train_df, val_df, test_df = load_data(path)\n",
    "\n",
    "# train test val pipeline\n",
    "train_df = datatypes(train_df)\n",
    "train_df = encode_target(train_df)\n",
    "train_df = age_binning(train_df)\n",
    "train_df, scaler_age = age_scaling_minmax(train_df)\n",
    "train_df = age_scaling_log(train_df)\n",
    "train_df, scaler_weight = weight_scaling_minmax(train_df)\n",
    "train_df = weight_scaling_log(train_df)\n",
    "train_df, scaler_height = height_scaling_minmax(train_df)\n",
    "train_df = height_scaling_log(train_df)\n",
    "train_df = make_gender_binary(train_df)\n",
    "train_df = fix_binary_columns(train_df)\n",
    "train_df = freq_cat_cols(train_df)\n",
    "train_df = Mtrans(train_df)\n",
    "train_df = other_features(train_df)\n",
    "val_df = test_pipeline(val_df, scaler_age, scaler_weight, scaler_height)\n",
    "test_df = test_pipeline(test_df, scaler_age, scaler_weight, scaler_height)\n",
    "\n",
    "\n",
    "# target & predictors\n",
    "Target = 'NObeyesdad'\n",
    "features = ['Gender', 'Age', 'Height', 'Weight', 'family_history_with_overweight',\n",
    "       'FAVC', 'FCVC', 'NCP', 'CAEC', 'SMOKE', 'CH2O', 'SCC', 'FAF', 'TUE',\n",
    "       'CALC', 'Age_Group', \n",
    "       'MTRANS_Automobile', 'MTRANS_Bike', 'MTRANS_Motorbike',\n",
    "       'MTRANS_Public_Transportation', 'MTRANS_Walking', 'BMI', 'Age^2',\n",
    "       'Age^3', 'BMI^2', 'Age * BMI', 'Age * BMI^2', 'Age^2 * BMI^2'] \n",
    "        #'Scaled_Age', 'Log_Age', 'Scaled_Weight', 'Log_Weight', 'Scaled_Height', 'Log_Height',\n",
    "\n",
    "X_train = train_df[features]\n",
    "y_train = train_df[Target]\n",
    "X_val = val_df[features]\n",
    "y_val = val_df[Target]\n",
    "X_test = test_df[features]\n",
    "y_test = test_df[Target]\n",
    "\n",
    "\n",
    "lgb_train = lgb.Dataset(X_train, y_train)\n",
    "params = {\n",
    "    'objective': 'multiclass',\n",
    "    'num_class': 7,\n",
    "    'metric': 'multi_logloss',\n",
    "    'boosting_type': 'gbdt',\n",
    "    'learning_rate': 0.01,\n",
    "    'num_leaves': 31,\n",
    "    'max_depth': -1,\n",
    "    'bagging_fraction': 0.8,\n",
    "    'feature_fraction': 0.8,\n",
    "    'verbosity': -1\n",
    "}\n",
    "\n",
    "model = lgb.train(params, lgb_train, num_boost_round=1000)\n",
    "y_pred = model.predict(X_train, num_iteration=model.best_iteration)\n",
    "y_pred = [np.argmax(y) for y in y_pred]\n",
    "accuracy = accuracy_score(y_train, y_pred)\n",
    "print(f'Accuracy: {accuracy}')\n",
    "\n",
    "# feature importance\n",
    "fig, ax = plt.subplots(figsize=(10, 8))\n",
    "lgb.plot_importance(model, ax=ax)\n",
    "plt.show()\n",
    "\n",
    "# Validation\n",
    "X_val = val_df[features]\n",
    "y_val = val_df[Target]\n",
    "y_pred = model.predict(X_val, num_iteration=model.best_iteration)\n",
    "y_pred = [np.argmax(y) for y in y_pred]\n",
    "accuracy = accuracy_score(y_val, y_pred)\n",
    "print(f'Accuracy: {accuracy}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "# train_df, val_df, test_df = load_data(path)\n",
    "\n",
    "\n",
    "# X_val = val_df[features]\n",
    "# y_val = val_df[Target]\n",
    "# y_pred = model.predict(X_val, num_iteration=model.best_iteration)\n",
    "# # y_pred to a dataframe\n",
    "# y_pred = pd.DataFrame(y_pred, columns=['Insufficient_Weight', 'Normal_Weight', 'Overweight_Level_I', 'Overweight_Level_II', 'Obesity_Type_I', 'Obesity_Type_II', 'Obesity_Type_III'])\n",
    "# # add prefix to columns \"prob_lgbm_\"\n",
    "# y_pred = y_pred.add_prefix('prob_lgbm_')\n",
    "# # add to X_val\n",
    "# X_val = pd.concat([X_val, y_pred], axis=1)\n",
    "# # export as stack_aid_lgbm.csv\n",
    "# X_val.to_csv('stack_aid_lgbm.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Gender</th>\n",
       "      <th>Age</th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "      <th>family_history_with_overweight</th>\n",
       "      <th>FAVC</th>\n",
       "      <th>FCVC</th>\n",
       "      <th>NCP</th>\n",
       "      <th>CAEC</th>\n",
       "      <th>SMOKE</th>\n",
       "      <th>CH2O</th>\n",
       "      <th>SCC</th>\n",
       "      <th>FAF</th>\n",
       "      <th>TUE</th>\n",
       "      <th>CALC</th>\n",
       "      <th>Age_Group</th>\n",
       "      <th>MTRANS_Automobile</th>\n",
       "      <th>MTRANS_Bike</th>\n",
       "      <th>MTRANS_Motorbike</th>\n",
       "      <th>MTRANS_Public_Transportation</th>\n",
       "      <th>MTRANS_Walking</th>\n",
       "      <th>BMI</th>\n",
       "      <th>Age^2</th>\n",
       "      <th>Age^3</th>\n",
       "      <th>BMI^2</th>\n",
       "      <th>Age * BMI</th>\n",
       "      <th>Age * BMI^2</th>\n",
       "      <th>Age^2 * BMI^2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>1.550000</td>\n",
       "      <td>51.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>21-30</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>21.227888</td>\n",
       "      <td>1.0</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>21.227888</td>\n",
       "      <td>441.000000</td>\n",
       "      <td>445.785640</td>\n",
       "      <td>450.623213</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>20.000000</td>\n",
       "      <td>1.700000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0-20</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>27.681661</td>\n",
       "      <td>1.0</td>\n",
       "      <td>20.000000</td>\n",
       "      <td>27.681661</td>\n",
       "      <td>400.000000</td>\n",
       "      <td>553.633218</td>\n",
       "      <td>766.274350</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>18.000000</td>\n",
       "      <td>1.600000</td>\n",
       "      <td>60.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0-20</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>23.437500</td>\n",
       "      <td>1.0</td>\n",
       "      <td>18.000000</td>\n",
       "      <td>23.437500</td>\n",
       "      <td>324.000000</td>\n",
       "      <td>421.875000</td>\n",
       "      <td>549.316406</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>1.632983</td>\n",
       "      <td>111.720238</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2.559750</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.396972</td>\n",
       "      <td>1</td>\n",
       "      <td>21-30</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>41.895611</td>\n",
       "      <td>1.0</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>41.895611</td>\n",
       "      <td>676.000000</td>\n",
       "      <td>1089.285877</td>\n",
       "      <td>1755.242193</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>21.682636</td>\n",
       "      <td>1.748524</td>\n",
       "      <td>133.845064</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2.843777</td>\n",
       "      <td>0</td>\n",
       "      <td>1.427037</td>\n",
       "      <td>0.849236</td>\n",
       "      <td>1</td>\n",
       "      <td>21-30</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>43.778327</td>\n",
       "      <td>1.0</td>\n",
       "      <td>21.682636</td>\n",
       "      <td>43.778327</td>\n",
       "      <td>470.136704</td>\n",
       "      <td>949.229536</td>\n",
       "      <td>1916.541944</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Gender        Age    Height      Weight  family_history_with_overweight  \\\n",
       "0       1  21.000000  1.550000   51.000000                               0   \n",
       "1       0  20.000000  1.700000   80.000000                               1   \n",
       "2       1  18.000000  1.600000   60.000000                               1   \n",
       "3       1  26.000000  1.632983  111.720238                               1   \n",
       "4       1  21.682636  1.748524  133.845064                               1   \n",
       "\n",
       "   FAVC  FCVC  NCP  CAEC  SMOKE      CH2O  SCC       FAF       TUE  CALC  \\\n",
       "0     1   3.0  1.0     2      0  2.000000    0  0.000000  0.000000     0   \n",
       "1     1   2.0  3.0     1      0  2.000000    0  2.000000  1.000000     1   \n",
       "2     1   2.0  3.0     1      0  2.000000    0  1.000000  1.000000     0   \n",
       "3     1   3.0  3.0     1      0  2.559750    0  0.000000  0.396972     1   \n",
       "4     1   3.0  3.0     1      0  2.843777    0  1.427037  0.849236     1   \n",
       "\n",
       "  Age_Group  MTRANS_Automobile  MTRANS_Bike  MTRANS_Motorbike  \\\n",
       "0     21-30              False        False             False   \n",
       "1      0-20              False        False             False   \n",
       "2      0-20              False        False             False   \n",
       "3     21-30              False        False             False   \n",
       "4     21-30              False        False             False   \n",
       "\n",
       "   MTRANS_Public_Transportation  MTRANS_Walking        BMI  Age^2      Age^3  \\\n",
       "0                          True           False  21.227888    1.0  21.000000   \n",
       "1                          True           False  27.681661    1.0  20.000000   \n",
       "2                         False            True  23.437500    1.0  18.000000   \n",
       "3                          True           False  41.895611    1.0  26.000000   \n",
       "4                          True           False  43.778327    1.0  21.682636   \n",
       "\n",
       "       BMI^2   Age * BMI  Age * BMI^2  Age^2 * BMI^2  \n",
       "0  21.227888  441.000000   445.785640     450.623213  \n",
       "1  27.681661  400.000000   553.633218     766.274350  \n",
       "2  23.437500  324.000000   421.875000     549.316406  \n",
       "3  41.895611  676.000000  1089.285877    1755.242193  \n",
       "4  43.778327  470.136704   949.229536    1916.541944  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# show all columns\n",
    "pd.set_option('display.max_columns', None)\n",
    "X_train.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Testing Single Instance For Architecture Development"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "input_data = {\n",
    "    \"id\": 6204,\n",
    "    \"Gender\": \"Female\",\n",
    "    \"Age\": 23.0,\n",
    "    \"Height\": 1.581527,\n",
    "    \"Weight\": 78.089575,\n",
    "    \"family_history_with_overweight\": \"yes\",\n",
    "    \"FAVC\": \"yes\",\n",
    "    \"FCVC\": 2.0,\n",
    "    \"NCP\": 2.070033,\n",
    "    \"CAEC\": \"Sometimes\",\n",
    "    \"SMOKE\": \"no\", \n",
    "    \"CH2O\": 2.953192,\n",
    "    \"SCC\": \"no\",\n",
    "    \"FAF\": 0.118271,\n",
    "    \"TUE\": 0.0,\n",
    "    \"CALC\": \"no\",\n",
    "    \"MTRANS\": \"Public_Transportation\"\n",
    "    \n",
    "}\n",
    "\n",
    "input_df = pd.DataFrame([input_data])\n",
    "input_df = New_Test_Instances_Pipeline(input_df, scaler_age, scaler_weight, scaler_height)\n",
    "\n",
    "# X input to have same columns as features\n",
    "X_input = pd.DataFrame(columns=features)\n",
    "# if input df does not have a column that is in features, add it with 0s at the same position\n",
    "for col in features:\n",
    "    if col not in input_df.columns:\n",
    "        if col in ['MTRANS_Automobile', 'MTRANS_Bike', 'MTRANS_Motorbike', 'MTRANS_Public_Transportation', 'MTRANS_Walking']:\n",
    "            X_input[col] = False\n",
    "        else:\n",
    "            X_input[col] = 0\n",
    "    else:\n",
    "        X_input[col] = input_df[col]\n",
    "    # if MTRANS_Automobile, MTRANS_Bike, MTRANS_Motorbike, MTRANS_Public_Transportation, MTRANS_Walking are zero, make them False\n",
    "    \n",
    "y_pred_proba = model.predict(X_input)\n",
    "y_pred = np.argmax(y_pred_proba)\n",
    "\n",
    "y_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "DataScience",
   "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.10.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}