{ "cells": [ { "cell_type": "code", "execution_count": 9, "id": "aa8e6177", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:32] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "AUC (XGBoost): 0.6875\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:32] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:33] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:34] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:35] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:36] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:37] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:38] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:39] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:40] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:41] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:42] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:43] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:44] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:45] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:46] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:47] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:48] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:49] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:50] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:51] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:52] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:53] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:54] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:55] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:56] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:57] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:58] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:41:59] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:00] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:01] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:02] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:03] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:04] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:05] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:06] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:07] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:08] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:09] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:10] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:11] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:12] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:13] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:14] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:15] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:16] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n", "c:\\Users\\zahra\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [19:42:17] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0c55ff5f71b100e98-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:740: \n", "Parameters: { \"use_label_encoder\" } are not used.\n", "\n", " warnings.warn(smsg, UserWarning)\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACGjklEQVR4nOzdeXgT1f7H8U+6JCmlhKWUtlBKQSj77oIVFVAQ3FFBUVnEBVER0asgV1lUcLtc1CsgyuJyRRRQ0YsiKkUUVJQiIAioLAWLla2FQpe05/dHf42GtpBg0jbh/XqePE3OnJl8p5OZyTfnzBmLMcYIAAAAAAD4XEhlBwAAAAAAQLAi6QYAAAAAwE9IugEAAAAA8BOSbgAAAAAA/ISkGwAAAAAAPyHpBgAAAADAT0i6AQAAAADwE5JuAAAAAAD8hKQbAAAAAAA/IekG4HLLLbfIZrNpw4YNpaY9+eSTslgs+uCDD9zKs7Oz9eSTT+rss89WzZo1FR4ernr16umSSy7Rm2++qby8PFfdHTt2yGKxuD1q1Kihdu3aaerUqSosLPT7Op7MtGnTNHfuXI/rN2rUyG19qlevrrPPPluvvfaa/4L8i7lz58pisWjHjh2usgsvvFAXXnih18uaNGmS3nvvPZ/FVqJku5/s/5qamur2vwwNDVW9evV03XXXafPmzT6NqVGjRrrssst8ukyLxaK77777pPVK1jM1NdVVNn78eFksFrd6x2/Ho0ePavz48W7zlSjrc1BVebNeJf+Xffv2nfL7/fe//1WHDh1kt9sVHR2tAQMGKD09vVS94/flksewYcPc6qWnp6tPnz6qUaOGWrRooffff7/Ust555x3VqVNHf/zxh1exrl+/XkOGDFFSUpLsdruqV6+ujh076umnn9aBAwe8W3EvpaWl6YILLpDD4ZDFYtHUqVPL/KyWZ/DgwWrUqJFfY6wIgwcPVvXq1U9p3k2bNmn8+PEBsR9KgXXcAAJdWGUHAKDqmDp1qj777DMNGjRI33zzjcLDwyVJGzZs0Lhx4zR48GBdfvnlrvrbtm3TJZdcoszMTN1+++0aO3asatWqpYyMDC1dulS33HKLNm/erMcee8ztfe655x4NGDBAknTo0CEtXrxY9913n9LT0/Wvf/2r4la4DNOmTVN0dLQGDx7s8TwpKSl69tlnJUm7d+/Ws88+q0GDBiknJ0d33nmnnyIt37Rp005pvkmTJunaa6/VVVdd5duATiGObt26KT8/X999950mTpyozz77TBs2bFD9+vUrNTZf6Nixo1avXq2WLVuesN7x2/Ho0aOaMGGCJJX6UeXSSy/V6tWrFRcX59NY/cGb9fq7XnjhBY0YMUK33nqrnnzySe3evVuPPPKIunbtqrS0NNWqVcut/l/35RL16tVzez1o0CDl5eVpwYIFSk1NVb9+/bRp0yY1adJEkpSVlaV7771Xzz77rOrWretxrC+//LKGDx+u5ORk/eMf/1DLli1VUFCg7777TjNmzNDq1av17rvvnuJ/4uRuueUW5eTk6K233lKtWrXUqFEjVatWzaPPKopt2rRJEyZM0IUXXhgUP0AA8B2SbgAuNWrU0KxZs9SzZ089/vjjmjBhggoKCnTzzTerXr16mjp1qquu0+nUVVddpQMHDujbb79VixYt3JbVr18/Pfroo0pLSyv1Pg0bNtQ555zjen3JJZdo48aNmjdvXqUn3aeiZs2abutz0UUXKTExUVOmTCk36S4sLJTT6ZTNZvN5PIH+Bblp06au/+f555+vmjVraujQoZo7d67Gjh1b5jxHjx5VtWrVKjLMU1ajRg23z0t5vNmOdevW9SrBq0wV9fnMy8vTI488ossvv1wvv/yy2/ufe+65evbZZ/XEE0+4zXP8vny8o0ePKjU1VV999ZW6dOminj17asGCBVq2bJkr6X7ooYeUnJysIUOGeBzr6tWrdeedd+riiy/We++953ZcuPjii3X//ffr448/9nh5p2Ljxo267bbb1Lt3b7dyTz6r8K9AOr4BKBvdywG4ueiiizRs2DBNmjRJ33//vcaPH68ffvhBs2bNksPhcNV79913tWnTJo0dO7ZUwl0iMTHR41ZTh8PhalkvUVRUpKefflrNmzeXzWZTTEyMBg4cqN27d5eaf/bs2WrXrp3sdrtq166tq6++ulSX5F9//VXXX3+94uPjZbPZVK9ePfXo0UPr1q2TVNy99Mcff9SKFStcXUtPpbWiZs2aSk5O1s6dOyX92b366aef1uOPP66kpCTZbDYtX75ckvTdd9/piiuuUO3atWW329WhQwe9/fbbpZb79ddfKyUlRXa7XfHx8RozZowKCgpK1Sure3leXp4mTpyoFi1ayG63q06dOurWrZtWrVolqbhrdE5Ojl599VXXuv91GXv37tUdd9yhBg0ayGq1KikpSRMmTJDT6XR7n99++039+vVTVFSUHA6H+vfvr71793r9P/yrki/9Jf/Pki7Ha9eu1bXXXqtatWq5Ep7c3FyNGTNGSUlJslqtql+/vu666y4dOnSozGW/++67atu2rex2uxo3bqznn3/ebXpubq7uv/9+tW/fXg6HQ7Vr11aXLl3K7FJc4qWXXlKzZs1ks9nUsmVLvfXWW27TPe2y+9ftuGPHDldSPWHCBNc2KumRUV430U8//VQ9evRQjRo1VK1aNaWkpOizzz5zq/PHH3/o9ttvV0JCgmw2m+rWrauUlBR9+umn5cb2448/ymKx6J133nGVff/997JYLGrVqpVb3SuuuEKdOnU6pfUq8fvvv+uGG26Qw+FQvXr1dMsttygrK+uE/7+NGzcqKytLffr0cSvv0qWLateurYULF55w/rLk5+fLGKPIyEhXWfXq1ZWbmytJWrVqlV577TW99NJLXi130qRJslgsmjlzZpk/xFmtVl1xxRWu154eGy+88EK1bt1aa9asUdeuXVWtWjU1btxYTz75pIqKiiT9+dlxOp2aPn26axtI5X9W586dq+TkZNlsNrVo0aLcy2ny8/P1+OOPu+KsW7euhgwZUqrbfcnlHh9//LE6duyoiIgINW/eXLNnzy61zD179rg+r1arVfHx8br22mv1+++/u+pkZ2frgQcecDsOjBw5Ujk5OSfYCuXzJL65c+fquuuukyR169bN9X/862U1nuyP5R3fpk6dKovFop9//rlUfA899JCsVqvrMoxly5bpyiuvVIMGDWS323XGGWfojjvu8OgyjbS0NF122WWKiYmRzWZTfHy8Lr300jLPuwC8YADgOEeOHDGNGzc2jRo1MqGhoWbYsGGl6tx2221GktmyZYvHy92+fbuRZJ566ilTUFBgCgoKzL59+8ysWbNMWFiYGTt2rFv922+/3Ugyd999t/n444/NjBkzTN26dU1CQoL5448/XPUmTZpkJJkbbrjB/O9//zOvvfaaady4sXE4HGbr1q2uesnJyeaMM84wr7/+ulmxYoVZuHChuf/++83y5cuNMcasXbvWNG7c2HTo0MGsXr3arF692qxdu/aE65SYmGguvfRSt7L8/HwTExNj4uPj3da7fv36plu3bmbBggXmk08+Mdu3bzeff/65sVqtpmvXrmb+/Pnm448/NoMHDzaSzJw5c1zL/PHHH021atVMy5Ytzbx588z7779vevXqZRo2bGgkme3bt7vqXnDBBeaCCy5wvS4oKDDdunUzYWFh5oEHHjBLliwxixcvNg8//LCZN2+eMcaY1atXm4iICNOnTx/Xuv/444/GGGMyMjJMQkKCSUxMNC+99JL59NNPzWOPPWZsNpsZPHiw632OHj1qWrRoYRwOh3nhhRfM0qVLzYgRI1wx/nV9yrJ8+XIjybzzzjtu5e+//76RZB5++GFjjDHjxo0zkkxiYqJ56KGHzLJly8x7771nioqKTK9evUxYWJh55JFHzCeffGKeffZZExkZaTp06GByc3Pdtlv9+vVNw4YNzezZs82SJUvMjTfeaCSZZ555xlXv0KFDZvDgweb11183n3/+ufn444/NAw88YEJCQsyrr77qFqckk5CQ4NpGixcvNpdcckmpdSpZz5LP3V/X6a/+uh1zc3PNxx9/bCSZoUOHurbRzz//bIwxZs6cOaU+B6+//rqxWCzmqquuMosWLTIffPCBueyyy0xoaKj59NNPXfV69epl6tata2bOnGlSU1PNe++9Zx599FHz1ltvnXB7xcXFmdtvv931+sknnzQRERFGktmzZ48xpvizV6NGDfPggw+e0nqV/F+Sk5PNo48+apYtW2amTJlibDabGTJkyAnjW7VqlZFkZs+eXWbsISEh5tixY66yxMREExUVZapXr27CwsJMixYtzLPPPmucTqfbvM2bNzcDBw40Bw4cMO+++64JCQkx33zzjcnPzzetWrUyEydOPGFcx3M6naZatWrm7LPP9ngeT4+NF1xwgalTp45p2rSpmTFjhlm2bJkZPny4keT6/GZmZprVq1cbSebaa691bQNjyv6slnzWrrzySvPBBx+YN954w5xxxhmuY0SJwsJCc8kll5jIyEgzYcIEs2zZMvPKK6+Y+vXrm5YtW5qjR4+66iYmJpoGDRqYli1bmtdee80sXbrUXHfddUaSWbFihave7t27TVxcnImOjjZTpkwxn376qZk/f7655ZZbzObNm40xxuTk5Jj27du71XnuueeMw+Ew3bt3N0VFRSf83w4aNMhERka6lXkSX2Zmputc9OKLL7r+j5mZmcYYz/fH8o5vf/zxh7FaraXOk06n08THx5u+ffu6yqZPn24mT55sFi9ebFasWGFeffVV065dO5OcnGzy8/NLbcuS48aRI0dMnTp1TOfOnc3bb79tVqxYYebPn2+GDRtmNm3adML/G4ATI+kGUKY333zTSDKxsbHm8OHDpaaXJBN/TWSMMaaoqMiVUBcUFLh9YS1JPst6DB482K3u5s2bjSQzfPhwt+V/8803bgnYwYMHXcniX+3atcvYbDYzYMAAY4wx+/btM5LM1KlTT7jerVq1cktYTyYxMdH06dPHtb7bt283gwYNMpLMP/7xD7f1btKkidsXHmOKv8B36NDBFBQUuJVfdtllJi4uzhQWFhpjjOnfv7+JiIgwe/fuddVxOp2mefPmJ026X3vtNSPJvPzyyydcl8jISDNo0KBS5XfccYepXr262blzp1v5s88+ayS5kvPp06cbSeb99993q1fyA42nSff8+fNNQUGBOXr0qPniiy/MGWecYUJDQ80PP/xgjPnzS+mjjz7qNn9J8vb000+7lc+fP99IMjNnznSVJSYmGovFYtatW+dW9+KLLzY1atQwOTk5ZcbodDpNQUGBGTp0qOnQoYPbNEnlbqMzzjij1Hp6k3QbY8wff/xhJJlx48aViuv4L885OTmmdu3a5vLLL3erV1hYaNq1a2fOOussV1n16tXNyJEjy1zfE7nppptM48aNXa8vuugic9ttt5latWq5ErqvvvrKSDKffPLJKa1Xyf/l+G06fPhwY7fbT5hA7d+/34SEhJihQ4e6lf/888+u485vv/3mtszZs2ebFStWmPfee8/1I8xNN93kNv9XX31lYmNjjSQTEhLi+hw+9thjpmXLliYvL6/cmMqyd+9eI8lcf/31HtX39NhoTPH/WpL55ptv3Oq2bNnS9OrVy61Mkrnrrrvcyo7/rBYWFpr4+HjTsWNHt//9jh07THh4uFvSPW/ePCPJLFy40G2Za9asMZLMtGnTXGWJiYnGbre7HWOOHTtmateube644w5X2S233GLCw8NPmABOnjzZhISEmDVr1riVL1iwwEgyS5YsKXdeY8pPuj2J75133im1bxvj3f5Y3vHNGGP69u1rGjRo4DovGGPMkiVLjCTzwQcflLk+JefknTt3ljo+H3/c+O6774wk895775Xz3wFwquheDqCUoqIivfDCCwoJCVFmZqZ++OEHj+d97rnnFB4e7nq0a9euVJ17771Xa9as0Zo1a7R8+XJNmjRJb7/9tm644QZXnZKu18d3Mz3rrLPUokULV5e81atX69ixY6XqJSQkqHv37q56tWvXVpMmTfTMM89oypQpSktLc3Wv/LuWLFniWt+kpCS9/fbbuueee/T444+71bviiivcutD//PPP+umnn3TjjTdKKr5OvuTRp08fZWRkaMuWLa7/R48ePdwGdQoNDVX//v1PGt9HH30ku92uW2655ZTW78MPP1S3bt0UHx/vFmPJtZ8rVqxwxRgVFeXWDVaSa9A8T/Xv31/h4eGqVq2azj//fBUWFmrBggVq27atW71rrrnG7fXnn38uqfRn5rrrrlNkZGSpbpytWrUq9fkcMGCAsrOztXbtWlfZO++8o5SUFFWvXl1hYWEKDw/XrFmzyhxRvbxt9PPPP1do98xVq1bpwIEDGjRokNs2Kyoq0iWXXKI1a9a4utqeddZZmjt3rh5//HF9/fXXZV6yUJYePXro119/1fbt25Wbm6svv/xSl1xyibp166Zly5ZJKu5Oa7PZdN555/2t9Tn+M9W2bVvl5uYqMzOz3Hlq166tG2+80dXd+8CBA1q/fr1uvPFGhYaGSpJCQv78GvTiiy9qyJAhOv/883XllVfqjTfe0N1336033njDbWyKc889V7t27dJPP/2kAwcOaMKECdq2bZsmTZqkl156SWFhYRo3bpwaNmyo2NhY3X333a7u577g6bGxRGxsrM466yy3srZt27ou1/DGli1b9Ntvv2nAgAFuo+0nJibq3HPPdav74YcfqmbNmrr88svdPoPt27dXbGxsqS7r7du3V8OGDV2v7Xa7mjVr5hbnRx99pG7dupV7SVPJ+7Zu3Vrt27d3e99evXp5PBJ7WTyJrzze7I8ljj++SdKQIUO0e/dut0s/5syZo9jYWLdr8TMzMzVs2DAlJCS4jlmJiYmSdMI7QZxxxhmqVauWHnroIc2YMUObNm066boB8AxJN4BSnn32Wa1evVpvvvmmmjZtqltuuUXHjh1zq1Py5eP4LxwDBgxwJdQdO3Ysc/kNGjRQ586d1blzZ1144YUaM2aMHnnkEb3zzjtaunSpJGn//v2SVOZozPHx8a7pntazWCz67LPP1KtXLz399NPq2LGj6tatqxEjRujw4cMe/2/Kct5552nNmjX67rvvtGnTJh06dEjPP/+8rFarW73jYyy5BvGBBx5w+6EiPDxcw4cPlyTXNXj79+9XbGxsqfcuq+x4f/zxh+Lj490SDG/8/vvv+uCDD0rFWHLt7l9jPH6kZ09j/KunnnpKa9as0dq1a7Vr1y79+uuvZY4NcPz/c//+/QoLCys1oJjFYlFsbKzrs3CiuErKSuouWrRI/fr1U/369fXGG29o9erVWrNmjW655ZYyEylPllkRSj5b1157bant9tRTT8kY47oF1fz58zVo0CC98sorruudBw4ceNJr8S+66CJJxYn1l19+qYKCAnXv3l0XXXSRK/H79NNPlZKSooiIiL+1PnXq1HF7XXLd8/HHpeNNnz5d/fv31/Dhw1WnTh116NBBzZs316WXXiqbzVZquce76aabJBWPp/BX4eHhSk5Odo1zMWzYMN18880677zzNGfOHM2ZM0efffaZ0tLStHLlSk2ePLnc94iOjla1atW0ffv2E8ZSwtNjXomy1tFms530f3ei9/bkWPT777/r0KFDslqtpT6De/fuLXV9sSdx/vHHH2rQoMEJY/z999+1fv36Uu8ZFRUlY8wp337u7/wfvdkfS5S1fXv37q24uDjNmTNHknTw4EEtXrxYAwcOdP2QVFRUpJ49e2rRokV68MEH9dlnn+nbb791fYZPFK/D4dCKFSvUvn17Pfzww2rVqpXi4+M1btw4j3+MA1A2Ri8H4GbTpk169NFHNXDgQPXv31+JiYlKSUnR2LFjNWXKFFe9iy++WDNnztTixYv1wAMPuMpjYmIUExMjSYqKinK7T/eJlLRi/vDDD+rVq5frC05GRkapL1m//faboqOjJcmt3vH+Wk8qbo2ZNWuWJGnr1q16++23NX78eOXn52vGjBkexVkWh8Ohzp07n7Te8fdhLoltzJgx6tu3b5nzJCcnSypez7KSIE8GKatbt66+/PJLFRUVnVLiHR0drbZt25Ya6blEfHy8K8Zvv/32lGL8q8aNG5/S/7NOnTpyOp36448/3BJvY4z27t2rM88886RxlZSVfK7eeOMNJSUlaf78+W7vV97n2pNlVoSSz9YLL7xQ7ujTJT+QREdHa+rUqZo6dap27dqlxYsXa/To0crMzDzhiNkNGjRQs2bN9Omnn6pRo0bq3LmzatasqR49emj48OH65ptv9PXXX7tuB1YZIiMj9frrr+v5559Xenq64uPjFR0drebNm+vcc89VWNiJvwYZYyTphPvN3LlztWnTJtfAbB999JGuu+46NW3aVJI0dOhQvf766+X+H0JDQ9WjRw999NFH2r1790mTSk+Pjf5Q8t6eHIuio6NVp06dcj9DUVFRXr9/3bp1T9pjJDo6WhEREWUOwlYyvaJ5sz+WOP74JhV/Vm6++WY9//zzOnTokN58803l5eW5jZS/ceNG/fDDD5o7d64GDRrkKi9rALaytGnTRm+99ZaMMVq/fr3mzp2riRMnKiIiQqNHj/ZoGQBKo6UbgIvT6dSgQYMUHR2t5557TlLxyNGjRo3Sc889p6+++spV9+qrr1bLli01adIk/fTTT3/7vUtGEC9J2Lt37y6pOOn5qzVr1mjz5s3q0aOHpOKRiCMiIkrV2717tz7//HNXveM1a9ZM//znP9WmTRu3rsSn2gJ0KpKTk9W0aVP98MMPrpb/4x8lX0y7deumzz77zG2E3sLCQs2fP/+k79O7d2/l5ua6jaJblvLW/bLLLtPGjRvVpEmTMmMsSbq7deumw4cPa/HixW7zv/nmmyeN0RdKtvXxn4WFCxcqJyen1Gfhxx9/LHXpxJtvvqmoqChXLw2LxSKr1er2BXjv3r3ljl5e3jZq0qTJSZOpk/G0dVcqvt90zZo1tWnTpnI/W8f3xJCKe7Dcfffduvjii932i/JcdNFF+vzzz7Vs2TJdfPHFkor3rYYNG+rRRx9VQUGBq0XcF+t1qmrVqqW2bdsqOjpaixcv1pYtW3TvvfeedL6SUbnLS5T27dunBx54QM8995xq1qwpqThR/2tX4SNHjriS9/KMGTNGxhjddtttys/PLzW9oKBAH3zwgSTPj43+kJycrLi4OM2bN89tnXbu3Om6E0KJyy67TPv371dhYWGZn7+SHxS90bt3by1fvtx12U1ZLrvsMv3yyy+qU6dOme/rz/tnl/dZPtX9sSxDhgxRbm6u5s2bp7lz56pLly5q3ry5a3rJser4UfC9HVHfYrGoXbt2+ve//62aNWt6dDwAUD5augG4TJ48Wd99950++ugj1xdISXrsscf0wQcf6JZbbtG6desUERGh0NBQvffee+rVq5fOOuss3XbbbbrwwgtVq1YtHTp0SN98841++OGHMq+927Vrl6urW05OjlavXq3JkycrMTHR1eKbnJys22+/3XVtee/evbVjxw498sgjSkhI0H333Sep+PZcjzzyiB5++GENHDhQN9xwg/bv368JEybIbrdr3LhxkqT169fr7rvvdrVAWa1Wff7551q/fr3br/clv/LPnz9fjRs3lt1uV5s2bfz1L9dLL72k3r17q1evXho8eLDq16+vAwcOaPPmzVq7dq3rlkz//Oc/tXjxYnXv3l2PPvqoqlWrphdffNGjW+DccMMNmjNnjoYNG6YtW7aoW7duKioq0jfffKMWLVro+uuvd617amqqPvjgA8XFxSkqKkrJycmaOHGili1bpnPPPVcjRoxQcnKycnNztWPHDi1ZskQzZsxQgwYNNHDgQP373//WwIED9cQTT6hp06ZasmSJ65IBf7v44ovVq1cvPfTQQ8rOzlZKSorWr1+vcePGqUOHDrr55pvd6sfHx+uKK67Q+PHjFRcXpzfeeEPLli3TU0895bon7mWXXaZFixZp+PDhuvbaa5Wenq7HHntMcXFx2rZtW6kYoqOj1b17dz3yyCOKjIzUtGnT9NNPP5W6bdipiIqKUmJiot5//3316NFDtWvXVnR0dJlJRPXq1fXCCy9o0KBBOnDggK699lrFxMTojz/+0A8//KA//vhD06dPV1ZWlrp166YBAwaoefPmioqK0po1a/Txxx+X2/vir3r06KFp06Zp3759mjp1qlv5nDlzVKtWLbfbhf3d9fLWwoUL9dtvv6lFixbKzc1VamqqnnvuOQ0bNkxXXnmlq96bb76pRYsW6dJLL1ViYqIOHTqkd955R2+99ZYGDx5c5tgUkjRq1CidffbZ6tevn6usV69euv/++9WlSxdVr15dzz//vG699dYTxtmlSxdNnz5dw4cPV6dOnXTnnXeqVatWKigoUFpammbOnKnWrVvr8ssv9/jY6A8hISF67LHHdOutt+rqq6/WbbfdpkOHDmn8+PGlupdff/31+u9//6s+ffro3nvv1VlnnaXw8HDt3r1by5cv15VXXqmrr77aq/efOHGiPvroI51//vl6+OGH1aZNGx06dEgff/yxRo0apebNm2vkyJFauHChzj//fN13331q27atioqKtGvXLn3yySe6//77dfbZZ/vy3+LSunVrSdLMmTMVFRUlu92upKQk1alTx6P90RPNmzdXly5dNHnyZKWnp2vmzJmlpjdp0kSjR4+WMUa1a9fWBx984Bpn4UQ+/PBDTZs2TVdddZUaN24sY4wWLVqkQ4cOuX5UA3CK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v/yicePGefQ+eXl5ys7OdnsAAAAAAFARvL5Pd7Vq1TRt2jQ988wz+uWXX2SM0RlnnKHIyEg5nU6Pl7Nv3z4VFhaqXr16buX16tXT3r17y5xn27ZtGj16tFauXKmwMM9Cnzx5siZMmOBxXAAAAAAA+IrXLd0lIiMj1bZtW7Vr1047d+7U/fffr/r163u9HIvF4vbaGFOqTJIKCws1YMAATZgwQc2aNfN4+WPGjFFWVpbrkZ6e7nWMAAAAAACcCq9bukscOXJEb731lmbNmqU1a9bonHPO0ejRoz2ePzo6WqGhoaVatTMzM0u1fkvS4cOH9d133yktLU133323JKmoqEjGGIWFhemTTz5R9+7dS81ns9lks9m8XDsAAAAAAP4+r5PuL7/8Uq+88ooWLlyopKQkbdq0SStWrFBKSopXy7FarerUqZOWLVumq6++2lW+bNkyXXnllaXq16hRQxs2bHArmzZtmj7//HMtWLBASUlJ3q4KAACoQLm5ucrLyyt3us1mk91ur8CIAADwP4+T7qefflqzZ8/WkSNHdMMNN+jLL79Uu3btFB4e7nbPbm+MGjVKN998szp37qwuXbpo5syZ2rVrl4YNGyapuGv4nj179NprrykkJEStW7d2mz8mJkZ2u71UOQAAqHp27typrVu3yhjjutwrISHBdVlZs2bNlJycXJkhAgDgcx4n3Q8//LAeeughTZw4UaGhoT558/79+2v//v2aOHGiMjIy1Lp1ay1ZskSJiYmSpIyMjJPesxsAAASGxMRExcbGyul0KjU1VZKUkpLiGhyVy8EAAMHI44HUJk6cqHfeeUdJSUl66KGHtHHjRp8EMHz4cO3YsUN5eXn6/vvvdf7557umzZ0713VSLsv48eO1bt06n8QBAAD8y263y+FwyOFwyGq1ymq1ul47HA66lgMAgpLHSffDDz+srVu36vXXX9fevXt1zjnnqF27djLG6ODBg/6MEQAAAACAgOT1LcMuuOACvfrqq8rIyNCdd96pTp066YILLtC5556rKVOm+CNGAAAAAAAC0infpzsqKkrDhg3TN998o7S0NJ111ll68sknfRkbAAAAAAAB7ZST7r9q06aNpk6dqj179vhicQAAAAAABAWPku633nrLo4WFh4crPT1dX3311d8KCgAAAACAYOBR0j19+nQ1b95cTz31lDZv3lxqelZW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ZGnBd7v09a8WFRRJX3+4WU3rRemajg3Uur6jssMDAABByuuku0T16tV15pln+jIWAAD8YuOeLD3/2TYdyMlTZKhktUo1I8K1YXeW9hw8phE9mpJ4AwAAv/Ao6e7bt6/mzp2rGjVqqG/fviesu2jRIp8EBgCALxQVGS1cu1sHcvLVJDpSu3MPSpKq28J0Rky4fs48okVr96hlHF3NAQCA73mUdDscDlksFtdzAAACxY79Ofo584jiHBGuc1kJi8WiOEeEtmUe1o79OWpct3olRQkAAIKVR0n3nDlzynwOAEBVdzjXqbyCIkU4QiWZUtMjrKH6PbtIh3OdFR8cAAAIel7fp9vXpk2bpqSkJNntdnXq1EkrV64st+6iRYt08cUXq27duqpRo4a6dOmipUuXVmC0AIBAE2UPky08RMfyC8ucfiy/ULbwEEXZT3mYEwAAgHJ59A2jQ4cOpbrklWft2rUev/n8+fM1cuRITZs2TSkpKXrppZfUu3dvbdq0SQ0bNixV/4svvtDFF1+sSZMmqWbNmpozZ44uv/xyffPNN+rQoYPH7wsAOH00qhOpM2Kqa8PuLDWJruY2zRijjKxjatugphrViaykCAEAQDDzKOm+6qqrXM9zc3M1bdo0tWzZUl26dJEkff311/rxxx81fPhwr958ypQpGjp0qG699VZJ0tSpU7V06VJNnz5dkydPLlV/6tSpbq8nTZqk999/Xx988AFJNwCgTCEhFl3TsYH2HDymX/blyDgla6h0JM+pvdl5qh1pVd+O9RlEDQAA+IVHSfe4ceNcz2+99VaNGDFCjz32WKk66enpHr9xfn6+vv/+e40ePdqtvGfPnlq1apVHyygqKtLhw4dVu3Ztj98XAHD6aV3foRE9mhbfp3vzQR0qkEKPFahtg5rq27E+twsDAAB+4/UFbO+8846+++67UuU33XSTOnfurNmzZ3u0nH379qmwsFD16tVzK69Xr5727t3r0TL+9a9/KScnR/369Su3Tl5envLy8lyvs7OzPVo2ACC4tK7vULO6zfV63g4dc0q9urdQkxhuEwYAAPzL64HUIiIi9OWXX5Yq//LLL2W3270O4PhrxY0xHl0/Pm/ePI0fP17z589XTExMufUmT54sh8PheiQkJHgdIwAgOISEWBQTISVGSUnRkSTcAADA77xu6R45cqTuvPNOff/99zrn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/Pjxio+PV0REhC688EL9+OOPJ13uwoUL1bJlS9lsNrVs2VLvvvuun9YAnjrRti4oKNBDDz2kNm3aKDIyUvHx8Ro4cKB+++23Ey5z7ty5Ze7rubm5fl4blOdk+/TgwYNLba9zzjnnpMtln656Traty9o3LRaLnnnmmXKX6et9mqS7ksyfP18jR47U2LFjlZaWpq5du6p3797atWtXmfW3b9+uPn36qGvXrkpLS9PDDz+sESNGaOHChRUcObyxYsUK3XXXXfr666+1bNkyOZ1O9ezZUzk5OSedd8uWLcrIyHA9mjZtWgER41S1atXKbXtt2LCh3Lrsz4FrzZo1btt52bJlkqTrrrvuhPOxP1d9OTk5ateunf7zn/+UOf3pp5/WlClT9J///Edr1qxRbGysLr74Yh0+fLjcZa5evVr9+/fXzTffrB9++EE333yz+vXrp2+++cZfqwEPnGhbHz16VGvXrtUjjzyitWvXatGiRdq6dauuuOKKky63Ro0abvt5RkaG7Ha7P1YBHjjZPi1Jl1xyidv2WrJkyQmXyT5dNZ1sWx+/X86ePVsWi0XXXHPNCZfr033aoFKcddZZZtiwYW5lzZs3N6NHjy6z/oMPPmiaN2/uVnbHHXeYc845x28xwvcyMzONJLNixYpy6yxfvtxIMgcPHqy4wPC3jBs3zrRr187j+uzPwePee+81TZo0MUVFRWVOZ38OTJLMu+++63pdVFRkYmNjzZNPPukqy83NNQ6Hw8yYMaPc5fTr189ccsklbmW9evUy119/vc9jxqk5fluX5dtvvzWSzM6dO8utM2fOHONwOHwbHHymrO08aNAgc+WVV3q1HPbpqs+TffrKK6803bt3P2EdX+/TtHRXgvz8fH3//ffq2bOnW3nPnj21atWqMudZvXp1qfq9evXSd999p4KCAr/FCt/KysqSJNWuXfukdTt06KC4uDj16NFDy5cv93do+Ju2bdum+Ph4JSUl6frrr9evv/5abl325+CQn5+vN954Q7fccossFssJ67I/B7bt27dr7969bvutzWbTBRdcUO55Wyp/Xz/RPKh6srKyZLFYVLNmzRPWO3LkiBITE9WgQQNddtllSktLq5gAccpSU1MVExOjZs2a6bbbblNmZuYJ67NPB77ff/9d//vf/zR06NCT1vXlPk3SXQn27dunwsJC1atXz628Xr16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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "from scipy import io\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.metrics import roc_auc_score\n", "from sklearn.impute import SimpleImputer\n", "from sklearn.utils import resample\n", "import xgboost as xgb\n", "import matplotlib.pyplot as plt\n", "\n", "# Step 1: Load the data\n", "data_path = \"../data/\"\n", "suv_file = data_path + \"suv_percentilesSLOthenUWM.mat\"\n", "flags_file = data_path + \"flags_combined.mat\"\n", "\n", "# Load .mat files\n", "suv_dict = io.loadmat(suv_file)\n", "flags_dict = io.loadmat(flags_file)\n", "\n", "# Extract relevant data\n", "suv = suv_dict['lung_SUVperc_COMBINED'][0:58, :, :]\n", "flags = flags_dict['flags'][0:58, 3]\n", "\n", "# Step 2: Flatten and clean the data\n", "suv_flattened = suv.reshape(suv.shape[0], -1)\n", "\n", "# Impute missing values\n", "imputer = SimpleImputer(strategy='mean')\n", "suv_imputed = imputer.fit_transform(suv_flattened)\n", "\n", "# Standardize features\n", "scaler = StandardScaler()\n", "X_data = scaler.fit_transform(suv_imputed)\n", "\n", "# Prepare labels\n", "y = flags.astype(int).ravel()\n", "\n", "# Step 3: Split into train and test sets\n", "X_train, X_test, y_train, y_test = train_test_split(X_data, y, test_size=0.3, stratify=y, random_state=42)\n", "\n", "# Step 4: Define and train the XGBoost model\n", "model = xgb.XGBClassifier(\n", " n_estimators=1000,\n", " learning_rate=0.01,\n", " max_depth=4,\n", " subsample=0.8,\n", " colsample_bytree=0.8,\n", " reg_alpha=1,\n", " reg_lambda=1,\n", " use_label_encoder=False,\n", " eval_metric='logloss',\n", " random_state=42\n", ")\n", "model.fit(X_train, y_train)\n", "\n", "# Step 5: Evaluate AUC\n", "y_pred_prob = model.predict_proba(X_test)[:, 1]\n", "auc = roc_auc_score(y_test, y_pred_prob)\n", "print(f\"AUC (XGBoost): {auc:.4f}\")\n", "\n", "# Step 6: Bootstrap-based Confidence Intervals for predictions\n", "n_bootstraps = 100\n", "y_pred_distributions = []\n", "\n", "for i in range(n_bootstraps):\n", " X_train_boot, y_train_boot = resample(X_train, y_train, random_state=i)\n", " model_boot = xgb.XGBClassifier(\n", " n_estimators=1000,\n", " learning_rate=0.01,\n", " max_depth=4,\n", " subsample=0.8,\n", " colsample_bytree=0.8,\n", " reg_alpha=1,\n", " reg_lambda=1,\n", " use_label_encoder=False,\n", " eval_metric='logloss',\n", " random_state=42\n", " )\n", " model_boot.fit(X_train_boot, y_train_boot)\n", " y_pred_boot = model_boot.predict_proba(X_test)[:, 1]\n", " y_pred_distributions.append(y_pred_boot)\n", "\n", "# Convert to numpy array\n", "y_pred_distributions = np.array(y_pred_distributions)\n", "mean_preds = y_pred_distributions.mean(axis=0)\n", "lower_ci = np.percentile(y_pred_distributions, 2.5, axis=0)\n", "upper_ci = np.percentile(y_pred_distributions, 97.5, axis=0)\n", "\n", "# Step 7: Plot prediction intervals\n", "plt.figure(figsize=(10, 6))\n", "plt.errorbar(range(len(mean_preds)), mean_preds,\n", " yerr=[mean_preds - lower_ci, upper_ci - mean_preds],\n", " fmt='o', ecolor='gray', alpha=0.6, capsize=3)\n", "plt.title(\"XGBoost Predicted Probabilities with 95% Confidence Intervals\")\n", "plt.xlabel(\"Test Sample Index\")\n", "plt.ylabel(\"Predicted Probability (Adverse Event)\")\n", "plt.axhline(0.5, color='red', linestyle='--', alpha=0.7)\n", "plt.tight_layout()\n", "plt.show()\n" ] } ], "metadata": { "kernelspec": { "display_name": "base", "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.12.7" } }, "nbformat": 4, "nbformat_minor": 5 }