[f47f8b]: / notebooks / classification.ipynb

Download this file

1877 lines (1876 with data), 310.6 kB

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[MLENS] backend: threading\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "from sklearn.kernel_approximation import Nystroem\n",
    "from sklearn.kernel_approximation import RBFSampler\n",
    "\n",
    "from sklearn.pipeline import make_pipeline\n",
    "from sklearn.base import clone\n",
    "\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "from sklearn.feature_selection import VarianceThreshold, SelectKBest, SelectFromModel, chi2, SelectPercentile, f_classif\n",
    "from sklearn.model_selection import train_test_split, cross_val_score, KFold\n",
    "\n",
    "from sklearn.metrics import accuracy_score, recall_score, confusion_matrix, classification_report, roc_auc_score, roc_curve\n",
    "\n",
    "from sklearn.svm import SVC, LinearSVC\n",
    "from sklearn.naive_bayes import GaussianNB\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.neural_network import MLPClassifier\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier, ExtraTreesClassifier, AdaBoostClassifier\n",
    "from sklearn.decomposition import PCA, NMF\n",
    "\n",
    "from mlens.visualization import pca_plot, pca_comp_plot\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "def get_models():\n",
    "    nb = GaussianNB()\n",
    "    svc = SVC(kernel='rbf', C=100, gamma=1e-3, probability=True, class_weight='balanced')\n",
    "    knn = KNeighborsClassifier(n_neighbors=8)\n",
    "    lr = LogisticRegression(C=100, random_state=seed)\n",
    "    nn = MLPClassifier((16, 8), solver='lbfgs', activation='relu', random_state=seed)\n",
    "    gb = GradientBoostingClassifier(n_estimators=32, random_state=seed)\n",
    "    rf = RandomForestClassifier(n_estimators=8, max_features=2, random_state=seed)\n",
    "    ab = AdaBoostClassifier(random_state=seed)\n",
    "    \n",
    "    models = {'svm': svc, 'knn': knn, 'naive bayes': nb,\n",
    "             'mlp': nn, 'random forest': rf, 'gradientboost': gb, 'logistic': lr,\n",
    "             'adaboost': ab}\n",
    "    return models\n",
    "\n",
    "def get_sex(PatientSex):\n",
    "    return 1 if PatientSex is 'M' else 0\n",
    "\n",
    "def get_sample_weight(y):\n",
    "    y = y.astype('int')\n",
    "    class_weight = len(y) / (2 * np.bincount(y))\n",
    "    sample_weight = (np.ones_like(y) * y * class_weight[1]) + (np.ones_like(y) * (1 - y) * class_weight[0] * 0.78)\n",
    "    return sample_weight\n",
    "        \n",
    "\n",
    "def train_predict(model_list):\n",
    "    P = np.zeros((y_test.shape[0], len(model_list)))\n",
    "    P = pd.DataFrame(P)\n",
    "    \n",
    "    print('Fitting models...')\n",
    "    cols = list()\n",
    "    for i, (name, m) in enumerate(model_list.items()):\n",
    "        print(\"%s...\" % name, end=\" \", flush=False)\n",
    "        try:\n",
    "            m.fit(x_train, y_train, sample_weight=get_sample_weight(y_train))\n",
    "        except:\n",
    "            print('no sample weight')\n",
    "            m.fit(x_train, y_train)\n",
    "        try:\n",
    "            print('\\n', name, m.feature_importances_)\n",
    "        except:\n",
    "            print('no feature importances')\n",
    "        P.iloc[:, i] = m.predict_proba(x_test)[:, 1]\n",
    "        cols.append(name)\n",
    "        print(\"done\")\n",
    "    \n",
    "    P.columns = cols\n",
    "    print(\"Done.\\n\")\n",
    "    return P\n",
    "\n",
    "def cross_val_models(model_list, cv=5, scoring='accuracy'):\n",
    "    P = np.zeros((cv, len(model_list)))\n",
    "    P = pd.DataFrame(P)\n",
    "\n",
    "    print('Fitting models...')\n",
    "    cols = list()\n",
    "    for i, (name, m) in enumerate(model_list.items()):\n",
    "        print(\"%s...\" % name, end=\" \", flush=False)\n",
    "        P.iloc[:, i] = cross_val_score(m, X, y, cv=cv, scoring=scoring)\n",
    "        cols.append(name)\n",
    "        print(\"done\")\n",
    "    P.columns = cols\n",
    "    print('Done.\\n')\n",
    "    return P\n",
    "\n",
    "def cross_val_acc(P, scoring='ACC'):\n",
    "    for m in P.columns:\n",
    "        score = np.mean(P.loc[:, m])\n",
    "        std = 2 * np.std(P.loc[:, m])\n",
    "        print('{} {} Result {} +/- {}'.format(m, scoring, score, std))\n",
    "\n",
    "def score_models(P, y):\n",
    "    print('ROC AUC SCORE')\n",
    "    for m in P.columns:\n",
    "        score = roc_auc_score(y, P.loc[:, m])\n",
    "        print(\"%-26s: %.3f\" % (m, score))\n",
    "    print('ACC SCORE')\n",
    "    for m in P.columns:\n",
    "        score = accuracy_score(y, np.float32(P.loc[:, m]>=0.5))\n",
    "        print(\"%-26s: %.3f\" % (m, score))\n",
    "\n",
    "def plot_roc_curve(y_test, P_base_learners, P_ensemble, labels, ens_label):\n",
    "    plt.plot([0, 1], [0, 1], 'k--')\n",
    "    #cm = [plt.cm.gray(i) for i in np.linspace(0, 1.0, P_base_learners.shape[1])]\n",
    "    cm = sns.color_palette(\"Blues\", P_base_learners.shape[1])\n",
    "    \n",
    "    for i in range(P_base_learners.shape[1]):\n",
    "        p = P_base_learners[:, i]\n",
    "        fpr, tpr, _ = roc_curve(y_test, p)\n",
    "        plt.plot(fpr, tpr, label=labels[i], c=cm[i])\n",
    "        \n",
    "    fpr, tpr, _ = roc_curve(y_test, P_ensemble)\n",
    "    plt.plot(fpr, tpr, label=ens_label, c='red')\n",
    "    \n",
    "    plt.xlabel('False positive rate')\n",
    "    plt.ylabel('True positive rate')\n",
    "    plt.title('ROC curve')\n",
    "    plt.legend()\n",
    "    plt.show()\n",
    "    \n",
    "def train_base_learners(base_learners, x_train, y_train):\n",
    "    print('Fitting models')\n",
    "    for i, (name, m) in enumerate(base_learners.items()):\n",
    "        print('%s...'% name, end='', flush=False)\n",
    "        try:\n",
    "            m.fit(x_train, y_train, sample_weight=get_sample_weight(y_train))\n",
    "        except:\n",
    "            m.fit(x_train, y_train)\n",
    "            print('no sample_weight')\n",
    "    print('done.')\n",
    "\n",
    "def predict_base_learners(base_learners, x):\n",
    "    P = np.zeros((x.shape[0], len(base_learners)))\n",
    "    print('Generating base learner predictions.')\n",
    "    for i, (name, m) in enumerate(base_learners.items()):\n",
    "        print('%s...'% name, end='', flush=False)\n",
    "        p = m.predict_proba(x)\n",
    "        P[:, i] = p[:, 1]\n",
    "    print('done.')\n",
    "    return P\n",
    "\n",
    "def ensemble_predict(base_learners, meta_learner, x):\n",
    "    P_pred = predict_base_learners(base_learners, x)\n",
    "    return P_pred, meta_learner.predict_proba(P_pred)[:, 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "raw_data = pd.read_csv('analysisAll.csv', index_col=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['Age', 'InstitutionName', 'Manufacturer', 'PatientBirthDate',\n",
       "       'PatientID', 'PatientSex', 'Severe', 'StudyDate', 'StudyID',\n",
       "       'StudyTime', 'check', 'consolidation', 'filename', 'left_lesion',\n",
       "       'left_lung', 'lesion', 'lesion_consolidation', 'lung', 'lung_lesion',\n",
       "       'patientID', 'ratio', 'right_lesion', 'right_lung', 'severe', 'shape',\n",
       "       'slice', 'spacing', 'studyDate', 'weighted_lesion',\n",
       "       'weighted_lung_lesion', 'z'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "raw_data.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "feature = ['lung', 'lesion', 'ratio', 'lung_lesion', \n",
    "           #'left_lung', 'right_lung', 'left_lesion', 'right_lesion',\n",
    "          'weighted_lesion', 'weighted_lung_lesion',\n",
    "          'consolidation', 'lesion_consolidation',\n",
    "          'z', 'Age', 'sex']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "raw_data['sex'] = raw_data['PatientSex'].map(get_sex)\n",
    "cls_data = raw_data\n",
    "cls_data.loc[cls_data['Severe'] == 2, 'Severe'] = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = np.array(cls_data[feature]).astype(np.float32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "y = np.array(cls_data['Severe'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1,\n",
       "       0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1,\n",
       "       1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1,\n",
       "       0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1,\n",
       "       1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1,\n",
       "       1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1], dtype=int64)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "seed = 2\n",
    "np.random.seed(seed)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(434, 11)\n"
     ]
    }
   ],
   "source": [
    "print(X.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(434, 11)\n",
      "(434, 11)\n"
     ]
    }
   ],
   "source": [
    "X = MinMaxScaler().fit_transform(X)\n",
    "#selector = VarianceThreshold(0.01)\n",
    "#selector.fit(X)\n",
    "#X = selector.transform(X)\n",
    "print(X.shape)\n",
    "#etc = GradientBoostingClassifier().fit(X, y)\n",
    "#model = SelectFromModel(etc, prefit=True)\n",
    "#X = model.transform(X)\n",
    "print(X.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['lung',\n",
       " 'lesion',\n",
       " 'ratio',\n",
       " 'lung_lesion',\n",
       " 'weighted_lesion',\n",
       " 'weighted_lung_lesion',\n",
       " 'consolidation',\n",
       " 'lesion_consolidation',\n",
       " 'z',\n",
       " 'Age',\n",
       " 'sex']"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "feature"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\utils\\extmath.py:516: RuntimeWarning: invalid value encountered in multiply\n",
      "  v *= signs[:, np.newaxis]\n"
     ]
    },
    {
     "data": {
      "image/png": "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YKIvZOLEifL0008LILfccotce+21vW4TIEuWLJGf//znvW7HsmXL5JRTTinJsa6++mq56aabBJAXXnhBZsyY0evnPwBfA4nevpb99pXp97K9fvKTn8ioUaOksrJS9u/f32rdpk2bxBgjruv2+nmU0k8aY2T9+vUCyPXXXy/f//73e/38B+GrS/RlAaa04Vvf+hY///nPe9uMfsuKFSs4+uijGTp0KLW1tXzsYx9j+/bt3Wrr1FNPZe3atQW2UFGUzojH49xwww08+eSTNDY2Ultb29smFYSvf/3r1NXVUV1dzYQJE/iP//iPbrd1xx138O1vf7uA1inFQAWY0ime5xWtbdd1i9Z2W2bPns0TTzzBoUOH2LFjB9OmTeOLX/xiyY6vKErH5OMPdu/eTSQSYc6cOUW1RUTwfb+ox8jkmmuu4b333qO+vp6XXnqJ++67j+XLl5fs+ErpUQHWj7j55pu54oorANi0aRPGGH7xi18wfvx4hg8f3uqJyfd9br31VqZMmUJtbS2XXXYZBw4cSK//+Mc/zujRoxkyZAinnXYaq1evTq+7+uqr+eIXv8h5551HRUUFK1as6NCunTt3cswxx/C///f/BuDw4cNcc801jBkzhnHjxnHTTTelRdyyZctYtGgRX/3qV6mpqeHmm29m2bJlnHLKKfzzP/8zw4YNY9KkSTz22GPp9jtqryuMGjWKsWPHpj/bts369etzbv/GG29w/PHHU1VVxSc+8QkikUh63bPPPstRRx2V/jxx4kRuu+02jjnmGCoqKrjmmmvYvXs35557LlVVVZx55pkcPHgQgEgkwhVXXEFtbS1Dhw5l/vz57N69u8vnoygDgYkTJ/KDH/wg/d1JibBXX32V2bNnM2zYMD772c8SiURYt24dM2bMAGDo0KGcfvrpnbb/xz/+kYkTJ/LOO+8A8PLLL3PyySczdOhQ5s6dy7PPPpvedsmSJdx4440sWrSI8vJyNm7cyJIlS/j2t7/NokWLqKqqYunSpezbty+9T0ftdYUZM2ZQUVGR/mxZVof+6bbbbmPMmDGMHTuWu+++u9W6q6++mptuugk44qt++MMfMnLkSMaMGcOf/vQn/vznPzN9+nRqamq45ZZb0vuuXLmSefPmUV1dzahRo7jhhhu6dT5KHohIX30pIjJhwgR56qmnRETku9/9rnz6058WEZEPPvhAALn22mulublZ3nzzTQkGg7JmzRoREfnRj34kCxYskK1bt0okEpHrrrtOLr/88nS7d911l9TX10skEpGvfOUrMnfu3PS6q666Sqqrq+XFF18Uz/OkpaWlnV2LFy+Wn/3sZ/LBBx/ItGnT5Kc//Wl63UUXXSTXXXedNDY2yu7du2X+/Plyxx13iIjIPffcI7Zty49//GOJx+PS3Nws99xzjziOI3feeae4riv/8z//I2PGjBHf9/Nqb9GiRXlfz82bN8uQIUPEGCOO48g999yTdbtoNCrjx4+X//7v/5ZYLCb333+/OI4jN954o4iIrFixQsaNG9fq/7RgwQLZtWuXbNu2TUaMGCHHHXecvP766xKJROTDH/6w3HzzzSIicscdd8j5558vTU1N4rquvPbaa3L48OG8z2GA09t+R31YiZkwYYLMnTtXtmzZIs3Nzellc+bMkS1btsj+/fvl5JNPTn/3Ur4vHo9nbS9z/d133y1TpkyR999/X0REtm3bJjU1NfLoo4+K53ny5JNPSk1NjezZs0dEEn6trq5O3nnnHYnH4xKLxWTx4sUyefJkWbt2rTQ3N8vixYvlG9/4Rt7t/exnP8v7Wvznf/6nVFRUCCCTJk2SrVu3Zt3usccek5EjR8qqVauksbFRPvnJTwqQPs+rrrqqla+ybVu+973vSSwWkzvvvFOGDx8un/zkJ6W+vl7eeecdCYVCsmHDBhERWbhwodx7770iItLQ0CB/+9vf8rZf6ZqP6G0Hpc6rEzoTYJlf0Pnz58tvfvMbERGZOXOmPP300+l1O3bsEMdxsjqtgwcPCiCHDh0SkcSX98orr+zQrsWLF8tXv/pVmTBhgtx3333p5bt27ZJgMJh2pCIi9913nyxZskREEoKprq6uVVv33HOPTJkyJf25qalJANm5c2de7XVFgKXYv3+/3HrrrTmdy3PPPddKBIqInHTSSR0KsF/96lfpzxdffLFcf/316c8//vGP5aKLLhKRhPg96aST5K233uqy3YOA3vY76sNKzIQJE+Suu+5qt+wnP/lJ+vOjjz4qkydPFpH8Bdhtt90ms2bNauUjb731Vrniiitabb906VJZtmyZiCT82re//e1W6xcvXizf//73059vv/12Ofvss/NurysCTETE9315/fXX5Tvf+Y7U19dn3eazn/1sWgSKiKxdu7ZDARYOh8V1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\n",
      "text/plain": [
       "<Figure size 720x576 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.axes._subplots.AxesSubplot at 0x1dce63c9828>,\n",
       " <matplotlib.axes._subplots.AxesSubplot at 0x1dcf9bf59b0>,\n",
       " <matplotlib.axes._subplots.Axes3DSubplot at 0x1dcf9ed28d0>,\n",
       " <matplotlib.axes._subplots.Axes3DSubplot at 0x1dcf9f0f6a0>]"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pca_comp_plot(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "样本集大小: (434, 11) (434,)\n",
      "训练集大小: (347, 11) (347,)\n",
      "测试集大小: (87, 11) (87,)\n"
     ]
    }
   ],
   "source": [
    "x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=seed)\n",
    "print('样本集大小:',X.shape,y.shape)\n",
    "print('训练集大小:',x_train.shape,y_train.shape)  # 训练集样本大小\n",
    "print('测试集大小:',x_test.shape,y_test.shape)  # 测试集样本大小"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting models...\n",
      "svm... no feature importances\n",
      "done\n",
      "knn... no sample weight\n",
      "no feature importances\n",
      "done\n",
      "naive bayes... no feature importances\n",
      "done\n",
      "mlp... no sample weight\n",
      "no feature importances\n",
      "done\n",
      "random forest... \n",
      " random forest [0.06556802 0.06267865 0.10769074 0.23554236 0.0675672  0.11787239\n",
      " 0.06881165 0.15614353 0.04052227 0.06618391 0.01141929]\n",
      "done\n",
      "gradientboost... \n",
      " gradientboost [0.02102846 0.28094372 0.08241749 0.04754522 0.05069486 0.02973711\n",
      " 0.23328546 0.20862373 0.02436599 0.02135795 0.        ]\n",
      "done\n",
      "logistic... no feature importances\n",
      "done\n",
      "adaboost... \n",
      " adaboost [0.08 0.06 0.1  0.12 0.16 0.04 0.18 0.08 0.08 0.1  0.  ]\n",
      "done\n",
      "Done.\n",
      "\n",
      "ROC AUC SCORE\n",
      "svm                       : 0.893\n",
      "knn                       : 0.905\n",
      "naive bayes               : 0.897\n",
      "mlp                       : 0.908\n",
      "random forest             : 0.862\n",
      "gradientboost             : 0.909\n",
      "logistic                  : 0.899\n",
      "adaboost                  : 0.848\n",
      "ACC SCORE\n",
      "svm                       : 0.828\n",
      "knn                       : 0.839\n",
      "naive bayes               : 0.885\n",
      "mlp                       : 0.839\n",
      "random forest             : 0.851\n",
      "gradientboost             : 0.793\n",
      "logistic                  : 0.851\n",
      "adaboost                  : 0.816\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "models = get_models()\n",
    "P = train_predict(models)\n",
    "score_models(P, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting models...\n",
      "svm... done\n",
      "knn... done\n",
      "naive bayes... done\n",
      "mlp... done\n",
      "random forest... done\n",
      "gradientboost... done\n",
      "logistic... "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "done\n",
      "adaboost... done\n",
      "Done.\n",
      "\n",
      "svm ACC Result 0.8237315010570825 +/- 0.3017880613142109\n",
      "knn ACC Result 0.7478858350951375 +/- 0.2920472229603193\n",
      "naive bayes ACC Result 0.8306025369978858 +/- 0.26769702623988184\n",
      "mlp ACC Result 0.7806025369978858 +/- 0.3575818547409162\n",
      "random forest ACC Result 0.775475687103594 +/- 0.28610783615005586\n",
      "gradientboost ACC Result 0.7620507399577168 +/- 0.3986433824327496\n",
      "logistic ACC Result 0.8097251585623679 +/- 0.2858060473499701\n",
      "adaboost ACC Result 0.7620507399577167 +/- 0.35577830735987864\n"
     ]
    }
   ],
   "source": [
    "models = get_models()\n",
    "cv_results=cross_val_models(models)\n",
    "cross_val_acc(cv_results)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>svm</th>\n",
       "      <th>knn</th>\n",
       "      <th>naive bayes</th>\n",
       "      <th>mlp</th>\n",
       "      <th>random forest</th>\n",
       "      <th>gradientboost</th>\n",
       "      <th>logistic</th>\n",
       "      <th>adaboost</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.534091</td>\n",
       "      <td>0.477273</td>\n",
       "      <td>0.579545</td>\n",
       "      <td>0.477273</td>\n",
       "      <td>0.522727</td>\n",
       "      <td>0.386364</td>\n",
       "      <td>0.534091</td>\n",
       "      <td>0.443182</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>0.863636</td>\n",
       "      <td>0.727273</td>\n",
       "      <td>0.840909</td>\n",
       "      <td>0.693182</td>\n",
       "      <td>0.750000</td>\n",
       "      <td>0.772727</td>\n",
       "      <td>0.875000</td>\n",
       "      <td>0.715909</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0.930233</td>\n",
       "      <td>0.883721</td>\n",
       "      <td>0.895349</td>\n",
       "      <td>0.860465</td>\n",
       "      <td>0.848837</td>\n",
       "      <td>0.837209</td>\n",
       "      <td>0.895349</td>\n",
       "      <td>0.918605</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>0.837209</td>\n",
       "      <td>0.790698</td>\n",
       "      <td>0.860465</td>\n",
       "      <td>0.883721</td>\n",
       "      <td>0.802326</td>\n",
       "      <td>0.837209</td>\n",
       "      <td>0.813953</td>\n",
       "      <td>0.802326</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>0.953488</td>\n",
       "      <td>0.860465</td>\n",
       "      <td>0.976744</td>\n",
       "      <td>0.988372</td>\n",
       "      <td>0.953488</td>\n",
       "      <td>0.976744</td>\n",
       "      <td>0.930233</td>\n",
       "      <td>0.930233</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        svm       knn  naive bayes       mlp  random forest  gradientboost  \\\n",
       "0  0.534091  0.477273     0.579545  0.477273       0.522727       0.386364   \n",
       "1  0.863636  0.727273     0.840909  0.693182       0.750000       0.772727   \n",
       "2  0.930233  0.883721     0.895349  0.860465       0.848837       0.837209   \n",
       "3  0.837209  0.790698     0.860465  0.883721       0.802326       0.837209   \n",
       "4  0.953488  0.860465     0.976744  0.988372       0.953488       0.976744   \n",
       "\n",
       "   logistic  adaboost  \n",
       "0  0.534091  0.443182  \n",
       "1  0.875000  0.715909  \n",
       "2  0.895349  0.918605  \n",
       "3  0.813953  0.802326  \n",
       "4  0.930233  0.930233  "
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cv_results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting models...\n",
      "svm... done\n",
      "knn... done\n",
      "naive bayes... done\n",
      "mlp... done\n",
      "random forest... done\n",
      "gradientboost... done\n",
      "logistic... done\n",
      "adaboost... "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "done\n",
      "Done.\n",
      "\n",
      "svm ROC AUC Result 0.8927574611181168 +/- 0.27380216453532236\n",
      "knn ROC AUC Result 0.8555520526832001 +/- 0.3006267128541013\n",
      "naive bayes ROC AUC Result 0.8604128718882815 +/- 0.29500499579004863\n",
      "mlp ROC AUC Result 0.8602090047172014 +/- 0.3352491413984705\n",
      "random forest ROC AUC Result 0.8340632151697726 +/- 0.2669250384669379\n",
      "gradientboost ROC AUC Result 0.856611554808276 +/- 0.34781065652988397\n",
      "logistic ROC AUC Result 0.8978590444164215 +/- 0.2869042332673911\n",
      "adaboost ROC AUC Result 0.8341810284433235 +/- 0.2870453702783311\n"
     ]
    }
   ],
   "source": [
    "cv_results_roc=cross_val_models(models, scoring='roc_auc')\n",
    "cross_val_acc(cv_results_roc, scoring='ROC AUC')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Ensemble ROC-AUC score: 0.936\n",
      "Ensemble ACC score: 0.885\n"
     ]
    }
   ],
   "source": [
    "print(\"Ensemble ROC-AUC score: %.3f\" % roc_auc_score(y_test, P.mean(axis=1)))\n",
    "print(\"Ensemble ACC score: %.3f\" % accuracy_score(y_test, np.float32(P.mean(axis=1) > 0.5)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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FF6fkWrQWY3wyy+/0LVrV+bPn09eXp6awE5RqoE7TwqTcFQhhQPngJ+d+2ododOx9tVbCQvwKftgxWvS0tKYNm0aS5YsoX379mzevJn+/fuXfaKiKJXmzuC1JBw9hxSlWpw7d44vv/ySZ599lpdffhk/Pz9vh6Qolw13eh8tpsCgs3xSygkeiUi5LOUngqlTp9KxY0diY2NVQ7KieIE7bQo/A784P34HGlEHFtpRagYpJZ999hmdOnXimWee4dgxxwy1KiEo1aF169acP3++yq9733330a1bN491hY2NjWX58uUeubY71UcrCm4LIZYBP3kkGuWycurUKSZOnMh3333HNddc42pDUJSySCmRUqLT1bw1Uc6ePcsff/xBXFyc2+fYbDYMBve7y+cnhfvvv7/sg8upIp32I4BWVR2IcnnJn8AuKSmJd955h0cffVRNYFeLfLIjgbgLOVV6zVb1/Xiod4sSX4+NjeXmm29m8ODBbNu2jbVr1zJz5kx27NhBTk4Od999N6+++irgeAJ46KGH+Pbbb7FaraxatYrIyEhSUlK47777SE5Opk+fPoV6tL399tt89NFHAIwbN44nnnjCram6+/TpUyjOIUOGkJSURI8ePXj33XcJCgpi4sSJZGdn07ZtWz766CNCQ0MZNGgQ1157Lb///ju33347o0ePZuLEiZw6dQqA+fPn07dvX3777TemTp0KOOZt2rx5M9OnT+fQoUP06NGDhx56iCeffLLKfg/uLMeZKoS44PxIw/GU8HyVRaBcVmJiYrDb7RgMBhYvXsz+/fvVjKaK244cOcLo0aPZs2cPrVq14s0332Tnzp3s27eP3377jX379rmODQsLY/fu3UyaNIk5c+YA8Oqrr9KvXz/27NnD7bff7iqAd+3axccff8yff/7J9u3bWbx4MXv27AEcU3VPnTqVffv2cfjwYddU3XPmzGHGjBmXxLhu3Tratm1LdHQ0/fv3Z/To0cyaNYt9+/bRtWtXV+ICR0+73377jX/9619MnTqVJ598kh07dvDVV18xbtw4AObMmcOCBQuIjo5my5Yt+Pn5MXPmTPr37090dHSVJgQo40lBODr1d8cxdxGAJlVncaUCbDYbc+fO5eWXX2b27NlMmTKF66+/3tthKRVU2h29J7Vq1Yqrr77atb1y5UoWLVqEzWYjMTGRgwcP0q1bNwDu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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_roc_curve(y_test, P.values, P.mean(axis=1), list(P.columns), 'voting')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "base_learners = get_models()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "meta_learner = GradientBoostingClassifier(\n",
    "   n_estimators=128,\n",
    "   loss=\"exponential\",\n",
    "   max_features=4,\n",
    "   max_depth=3,\n",
    "   subsample=0.5,\n",
    "   learning_rate=0.005, \n",
    "   random_state=seed\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting models\n",
      "svm...knn...no sample_weight\n",
      "naive bayes...mlp...no sample_weight\n",
      "random forest...gradientboost...logistic...adaboost...done.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "train_base_learners(base_learners, x_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n"
     ]
    }
   ],
   "source": [
    "P_base = predict_base_learners(base_learners, x_train)\n",
    "P_test = predict_base_learners(base_learners, x_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GradientBoostingClassifier(criterion='friedman_mse', init=None,\n",
       "                           learning_rate=0.005, loss='exponential', max_depth=3,\n",
       "                           max_features=4, max_leaf_nodes=None,\n",
       "                           min_impurity_decrease=0.0, min_impurity_split=None,\n",
       "                           min_samples_leaf=1, min_samples_split=2,\n",
       "                           min_weight_fraction_leaf=0.0, n_estimators=128,\n",
       "                           n_iter_no_change=None, presort='auto',\n",
       "                           random_state=2, subsample=0.5, tol=0.0001,\n",
       "                           validation_fraction=0.1, verbose=0,\n",
       "                           warm_start=False)"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta_learner.fit(P_base, y_train, sample_weight=get_sample_weight(y_train))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "\n",
      "Ensemble ROC-AUC score: 0.838\n",
      "Ensemble ACC score: 0.828\n"
     ]
    }
   ],
   "source": [
    "P_pred, p = ensemble_predict(base_learners, meta_learner, x_test)\n",
    "print(\"\\nEnsemble ROC-AUC score: %.3f\" % roc_auc_score(y_test, p))\n",
    "print(\"Ensemble ACC score: %.3f\" % accuracy_score(y_test, np.float32(p > 0.5)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "svm ROC-AUC score: 0.893\n",
      "svm ACC score: 0.816 \n",
      "\n",
      "knn ROC-AUC score: 0.905\n",
      "knn ACC score: 0.851 \n",
      "\n",
      "naive bayes ROC-AUC score: 0.897\n",
      "naive bayes ACC score: 0.885 \n",
      "\n",
      "mlp ROC-AUC score: 0.908\n",
      "mlp ACC score: 0.839 \n",
      "\n",
      "random forest ROC-AUC score: 0.862\n",
      "random forest ACC score: 0.862 \n",
      "\n",
      "gradientboost ROC-AUC score: 0.909\n",
      "gradientboost ACC score: 0.793 \n",
      "\n",
      "logistic ROC-AUC score: 0.899\n",
      "logistic ACC score: 0.851 \n",
      "\n",
      "adaboost ROC-AUC score: 0.848\n",
      "adaboost ACC score: 0.816 \n",
      "\n"
     ]
    }
   ],
   "source": [
    "c = 0\n",
    "for k, v in base_learners.items():\n",
    "    print(\"{} ROC-AUC score: %.3f\".format(k) % roc_auc_score(y_test, P_pred[:, c]))\n",
    "    print(\"{} ACC score: %.3f \\n\".format(k) % accuracy_score(y_test, np.float32(P_pred[:, c] > 0.5)))\n",
    "    c = c + 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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1S0SKc5LygzBQw89RI8ePUhMTFQLyQqFB3BlTWED8Iv9sQVoTQtotKNoGkgp+fTTT+nZsyePP/44x44dA1AGQdEodO7cmczMzAY/7x133EHfvn3dFgqbmJjIihUr3HJuV9xHKytuCyE+AX52izSK84oTJ04wbdo0fvjhBy699FLHGoJCURtSSqSU6HRNryfK6dOn+eOPP0hKSnL5GIvFgsHgerh8mVG48847ax9cR+oTtB8NdGpoQRTnF2UF7NLT03nzzTe5//77VQG7ZsRH21NIOlPcoOfsFObLPQM7VPt+YmIiV199NSNGjGDr1q2sWbOGuXPnsn37doqLi7nlllt44YUXAO0O4J577uHbb7/FbDazatUqYmJiyMrK4o477iAjI4OLL764UkTb66+/zgcffADA5MmTefjhh10q1X3xxRdXknPUqFGkp6fTr18/3nrrLQIDA8EZLgUAACAASURBVJk2bRpFRUV07dqVDz74gNDQUIYPH85ll13Gli1buP7665kwYQLTpk3jxIkTACxatIjBgwfz22+/8dBDDwFa3aZNmzbx5JNPcujQIfr168c999zDI4880mB/B1facWYLIc7YHzlodwlPN5gEivOK+Ph4rFYrBoOBpUuXsn//flXRVOEyR44cYcKECezevZtOnTrxyiuvsGPHDvbt28dvv/3Gvn37HGPDw8PZtWsX06dPZ/78+QC88MILXH755ezevZvrr7/eoYB37tzJhx9+yJ9//sm2bdtYunQpu3fvBrRS3Q899BD79u3j8OHDjlLd8+fPZ86cOWfJuHbtWrp27cqePXsYMmQIEyZM4NVXX2Xfvn306dPHYbhAi7T77bff+L//+z8eeughHnnkEbZv385XX33F5MmTAZg/fz6LFy9mz549bN68GV9fX+bOncuQIUPYs2dPgxoEqOVOQWgZaxei1S4CsEkVLK6oBxaLhQULFvDcc88xb948Zs6cyZVXXulpsRT1pKYZvTvp1KkTl1xS3uDqiy++YMmSJVgsFlJTUzl48CB9+2pB5TfffDMAF110EatXrwZg06ZNjtfXXnstoaGhAPz+++/cdNNN+Pv7O47dvHkz119/fZ1LdVckNzeXnJwchg0bBsA999zDrbfe6nh//PjxjtcbNmzg4MHydjN5eXnk5+czePBgHn30Ue666y5uvvlmOnRw73dfo1GQUkohxNdSyovcKoWiRbNnzx4mTZrErl27uOmmmyr9KBSKulCmtAESEhKYP38+27dvJzQ0lIkTJ1JSUuJ4v6yktl6vr1RS21mtrJrmunUt1V0XKn4em83G1q1bzwrBfvLJJ7n22mv5/vvvueSSS9iwYcM5XbM2XFml+UsIoao/KOrF22+/zcCBAzl58iRffvklq1evpl27dp4WS9ECyMvLw9/fn+DgYNLS0vjhhx9qPWbo0KGOlp0//PAD2dnZjv1r1qyhqKiIwsJCvv766wZJmAwODiY0NJTN/7+9O4+v6c4fP/56lyidqL1F0IoUsURC7FvUjNboUC1NDSIVjGmjWhP6U6OW6jJoa4w107HUhKLVltJW+UYzGobQJIhWqCVBLWlL7Fk+vz/ucSe4SS5yc7O8n4/HfeTccz73nPcnN7mf+zmfc96f//wHgGXLltl7DTfr0aMHc+bMsT+Pj48H4NChQzRv3pxXXnmFwMBAvv/+eypWrEh6evpdx+dIrj0FESlrjMkEOgHDReQQcBHb5DnGGKMNhcrV9QR2fn5+DBw4kHfffZeqVfO+k1yp29GiRQsCAgJo2rQp3t7edOzYMd/XTJo0iQEDBtCyZUu6du1qn8mxZcuWhIaG2geNhw0bRkBAQL6nh5yxdOlS+0Czt7c3ixcvdlhu9uzZvPDCC/j5+ZGZmUmXLl1YsGABs2bNIjo6mjJlytCkSRN69uzJPffcQ9myZWnRogWhoaEFOq4guXWbRGS3MaaliDRwtN0Yc6jAorgNgYGBJi7u9qdceM3/GaYmrObsqbR801yoO3fhwgUmTJiAh4eHfXBPlQz79+/H19fX3WEoJzh6r0RklzEm30nM8jp9JGD78Hf0uLuQVUm0ceNGmjVrxj/+8Q8yMjI0gZ1SxVBeA801RGRMbhuNMe+6IB5VDP3yyy+MGTOGJUuW0KhRI2JiYujUqZO7w1JK3YG8egplAE9scyk7eigFwOnTp/noo48YP3488fHx2iAoVYzl1VM4aYyZWmiRqGLlp59+YsWKFbz88sv2BHbVqlVzd1hKqbuU75iCUjkZY1i6dClNmjRh/Pjx9gR22iAoVTLk1Sjo7abqBtfzwISGhtKkSRPi4+M1gZ1SJUyujYIx5ufCDEQVbZmZmXTr1o3Y2Fjmzp1LTEwMjRs3dndYSt2VnKmzO3TocMf7WbJkCSdOnHC434IWHx/Phg0bXLJvcO6OZlWKHTx40J7AbtGiRezdu5fnn3++SKYsVgq449QTsbGxd3zMmxsFV3J1o3AnqbNVKZCRkcGMGTOYMmUKM2bM4MUXX6Rbt27uDksVEe9tOsiBUxcKdJ8NH/Tk5d/65Fvu9ddfJyoqirp161K9enVatWrF559/fkMa6oYNGzJt2jSuXbtGtWrViIqK4sEHH8wzdbanpycXLtjqNGPGDFatWsXVq1fp27cvU6ZMsafu7tSpE7GxsXh5efHZZ5+xfv164uLiGDhwIBUqVGDbtm32fURHRwOwfPlyfHx8OHr0KEOHDuXMmTPUqFGDxYsXU69evVzXr169milTplCmTBkqVarEpk2beO2117h8+TJbt25l/PjxNyTVKwj6dU/dYvfu3bRp04YJEybQp0+fAv+jU+pOxcXF8fHHH/Pdd9+xZs0acmY3yJmG+vr8B9999x3PPvss06dPB3JPnZ3Txo0bSU5OZseOHcTHx7Nr1y5iYmIASE5O5oUXXmDfvn1UrlyZjz/+mH79+hEYGEhUVBTx8fH2hHb3338/O3bsIDw8nJdeegmA8PBwQkJCSExMZODAgbz44ot5rp86dSpfffUVCQkJrF27lnLlyjF16lSCg4OJj493yf+m9hTUDWbPns2YMWOoUaMGa9asoW/fvu4OSRVBznyjd4WtW7fSp08f+wfvH/7wB/u2nB+QqampBAcHc/LkSa5du0b9+vWB3FNn57Rx40Y2btxIQEAAYEvdkpycTL169ahfvz7+/v6ALSV3XrmRBgwYYP95PTfRtm3b7McfPHgw48aNy3N9x44dCQ0N5ZlnnrGnAnc17Sko4H+pgwMCAggJCSEpKUkbBFXk5JU6JWca6lGjRhEeHs6ePXtYuHDhDSm1HaXOvvkY12/EjI+P5+DBg4SFhQE3ptG+OSX3zXIeJ7dj5rd+wYIFTJs2jZSUFPz9/UlLS8sz9oKgjUIpl56eTnh4OBEREQB07tzZPl2gUkVNp06dWLduHVeuXOHChQusX7/eYblz587h5eUF2LKUXpdb6uycHnvsMRYtWmQfXzh+/DinT5/OMy5HqaxXrlxp/9m+fXvAdoXThx9+CEBUVJT97v/c1h86dIi2bdsydepUqlevTkpKikvTZoOePirVvvzyS/70pz+RkpLCSy+9ZE93rVRR1bp1a3r37k2LFi146KGHCAwMpFKlSreUmzx5Mv3798fLy4t27dpx+PBhIPfU2Tn16NGD/fv32z/IPT09+fe//53nlLGhoaGMHDnyhoHmq1ev0rZtW7Kzs1mxYgVgOz07dOhQZsyYYR9Qzmv92LFjSU5OxhhD9+7dadGiBfXq1ePtt9/G39/fJQPNGGOK1aNVq1bmTkxs0d8YMGdOpd3R60uSs2fPmpCQEAMYX19fExsb6+6QVDGQlJTk7hCMMcakp6cbY4y5ePGiadWqldm1a5ebIyp6HL1XQJxx4jNWewqlUFpaGp988gkTJ05kwoQJN5wnVaqoGzFiBElJSVy5coUhQ4bQsqXO91WQXNooiMjjwN+xZVx93xjz9k3bxwDDgEzgDDDUGHPUlTGVVidPniQqKoq//OUvNGzYkKNHj+q4gSqWli9f7u4QSjSXDTSLSBlgLtATaAIMEJEmNxX7Dgg0xvgBHwHTXRVPaWWMYdGiRfj6+jJx4kQOHjwIoA2CUsohV1591AY4aIz50RhzDfgQ6JOzgDEm2hhzyXq6HajjwnhKncOHD9OjRw/CwsJo0aIFCQkJmsBOKZUnV54+8gJScjxPBdrmUT4M+MLRBhEZAYwAHF4toG6VmZnJo48+SlpaGvPnz2fEiBGar0gplS9XNgqOrm10eOeJiAwCAoGujrYbYyKBSIDAwECd+DcPycnJeHt7U7ZsWRYvXkyDBg2oW7euu8NSShUTrvzqmArk/DSqA9ySRlBEfgtMAHobY666MJ4SLSMjg2nTptGsWTPmzJkDQFBQkDYIqkTx9PS849cOGzaMpKSkXLffnOk0v/IllSt7CjuBR0SkPnAceBb4Y84CIhIALAQeN8bkfcugylVcXBxhYWEkJiby7LPP2nOuKKX+5/33389z+5IlS2jWrBm1a9d2qnxJ5bJGwRiTKSLhwFfYLkldZIzZJyJTsd1EsRaYAXgCq607aY8ZY3q7KqaS6O9//ztjxoyhZs2afPbZZ/Turb8+5XqTVieyL/Vcge6zaZ1KTOnv51RZYwzjxo3jiy++QET461//SnBwMNnZ2YSHh/PNN99Qv359srOzGTp0KP369SMoKIiZM2cSEBBAWFgYcXFxiAhDhw6lbt26t6S/7tmzJzNnziQwMJAvv/ySV199laysLKpXr87mzZsLtO5FiUvvUzDGbAA23LTutRzLv3Xl8UsyY6WkCAwMJCwsjOnTp1O5cmV3h6VUoVizZg3x8fEkJCRw9uxZWrduTZcuXfj22285cuQIe/bs4fTp0/j6+jJ06NAbXhsfH8/x48fZu3cvYEu5XblyZebMmWNvBHI6c+YMw4cPJyYmhvr16/PzzyV7Ukq9o7mYOX/+PK+88grly5fnvffeo2PHjnTs2NHdYalSxtlv9K6ydetWBgwYQJkyZXjwwQfp2rUrO3fuZOvWrfTv35977rmHmjVrOpwYytvbmx9//JFRo0bRq1cvevTokeextm/fTpcuXezpt6tWreqSOhUVeo1iMbJhwwaaNm1KZGQkZcuWzTONsFIlWW5/+878T1SpUoWEhASCgoKYO3cuw4YNy/dYpSlRpDYKxcDZs2cZNGgQvXr1olKlSsTGxjJjxoxS9YeqVE5dunRh5cqVZGVlcebMGWJiYmjTpg2dOnXi448/Jjs7m1OnTrFly5ZbXnv27Fmys7N5+umnef3119m9ezfgOP01QPv27fnmm2/smVb19JFyu19++YV169YxadIkXn31VcqVK+fukJRyq759+7Jt2zZatGiBiDB9+nRq1qzJ008/zebNm2nWrBkNGzakbdu2t6TWPn78OM899xzZ2dkAvPXWW4Dj9NcANWrUIDIykqeeeors7GweeOABvv7668KrbCGT4nYKIjAw0OScl9VZr/k/w9SE1Zw9lUb1B4r+OcHjx48TFRXF2LFjERH7YJhS7rJ//358fX3dHUa+Lly4gKenJ2lpabRp04Zvv/2WmjVrujusQuXovRKRXcaYwFxeYqc9hSLGGMP7779PREQEGRkZPPXUU/j4+GiDoJSTnnjiCX799VeuXbvGxIkTS12DcLe0UShCDh06xPDhw4mOjiYoKIh//vOf+Pi4Z4J0pYorR+MIynnaKBQRmZmZdO/enZ9//pmFCxcybNgwTWCnlCp02ii42Q8//ECDBg0oW7YsS5cupUGDBtSpoxnElVLuoV9F3eTatWtMmTKF5s2bM3fuXAC6du2qDYJSyq20p+AGO3bsICwsjL179/LHP/6RgQMHujskpZQCtKdQ6GbNmkX79u3t9x5ERUVRvXp1d4elVImxZMkSwsPD8ywzefJkZs6c6bIY3nzzTZft29W0USgk1+8HadOmDcOHD2ffvn088cQTbo5KKeUKxblR0NNHLnbu3DnGjRtHhQoVmDVrFh06dKBDhw7uDkupuxLxz60kHk4r0H361a/GzOGd8i335JNPkpKSwpUrVxg9ejQjRoxg8eLFvPXWW9SqVYuGDRty7733ArBu3TqmTZvGtWvXqFatGlFRUTz44IMAJCQk8Oijj5KSksK4ceMYPnx4rim5c1t/8uRJgoODOX/+PJmZmcyfP5/169dz+fJl/P39adq0KVFRUQX6e3I1bRRcaN26dYwcOZKffvqJiIiIUpdYSylXWLRoEVWrVuXy5cu0bt2aXr16MWnSJHbt2kWlSpXo1q0bAQEBAHTq1Int27cjIrz//vtMnz6dd955B4DExES2b9/OxYsXCQgIoFevXmzbts1hSu7Y2FiH65cvX85jjz3GhAkTyMrK4tKlS3Tu3Jk5c+YQHx/vzl/THdNGwQXOnDnD6NGjWbFiBc2bN+fTTz+ldevW7g5LqQLjzDd6V5k9ezaffPIJACkpKSxbtoygoCBq1KgBQHBwMAcOHAAgNTXV/o3+2rVr9vTXAH369KFChQpUqFCBbt26sWPHjjxTcjta37p1a4YOHUpGRgZPPvkk/v7+hf8LKWA6puAC586dY8OGDUyZMoW4uDhtEJQqIFu2bGHTpk1s27aNhIQEAgICaNy4ca498FGjRhEeHs6ePXtYuHAhV65csW+7+TUictspubt06UJMTAxeXl4MHjyYDz744A5rVnRoo1BAUlJSeOuttzDG4OPjw9GjR3nttdc0o6lSBejcuXNUqVKF++67j++//57t27dz+fJltmzZQlpaGhkZGaxevfqG8l5eXgAsXbr0hn199tlnXLlyhbS0NLZs2WI/JeQoJXdu648ePcoDDzzA8OHDCQsLs6fh9vDwICMjo/B+MQVITx/dpezsbCIjIxk3bhxZWVn0798fHx+fW9L1KqXu3uOPP86CBQvw8/OjUaNGtGvXjlq1ajF58mTat29PrVq1aNmyJVlZWYDt0tP+/fvj5eVFu3bt7HMigO1KwF69enHs2DEmTpxI7dq1c03Jndv6pUuXMmPGDDw8PPD09LT3FEaMGIGfnx8tW7YsdgPNmjr7LiQnJzN8+HC++eYbunfvTmRkJN7e3gWyb6WKmuKSOltp6my3yMzM5He/+x2//vor//rXv3juuef0yiKlVLGnjcJt2r9/P4888ghly5Zl2bJlNGjQgNq1a7s7LKWUKhA60Oykq1evMmnSJPz8/JgzZw4AnTt31gZBKVWiaE/BCdu3bycsLIykpCQGDx7M4MGD3R2SUkq5hPYU8vHOO+/QoUMH0tPT2bBhAx988AHVqlVzd1hKKeUS2ijkIjs7G4D27dszcuRI9u7dS8+ePd0clVJKuZY2Cjf59ddfCQsLY/To0QB06NCBefPmcf/997s5MqWUI7NmzeLSpUt39Nrc0mwvWLCgRNydfCe0Ucjh008/pUmTJixdupSKFSvmemu7UqrouJtGITcjR44kJCSkQPdZXOhAM3D69GnCw8NZvXo1/v7+fP7557Rs2dLdYSlVdL30EhR0FlB/f5g1K88iFy9e5JlnniE1NdWeQeDEiRN069aN6tWrEx0dzZ///Gd27tzJ5cuX6devH1OmTAFg586djB49mosXL3LvvfeyefPmG/a9fv16pk2bxrp165gzZw6enp5EREQQFBRE27ZtiY6Ott+X1LlzZy5dukRoaCjff/89vr6+HDlyhLlz5xIYmO/9YUWaNgrA+fPn+frrr3njjTcYO3YsHh4e7g5JKeXAl19+Se3atVm/fj1gy220ePFioqOj7TMYvvHGG1StWpWsrCy6d+9OYmIijRs3Jjg4mJUrV9K6dWvOnz9PhQoV7Pv95JNPePfdd9mwYQNVqlS55biZmZns2LHDnuhy06ZNzJs3jypVqpCYmMjevXtLRIZUKMWNwrFjx1i2bBmvvvoqPj4+HDt2jIoVK7o7LKWKh3y+0btK8+bNiYiI4JVXXuGJJ56gc+fOt5RZtWoVkZGRZGZmcvLkSZKSkhARatWqZc9YnHOMMDo6mri4ODZu3Jjr2OFTTz0FQKtWrThy5AgAW7dutY89NmvWDD8/v4Ksqtu4dExBRB4XkR9E5KCI/D8H2+8VkZXW9v+KyMOujAfAZBvmzZtH06ZNefPNNzl06BCANghKFQMNGzZk165dNG/enPHjxzN16tQbth8+fJiZM2eyefNmEhMT6dWrF1euXMlzgitvb2/S09PtczA4cn0mtzJlypCZmQnknk67uHNZoyAiZYC5QE+gCTBARJrcVCwM+MUY4wO8B/zNVfFcFxoSwgsvvED79u3Zt28fPj4+rj6kUqqAnDhxgvvuu49BgwYRERHB7t27qVixIunp6YDtVPBvfvMbKlWqxKlTp/jiiy8AaNy4MSdOnGDnzp0ApKen2z/cH3roIdasWUNISAj79u1zOpZOnTqxatUqAJKSktizZ09BVtVtXHn6qA1w0BjzI4CIfAj0AZJylOkDTLaWPwLmiIgYFzbBBw4cYPHixQwZMkQT2ClVzOzZs4exY8dyzz334OHhwfz589m2bRs9e/akVq1aREdHExAQQNOmTfH29qZjx44AlCtXjpUrVzJq1CguX75MhQoV2LRpk32/jRo1Iioqiv79+7Nu3TqnYnn++ecZMmQIfn5+BAQE4OfnVyJS5rssdbaI9AMeN8YMs54PBtoaY8JzlNlrlUm1nh+yypy9aV8jgBEA9erVa3X06NHbjmdEjwj+kPwffL+MwqeR9g6Uul2aOvtGWVlZZGRkUL58eQ4dOkT37t05cOBAkZhYq6imznb0NfzmFsiZMhhjIoFIsM2ncCfBRG6ceScvU0ophy5dukS3bt3IyMjAGMP8+fOLRINwt1zZKKQCdXM8rwOcyKVMqoiUBSoBP7swJqWUKhAVK1bkTib8KupcefXRTuAREakvIuWAZ4G1N5VZCwyxlvsB/+fK8QSl1N3Rf8+i727fI5c1CsaYTCAc+ArYD6wyxuwTkaki0tsq9i+gmogcBMYAt1y2qpQqGsqXL09aWpo2DEWYMYa0tDTKly9/x/soNXM0K6XuTkZGBqmpqVy5csXdoag8lC9fnjp16tySmaEoDDQrpUoQDw8P6tev7+4wlItpllSllFJ22igopZSy00ZBKaWUXbEbaBaRM8Dt39JsUx04m2+pkkXrXDponUuHu6nzQ8aYGvkVKnaNwt0QkThnRt9LEq1z6aB1Lh0Ko856+kgppZSdNgpKKaXsSlujEOnuANxA61w6aJ1LB5fXuVSNKSillMpbaespKKWUyoM2CkoppexKZKMgIo+LyA8iclBEbsm8KiL3ishKa/t/ReThwo+yYDlR5zEikiQiiSKyWUQeckecBSm/Ouco109EjIgU+8sXnamziDxjvdf7RGR5YcdY0Jz4264nItEi8p319/17d8RZUERkkYictmamdLRdRGS29ftIFJGWBRqAMaZEPYAywCHAGygHJABNbirzPLDAWn4WWOnuuAuhzt2A+6zlP5eGOlvlKgIxwHYg0N1xF8L7/AjwHVDFev6Au+MuhDpHAn+2lpsAR9wd913WuQvQEtiby/bfA19gm7myHfDfgjx+SewptAEOGmN+NMZcAz4E+txUpg+w1Fr+COguIo6mBi0u8q2zMSbaGHPJerod20x4xZkz7zPA68B0oCTke3amzsOBucaYXwCMMacLOcaC5kydDXC/tVyJW2d4LFaMMTHkPQNlH+ADY7MdqCwitQrq+CWxUfACUnI8T7XWOSxjbJMBnQOqFUp0ruFMnXMKw/ZNozjLt84iEgDUNcZ8XpiBuZAz73NDoKGIfCsi20Xk8UKLzjWcqfNkYJCIpAIbgFGFE5rb3O7/+20pifMpOPrGf/N1t86UKU6cro+IDAICga4ujcj18qyziNwDvAeEFlZAhcCZ97kstlNIQdh6g/8RkWbGmF9dHJurOFPnAcASY8w7ItIeWGbVOdv14bmFSz+/SmJPIRWom+N5HW7tTtrLiEhZbF3OvLprRZ0zdUZEfgtMAHobY64WUmyukl+dKwLNgC0icgTbude1xXyw2dm/7c+MMRnGmMPAD9gaieLKmTqHAasAjDHbgPLYEseVVE79v9+pktgo7AQeEZH6IlIO20Dy2pvKrAWGWMv9gP8z1ghOMZVvna1TKQuxNQjF/Twz5FNnY8w5Y0x1Y8zDxpiHsY2j9DbGFOe5XJ352/4U20UFiEh1bKeTfizUKAuWM3U+BnQHEBFfbI3CmUKNsnCtBUKsq5DaAeeMMScLaucl7vSRMSZTRMKBr7BdubDIGLNPRKYCccaYtcC/sHUxD2LrITzrvojvnpN1ngF4AqutMfVjxpjebgv6LjlZ5xLFyTp/BfQQkSQgCxhrjElzX9R3x8k6/wX4p4i8jO00Smhx/pInIiuwnf6rbo2TTAI8AIwxC7CNm/weOAhcAp4r0OMX49+dUkqpAlYSTx8ppZS6Q9ooKKWUstNGQSmllJ02Ckoppey0UVBKKWWnjYIqskQkS0TiczwezqPsw7lllSxsIhIoIrOt5SAR6ZBj20gRCSnEWPyLe9ZQVbhK3H0KqkS5bIzxd3cQt8u6Qe76TXJBwAUg1tq2oKCPJyJlrRxejvhjS2uyoaCPq0om7SmoYsXqEfxHRHZbjw4OyjQVkR1W7yJRRB6x1g/KsX6hiJRx8NojIvI3q9wOEfGx1j8ktnkors9HUc9a319E9opIgojEWOuCRORzq2czEnjZOmZnEZksIhEi4isiO26qV6K13EpEvhGRXSLylaMMmCKyRETeFZFo4G8i0kZEYsU2p0CsiDSy7gCeCgRbxw8Wkd+ILV//Tquso8yyqjRzd+5wfegjtwe2O3Ljrccn1rr7gPLW8iPY7moFeBgr/zzwD2CgtVwOqAD4AusAD2v9PCDEwTGPABOs5RDgc2t5HTDEWh4KfGot7wG8rOXK1s+gHK+bDETk2L/9uVUvb2v5FeCv2O5cjQVqWOuDsd3Fe3OcS4DPgTLW8/uBstbyb4GPreVQYE6O170JDLoeL3AA+I2732t9FJ2Hnj5SRZmj00cewBwR8cfWaDR08LptwAQRqQOsMcYki0h3oBWw00rzUQHILQfUihw/37OW2wNPWcvLsM3RAPAtsEREVgFrbqdy2JK4PQO8je3DPxhohC2R39dWnGWA3PLarDbGZFnLlYClVq/IYKVFcKAH0FtEIqzn5YF6wP7bjF2VUNooqOLmZeAU0ALb6c9bJs8xxiwXkf8CvYCvRGQYtnTDS40x4504hsll+ZYyxpiRItLWOla81Vg5ayW2XFRrbLsyySLSHNhnjGnvxOsv5lh+HYg2xvS1TlttyeU1AjxtjPnhNuJUpYiOKajiphJw0thy5Q/G9k36BiLiDfxojJmNLaOkH7AZ6CciKsbgIQAAASVJREFUD1hlqkru81QH5/i5zVqO5X+JEwcCW639NDDG/NcY8xpwlhtTGgOkY0vjfQtjzCFsvZ2J2BoIsKW6riG2eQEQEQ8RaZpLnDlVAo5by6F5HP8rYJRY3RCxZc9Vyk4bBVXczAOGiMh2bKeOLjooEwzsFZF4oDG2qQuTsJ2z32gN6H4N5DaF4b1WT2M0tp4JwIvAc9ZrB1vbAGaIyB7rctgYbHMI57QO6Ht9oNnBsVYCg/jffADXsKVz/5uIJGAbd7hlMN2B6cBbIvItNzaU0UCT6wPN2HoUHkCiFfPrTuxblSKaJVWpHMQ2IU+gMeasu2NRyh20p6CUUspOewpKKaXstKeglFLKThsFpZRSdtooKKWUstNGQSmllJ02Ckoppez+PzXBGf50GhfDAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_roc_curve(y_test, P.values, p, list(P.columns), 'stacking')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting models\n",
      "svm...knn...no sample_weight\n",
      "naive bayes...mlp...no sample_weight\n",
      "random forest...gradientboost...logistic..."
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "\n",
      "Ensemble ROC-AUC score: 0.876\n",
      "Ensemble ACC score: 0.851\n",
      "Fitting models\n",
      "svm...knn...no sample_weight\n",
      "naive bayes...mlp...no sample_weight\n",
      "random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "\n",
      "Ensemble ROC-AUC score: 0.955\n",
      "Ensemble ACC score: 0.908\n",
      "Fitting models\n",
      "svm...knn...no sample_weight\n",
      "naive bayes...mlp...no sample_weight\n",
      "random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "\n",
      "Ensemble ROC-AUC score: 0.890\n",
      "Ensemble ACC score: 0.828\n",
      "Fitting models\n",
      "svm...knn...no sample_weight\n",
      "naive bayes...mlp...no sample_weight\n",
      "random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "\n",
      "Ensemble ROC-AUC score: 0.887\n",
      "Ensemble ACC score: 0.908\n",
      "Fitting models\n",
      "svm...knn...no sample_weight\n",
      "naive bayes...mlp...no sample_weight\n",
      "random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "\n",
      "Ensemble ROC-AUC score: 0.836\n",
      "Ensemble ACC score: 0.837\n"
     ]
    }
   ],
   "source": [
    "idx = list(range(len(X)))\n",
    "np.random.shuffle(idx)\n",
    "X = X[idx]\n",
    "y = y[idx]\n",
    "cv_scores = []\n",
    "for i, (train_idx, test_idx) in enumerate(KFold(5).split(X)):\n",
    "    fold_x_train, fold_y_train = X[train_idx, :], y[train_idx]\n",
    "    fold_x_test, fold_y_test = X[test_idx, :], y[test_idx]\n",
    "    \n",
    "    base_learners = get_models()\n",
    "    meta_learner = GradientBoostingClassifier(\n",
    "       n_estimators=128,\n",
    "       loss=\"exponential\",\n",
    "       max_features=4,\n",
    "       max_depth=3,\n",
    "       subsample=0.5,\n",
    "       learning_rate=0.005, \n",
    "       random_state=seed\n",
    "    )\n",
    "    train_base_learners(base_learners, fold_x_train, fold_y_train)\n",
    "    P_base = predict_base_learners(base_learners, fold_x_train)\n",
    "    P_test = predict_base_learners(base_learners, fold_x_test)\n",
    "    \n",
    "    meta_learner.fit(P_base, fold_y_train, sample_weight=get_sample_weight(fold_y_train))\n",
    "    P_pred, p = ensemble_predict(base_learners, meta_learner, fold_x_test)\n",
    "\n",
    "    acc = accuracy_score(fold_y_test, np.float32(p > 0.5))\n",
    "    recall = recall_score(fold_y_test, np.float32(p > 0.5))\n",
    "    cm = confusion_matrix(fold_y_test, np.float32(p > 0.5))\n",
    "    roc = roc_auc_score(fold_y_test, p)\n",
    "    print(\"\\nEnsemble ROC-AUC score: %.3f\" % roc)\n",
    "    print(\"Ensemble ACC score: %.3f\" % acc)\n",
    "    \n",
    "    cv_scores.append({'acc': acc, 'recall': recall, 'confusion_matrix': cm, 'roc_auc_score': roc})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>acc</th>\n",
       "      <th>recall</th>\n",
       "      <th>confusion_matrix</th>\n",
       "      <th>roc_auc_score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.850575</td>\n",
       "      <td>0.794118</td>\n",
       "      <td>[[47, 6], [7, 27]]</td>\n",
       "      <td>0.875971</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>0.908046</td>\n",
       "      <td>0.720000</td>\n",
       "      <td>[[61, 1], [7, 18]]</td>\n",
       "      <td>0.955484</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0.827586</td>\n",
       "      <td>0.772727</td>\n",
       "      <td>[[55, 10], [5, 17]]</td>\n",
       "      <td>0.889860</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>0.908046</td>\n",
       "      <td>0.761905</td>\n",
       "      <td>[[63, 3], [5, 16]]</td>\n",
       "      <td>0.886724</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>0.837209</td>\n",
       "      <td>0.733333</td>\n",
       "      <td>[[50, 6], [8, 22]]</td>\n",
       "      <td>0.836310</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        acc    recall     confusion_matrix  roc_auc_score\n",
       "0  0.850575  0.794118   [[47, 6], [7, 27]]       0.875971\n",
       "1  0.908046  0.720000   [[61, 1], [7, 18]]       0.955484\n",
       "2  0.827586  0.772727  [[55, 10], [5, 17]]       0.889860\n",
       "3  0.908046  0.761905   [[63, 3], [5, 16]]       0.886724\n",
       "4  0.837209  0.733333   [[50, 6], [8, 22]]       0.836310"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.DataFrame(cv_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[276,  26],\n",
       "       [ 32, 100]], dtype=int64)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sum(pd.DataFrame(cv_scores)['confusion_matrix'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5,1,'Stacking: Confusion Matrix')"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cm = np.sum(pd.DataFrame(cv_scores)['confusion_matrix'])\n",
    "cm_norm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
    "sns.heatmap(cm_norm, cmap='Blues', annot=True)\n",
    "plt.xlabel('Predicted labels')\n",
    "plt.ylabel('True labels')\n",
    "plt.title('Stacking: Confusion Matrix')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "cv_results['stacking'] = pd.DataFrame(cv_scores)['acc']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting models\n",
      "svm...knn...no sample_weight\n",
      "naive bayes...mlp...no sample_weight\n",
      "random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "\n",
      "Ensemble ROC-AUC score: 0.956\n",
      "Ensemble ACC score: 0.851\n",
      "Fitting models\n",
      "svm...knn...no sample_weight\n",
      "naive bayes...mlp..."
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "no sample_weight\n",
      "random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "\n",
      "Ensemble ROC-AUC score: 0.901\n",
      "Ensemble ACC score: 0.816\n",
      "Fitting models\n",
      "svm...knn...no sample_weight\n",
      "naive bayes...mlp..."
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "no sample_weight\n",
      "random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "\n",
      "Ensemble ROC-AUC score: 0.971\n",
      "Ensemble ACC score: 0.839\n",
      "Fitting models\n",
      "svm...knn..."
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "no sample_weight\n",
      "naive bayes...mlp...no sample_weight\n",
      "random forest...gradientboost...logistic...adaboost..."
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "\n",
      "Ensemble ROC-AUC score: 0.904\n",
      "Ensemble ACC score: 0.816\n",
      "Fitting models\n",
      "svm...knn...no sample_weight\n",
      "naive bayes...mlp...no sample_weight\n",
      "random forest...gradientboost...logistic...adaboost...done.\n",
      "Generating base learner predictions.\n",
      "svm...knn...naive bayes...mlp...random forest...gradientboost...logistic...adaboost...done.\n",
      "\n",
      "Ensemble ROC-AUC score: 0.932\n",
      "Ensemble ACC score: 0.860\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hasee007\\AppData\\Roaming\\Python\\Python37\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "idx = list(range(len(X)))\n",
    "np.random.shuffle(idx)\n",
    "X = X[idx]\n",
    "y = y[idx]\n",
    "cv_scores_vote = []\n",
    "for i, (train_idx, test_idx) in enumerate(KFold(5).split(X)):\n",
    "    fold_x_train, fold_y_train = X[train_idx, :], y[train_idx]\n",
    "    fold_x_test, fold_y_test = X[test_idx, :], y[test_idx]\n",
    "    \n",
    "    base_learners = get_models()\n",
    "    meta_learner = GradientBoostingClassifier(\n",
    "       n_estimators=128,\n",
    "       loss=\"exponential\",\n",
    "       max_features=4,\n",
    "       max_depth=3,\n",
    "       subsample=0.5,\n",
    "       learning_rate=0.005, \n",
    "       random_state=seed\n",
    "    )\n",
    "    train_base_learners(base_learners, fold_x_train, fold_y_train)\n",
    "    P_test = predict_base_learners(base_learners, fold_x_test)\n",
    "    p_vote = P_test.mean(axis=1)\n",
    "    acc = accuracy_score(fold_y_test, np.float32(p_vote > 0.5))\n",
    "    recall = recall_score(fold_y_test, np.float32(p_vote > 0.5))\n",
    "    cm = confusion_matrix(fold_y_test, np.float32(p_vote > 0.5))\n",
    "    roc = roc_auc_score(fold_y_test, p_vote)\n",
    "    print(\"\\nEnsemble ROC-AUC score: %.3f\" % roc)\n",
    "    print(\"Ensemble ACC score: %.3f\" % acc)\n",
    "    \n",
    "    cv_scores_vote.append({'acc': acc, 'recall': recall, 'confusion_matrix': cm, 'roc_auc_score': roc})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "cv_results['voting'] = pd.DataFrame(cv_scores_vote)['acc']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>acc</th>\n",
       "      <th>recall</th>\n",
       "      <th>confusion_matrix</th>\n",
       "      <th>roc_auc_score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.850575</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>[[58, 5], [8, 16]]</td>\n",
       "      <td>0.956349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>0.816092</td>\n",
       "      <td>0.615385</td>\n",
       "      <td>[[55, 6], [10, 16]]</td>\n",
       "      <td>0.901009</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0.839080</td>\n",
       "      <td>0.566667</td>\n",
       "      <td>[[56, 1], [13, 17]]</td>\n",
       "      <td>0.971345</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>0.816092</td>\n",
       "      <td>0.818182</td>\n",
       "      <td>[[53, 12], [4, 18]]</td>\n",
       "      <td>0.904196</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>0.860465</td>\n",
       "      <td>0.800000</td>\n",
       "      <td>[[50, 6], [6, 24]]</td>\n",
       "      <td>0.932143</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        acc    recall     confusion_matrix  roc_auc_score\n",
       "0  0.850575  0.666667   [[58, 5], [8, 16]]       0.956349\n",
       "1  0.816092  0.615385  [[55, 6], [10, 16]]       0.901009\n",
       "2  0.839080  0.566667  [[56, 1], [13, 17]]       0.971345\n",
       "3  0.816092  0.818182  [[53, 12], [4, 18]]       0.904196\n",
       "4  0.860465  0.800000   [[50, 6], [6, 24]]       0.932143"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.DataFrame(cv_scores_vote)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[272,  30],\n",
       "       [ 41,  91]], dtype=int64)"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sum(pd.DataFrame(cv_scores_vote)['confusion_matrix'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5,1,'Voting: Confusion Matrix')"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#cm = np.sum(pd.DataFrame(cv_scores)['confusion_matrix'])\n",
    "cm_norm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
    "sns.heatmap(cm_norm, cmap='Blues', annot=True)\n",
    "plt.xlabel('Predicted labels')\n",
    "plt.ylabel('True labels')\n",
    "plt.title('Voting: Confusion Matrix')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>svm</th>\n",
       "      <th>knn</th>\n",
       "      <th>naive bayes</th>\n",
       "      <th>mlp</th>\n",
       "      <th>random forest</th>\n",
       "      <th>gradientboost</th>\n",
       "      <th>logistic</th>\n",
       "      <th>adaboost</th>\n",
       "      <th>stacking</th>\n",
       "      <th>voting</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.534091</td>\n",
       "      <td>0.477273</td>\n",
       "      <td>0.579545</td>\n",
       "      <td>0.477273</td>\n",
       "      <td>0.522727</td>\n",
       "      <td>0.386364</td>\n",
       "      <td>0.534091</td>\n",
       "      <td>0.443182</td>\n",
       "      <td>0.850575</td>\n",
       "      <td>0.850575</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>0.863636</td>\n",
       "      <td>0.727273</td>\n",
       "      <td>0.840909</td>\n",
       "      <td>0.693182</td>\n",
       "      <td>0.750000</td>\n",
       "      <td>0.772727</td>\n",
       "      <td>0.875000</td>\n",
       "      <td>0.715909</td>\n",
       "      <td>0.908046</td>\n",
       "      <td>0.816092</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0.930233</td>\n",
       "      <td>0.883721</td>\n",
       "      <td>0.895349</td>\n",
       "      <td>0.860465</td>\n",
       "      <td>0.848837</td>\n",
       "      <td>0.837209</td>\n",
       "      <td>0.895349</td>\n",
       "      <td>0.918605</td>\n",
       "      <td>0.827586</td>\n",
       "      <td>0.839080</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>0.837209</td>\n",
       "      <td>0.790698</td>\n",
       "      <td>0.860465</td>\n",
       "      <td>0.883721</td>\n",
       "      <td>0.802326</td>\n",
       "      <td>0.837209</td>\n",
       "      <td>0.813953</td>\n",
       "      <td>0.802326</td>\n",
       "      <td>0.908046</td>\n",
       "      <td>0.816092</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>0.953488</td>\n",
       "      <td>0.860465</td>\n",
       "      <td>0.976744</td>\n",
       "      <td>0.988372</td>\n",
       "      <td>0.953488</td>\n",
       "      <td>0.976744</td>\n",
       "      <td>0.930233</td>\n",
       "      <td>0.930233</td>\n",
       "      <td>0.837209</td>\n",
       "      <td>0.860465</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        svm       knn  naive bayes       mlp  random forest  gradientboost  \\\n",
       "0  0.534091  0.477273     0.579545  0.477273       0.522727       0.386364   \n",
       "1  0.863636  0.727273     0.840909  0.693182       0.750000       0.772727   \n",
       "2  0.930233  0.883721     0.895349  0.860465       0.848837       0.837209   \n",
       "3  0.837209  0.790698     0.860465  0.883721       0.802326       0.837209   \n",
       "4  0.953488  0.860465     0.976744  0.988372       0.953488       0.976744   \n",
       "\n",
       "   logistic  adaboost  stacking    voting  \n",
       "0  0.534091  0.443182  0.850575  0.850575  \n",
       "1  0.875000  0.715909  0.908046  0.816092  \n",
       "2  0.895349  0.918605  0.827586  0.839080  \n",
       "3  0.813953  0.802326  0.908046  0.816092  \n",
       "4  0.930233  0.930233  0.837209  0.860465  "
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cv_results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7gAAAInCAYAAACyfvV5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3XlcVPXi//H3zLCDgg4guVsqrlz9lktmasvN0rhpWVmmeSPbbter3iJTy36VS2rXysrK7FbeFssUJc2srNuCtpdpgqKluYAwuLHDzPn94XWSFAFhOHB4PR+PHg/OmTOf82ZS5D3nzOdjMwzDEAAAAAAA9Zzd7AAAAAAAANQECi4AAAAAwBIouAAAAAAAS6DgAgAAAAAsgYILAAAAALAECi4AAAAAwBIouACAGjN79mwNGjRIV111la666ipNmDDhlMd9+eWXiouL8x53/L833njjtONPnjxZixcvPml/Tk6OYmNjy33exx9/rNGjR+uqq67S0KFDNWHCBO3fv79q31w1eDweXXrppVq9evVJjz3yyCN69NFHT/v80aNHa+3atcrMzNTIkSNPeczDDz+sBQsWVJjllltuUU5OjiRp3LhxSk9Pr8R3UHnr169XbGys1qxZU6PjAgBQGX5mBwAAWMf333+vf/3rX/q///u/Co9t3bq1Vq5c6fNMycnJWrhwoRYuXKg2bdrIMAy98MILGjNmjFavXq2AgACfZ7Db7Ro5cqSWLVumoUOHevcXFhYqOTlZb775ZqXGadasWaWPLc8XX3zh/XrRokXVGutUXn/9dcXHx+vll1/WkCFDanx8AABOh4ILAKgRxcXF+vnnn/Xiiy/qt99+U9u2bXX//ferefPmVR5r6dKlWrJkiex2uyIjI/XAAw+oXbt2ZY5Zt26d5s+fr+DgYHXr1q3csebPn69HHnlEbdq0kSTZbDbddtttOuuss1RcXKx3331Xy5YtU0FBgcLCwrRkyRI988wzWr16tRwOh9q1a6cHHnhAUVFRWrdunRYuXCibzSaHw6HExET16tWr3P0nuuaaa/T0009r7969atGihSTpvffeU7du3XT22WcrPz9fDz30kHbt2qVDhw4pNDRU8+bN09lnn+0dY8+ePYqPj9f333+v3NxcTZ06VampqYqOjpbD4dC5554r6dgV6+eff17FxcXKycnRsGHDNGHCBN1///2SpJtvvlkvvPCCRo0apSeffFLdu3cv9zWfPHmywsLClJaWpoyMDMXGxuqxxx5TaGjoSa/1b7/9pq+++koff/yxhgwZoh9++EE9evSQJOXl5enRRx/Vd999J4fDoUsvvVQTJ05Ufn7+Kffff//96tChgxISEiQdu3p/fPviiy9WXFyc0tLSNGnSJPn5+Z3y+5WkZcuW6d///rfsdruaNGmixx57TM8884ycTqcmTpwoSVq5cqXWrVunZ555ppJ/QgEAdRW3KAMAakRmZqb69u2rCRMmaNWqVfrTn/6ku+66S4ZhnPL43bt3l7k9+Y477pAkbdiwQS+++KJeffVVrVq1SldeeaX+9re/lRknOztbU6ZM0YIFC7R8+XJvYfyjgwcPau/evSddUbbZbPrLX/6isLAwSVJ6erqWLFmiJUuW6J133tFnn32mZcuWKTk5WR06dNDkyZMlSXPmzNH06dO1fPly/eMf/9CXX3552v0natKkiS6//HItX77cu2/p0qW68cYbJUmffvqpGjdurKVLl+r9999Xt27d9Nprr5X7ej/11FMKCgrS2rVr9eSTT+qXX36RJBmGoZdeekmzZ8/W8uXLtXTpUr3wwgvKycnRrFmzJEmvvPKKzjrrLO9YFb3mmzdv1uLFi7VmzRrt3btXa9euPWWmN954Q4MGDZLT6dSQIUP08ssvl8lbVFSkNWvWKCkpSd99952++uqrcvdXpEOHDnrvvfd06aWXlvv9pqamat68eXrxxReVnJysiy++WAsXLtSoUaP0zjvvqLS0VJL01ltvlXvrNwCgfqHgAgBqRKtWrbRo0SJ17NhRNptNCQkJ2r17t/bs2XPK44/fonz8v+eee06S9Nlnn2nIkCFq2rSpJOnqq69WZmZmmXG+/fZbdezYUe3bt5ckXX/99ac8h91+7J85j8dz2uyxsbHesvvpp5/q6quvVkhIiCRpzJgx2rhxo4qLizV06FDdfffdmjp1qo4cOaJx48ZJUrn7/+jGG2/UihUr5PF4lJ6ergMHDuiiiy6SJF1++eUaPny4lixZokcffVRfffWV8vPzy828YcMGDRs2TDabTU2bNtWf//xnScfK+3PPPactW7bo6aef1uzZs2UYhgoKCsodq6LX/MILL1RAQID8/f3VsWNHHT58+KQxiouLtXz5cg0bNkySNHz4cH3wwQfezzqnpKRoxIgRcjgcCggI0H/+8x/16dOn3P0VOe+88yr8fjds2KD+/ft7y/zYsWP18MMPq3PnzmrZsqU++eQT7dixQwcOHFD//v0rPCcAoO6j4AIAakRqaqqSkpLK7DMMQ/7+/ho3bpz3Su1HH3102nFOVUYNw/BebTtx33F+fqf+xE14eLjatm2rH3/88aTH/vGPfyg1NVWSvGX2+PltNluZ7ePnnjhxol5//XV169ZNy5cv16hRo067/4/i4uLUpEkTbdiwQUuXLtXIkSPlcDgkHfvs6tSpUxUUFKT4+HhdeeWV5V79PtVrcHyc/Px8DR8+XFu2bFGXLl2UmJgoPz+/045V0WseFBTk3W+z2U451po1a3TkyBE98sgjuvjiizVhwgTZbDYtWbJE0rH/Rye+rvv379fBgwfL3f/H85SUlJQ53/H/Z6f7fh0OR5mxCwsLtWPHDknyXsVdtmyZrrvuujLHAQDqLwouAKBG2O12zZgxQ7/99pukY4UtNjZWMTExWrRokfdK7SWXXHLacS688EKtWbPGO9PvO++8o4iICO9naCWpV69eSk9P9xbUE2/7/aO7775bM2bM0K5duyRJbrdbzz77rFJTU8t8vvXE87/zzjveq6dLlixRr169ZLfbdfHFF6ugoEA33HCDpk+frrS0NBUXF5e7/1RGjRqlFStW6IMPPtCIESO8+z///HMNHz5c1157rdq1a6f169fL7Xaf9nVatmyZPB6PDh8+7H3jYNeuXcrNzdWECRN08cUX68svv1RxcbG3xDocjpPeLKjMa16RN998U3fccYc+/vhjrV+/XuvXr9dDDz2kt99+W/n5+Tr//PO9V6+Li4s1fvx4ff311+Xub9KkiTZv3izp2O3v5d22fLrvt0+fPtqwYYMOHDjgzTh37lxJ0uDBg7V161a9//77uuaaayr9fQIA6jYmmQIA1IiOHTtq2rRpuvPOO+V2uxUTE6N//etfVR7nggsu0NixY3XzzTfL4/GoadOmev755723G0tS06ZNNW/ePN1zzz3y9/c/aUKnE8XHx8swDE2aNEmlpaUqKipS165d9corr5xyBuURI0Zo//79uvbaa+XxeNSmTRvNmzdPfn5+mjJliu655x7vVceZM2cqICCg3P2nMnToUM2ZM0cDBw703hIsHVu+58EHH9SyZcsk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WVOjR4+Wr6+vGjdurJYtW+r7779XiRIl1KlTJy1atEhnzpzRpEmT7O+XpC+++ML+Dbenp6e6deumkSNH6tSpU3J3d9dLL72kpk2bKiYmRrt379bp06cVERFhry8lJUXe3t4aPXq0atSoobi4OM2fP19ubm7y9/fXlClTNH78eCUlJalv37568803Hbatp02bpvXr16to0aIqWbKkWrRooblz56po0aLy9vZWTEyMRowYocTERCUlJalhw4aaMGGCJOW4jU+cOKGePXvq888/19mzZzVmzBidOXNGLi4uGjRokBo1aqSYmBglJibq2LFjOnnypLp06aLnn39e48eP14kTJ/Tqq6+qTZs2unDhgnr16qWkpCQFBARo7Nix8vT01MaNGzVjxgzZbDaVK1dO48aNU4kSJbR7925NmDBBmZmZKlq0qMaNG6fy5ctrwYIFWrlypVxdXRUQEKBx48ZlW9bYsWMdtn3z0pEjRzRmzBilpKTIx8dHI0eOVEBAgP0cIzU1VVWrVtXXX3+tzZs3269CPvfccxoxYoQOHTokSerRo4fq1KmjDz/8UJJUpkwZnTp1SpLUv39/xcXF6X//93/l4uKihx56SFFRUfLw8HDOSuex69evKzIyUocOHdLZs2dVrVo1vfHGG3r//fe1bNkyFS1aVIULF1ZAQIAk6f3339fq1at1+fJleXh4aNq0aapYsaKknI9xZ8+ezbEtuHz5skaNGqWDBw/KxcVFvXr1Unh4uA4cOKAxY8bo+vXr8vLy0sSJExUfH6+kpCT16dNHixcvzvH4ml/kdv47atQozZo1S6mpqZo+fbquXLmitLQ0DR8+XMHBwTp58qSGDx+u8+fPy9vbW+PHj1fBggXt812/fr3efPNNLVy4UJMnT1a9evVUr1499evXT1WqVNH+/ftVvHhxzZw5U35+flq3bp2io6Pl4+OjBx54QFlZWZo0aZITt4zj9evXT6GhoWrdurUkqWPHjho7dqymTp2arQ3x8fHJtS1o0qSJWrdurW+//VZubm6aMWOGypUrpx07dmj8+PFyc3NTYGCgfv75Zy1atMhp6/qXGPxtMTExZt68ecYYY7744gszb94807hxY5OSkmKMMaZr165mz549ZsWKFaZZs2YmPT3dnDhxwlStWtVs3rzZGGNMRESE2bBhg9PWIb/Yvn27iYiIMCtWrDA9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y0vVq1dX2bJldeLECZUvX16tWrXS6NGj7d2ScltW0aJFFRgYqJCQEBUoUEB16tTJsXvk3cTLy0s9evTQxYsX9eyzz6py5crOLilPPfvss3rllVfk7e2te+65J9f99abg4GDt3btXISEhKlGihCpVqiRJql69up599lk9/vjjunbtmmrWrKlXX331b9c3cuRIjRkzxv4oovHjx6tUqVK3TTdlyhRFRkZq/vz58vDw0PTp0+Xh4aEXX3xRTz/9tLy8vFS8eHFNmjRJhQsXVpkyZfT444877OYdzZo1065du9ShQwcVKVJEpUqVuq27/xNPPKHIyEjNnTtXBQsWVO3atXXixAl16dIlx218q1GjRmnMmDH2dmby5MnZbhTzW5UqVVJ6erqGDBmizp07q3LlyhoxYoSSk5PVoEEDde7cWW5ubho3bpz69euna9euqUyZMpowYYL9xnlRUVG6fPmyihQpounTp6tYsWLq2rWrOnfurAIFCqhChQrq1KmTMjMz7cvKrQ37t7m5/8TExMjDw0MxMTHy9PTUyJEjNXToUC1btkzVq1e/rYty06ZNFR8fr3bt2snLy0vt27dXtWrVkOldYAAACmJJREFUlJaWpqFDh2br6lm6dGmNHDnS3sMnMDBQHTt2/KdX1WG6dOmiwYMHa+3atfLw8FCdOnWUmpqqJ554Qp07d7Z/7qQbP2FasmSJ2rZtK2OM6tata79Rl5TzMS63tqBv376KjIxUaGiosrKy9Nxzz6lmzZp67rnnNHLkSL355pvy8PBQZGSkpBufzT59+mj+/Pn5+hwxp/Pfn3/+WWPHjtXrr7+uzp07q127dnJ3d1eDBg105coVZWRkaMyYMRo1apQ++OADFShQ4LYw26dPH7Vv395+48U7KVasmEaNGqWnn35anp6e8vf3v+0zYlUPP/yw0tPT7XdGzq0NuXnBIKdu37/l6empyZMna+jQoXJ1dVWFChWy9frJL1zMnfq9AEAeMMZo8+bNWrJkif3u4vhjbt4ptX///k6uBPnNrl27dPToUXXo0EHXrl1T165d9dprr9l/W4X84b333lOjRo1UuXJl/fDDDxo9enSeP/cZyK8uXLigRYsWqV+/fnJ1ddX48eNVvnx5hz5n28psNpumTp2qfv36ycfHRwsWLFBiYqKGDRvm7NL+FK7gAnC41157TRs3bvzLz88E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\n",
      "text/plain": [
       "<Figure size 1152x648 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplots(figsize=(16, 9))\n",
    "colors = sns.color_palette(\"Blues\", len(base_learners.keys()))\n",
    "colors.append((0.8901960784313725, 0.10196078431372549, 0.10980392156862745))\n",
    "colors.append((0.8901960784313725, 0.10196078431372549 * 2, 0.10980392156862745 * 2))\n",
    "dx = sns.boxplot(data=cv_results, palette=colors, boxprops=dict(alpha=1.0),showfliers = False)\n",
    "dx = sns.stripplot(data=cv_results,\n",
    "                   jitter=True,\n",
    "                   color=\".3\",\n",
    "                   dodge=True,\n",
    "                   marker='o', \n",
    "                   alpha=1.0)\n",
    "dx.set(xlabel='Classifcation Methods',ylabel='Accuracy', title='5-Fold Cross Validation Accuracy')\n",
    "sns.set(style='white')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Stacking ACC Result 0.8662924351777599 +/- 0.06972955779143106\n",
      "Stacking ROC-AUC Result 0.8888698129072086 +/- 0.07679570822999876\n"
     ]
    }
   ],
   "source": [
    "score = np.mean(pd.DataFrame(cv_scores)['acc'])\n",
    "std = 2 * np.std(pd.DataFrame(cv_scores)['acc'])\n",
    "print('{} ACC Result {} +/- {}'.format('Stacking', score, std))\n",
    "\n",
    "score = np.mean(pd.DataFrame(cv_scores)['roc_auc_score'])\n",
    "std = 2 * np.std(pd.DataFrame(cv_scores)['roc_auc_score'])\n",
    "print('{} ROC-AUC Result {} +/- {}'.format('Stacking', score, std))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Voting ACC Result 0.8364608393477679 +/- 0.03591158164506644\n",
      "Voting ROC-AUC Result 0.9330083448331938 +/- 0.055637238470835695\n"
     ]
    }
   ],
   "source": [
    "score = np.mean(pd.DataFrame(cv_scores_vote)['acc'])\n",
    "std = 2 * np.std(pd.DataFrame(cv_scores_vote)['acc'])\n",
    "print('{} ACC Result {} +/- {}'.format('Voting', score, std))\n",
    "\n",
    "score = np.mean(pd.DataFrame(cv_scores_vote)['roc_auc_score'])\n",
    "std = 2 * np.std(pd.DataFrame(cv_scores_vote)['roc_auc_score'])\n",
    "print('{} ROC-AUC Result {} +/- {}'.format('Voting', score, std))"
   ]
  },
  {
   "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.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}