[4f676e]: / linear-and-non-linear-models.ipynb

Download this file

1623 lines (1622 with data), 305.0 kB

{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Loading the data and required libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import re\n",
    "import datetime\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import string\n",
    "import nltk\n",
    "from nltk import word_tokenize\n",
    "from nltk.stem.porter import PorterStemmer\n",
    "from nltk.corpus import stopwords\n",
    "\n",
    "from sklearn import metrics\n",
    "from sklearn.feature_extraction.text import CountVectorizer\n",
    "from sklearn.linear_model import LogisticRegression, Ridge, Lasso, ElasticNet\n",
    "from sklearn.model_selection import GridSearchCV, train_test_split\n",
    "\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.naive_bayes import MultinomialNB\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.neural_network import MLPClassifier\n",
    "from sklearn.model_selection import GridSearchCV, train_test_split\n",
    "from xgboost import XGBClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "DIR = \"E:/Coding/Summer 2023/data/\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "adm_notes = pd.read_csv(DIR + \"readmission.csv\", low_memory=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Natural Language"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def clean_text(texts):\n",
    "    texts = texts.fillna(' ')\n",
    "    texts = texts.str.replace('\\n',' ')\n",
    "    texts = texts.str.replace('\\r',' ')\n",
    "\n",
    "    table = str.maketrans('', '', string.punctuation + '0123456789')\n",
    "    texts = [text.lower().translate(table) for text in texts]\n",
    "\n",
    "    return texts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "adm_notes['TEXT'] = clean_text(adm_notes['TEXT'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "stop_words = stopwords.words('english')\n",
    "stop_words = stop_words + ['patient', 'date', 'admission', 'discharge', 'lastname', 'firstname', 'sex']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "porter = PorterStemmer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def tokenize_stem(text):\n",
    "    words = word_tokenize(text)\n",
    "    words = [word for word in words if word not in stop_words]\n",
    "    words = [porter.stem(word) for word in words]\n",
    "    return words"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Linear Models\n",
    "## Words, Train and Test"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Repartition data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_train, df_test = train_test_split(adm_notes, test_size=0.2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Subsample non-readmitted patients to match size of readmitted ones"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "rows_pos = df_train['READM_WITHIN_30'] == 1\n",
    "df_train_pos = df_train.loc[rows_pos]\n",
    "df_train_neg = df_train.loc[~rows_pos]\n",
    "\n",
    "df_train = pd.concat([df_train_pos, df_train_neg.sample(n = len(df_train_pos))], axis = 0)\n",
    "df_train = df_train.sample(n = len(df_train)).reset_index(drop = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "rows_pos = df_test['READM_WITHIN_30'] == 1\n",
    "df_test_pos = df_test.loc[rows_pos]\n",
    "df_test_neg = df_test.loc[~rows_pos]\n",
    "\n",
    "df_test = pd.concat([df_test_pos, df_test_neg.sample(n = len(df_test_pos))], axis = 0)\n",
    "df_test = df_test.sample(n = len(df_test)).reset_index(drop = True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Sparse Matrix with word count"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "vect = CountVectorizer(lowercase = True, max_features = 3000, tokenizer = tokenize_stem)\n",
    "vect.fit(df_train['TEXT'].values)\n",
    "\n",
    "X_train_tf = vect.transform(df_train['TEXT'].values)\n",
    "X_test_tf = vect.transform(df_test['TEXT'].values)\n",
    "\n",
    "y_train = df_train['READM_WITHIN_30']\n",
    "y_test = df_test['READM_WITHIN_30']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Proportion of 1 in test sample"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sum(y_test == 1) / sum(y_test == 0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Logistic Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "grid = {'C': [1, 0.1, 0.01, 0.001, 0.0005, 0.0001]}\n",
    "\n",
    "model_log = GridSearchCV(LogisticRegression(penalty='l2', max_iter=10000), param_grid=grid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=LogisticRegression(max_iter=10000),\n",
       "             param_grid={&#x27;C&#x27;: [1, 0.1, 0.01, 0.001, 0.0005, 0.0001]})</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" ><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=LogisticRegression(max_iter=10000),\n",
       "             param_grid={&#x27;C&#x27;: [1, 0.1, 0.01, 0.001, 0.0005, 0.0001]})</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: LogisticRegression</label><div class=\"sk-toggleable__content\"><pre>LogisticRegression(max_iter=10000)</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LogisticRegression</label><div class=\"sk-toggleable__content\"><pre>LogisticRegression(max_iter=10000)</pre></div></div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "GridSearchCV(estimator=LogisticRegression(max_iter=10000),\n",
       "             param_grid={'C': [1, 0.1, 0.01, 0.001, 0.0005, 0.0001]})"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_log.fit(X_train_tf, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'C': 0.0001}"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_log.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_prob = model_log.predict_proba(X_train_tf)[:,1]\n",
    "y_test_prob = model_log.predict_proba(X_test_tf)[:,1]\n",
    "\n",
    "y_train_preds = np.round(y_train_prob)\n",
    "y_test_preds = np.round(y_test_prob)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "fpr, tpr, thresholds = metrics.roc_curve(y_train, y_train_prob)\n",
    "fprt, tprt, thresholds = metrics.roc_curve(y_test, y_test_prob)\n",
    "\n",
    "auc_train = metrics.auc(fpr, tpr)\n",
    "auc_test = metrics.auc(fprt, tprt)\n",
    "\n",
    "acc_train = metrics.accuracy_score(y_train, y_train_preds)\n",
    "acc_test = metrics.accuracy_score(y_test, y_test_preds)\n",
    "\n",
    "prec_train = metrics.precision_score(y_train, y_train_preds)\n",
    "prec_test = metrics.precision_score(y_test, y_test_preds)\n",
    "\n",
    "rec_train = metrics.recall_score(y_train, y_train_preds)\n",
    "rec_test = metrics.recall_score(y_test, y_test_preds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Set\t\t Train\t\t    Test\n",
      "AUC\t\t 0.7456961290723327 0.6952736740991039\n",
      "Accuracy\t 0.6789891395154553 0.6493848857644992\n",
      "Precission\t 0.7071048815853069 0.6778242677824268\n",
      "Recall\t\t 0.6111111111111112 0.5694200351493849\n"
     ]
    }
   ],
   "source": [
    "print('Set\\t\\t', 'Train\\t\\t', '   Test')\n",
    "print('AUC\\t\\t', auc_train, auc_test)\n",
    "print('Accuracy\\t', acc_train, acc_test)\n",
    "print('Precission\\t', prec_train, prec_test)\n",
    "print('Recall\\t\\t', rec_train, rec_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHOCAYAAABwyLYDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAACWeklEQVR4nOzdeVwU9f/A8dcu940HAiqIF4oc4pFXmkdmp+aVVmZZhpWaHZZaWfbNDju0w6vMSk3Lqyy7S80jtSwvPFA8ARUVQURudnd+f/BjBFkQcHd2gffz8eDx2Jn97MybN7O7b2Y+8/noFEVREEIIIYSoRfS2DkAIIYQQQmtSAAkhhBCi1pECSAghhBC1jhRAQgghhKh1pAASQgghRK0jBZAQQgghah0pgIQQQghR60gBJIQQQohaRwogIYQQQtQ6jrYOQAhR/U2ZMoU1a9aUWu/s7EzdunXp2LEjzz77LI0aNSrVZtOmTSxfvpzY2FguXbpE/fr1iYqK4r777qNr165m93f58mWWLVvG77//TmJiIoqiEBQUxF133cV9992Hh4dHheL++++/WbFiBbt37yY1NZX69esTGRnJww8/TLt27SqXBCFEtaKTqTCEENerqABasWJFifUZGRns3LmTzz77jIYNG/Ljjz/i7OwMgMlk4uWXX2b16tX07t2bu+66C39/f5KTk/nuu+/YunUr999/P6+88go6nU7d5qFDhxg7diy5ubncf//9REZGotfr+e+//1iyZAlNmzbls88+o06dOuXG/Oabb7J48WJuuukm+vfvj7+/P2fPnuXrr79m7969vPbaa9xzzz2WT5YQwj4oQghxnSZPnqyEhoaW+fw777yjhIaGKhs3blTXzZ49WwkNDVWWLl1q9jVFzy9YsEBdl5mZqdx8881K7969leTk5FKv2bp1qxIaGqq8+OKL5ca7dOlSJTQ0VJkzZ06p5/Lz85UHH3xQCQ8PVxITE8vdjhCi+pI+QEIIq/Px8QFQz+RkZGSwcOFCunTpwogRI8y+Zty4cURERDB//nxycnIA+P7770lKSuLpp58mICCg1Gu6devGk08+SevWrcuMxWg08vHHH9O0aVOeeOKJUs87OTkxZcoURowYQXZ2NgCzZ8+mVatWpKWllWj72GOP0adPH3V55MiRjBs3jpdeeon27dvTo0cPpk2bRlRUFJcvXy7x2r1799KqVSvWrl0LgMFg4OOPP+bWW28lIiKCnj178vbbb5Obm1vm7yKEqDrpAySEsBiDwaA+VhSFy5cv8/fff7Nw4UJCQkK44YYbAPjnn3/IycnhlltuKXNbOp2Ou+66ixkzZrB161b69u3Ln3/+iV6vL1F0XG38+PHlxnjgwAHOnz/PI488gl5v/n/AsLAwwsLCyt1OWTZu3Ej37t2ZO3cuaWlpBAUFsXz5cn799dcSl9TWrFmDl5cX/fr1A+DZZ59lw4YNPProo9xwww0cPnyY2bNnc/DgQb744osyYxVCVI0UQEIIiwkPDy+1ztfXl169ejFx4kTc3NwASExMBKBx48blbq9JkyYAnDp1CoDk5GTq1q2Lp6dnlWM8c+YMAMHBwVXeRnmMRiNvvvkm9erVU9eFhoaydu1atQDKz8/nl19+4c4778TV1ZV//vmH3377jRdeeIFRo0YBcOONNxISEsITTzzBb7/9xu23326VeIWoreRfCiGExaxevZrVq1fz1VdfMXz4cBwcHHjkkUd455138Pf3L9Xe0bH8/8EcHBxKLOv1+hJnmaqiaJtGo/G6tlOWwMDAEsUPwJAhQ/j33385ffo0UHiWKD09nSFDhgCwdetWAPr27YvBYFB/unfvjpubG5s3b7ZKrELUZnIGSAhhMZGRkerjDh064OzszKxZszAajYwdO1Z9LigoCLhyZqcsSUlJwJUzRY0bNyY+Pp7Lly/j5eVl9jWpqal4enri4uJi9vmibV1r32fOnKFhw4bltjHH3C34AwYM4L333uOHH37g8ccf57vvviM0NJSoqCgAtW/RzTffbHab586dq3QcQojyyRkgIYTVTJo0iebNmzNnzhx2796tru/evTvu7u789NNP5b7+p59+wtPTk27dugHQq1cvFEVhw4YNZb7mpZdeokuXLly6dMns861btyYgIIA///wTk8lkts2BAwfo3bs377//PnCl8/bV7bOyssqNv0jdunXp06cPP/zwAxcvXmTz5s0MHjxYfd7b2xudTsfXX3+tnkUr/jN16tQK7UcIUXFSAAkhrMbZ2Znp06djMpl45ZVXKCgoAMDd3Z2xY8eyY8cOPvvsM7Ov/fTTT9m1axePPfYY7u7uANx11100atSIDz74wOxZkS1btrB582Zuvvlm9c6zq+l0OsaMGcPJkyf55JNPSj1fUFDA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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.set('talk', 'whitegrid', 'dark', font_scale=0.7,\n",
    "        rc={\"lines.linewidth\": 1, 'grid.linestyle': '--'})\n",
    "\n",
    "plt.plot(fpr, tpr, label='Train')\n",
    "plt.plot(fprt, tprt, label='Test')\n",
    "plt.title(\"ROC Curve\")\n",
    "plt.legend(loc=\"lower right\")\n",
    "plt.xlabel(\"False Positive Rate\")\n",
    "plt.ylabel(\"True Positive Rate\")\n",
    "\n",
    "plt.savefig('fig/logistic_auroc.pgf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ridge Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "grid={'alpha': np.arange(10000, 20000, 1000)}\n",
    "model_ridge = GridSearchCV(Ridge(), param_grid=grid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=Ridge(),\n",
       "             param_grid={&#x27;alpha&#x27;: array([10000, 11000, 12000, 13000, 14000, 15000, 16000, 17000, 18000,\n",
       "       19000])})</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=Ridge(),\n",
       "             param_grid={&#x27;alpha&#x27;: array([10000, 11000, 12000, 13000, 14000, 15000, 16000, 17000, 18000,\n",
       "       19000])})</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: Ridge</label><div class=\"sk-toggleable__content\"><pre>Ridge()</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Ridge</label><div class=\"sk-toggleable__content\"><pre>Ridge()</pre></div></div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "GridSearchCV(estimator=Ridge(),\n",
       "             param_grid={'alpha': array([10000, 11000, 12000, 13000, 14000, 15000, 16000, 17000, 18000,\n",
       "       19000])})"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_ridge.fit(X_train_tf, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'alpha': 15000}"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_ridge.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_reg = model_ridge.predict(X_train_tf)\n",
    "y_test_reg = model_ridge.predict(X_test_tf)\n",
    "\n",
    "y_train_preds = np.round(y_train_reg.clip(0, 1))\n",
    "y_test_preds = np.round(y_test_reg.clip(0, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "fpr, tpr, thresholds = metrics.roc_curve(y_train, y_train_reg)\n",
    "fprt, tprt, thresholds = metrics.roc_curve(y_test, y_test_reg)\n",
    "\n",
    "auc_train = metrics.auc(fpr, tpr)\n",
    "auc_test = metrics.auc(fprt, tprt)\n",
    "\n",
    "acc_train = metrics.accuracy_score(y_train, y_train_preds)\n",
    "acc_test = metrics.accuracy_score(y_test, y_test_preds)\n",
    "\n",
    "prec_train = metrics.precision_score(y_train, y_train_preds)\n",
    "prec_test = metrics.precision_score(y_test, y_test_preds)\n",
    "\n",
    "rec_train = metrics.recall_score(y_train, y_train_preds)\n",
    "rec_test = metrics.recall_score(y_test, y_test_preds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Set\t\t Train\t\t    Test\n",
      "AUC\t\t 0.7885661138365267 0.7037490618079386\n",
      "Accuracy\t 0.7128237259816207 0.6467486818980668\n",
      "Precission\t 0.7476908118619349 0.6750524109014675\n",
      "Recall\t\t 0.6424394319131161 0.5659050966608085\n"
     ]
    }
   ],
   "source": [
    "print('Set\\t\\t', 'Train\\t\\t', '   Test')\n",
    "print('AUC\\t\\t', auc_train, auc_test)\n",
    "print('Accuracy\\t', acc_train, acc_test)\n",
    "print('Precission\\t', prec_train, prec_test)\n",
    "print('Recall\\t\\t', rec_train, rec_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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R0REmBzCQafTyVnNGtQlzxkZGXTq1KnKutatWxMYGMjRo0dtEmdDZK/vQimArCQqKoqmTZuydu1a47qysjLWr19Pr169TL6mZ8+ebNmyhcLCQuO6tWvXEhgYKF/QNahLnivGR2ncuDFffvllrYWS+JeluR4wYACrVq2q8vPggw8CsGrVKoYNG6Za7M6kLvt0nz592LFjB2fOnDGu27ZtG4WFhWYNOtcQ1SXPLVu2rDZQYmpqKrm5ubRo0cKm8TYk9voulD5AVqLRaEhMTGTWrFkEBATQpUsXli1bxvnz5xk9ejRQPqhWTk4OCQkJANx3330sW7aMsWPHMmbMGA4ePMiiRYuYPHmyXFuuQV3y/Morr5Cfn88LL7xARkYGGRkZxu01a9aMJk2a2OE3cXyW5jooKIigoKAq2/jnn3+A8sszwrS67NOjR4/m//7v/0hMTGTSpEkUFRXx+uuv07lzZ/r06WO/X8aB1SXP48eP54knnuC5555j0KBBZGVlMXfuXJo3b84dd9xhv1/GyTnMd6HNRhhqoD766COlX79+Snx8vDJ8+HBlx44dxuemTZtWbVC45ORkZfjw4UpsbKzSv39/5YMPPlA7ZKdkbp5LS0uVjh07Ku3atTP5s3jxYnv9Ck7D0n26sk8++UQGQjSTpXlOTU1VHn30USUhIUG56qqrlGnTpikXLlxQO2ynY2mef/75Z2Xw4MFKTEyM0q9fP+WZZ55Rzp07p3bYTuv999+vNhCio3wXahRFJp4SQgghRMMifYCEEEII0eBIASSEEEKIBkcKICGEEEI0OFIACSGEEKLBkQJICCGEEA2OFEBCCCGEaHCkABJCCCFEgyMFkBBCmFBfh0irr7+XEJaSAkiIemT69Om0b9++xp8hQ4ZYtL05c+bQvn17cnJybBTxv06ePGky5tjYWAYOHMgLL7zAuXPnrP6+f/31F+3bt+enn34CoLS0lNdff53PP//c2EbNPAAm89ChQwc6d+7MbbfdxgcffIDBYLB4uzt27OC+++6zQcRCOB+ZC0yIemjFihUm13t7e6scieXuuusu7r77buNySUkJycnJvPfee/z999988803Vp0fKCYmhhUrVhgnyT179iwfffQRU6dONba5++676du3L/7+/lZ738vp168f48ePNy4bDAbOnj3LihUrePvttykuLubxxx+3aJsrV67k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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(fpr, tpr, label='Train')\n",
    "plt.plot(fprt, tprt, label='Test')\n",
    "plt.title(\"ROC Curve\")\n",
    "plt.legend(loc=\"lower right\")\n",
    "plt.xlabel(\"False Positive Rate\")\n",
    "plt.ylabel(\"True Positive Rate\")\n",
    "\n",
    "plt.savefig('fig/ridge_auroc.pgf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Lasso Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "grid = {'alpha':[0.1,0.01,0.001,0.0001]}\n",
    "model_lasso = GridSearchCV(Lasso(), param_grid=grid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-3 {color: black;background-color: white;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-3 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-3 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=Lasso(),\n",
       "             param_grid={&#x27;alpha&#x27;: [0.1, 0.01, 0.001, 0.0001]})</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=Lasso(),\n",
       "             param_grid={&#x27;alpha&#x27;: [0.1, 0.01, 0.001, 0.0001]})</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" ><label for=\"sk-estimator-id-8\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: Lasso</label><div class=\"sk-toggleable__content\"><pre>Lasso()</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-9\" type=\"checkbox\" ><label for=\"sk-estimator-id-9\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Lasso</label><div class=\"sk-toggleable__content\"><pre>Lasso()</pre></div></div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "GridSearchCV(estimator=Lasso(),\n",
       "             param_grid={'alpha': [0.1, 0.01, 0.001, 0.0001]})"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_lasso.fit(X_train_tf, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'alpha': 0.01}"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_lasso.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_reg = model_lasso.predict(X_train_tf)\n",
    "y_test_reg = model_lasso.predict(X_test_tf)\n",
    "\n",
    "y_train_preds = np.round(y_train_reg.clip(0, 1))\n",
    "y_test_preds = np.round(y_test_reg.clip(0, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "fpr, tpr, thresholds = metrics.roc_curve(y_train, y_train_prob)\n",
    "fprt, tprt, thresholds = metrics.roc_curve(y_test, y_test_prob)\n",
    "\n",
    "auc_train = metrics.auc(fpr, tpr)\n",
    "auc_test = metrics.auc(fprt, tprt)\n",
    "\n",
    "acc_train = metrics.accuracy_score(y_train, y_train_preds)\n",
    "acc_test = metrics.accuracy_score(y_test, y_test_preds)\n",
    "\n",
    "prec_train = metrics.precision_score(y_train, y_train_preds)\n",
    "prec_test = metrics.precision_score(y_test, y_test_preds)\n",
    "\n",
    "rec_train = metrics.recall_score(y_train, y_train_preds)\n",
    "rec_test = metrics.recall_score(y_test, y_test_preds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Set\t\t Train\t\t    Test\n",
      "AUC\t\t 0.7456961290723327 0.6952736740991039\n",
      "Accuracy\t 0.6819131161236425 0.6353251318101933\n",
      "Precission\t 0.7174238642036944 0.6610878661087866\n",
      "Recall\t\t 0.600250626566416 0.5553602811950791\n"
     ]
    }
   ],
   "source": [
    "print('Set\\t\\t', 'Train\\t\\t', '   Test')\n",
    "print('AUC\\t\\t', auc_train, auc_test)\n",
    "print('Accuracy\\t', acc_train, acc_test)\n",
    "print('Precission\\t', prec_train, prec_test)\n",
    "print('Recall\\t\\t', rec_train, rec_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHOCAYAAABwyLYDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAACWeklEQVR4nOzdeVwU9f/A8dcu940HAiqIF4oc4pFXmkdmp+aVVmZZhpWaHZZaWfbNDju0w6vMSk3Lqyy7S80jtSwvPFA8ARUVQURudnd+f/BjBFkQcHd2gffz8eDx2Jn97MybN7O7b2Y+8/noFEVREEIIIYSoRfS2DkAIIYQQQmtSAAkhhBCi1pECSAghhBC1jhRAQgghhKh1pAASQgghRK0jBZAQQgghah0pgIQQQghR60gBJIQQQohaRwogIYQQQtQ6jrYOQAhR/U2ZMoU1a9aUWu/s7EzdunXp2LEjzz77LI0aNSrVZtOmTSxfvpzY2FguXbpE/fr1iYqK4r777qNr165m93f58mWWLVvG77//TmJiIoqiEBQUxF133cV9992Hh4dHheL++++/WbFiBbt37yY1NZX69esTGRnJww8/TLt27SqXBCFEtaKTqTCEENerqABasWJFifUZGRns3LmTzz77jIYNG/Ljjz/i7OwMgMlk4uWXX2b16tX07t2bu+66C39/f5KTk/nuu+/YunUr999/P6+88go6nU7d5qFDhxg7diy5ubncf//9REZGotfr+e+//1iyZAlNmzbls88+o06dOuXG/Oabb7J48WJuuukm+vfvj7+/P2fPnuXrr79m7969vPbaa9xzzz2WT5YQwj4oQghxnSZPnqyEhoaW+fw777yjhIaGKhs3blTXzZ49WwkNDVWWLl1q9jVFzy9YsEBdl5mZqdx8881K7969leTk5FKv2bp1qxIaGqq8+OKL5ca7dOlSJTQ0VJkzZ06p5/Lz85UHH3xQCQ8PVxITE8vdjhCi+pI+QEIIq/Px8QFQz+RkZGSwcOFCunTpwogRI8y+Zty4cURERDB//nxycnIA+P7770lKSuLpp58mICCg1Gu6devGk08+SevWrcuMxWg08vHHH9O0aVOeeOKJUs87OTkxZcoURowYQXZ2NgCzZ8+mVatWpKWllWj72GOP0adPH3V55MiRjBs3jpdeeon27dvTo0cPpk2bRlRUFJcvXy7x2r1799KqVSvWrl0LgMFg4OOPP+bWW28lIiKCnj178vbbb5Obm1vm7yKEqDrpAySEsBiDwaA+VhSFy5cv8/fff7Nw4UJCQkK44YYbAPjnn3/IycnhlltuKXNbOp2Ou+66ixkzZrB161b69u3Ln3/+iV6vL1F0XG38+PHlxnjgwAHOnz/PI488gl5v/n/AsLAwwsLCyt1OWTZu3Ej37t2ZO3cuaWlpBAUFsXz5cn799dcSl9TWrFmDl5cX/fr1A+DZZ59lw4YNPProo9xwww0cPnyY2bNnc/DgQb744osyYxVCVI0UQEIIiwkPDy+1ztfXl169ejFx4kTc3NwASExMBKBx48blbq9JkyYAnDp1CoDk5GTq1q2Lp6dnlWM8c+YMAMHBwVXeRnmMRiNvvvkm9erVU9eFhoaydu1atQDKz8/nl19+4c4778TV1ZV//vmH3377jRdeeIFRo0YBcOONNxISEsITTzzBb7/9xu23326VeIWoreRfCiGExaxevZrVq1fz1VdfMXz4cBwcHHjkkUd455138Pf3L9Xe0bH8/8EcHBxKLOv1+hJnmaqiaJtGo/G6tlOWwMDAEsUPwJAhQ/j33385ffo0UHiWKD09nSFDhgCwdetWAPr27YvBYFB/unfvjpubG5s3b7ZKrELUZnIGSAhhMZGRkerjDh064OzszKxZszAajYwdO1Z9LigoCLhyZqcsSUlJwJUzRY0bNyY+Pp7Lly/j5eVl9jWpqal4enri4uJi9vmibV1r32fOnKFhw4bltjHH3C34AwYM4L333uOHH37g8ccf57vvviM0NJSoqCgAtW/RzTffbHab586dq3QcQojyyRkgIYTVTJo0iebNmzNnzhx2796tru/evTvu7u789NNP5b7+p59+wtPTk27dugHQq1cvFEVhw4YNZb7mpZdeokuXLly6dMns861btyYgIIA///wTk8lkts2BAwfo3bs377//PnCl8/bV7bOyssqNv0jdunXp06cPP/zwAxcvXmTz5s0MHjxYfd7b2xudTsfXX3+tnkUr/jN16tQK7UcIUXFSAAkhrMbZ2Znp06djMpl45ZVXKCgoAMDd3Z2xY8eyY8cOPvvsM7Ov/fTTT9m1axePPfYY7u7uANx11100atSIDz74wOxZkS1btrB582Zuvvlm9c6zq+l0OsaMGcPJkyf55JNPSj1fUFDA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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(fpr, tpr, label='Train')\n",
    "plt.plot(fprt, tprt, label='Test')\n",
    "plt.title(\"ROC Curve\")\n",
    "plt.legend(loc=\"lower right\")\n",
    "plt.xlabel(\"False Positive Rate\")\n",
    "plt.ylabel(\"True Positive Rate\")\n",
    "\n",
    "plt.savefig('fig/lasso_auroc.pgf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## ElasticNet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.arange(0.1, 1.0, 0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "grid = {\n",
    "    #\"max_iter\": [1, 2, 3, 4, 5],\n",
    "    \"alpha\": [0.01, 0.1, 1, 10, 100],\n",
    "    \"l1_ratio\": np.arange(0.1, 1.0, 0.1)\n",
    "}\n",
    "model_enet = GridSearchCV(ElasticNet(), param_grid=grid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-4 {color: black;background-color: white;}#sk-container-id-4 pre{padding: 0;}#sk-container-id-4 div.sk-toggleable {background-color: white;}#sk-container-id-4 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-4 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-4 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-4 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-4 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-4 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-4 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-4 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-4 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-4 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-4 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-4 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-4 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-4 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-4 div.sk-item {position: relative;z-index: 1;}#sk-container-id-4 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-4 div.sk-item::before, #sk-container-id-4 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-4 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-4 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-4 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-4 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-4 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-4 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-4 div.sk-label-container {text-align: center;}#sk-container-id-4 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-4 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-4\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=ElasticNet(),\n",
       "             param_grid={&#x27;alpha&#x27;: [0.01, 0.1, 1, 10, 100],\n",
       "                         &#x27;l1_ratio&#x27;: array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])})</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-10\" type=\"checkbox\" ><label for=\"sk-estimator-id-10\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=ElasticNet(),\n",
       "             param_grid={&#x27;alpha&#x27;: [0.01, 0.1, 1, 10, 100],\n",
       "                         &#x27;l1_ratio&#x27;: array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])})</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-11\" type=\"checkbox\" ><label for=\"sk-estimator-id-11\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: ElasticNet</label><div class=\"sk-toggleable__content\"><pre>ElasticNet()</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-12\" type=\"checkbox\" ><label for=\"sk-estimator-id-12\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">ElasticNet</label><div class=\"sk-toggleable__content\"><pre>ElasticNet()</pre></div></div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "GridSearchCV(estimator=ElasticNet(),\n",
       "             param_grid={'alpha': [0.01, 0.1, 1, 10, 100],\n",
       "                         'l1_ratio': array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])})"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_enet.fit(X_train_tf, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'alpha': 0.1, 'l1_ratio': 0.1}"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_enet.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_prob = model_enet.predict(X_train_tf)\n",
    "y_test_prob = model_enet.predict(X_test_tf)\n",
    "\n",
    "y_train_preds = np.round(y_train_prob)\n",
    "y_test_preds = np.round(y_test_prob)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "fpr, tpr, thresholds = metrics.roc_curve(y_train, y_train_prob)\n",
    "fprt, tprt, thresholds = metrics.roc_curve(y_test, y_test_prob)\n",
    "\n",
    "auc_train = metrics.auc(fpr, tpr)\n",
    "auc_test = metrics.auc(fprt, tprt)\n",
    "\n",
    "acc_train = metrics.accuracy_score(y_train, y_train_preds)\n",
    "acc_test = metrics.accuracy_score(y_test, y_test_preds)\n",
    "\n",
    "prec_train = metrics.precision_score(y_train, y_train_preds)\n",
    "prec_test = metrics.precision_score(y_test, y_test_preds)\n",
    "\n",
    "rec_train = metrics.recall_score(y_train, y_train_preds)\n",
    "rec_test = metrics.recall_score(y_test, y_test_preds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Set\t\t Train\t\t    Test\n",
      "AUC\t\t 0.7484009557449737 0.6935687127232744\n",
      "Accuracy\t 0.6806599832915622 0.6362038664323374\n",
      "Precission\t 0.7163581790895448 0.6631578947368421\n",
      "Recall\t\t 0.5981620718462823 0.5536028119507909\n"
     ]
    }
   ],
   "source": [
    "print('Set\\t\\t', 'Train\\t\\t', '   Test')\n",
    "print('AUC\\t\\t', auc_train, auc_test)\n",
    "print('Accuracy\\t', acc_train, acc_test)\n",
    "print('Precission\\t', prec_train, prec_test)\n",
    "print('Recall\\t\\t', rec_train, rec_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(fpr, tpr, label='Train')\n",
    "plt.plot(fprt, tprt, label='Test')\n",
    "plt.title(\"ROC Curve\")\n",
    "plt.legend(loc=\"lower right\")\n",
    "plt.xlabel(\"False Positive Rate\")\n",
    "plt.ylabel(\"True Positive Rate\")\n",
    "\n",
    "plt.savefig('fig/elastic_auroc.pgf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Non-linear Models"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Support Vector Machine"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "grid = {\n",
    "    'kernel': ['linear', 'poly', 'rbf'],\n",
    "    'C': [0.1, 1, 2]\n",
    "}\n",
    "\n",
    "model_svm = GridSearchCV(SVC(), param_grid=grid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-5 {color: black;background-color: white;}#sk-container-id-5 pre{padding: 0;}#sk-container-id-5 div.sk-toggleable {background-color: white;}#sk-container-id-5 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-5 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-5 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-5 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-5 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-5 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-5 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-5 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-5 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-5 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-5 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-5 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-5 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-5 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-5 div.sk-item {position: relative;z-index: 1;}#sk-container-id-5 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-5 div.sk-item::before, #sk-container-id-5 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-5 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-5 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-5 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-5 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-5 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-5 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-5 div.sk-label-container {text-align: center;}#sk-container-id-5 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-5 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-5\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=SVC(),\n",
       "             param_grid={&#x27;C&#x27;: [0.1, 1, 2], &#x27;kernel&#x27;: [&#x27;linear&#x27;, &#x27;poly&#x27;, &#x27;rbf&#x27;]})</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-13\" type=\"checkbox\" ><label for=\"sk-estimator-id-13\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=SVC(),\n",
       "             param_grid={&#x27;C&#x27;: [0.1, 1, 2], &#x27;kernel&#x27;: [&#x27;linear&#x27;, &#x27;poly&#x27;, &#x27;rbf&#x27;]})</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-14\" type=\"checkbox\" ><label for=\"sk-estimator-id-14\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: SVC</label><div class=\"sk-toggleable__content\"><pre>SVC()</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-15\" type=\"checkbox\" ><label for=\"sk-estimator-id-15\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC()</pre></div></div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "GridSearchCV(estimator=SVC(),\n",
       "             param_grid={'C': [0.1, 1, 2], 'kernel': ['linear', 'poly', 'rbf']})"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_svm.fit(X_train_tf, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'C': 2, 'kernel': 'rbf'}"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_svm.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_preds = model_svm.predict(X_train_tf)\n",
    "y_test_preds = model_svm.predict(X_test_tf)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "fpr, tpr, thresholds = metrics.roc_curve(y_train, y_train_preds)\n",
    "fprt, tprt, thresholds = metrics.roc_curve(y_test, y_test_preds)\n",
    "\n",
    "auc_train = metrics.auc(fpr, tpr)\n",
    "auc_test = metrics.auc(fprt, tprt)\n",
    "\n",
    "acc_train = metrics.accuracy_score(y_train, y_train_preds)\n",
    "acc_test = metrics.accuracy_score(y_test, y_test_preds)\n",
    "\n",
    "prec_train = metrics.precision_score(y_train, y_train_preds)\n",
    "prec_test = metrics.precision_score(y_test, y_test_preds)\n",
    "\n",
    "rec_train = metrics.recall_score(y_train, y_train_preds)\n",
    "rec_test = metrics.recall_score(y_test, y_test_preds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Set\t\t Train\t\t    Test\n",
      "AUC\t\t 0.8652882205513786 0.6502636203866433\n",
      "Accuracy\t 0.8652882205513784 0.6502636203866432\n",
      "Precission\t 0.9370314842578711 0.6807610993657506\n",
      "Recall\t\t 0.7832080200501254 0.5659050966608085\n"
     ]
    }
   ],
   "source": [
    "print('Set\\t\\t', 'Train\\t\\t', '   Test')\n",
    "print('AUC\\t\\t', auc_train, auc_test)\n",
    "print('Accuracy\\t', acc_train, acc_test)\n",
    "print('Precission\\t', prec_train, prec_test)\n",
    "print('Recall\\t\\t', rec_train, rec_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Multi-layer Perceptron"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "grid = {\n",
    "    'alpha': [1e-1, 1e-2, 1e-3, 1e-4, 1e-5],\n",
    "    'solver': ['adam', 'sgd', 'lbfgs'],\n",
    "    'learning_rate_init': [0.01,0.001,0.0001]\n",
    "}\n",
    "\n",
    "model_mlp = GridSearchCV(MLPClassifier(hidden_layer_sizes=(10, 2)), param_grid=grid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-6 {color: black;background-color: white;}#sk-container-id-6 pre{padding: 0;}#sk-container-id-6 div.sk-toggleable {background-color: white;}#sk-container-id-6 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-6 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-6 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-6 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-6 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-6 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-6 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-6 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-6 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-6 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-6 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-6 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-6 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-6 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-6 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-6 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-6 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-6 div.sk-item {position: relative;z-index: 1;}#sk-container-id-6 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-6 div.sk-item::before, #sk-container-id-6 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-6 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-6 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-6 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-6 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-6 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-6 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-6 div.sk-label-container {text-align: center;}#sk-container-id-6 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-6 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-6\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=MLPClassifier(hidden_layer_sizes=(10, 2)),\n",
       "             param_grid={&#x27;alpha&#x27;: [0.1, 0.01, 0.001, 0.0001, 1e-05],\n",
       "                         &#x27;learning_rate_init&#x27;: [0.01, 0.001, 0.0001],\n",
       "                         &#x27;solver&#x27;: [&#x27;adam&#x27;, &#x27;sgd&#x27;, &#x27;lbfgs&#x27;]})</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-16\" type=\"checkbox\" ><label for=\"sk-estimator-id-16\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=MLPClassifier(hidden_layer_sizes=(10, 2)),\n",
       "             param_grid={&#x27;alpha&#x27;: [0.1, 0.01, 0.001, 0.0001, 1e-05],\n",
       "                         &#x27;learning_rate_init&#x27;: [0.01, 0.001, 0.0001],\n",
       "                         &#x27;solver&#x27;: [&#x27;adam&#x27;, &#x27;sgd&#x27;, &#x27;lbfgs&#x27;]})</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-17\" type=\"checkbox\" ><label for=\"sk-estimator-id-17\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: MLPClassifier</label><div class=\"sk-toggleable__content\"><pre>MLPClassifier(hidden_layer_sizes=(10, 2))</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-18\" type=\"checkbox\" ><label for=\"sk-estimator-id-18\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">MLPClassifier</label><div class=\"sk-toggleable__content\"><pre>MLPClassifier(hidden_layer_sizes=(10, 2))</pre></div></div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "GridSearchCV(estimator=MLPClassifier(hidden_layer_sizes=(10, 2)),\n",
       "             param_grid={'alpha': [0.1, 0.01, 0.001, 0.0001, 1e-05],\n",
       "                         'learning_rate_init': [0.01, 0.001, 0.0001],\n",
       "                         'solver': ['adam', 'sgd', 'lbfgs']})"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_mlp.fit(X_train_tf, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'alpha': 1e-05, 'learning_rate_init': 0.001, 'solver': 'sgd'}"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_mlp.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_preds = model_mlp.predict(X_train_tf)\n",
    "y_test_preds = model_mlp.predict(X_test_tf)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "fpr, tpr, thresholds = metrics.roc_curve(y_train, y_train_preds)\n",
    "fprt, tprt, thresholds = metrics.roc_curve(y_test, y_test_preds)\n",
    "\n",
    "auc_train = metrics.auc(fpr, tpr)\n",
    "auc_test = metrics.auc(fprt, tprt)\n",
    "\n",
    "acc_train = metrics.accuracy_score(y_train, y_train_preds)\n",
    "acc_test = metrics.accuracy_score(y_test, y_test_preds)\n",
    "\n",
    "prec_train = metrics.precision_score(y_train, y_train_preds)\n",
    "prec_test = metrics.precision_score(y_test, y_test_preds)\n",
    "\n",
    "rec_train = metrics.recall_score(y_train, y_train_preds)\n",
    "rec_test = metrics.recall_score(y_test, y_test_preds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Set\t\t Train\t\t    Test\n",
      "AUC\t\t 0.9786967418546366 0.6001757469244289\n",
      "Accuracy\t 0.9786967418546366 0.6001757469244289\n",
      "Precission\t 0.9918454935622317 0.6079545454545454\n",
      "Recall\t\t 0.9653299916457811 0.5641476274165202\n"
     ]
    }
   ],
   "source": [
    "print('Set\\t\\t', 'Train\\t\\t', '   Test')\n",
    "print('AUC\\t\\t', auc_train, auc_test)\n",
    "print('Accuracy\\t', acc_train, acc_test)\n",
    "print('Precission\\t', prec_train, prec_test)\n",
    "print('Recall\\t\\t', rec_train, rec_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Random Forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "grid = {\n",
    "    'max_depth': [10, 20, 30, 40],\n",
    "    'max_features': ['auto', 'sqrt'],\n",
    "    'min_samples_leaf': [1, 2],\n",
    "    'min_samples_split': [2, 5],\n",
    "    'n_estimators': [100, 200, 300]\n",
    "}\n",
    "model_rf = GridSearchCV(RandomForestClassifier(bootstrap=False), param_grid=grid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-7 {color: black;background-color: white;}#sk-container-id-7 pre{padding: 0;}#sk-container-id-7 div.sk-toggleable {background-color: white;}#sk-container-id-7 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-7 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-7 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-7 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-7 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-7 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-7 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-7 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-7 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-7 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-7 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-7 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-7 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-7 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-7 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-7 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-7 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-7 div.sk-item {position: relative;z-index: 1;}#sk-container-id-7 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-7 div.sk-item::before, #sk-container-id-7 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-7 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-7 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-7 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-7 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-7 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-7 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-7 div.sk-label-container {text-align: center;}#sk-container-id-7 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-7 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-7\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=RandomForestClassifier(bootstrap=False),\n",
       "             param_grid={&#x27;max_depth&#x27;: [10, 20, 30, 40],\n",
       "                         &#x27;max_features&#x27;: [&#x27;auto&#x27;, &#x27;sqrt&#x27;],\n",
       "                         &#x27;min_samples_leaf&#x27;: [1, 2],\n",
       "                         &#x27;min_samples_split&#x27;: [2, 5],\n",
       "                         &#x27;n_estimators&#x27;: [100, 200, 300]})</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-19\" type=\"checkbox\" ><label for=\"sk-estimator-id-19\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=RandomForestClassifier(bootstrap=False),\n",
       "             param_grid={&#x27;max_depth&#x27;: [10, 20, 30, 40],\n",
       "                         &#x27;max_features&#x27;: [&#x27;auto&#x27;, &#x27;sqrt&#x27;],\n",
       "                         &#x27;min_samples_leaf&#x27;: [1, 2],\n",
       "                         &#x27;min_samples_split&#x27;: [2, 5],\n",
       "                         &#x27;n_estimators&#x27;: [100, 200, 300]})</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-20\" type=\"checkbox\" ><label for=\"sk-estimator-id-20\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier(bootstrap=False)</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-21\" type=\"checkbox\" ><label for=\"sk-estimator-id-21\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier(bootstrap=False)</pre></div></div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "GridSearchCV(estimator=RandomForestClassifier(bootstrap=False),\n",
       "             param_grid={'max_depth': [10, 20, 30, 40],\n",
       "                         'max_features': ['auto', 'sqrt'],\n",
       "                         'min_samples_leaf': [1, 2],\n",
       "                         'min_samples_split': [2, 5],\n",
       "                         'n_estimators': [100, 200, 300]})"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_rf.fit(X_train_tf, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'max_depth': 40,\n",
       " 'max_features': 'auto',\n",
       " 'min_samples_leaf': 2,\n",
       " 'min_samples_split': 5,\n",
       " 'n_estimators': 300}"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_rf.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_preds = model_rf.predict(X_train_tf)\n",
    "y_test_preds = model_rf.predict(X_test_tf)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "fpr, tpr, thresholds = metrics.roc_curve(y_train, y_train_preds)\n",
    "fprt, tprt, thresholds = metrics.roc_curve(y_test, y_test_preds)\n",
    "\n",
    "auc_train = metrics.auc(fpr, tpr)\n",
    "auc_test = metrics.auc(fprt, tprt)\n",
    "\n",
    "acc_train = metrics.accuracy_score(y_train, y_train_preds)\n",
    "acc_test = metrics.accuracy_score(y_test, y_test_preds)\n",
    "\n",
    "prec_train = metrics.precision_score(y_train, y_train_preds)\n",
    "prec_test = metrics.precision_score(y_test, y_test_preds)\n",
    "\n",
    "rec_train = metrics.recall_score(y_train, y_train_preds)\n",
    "rec_test = metrics.recall_score(y_test, y_test_preds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Set\t\t Train\t\t    Test\n",
      "AUC\t\t 0.9899749373433584 0.6458699472759226\n",
      "Accuracy\t 0.9899749373433584 0.6458699472759226\n",
      "Precission\t 0.9995741056218058 0.6378737541528239\n",
      "Recall\t\t 0.9803675856307436 0.6748681898066784\n"
     ]
    }
   ],
   "source": [
    "print('Set\\t\\t', 'Train\\t\\t', '   Test')\n",
    "print('AUC\\t\\t', auc_train, auc_test)\n",
    "print('Accuracy\\t', acc_train, acc_test)\n",
    "print('Precission\\t', prec_train, prec_test)\n",
    "print('Recall\\t\\t', rec_train, rec_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Naive Bayes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "grid = {'alpha': [10, 1, 0, 0.1, 0.01, 0.001]}\n",
    "\n",
    "model_nb = GridSearchCV(MultinomialNB(), param_grid=grid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-8 {color: black;background-color: white;}#sk-container-id-8 pre{padding: 0;}#sk-container-id-8 div.sk-toggleable {background-color: white;}#sk-container-id-8 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-8 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-8 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-8 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-8 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-8 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-8 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-8 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-8 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-8 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-8 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-8 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-8 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-8 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-8 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-8 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-8 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-8 div.sk-item {position: relative;z-index: 1;}#sk-container-id-8 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-8 div.sk-item::before, #sk-container-id-8 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-8 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-8 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-8 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-8 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-8 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-8 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-8 div.sk-label-container {text-align: center;}#sk-container-id-8 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-8 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-8\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=MultinomialNB(),\n",
       "             param_grid={&#x27;alpha&#x27;: [10, 1, 0, 0.1, 0.01, 0.001]})</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-22\" type=\"checkbox\" ><label for=\"sk-estimator-id-22\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=MultinomialNB(),\n",
       "             param_grid={&#x27;alpha&#x27;: [10, 1, 0, 0.1, 0.01, 0.001]})</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-23\" type=\"checkbox\" ><label for=\"sk-estimator-id-23\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: MultinomialNB</label><div class=\"sk-toggleable__content\"><pre>MultinomialNB()</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-24\" type=\"checkbox\" ><label for=\"sk-estimator-id-24\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">MultinomialNB</label><div class=\"sk-toggleable__content\"><pre>MultinomialNB()</pre></div></div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "GridSearchCV(estimator=MultinomialNB(),\n",
       "             param_grid={'alpha': [10, 1, 0, 0.1, 0.01, 0.001]})"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_nb.fit(X_train_tf, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'alpha': 10}"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_nb.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_preds = model_nb.predict(X_train_tf)\n",
    "y_test_preds = model_nb.predict(X_test_tf)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "fpr, tpr, thresholds = metrics.roc_curve(y_train, y_train_preds)\n",
    "fprt, tprt, thresholds = metrics.roc_curve(y_test, y_test_preds)\n",
    "\n",
    "auc_train = metrics.auc(fpr, tpr)\n",
    "auc_test = metrics.auc(fprt, tprt)\n",
    "\n",
    "acc_train = metrics.accuracy_score(y_train, y_train_preds)\n",
    "acc_test = metrics.accuracy_score(y_test, y_test_preds)\n",
    "\n",
    "prec_train = metrics.precision_score(y_train, y_train_preds)\n",
    "prec_test = metrics.precision_score(y_test, y_test_preds)\n",
    "\n",
    "rec_train = metrics.recall_score(y_train, y_train_preds)\n",
    "rec_test = metrics.recall_score(y_test, y_test_preds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Set\t\t Train\t\t    Test\n",
      "AUC\t\t 0.6528822055137845 0.6282952548330405\n",
      "Accuracy\t 0.6528822055137845 0.6282952548330404\n",
      "Precission\t 0.6686635944700461 0.646\n",
      "Recall\t\t 0.6060985797827904 0.5676625659050967\n"
     ]
    }
   ],
   "source": [
    "print('Set\\t\\t', 'Train\\t\\t', '   Test')\n",
    "print('AUC\\t\\t', auc_train, auc_test)\n",
    "print('Accuracy\\t', acc_train, acc_test)\n",
    "print('Precission\\t', prec_train, prec_test)\n",
    "print('Recall\\t\\t', rec_train, rec_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There is no improvement when using the whole Dataset with ComplementNB, same scores on test"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## XGBoost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [],
   "source": [
    "params = {\n",
    "    'min_child_weight': [1, 5, 10],\n",
    "    'gamma': [0.5, 1, 1.5, 2, 5],\n",
    "    'subsample': [0.6, 0.8, 1.0],\n",
    "    'colsample_bytree': [0.6, 0.8, 1.0],\n",
    "    'max_depth': [3, 4, 5],\n",
    "    'eta': [0.1,0.01,0.001,0.0001]\n",
    "}\n",
    "\n",
    "model_xgb = GridSearchCV(XGBClassifier(), param_grid=grid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-9 {color: black;background-color: white;}#sk-container-id-9 pre{padding: 0;}#sk-container-id-9 div.sk-toggleable {background-color: white;}#sk-container-id-9 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-9 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-9 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-9 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-9 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-9 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-9 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-9 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-9 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-9 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-9 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-9 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-9 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-9 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-9 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-9 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-9 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-9 div.sk-item {position: relative;z-index: 1;}#sk-container-id-9 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-9 div.sk-item::before, #sk-container-id-9 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-9 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-9 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-9 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-9 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-9 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-9 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-9 div.sk-label-container {text-align: center;}#sk-container-id-9 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-9 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-9\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=XGBClassifier(base_score=None, booster=None,\n",
       "                                     callbacks=None, colsample_bylevel=None,\n",
       "                                     colsample_bynode=None,\n",
       "                                     colsample_bytree=None,\n",
       "                                     early_stopping_rounds=None,\n",
       "                                     enable_categorical=False, eval_metric=None,\n",
       "                                     feature_types=None, gamma=None,\n",
       "                                     gpu_id=None, grow_policy=None,\n",
       "                                     importance_type=None,\n",
       "                                     interaction_constraints=None,\n",
       "                                     learning_rate=None, max_bin=None,\n",
       "                                     max_cat_threshold=None,\n",
       "                                     max_cat_to_onehot=None,\n",
       "                                     max_delta_step=None, max_depth=None,\n",
       "                                     max_leaves=None, min_child_weight=None,\n",
       "                                     missing=nan, monotone_constraints=None,\n",
       "                                     n_estimators=100, n_jobs=None,\n",
       "                                     num_parallel_tree=None, predictor=None,\n",
       "                                     random_state=None, ...),\n",
       "             param_grid={&#x27;alpha&#x27;: [10, 1, 0, 0.1, 0.01, 0.001]})</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-25\" type=\"checkbox\" ><label for=\"sk-estimator-id-25\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=XGBClassifier(base_score=None, booster=None,\n",
       "                                     callbacks=None, colsample_bylevel=None,\n",
       "                                     colsample_bynode=None,\n",
       "                                     colsample_bytree=None,\n",
       "                                     early_stopping_rounds=None,\n",
       "                                     enable_categorical=False, eval_metric=None,\n",
       "                                     feature_types=None, gamma=None,\n",
       "                                     gpu_id=None, grow_policy=None,\n",
       "                                     importance_type=None,\n",
       "                                     interaction_constraints=None,\n",
       "                                     learning_rate=None, max_bin=None,\n",
       "                                     max_cat_threshold=None,\n",
       "                                     max_cat_to_onehot=None,\n",
       "                                     max_delta_step=None, max_depth=None,\n",
       "                                     max_leaves=None, min_child_weight=None,\n",
       "                                     missing=nan, monotone_constraints=None,\n",
       "                                     n_estimators=100, n_jobs=None,\n",
       "                                     num_parallel_tree=None, predictor=None,\n",
       "                                     random_state=None, ...),\n",
       "             param_grid={&#x27;alpha&#x27;: [10, 1, 0, 0.1, 0.01, 0.001]})</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-26\" type=\"checkbox\" ><label for=\"sk-estimator-id-26\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: XGBClassifier</label><div class=\"sk-toggleable__content\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
       "              colsample_bylevel=None, colsample_bynode=None,\n",
       "              colsample_bytree=None, early_stopping_rounds=None,\n",
       "              enable_categorical=False, eval_metric=None, feature_types=None,\n",
       "              gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n",
       "              interaction_constraints=None, learning_rate=None, max_bin=None,\n",
       "              max_cat_threshold=None, max_cat_to_onehot=None,\n",
       "              max_delta_step=None, max_depth=None, max_leaves=None,\n",
       "              min_child_weight=None, missing=nan, monotone_constraints=None,\n",
       "              n_estimators=100, n_jobs=None, num_parallel_tree=None,\n",
       "              predictor=None, random_state=None, ...)</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-27\" type=\"checkbox\" ><label for=\"sk-estimator-id-27\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">XGBClassifier</label><div class=\"sk-toggleable__content\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
       "              colsample_bylevel=None, colsample_bynode=None,\n",
       "              colsample_bytree=None, early_stopping_rounds=None,\n",
       "              enable_categorical=False, eval_metric=None, feature_types=None,\n",
       "              gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n",
       "              interaction_constraints=None, learning_rate=None, max_bin=None,\n",
       "              max_cat_threshold=None, max_cat_to_onehot=None,\n",
       "              max_delta_step=None, max_depth=None, max_leaves=None,\n",
       "              min_child_weight=None, missing=nan, monotone_constraints=None,\n",
       "              n_estimators=100, n_jobs=None, num_parallel_tree=None,\n",
       "              predictor=None, random_state=None, ...)</pre></div></div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "GridSearchCV(estimator=XGBClassifier(base_score=None, booster=None,\n",
       "                                     callbacks=None, colsample_bylevel=None,\n",
       "                                     colsample_bynode=None,\n",
       "                                     colsample_bytree=None,\n",
       "                                     early_stopping_rounds=None,\n",
       "                                     enable_categorical=False, eval_metric=None,\n",
       "                                     feature_types=None, gamma=None,\n",
       "                                     gpu_id=None, grow_policy=None,\n",
       "                                     importance_type=None,\n",
       "                                     interaction_constraints=None,\n",
       "                                     learning_rate=None, max_bin=None,\n",
       "                                     max_cat_threshold=None,\n",
       "                                     max_cat_to_onehot=None,\n",
       "                                     max_delta_step=None, max_depth=None,\n",
       "                                     max_leaves=None, min_child_weight=None,\n",
       "                                     missing=nan, monotone_constraints=None,\n",
       "                                     n_estimators=100, n_jobs=None,\n",
       "                                     num_parallel_tree=None, predictor=None,\n",
       "                                     random_state=None, ...),\n",
       "             param_grid={'alpha': [10, 1, 0, 0.1, 0.01, 0.001]})"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_xgb.fit(X_train_tf, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_preds = model_xgb.predict(X_train_tf)\n",
    "y_test_preds = model_xgb.predict(X_test_tf)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [],
   "source": [
    "fpr, tpr, thresholds = metrics.roc_curve(y_train, y_train_preds)\n",
    "fprt, tprt, thresholds = metrics.roc_curve(y_test, y_test_preds)\n",
    "\n",
    "auc_train = metrics.auc(fpr, tpr)\n",
    "auc_test = metrics.auc(fprt, tprt)\n",
    "\n",
    "acc_train = metrics.accuracy_score(y_train, y_train_preds)\n",
    "acc_test = metrics.accuracy_score(y_test, y_test_preds)\n",
    "\n",
    "prec_train = metrics.precision_score(y_train, y_train_preds)\n",
    "prec_test = metrics.precision_score(y_test, y_test_preds)\n",
    "\n",
    "rec_train = metrics.recall_score(y_train, y_train_preds)\n",
    "rec_test = metrics.recall_score(y_test, y_test_preds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Set\t\t Train\t\t    Test\n",
      "AUC\t\t 0.9835004177109442 0.6001757469244288\n",
      "Accuracy\t 0.983500417710944 0.6001757469244289\n",
      "Precission\t 0.9919252018699533 0.6032608695652174\n",
      "Recall\t\t 0.974937343358396 0.5852372583479789\n"
     ]
    }
   ],
   "source": [
    "print('Set\\t\\t', 'Train\\t\\t', '   Test')\n",
    "print('AUC\\t\\t', auc_train, auc_test)\n",
    "print('Accuracy\\t', acc_train, acc_test)\n",
    "print('Precission\\t', prec_train, prec_test)\n",
    "print('Recall\\t\\t', rec_train, rec_test)"
   ]
  },
  {
   "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.10.11"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}