{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Predicting Substance Dependence from Multi-Site Data\n", "\n", "This notebook explores an example using data from the ENIGMA Addiction Consortium. Within this notebook we will be trying to predict between participants with any drug dependence (alcohol, cocaine, etc...), vs. healthy controls. The data for this is sources from a number of individual studies from all around the world and with different scanners etc... making this a challenging problem with its own unique considerations. Structural FreeSurfer ROIs are used. The raw data cannot be made available due to data use agreements.\n", "\n", "The key idea explored in this notebook is a particular tricky problem introduced by case-only sites, which are subject's data from site's with only case's. This introduces a confound where you cannot easily tell if the classifier is learning to predict site or the dependence status of interest.\n", "\n", "Featured in this notebook as well are some helpful\n", "code snippets for converting from BPt versions earlier than BPt 2.0 to valid BPt 2.0+ code." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/sage/anaconda3/envs/bpt/lib/python3.9/site-packages/nilearn/datasets/__init__.py:93: FutureWarning: Fetchers from the nilearn.datasets module will be updated in version 0.9 to return python strings instead of bytes and Pandas dataframes instead of Numpy arrays.\n", " warn(\"Fetchers from the nilearn.datasets module will be \"\n" ] } ], "source": [ "import pandas as pd\n", "import BPt as bp\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "from warnings import simplefilter\n", "from sklearn.exceptions import ConvergenceWarning\n", "simplefilter(\"ignore\", category=ConvergenceWarning)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Loading / Preparing Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a general tip it can be useful to wrap something like a series of steps that load multiple DataFrames and merge them into a function. That said, it is often useful when first writing the function to try it taking advantage of the interactive-ness of the jupyter-notebook." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def load_base_df():\n", " '''Loads and merges a DataFrame from multiple raw files'''\n", " \n", " na_vals = [' ', ' ', 'nan', 'NaN']\n", " \n", " # Load first part of data\n", " d1 = pd.read_excel('/home/sage/Downloads/e1.xlsx', na_values=na_vals)\n", " d2 = pd.read_excel('/home/sage/Downloads/e2.xlsx', na_values=na_vals)\n", " df = pd.concat([d1, d2])\n", "\n", " df['Subject'] = df['Subject'].astype('str')\n", " df.rename({'Subject': 'subject'}, axis=1, inplace=True)\n", " df.set_index('subject', inplace=True)\n", "\n", " # Load second part\n", " df2 = pd.read_excel('/home/sage/Downloads/e3.xlsx', na_values=na_vals)\n", " df2['Subject ID'] = df2['Subject ID'].astype('str')\n", " df2.rename({'Subject ID': 'subject'}, axis=1, inplace=True)\n", " df2.set_index('subject', inplace=True)\n", "\n", " # Merge\n", " data = df2.merge(df, on='subject', how='outer')\n", " \n", " # Rename age and sex\n", " data = data.rename({'Sex_y': 'Sex', 'Age_y': 'Age'}, axis=1)\n", " \n", " # Remove subject name to obsficate\n", " data.index = list(range(len(data.index)))\n", " \n", " return data" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(3525, 224)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = load_base_df()\n", "df.shape" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Setting NaN threshold to: 1762.5\n", "Dropped 20 Columns\n", "Dropped 3 Columns\n", "Dropped 36 Columns\n", "Num. categorical variables in dataset: 3\n", "to binary cols: ['Dependent any drug', 'Handedness', 'Sex']\n", "Dropped 479 Rows\n", "scope covars = ['Age', 'Education', 'Handedness', 'ICV', 'Sex']\n", "Setting NaN threshold to: 82.5\n", "Dropped 38 Rows\n", "Dropped 5 Rows\n" ] } ], "source": [ "# Cast to dataset\n", "data = bp.Dataset(df)\n", "data.verbose = 1\n", "\n", "# Drop non relevant columns\n", "data.drop_cols_by_nan(threshold=.5, inplace=True)\n", "data.drop_cols(scope='Dependent', inclusions='any drug', inplace=True)\n", "data.drop_cols(exclusions=['Half', '30 days', 'Site ',\n", " 'Sex_', 'Age_', 'Primary Drug', 'ICV.'], inplace=True)\n", "\n", "# Set binary vars as categorical\n", "data.auto_detect_categorical(inplace=True)\n", "data.to_binary(scope='category', inplace=True)\n", "print('to binary cols:', data.get_cols('category'))\n", "\n", "# Set target and drop any NaNs\n", "data.set_role('Dependent any drug', 'target', inplace=True)\n", "data.drop_nan_subjects('target', inplace=True)\n", "\n", "# Save this set of vars under scope covars\n", "data = data.add_scope(['ICV', 'Sex', 'Age', 'Education', 'Handedness'], 'covars')\n", "print('scope covars = ', data.get_cols('covars'))\n", "\n", "# Set site as non input\n", "data = data.set_role('Site', 'non input')\n", "data = data.ordinalize(scope='non input')\n", "\n", "# Drop subjects with too many NaN's and big outliers\n", "data.drop_subjects_by_nan(threshold=.5, scope='all', inplace=True)\n", "data.filter_outliers_by_std(n_std=10, scope='float', inplace=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Legacy Equivilent pre BPt 2.0 loading code**\n", "\n", "```\n", "ML = BPt_ML('Enigma_Alc',\n", " log_dr = None,\n", " n_jobs = 8)\n", " \n", "ML.Set_Default_Load_Params(subject_id = 'subject',\n", " na_values = [' ', ' ', 'nan', 'NaN'],\n", " drop_na = .5)\n", " \n", "ML.Load_Data(df=df,\n", " drop_keys = ['Unnamed:', 'Site', 'Half', 'PI', 'Dependent',\n", " 'Surface Area', 'Thickness', 'ICV', 'Subcortical',\n", " 'Sex', 'Age', 'Primary Drug', 'Education', 'Handedness'],\n", " inclusion_keys=None,\n", " unique_val_warn=None,\n", " clear_existing=True)\n", "\n", "ML.Load_Targets(df=df,\n", " col_name = 'Dependent any drug',\n", " data_type = 'b')\n", "\n", "ML.Load_Covars(df=df,\n", " col_name = ['ICV', 'Sex', 'Age'],\n", " drop_na = False,\n", " data_type = ['f', 'b', 'f'])\n", "\n", "ML.Load_Covars(df = df,\n", " col_name = ['Education', 'Handedness'],\n", " data_type = ['f', 'b'],\n", " drop_na = False,\n", " filter_outlier_std = 10)\n", "\n", "ML.Load_Strat(df=df,\n", " col_name=['Sex', 'Site'],\n", " binary_col=[True, False]\n", " )\n", "\n", "ML.Prepare_All_Data()\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's take a look at what we prepared. We can see that visually the Dataset is grouped by role." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot some variables of interest" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dependent any drug: 3003 rows\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "data.plot('target')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Site: 3003 rows\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "data.plot('Site')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Site: 3003 rows\n", "Dependent any drug: 3003 rows\n", "Plotting 3003 overlap valid subjects.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "data.plot_bivar('Site', 'Dependent any drug')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That bi-variate plot is a little hard to read... we can make it bigger though easy enough. Let's say we also wanted to save it (we need to add show=False)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Site: 3003 rows\n", "Dependent any drug: 3003 rows\n", "Plotting 3003 overlap valid subjects.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10, 10))\n", "data.plot_bivar('Site', 'Dependent any drug', show=False)\n", "plt.savefig('site_by_drug.png', dpi=200)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okay next, we are going to define a custom validation strategy to use, which is essentially going to preserve subjects within the same train and test fold based on site.\n", "\n", "\n", "**Legacy Code**\n", "```\n", "from BPt import CV\n", "group_site = CV(groups='Site')\n", "```" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "CVStrategy(groups='Site')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "group_site = bp.CVStrategy(groups='Site')\n", "group_site" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We then can use this CV strategy as an argument when defining the train test split.\n", "\n", "**Legacy Code**\n", "```\n", "ML.Train_Test_Split(test_size =.2, cv=group_site)\n", "```" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Performing test split on: 3003 subjects.\n", "random_state: 5\n", "Test split size: 0.2\n", "\n", "Performed train/test split\n", "Train size: 2379\n", "Test size: 624\n" ] } ], "source": [ "data = data.set_test_split(size=.2, cv_strategy=group_site, random_state=5)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dependent any drug: 2379 rows\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Dependent any drug: 624 rows\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "data.plot('target', subjects='train')\n", "data.plot('target', subjects='test')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Running ML\n", "\n", "Next, we are going to evaluate some different machine learning models on the problem we have defined. Notably not much has changed here with respect to the old version, except some cosmetic changes like Problem_Spec to ProblemSpec. Also we have a new `evaluate` function instead of calling Evaluate via the ML object (`ML.Evaluate`)." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ProblemSpec(n_jobs=16, scorer=['matthews', 'roc_auc', 'balanced_accuracy'],\n", " subjects='train')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# This just holds some commonly used values\n", "ps = bp.ProblemSpec(subjects='train',\n", " scorer=['matthews', 'roc_auc', 'balanced_accuracy'],\n", " n_jobs=16)\n", "ps" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ModelPipeline\n", "-------------\n", "imputers=\\\n", "[Imputer(obj='mean', scope='float'),\n", " Imputer(obj='median', scope='category')]\n", "\n", "scalers=\\\n", "Scaler(obj='standard')\n", "\n", "model=\\\n", "Model(obj='elastic', params=1)\n", "\n", "param_search=\\\n", "ParamSearch(cv=CV(cv_strategy=CVStrategy()), n_iter=64,\n", " search_type='DiscreteOnePlusOne')\n", "\n" ] } ], "source": [ "# Define a ModelPipeline to use with imputation, scaling and an elastic net\n", "pipe = bp.ModelPipeline(imputers=[bp.Imputer(obj='mean', scope='float'),\n", " bp.Imputer(obj='median', scope='category')],\n", " scalers=bp.Scaler('standard'), \n", " model=bp.Model('elastic', params=1),\n", " param_search=bp.ParamSearch(\n", " search_type='DiscreteOnePlusOne', n_iter=64))\n", "pipe.print_all()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3-fold CV random splits\n", "\n", "Let's start by evaluating this model is a fairly naive way, just 3 folds of CV." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Predicting target = Dependent any drug\n", "Using problem_type = binary\n", "Using scope = all (defining a total of 163 features).\n", "Evaluating 2379 total data points.\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "096378b8b9d045239c0e5fce543c3999", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Folds: 0%| | 0/3 [00:00" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Site: 793 rows\n", "Dependent any drug: 793 rows\n", "Plotting 793 overlap valid subjects.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "data.plot_bivar('Site', 'Dependent any drug', subjects=results.train_subjects[0])\n", "data.plot_bivar('Site', 'Dependent any drug', subjects=results.val_subjects[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Preserving Groups by Site\n", "\n", "We can see that for example the 149 subjects from site 1 in the validation set had 269 subjects also from site 1 to potentially memorize site effects from! The confound is a site with only cases. One way we can account for this is through something we've already hinted at, using the group site cv from earlier. We can create a new CV object with this attribute." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "CV(cv_strategy=CVStrategy(groups='Site'))" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "site_cv = bp.CV(splits=3, cv_strategy=group_site)\n", "site_cv" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "5dbfc07f21b24324a748ba0e1998d195", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Folds: 0%| | 0/3 [00:00" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Site: 908 rows\n", "Dependent any drug: 908 rows\n", "Plotting 908 overlap valid subjects.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "data.plot_bivar('Site', 'Dependent any drug', subjects=results.train_subjects[0])\n", "data.plot_bivar('Site', 'Dependent any drug', subjects=results.val_subjects[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another piece we might want to look at in this case is the weighted_mean_scores. That is, each of the splits has train and test sets of slightly different sizes, so how does the metric change if we weight it by the number of validation subjects in that fold" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'matthews': 0.2962912181056522,\n", " 'roc_auc': 0.731185680809635,\n", " 'balanced_accuracy': 0.6545156761514691}" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results.weighted_mean_scores" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c1125e8677974cdb9d85d73fd28d5bea", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Folds: 0%| | 0/3 [00:00" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Site: 30 rows\n", "Dependent any drug: 30 rows\n", "Plotting 30 overlap valid subjects.\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWgAAAEGCAYAAABIGw//AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAUDUlEQVR4nO3de5SlVX3m8e9T3eAwQAgXaToggREI0VxaBGIiQ0gYO2o0IF4SEgUdls3KBLzGBAwJoEPihBEnJgZskAVe0qJBFj3gIKSFkCZBukWUa5A4LYE0tIkEaUOEht/8cV7wTFld51R1VZ3dXd/PWu+qU+9ln11Q6+ldv3e/+6SqkCS1Z2zUHZAkTcyAlqRGGdCS1CgDWpIaZUBLUqMWjroDm7PDvsc7vUQ/4PH7zx51F9Skg7KlLUwlcx6/f8UWv98wHEFLUqOaHUFL0lxK2huvGtCSBIylvThsr0eSNAKOoCWpUcmc3PebEgNakoAW50wY0JKEJQ5JapYBLUmNchaHJDXKEbQkNcqAlqRGBafZSVKTHEFLUqPGxtqLw/Z6JEkj4QhakppkiUOSGmVAS1KjYolDktrkCFqSGjU2tmDUXfgBBrQkYYlDkppliUOSGmVAS1KjLHFIUqPio96S1CY/NFaSGtViiaO9HknSCCRjQ2+Tt5PnJbk+yV1J7kzy9m7/WUkeTHJbt71yUJ8cQUsSwMyVODYB766qW5PsDHw5yXXdsQ9V1f8ctiEDWpJgxuoJVbUeWN+9fizJ3cDeI+ySJG3lxsaG3pIsS7K2b1s2UZNJ9gNeBHyp23VKkq8luTjJrgO7NHM/nSRtxcaG36pqeVUd2rctH99ckp2Ay4F3VNV3gPOB5wNL6I2wPzioS5Y4JAmoGZxml2Q7euH8qar6HEBVPdx3/ELgqkHtOIKWJIBMYZusmd6E6o8Bd1fVeX37F/ed9hrgjkFdcgQtSQBjMzaCfinwJuD2JLd1+94LHJ9kCVDAOuDkQQ0Z0JIEMzbNrqpWM/E4+/NTbcuAliSABT7qLUltci0OSWpUe/lsQEsSMJM3CWeMAS1J4AhaklpVC9p7LMSAliRwBC1JzXIWhyQ1ypuEktSo9vLZgJYkwBKHJDXLR70lqVGOoCWpUe3lswEtSQDlLA5JapQlDklqVHv5bEBLEgCuxSFJjXIELUmN8iahJDXKgJakNlV7+WxASxLgTUJJapYlDklqVHsDaANakgCfJJSkZlnikKQ2lSNoSWrUQgNaktrU4Ai6wfuWkjQCYxl+m0SS5yW5PsldSe5M8vZu/25Jrkvy9e7rrgO7NEM/miRt3TKFbXKbgHdX1QuAlwC/leQFwGnAqqo6EFjVfT8pA1qS6H2iyrDbpO1Ura+qW7vXjwF3A3sDxwCXdqddChw7qE8GtCTBlEocSZYlWdu3LZuoyST7AS8CvgQsqqr13aGHgEWDuuRNQkkCWDD8TcKqWg4sn+ycJDsBlwPvqKrvpO8mZFVVkhr0Po6gJQl6sziG3QY2le3ohfOnqupz3e6Hkyzuji8GNgxqx4CWJJjJWRwBPgbcXVXn9R1aCZzYvT4RuHJQlyxxSBLM5KPeLwXeBNye5LZu33uBDwCfSXIS8E3gDYMaMqAliZl71LuqVrP5yXhHT6UtA1qSYEo3CeeKAS1J4Gp2ktQsA1qSGtVePhvQkgQMfIR7FAxoSYImlxs1oCUJnMUhSa0aa/C5agNakmiywmFASxIY0JLUrDSY0Aa0JGENWpKaFQNaktrUYIXDgJYkaHIpDgNaksARtCQ1y4CWpEaN+ai3JLXJEbQkNcqAlqRGGdCS1Cin2UlSoxxBS1KjnMUhSY1yBC1JjWoxoIdavyk9b0zyB933+yY5fHa7JklzJxl+myvDLrD358DPAsd33z8GfGRWeiRJIzCW4be5MmyJ42eq6pAkXwGoqkeSbD+L/ZKkOTW2YNQ9+EHDBvSTSRYABZDkucDTs9areWyfxbtx0Yf+G3s+dxeq4OK/WMVHLr6Gn/zxffnTPzyJHXf8D3zzgW/xlrd9hMc2Pj7q7moETj/9T7jhhjXsvvsuXHWVf8jOlK22Bg18GLgC2DPJOcBq4I9mrVfz2Kannua0//5JDjn6Pfz8Mb/PyScs5eAD9+b8P17GGR/4NIct/V1WXrOWd578qlF3VSNy3HFHc9FFZ426G9ucJENvQ7R1cZINSe7o23dWkgeT3NZtrxzUzlABXVWfAn6HXiivB46tqs8Mc62m5qEN/8ptd6wDYON3/5177nuQH9lrNw7YfzGrv3Q3AF/8m69x7Cu9RztfHXbYT7DLLjuPuhvbnBm+SXgJ8PIJ9n+oqpZ02+cHNTJUiSPJJ6rqTcA9E+zb3DUHA8cAe3e7HgRWVtXdw7ynYN999mDJC/djzVfu4+57H+DVSw/lf1+7luN++SXss3j3UXdP2qbMZImjqm5Mst+WtjNsieOF/d909egXb+7kJL8LfBoIcEu3BViR5LRJrluWZG2StZs23jdk17ZNO/7H57Dio+/kPWd/nMc2Ps7J7/koy054GTddfQ477bQDTzy5adRdlLYpUxlB92dVty0b8m1OSfK1rgSy66CTJx1BJzkdeC+wQ5Lv0AtZgCeA5ZNcehLwwqp6clx75wF3Ah+Y6KKqWv5Muzvse3wN6vy2auHCBaz46Du57IqbuPKaNQDc+w//xKvf2Cv7H7D/XrziF5eMsIfStmfhFD7Vuz+rpuB84P30Jlu8H/gg8F8nu2DSLlXVH1XVzsC5VfVDVbVzt+1eVadPcunTwI9MsH8xzv4Y6IJzl/H39/0TH77o+yWq5+7+Q0DvRsZpb3sNF35y1ai6J22TxlJDb9NRVQ9X1VNV9TRwITDwRtKgEfTBVXUP8Nkkh0zwhrdu5tJ3AKuSfB34x27fvsABwCmDOjWf/dxhP8ZvvPZIbr/7fm7+P70R85l/fBkH7L8XJ5+wFIArr7mFj3/mhhH2UqP0rnedyy233M4jj3yHI498M6ee+uu8/vVLR92trd5sP4CSZHFVre++fQ1wx2TnA6Rq8/8aJFleVcuSXN+3+9kLquoXJ7l2jN6/EP03CddU1VODOgXzu8ShzXv8/rNH3QU16aAtjtdfvnb10Jlz9dIjJn2/JCuAo4A9gIeBM7vvl9DL0HXAyX2BPaFBszguSrJXVf1C96YnAq/tGj9rsgu7YfzNA9qXpCZMt3Qxkao6foLdH5tqO4PK4hfQuyFIkiPpzYO+FHiUqRfI6dq5ajrXSdJs2hrX4lhQVd/uXv8qsLyqLgcuT3LbNN/zrdO8TpJmzcKt8FHvBUmeCfGjgS/2HZvWWtKDai6SNApJDb3NlUEBvQL46yRXAo8DfwOQ5AB6ZY4JJdkpyfuS3Jnk0STfSnJzkjfPVMclaSZtdSWOqjonySp685evre9P+RgDTp3k0k/RW1zpl4A3ADvSe7LwjCQHVdV7t7jnkjSDpvCcypwZWKaoqh+YiVFV9w64bL+quqR7fV6SNVX1/iRvAe6i93SiJDVjJmdxzJTZ+kfju0mOAEjyK8C34dmpdw2W4iXNdwsz/DZnfZqldn8TuDDJgfTW3jgJnl3o3xXGJTVnLmvLw5qVgK6qr3YPtewN3FxVG7v930oyqDwiSXNu3pQ4kryN3k3CU4A7khzTd/gPZ+M9JWlLbHWzOLbAW4FDq2pjt2j1XybZr6r+BGvQkhq0Vc7imKaxvrLGuiRH0QvpH8WAltSgeVPiAB5OsuSZb7qwfhW9lZ1+cpbeU5KmbeHY8Ntcma23OgF4qH9HVW2qqhOAI2fpPSVp2samsM2V2ZrF8cAkx26ajfeUpC3RYoljtmrQkrRVmTfzoCVpazOfZnFI0lbFEbQkNWrBmDVoSWqSJQ5JapSzOCSpUdagJalRBrQkNWo7SxyS1CZH0JLUKANakhq1wICWpDY5gpakRjkPWpIatV2DI+gWn26UpDk3kx8am+TiJBuS3NG3b7ck1yX5evd114F92rIfSZK2DWOpobchXAK8fNy+04BVVXUgsKr7fvI+TfWHkKRt0YIMvw1SVTcC3x63+xjg0u71pcCxg9oxoCWJqZU4kixLsrZvWzbEWyyqqvXd64eARYMu8CahJDG1T+uuquXA8um+V1VVMrhWYkBLErBg9qfZPZxkcVWtT7IY2DDoAksckkQvDIfdpmklcGL3+kTgykEXOIKWJGb2ScIkK4CjgD2SPACcCXwA+EySk4BvAm8Y1I4BLUnMbEBX1fGbOXT0VNoxoCWJOalBT5kBLUlMbRbHXDGgJQlXs5OkZrketCQ1yuVGJalRDZagDWhJAmvQktSs7cYscUhSkxxBS1KjDGhJapQ3CSWpUXEELUltssQhSY2yxCFJjRriE6jmnAEtSUCDFQ4DWpLAm4SS1KwG89mAliRwuVFJapYlDklqVIP5bEBLEhjQktQsnySUpEY1mM8GtCSBn0koSc1yFockNcrFkiSpUY6gJalRDeazAS1J4DQ7SWrWTAZ0knXAY8BTwKaqOnQ67RjQksSslDh+oar+eUsaMKAliTY/UaXFmSWSNOcylS1ZlmRt37ZsXHMFXJvkyxMcG5ojaEliatPsqmo5sHySU46oqgeT7Alcl+Seqrpxqn1yBC1JwIIpbINU1YPd1w3AFcDh0+mTAS1J9EbQw26Tt5Mdk+z8zGtgKXDHdPpkiUOSgBmcx7EIuCK9JF8I/EVVXTOdhgxoSQIyQwFdVd8Afnom2jKgJQlI2qv4GtCSBLS4GocBLUlAGpwzYUBLEpY4JKlhljgkqUkzNYtjJhnQkoQBLUnNSoZ5iHtuGdCSBFiDlqRGWeKQpGY5zU6SmuQIWpIalams2D9HDGhJAjLUUvxzy4CWJMBZHJLUKEscktQsA1qSmuRyo5LULEfQktSkMdeDlqRWGdCS1CSfJJSkZhnQktQk50FLUqNafNQ7VTXqPmiAJMuqavmo+6G2+Hux7WvvtqUmsmzUHVCT/L3YxhnQktQoA1qSGmVAbx2sM2oi/l5s47xJKEmNcgQtSY0yoCWpUQZ0Q5K8PMnfJ7kvyWkTHH9Oksu6419Kst8Iuqk5lOTiJBuS3LGZ40ny4e534mtJDpnrPmr2GNCNSLIA+AjwCuAFwPFJXjDutJOAR6rqAOBDwP+Y215qBC4BXj7J8VcAB3bbMuD8OeiT5ogB3Y7Dgfuq6htV9QTwaeCYceccA1zavf5L4Oi0uICAZkxV3Qh8e5JTjgE+Xj03Az+cZPHc9E6zzYBux97AP/Z9/0C3b8JzqmoT8Ciw+5z0Tq0a5vdGWykDWpIaZUC340HgeX3f79Ptm/CcJAuBXYB/mZPeqVXD/N5oK2VAt2MNcGCS/ZNsD/wasHLcOSuBE7vXrwO+WD5pNN+tBE7oZnO8BHi0qtaPulOaGa4H3Yiq2pTkFOALwALg4qq6M8n7gLVVtRL4GPCJJPfRu3H0a6PrseZCkhXAUcAeSR4AzgS2A6iqC4DPA68E7gP+DXjLaHqq2eCj3pLUKEscktQoA1qSGmVAS1KjDGhJapQBLUmNMqDngSRPJbktyZ1Jvprk3UlG9v8+yboke0zz2mMnWERqziQ5K8lvj+r9Nb8Y0PPD41W1pKpeCLyM3gpoZ464T9N1LL3V/prSPdkpzSgDep6pqg30lqU8pXv6bEGSc5Os6dYTPhkgyVFJbkxydbdG9QXPjLqTLE3yd0luTfLZJDt1+9clObvbf3uSg7v9uye5thvBXwQ8uwJfkjcmuaUb4X+0W3aVJBuTnNON+G9OsijJzwG/Apzbnf/8/p8tyau7dbK/kuSvkizq9p/Vrat8Q5JvJHlbt/99Sd7Rd/05Sd4+/r9Zkt9Lcm+S1cCP9e2/Icn/SrIWeHuSS5K8ru/4xu7rWJI/T3JPkuuSfL7/PGlzDOh5qKq+Qe9pxT3prTH9aFUdBhwGvDXJ/t2phwOn0huxPh84ritNnAH8l6o6BFgLvKuv+X/u9p8PPFMKOBNY3Y3grwD2BUjy48CvAi+tqiXAU8BvdNfsCNxcVT8N3Ai8tar+lt6jze/p/iL4h3E/2mrgJVX1InrLtf5O37GDgV/qfqYzk2wHXAyc0PVljN6TmZ/sbzDJi7v9S+g9sXfYuPfcvqoOraoPsnnHAfvR++/4JuBnJzlXepZ/lmkp8FN9I7pd6C3+/gRwSxfmzzxyfATw7/SC5qZuKertgb/ra+9z3dcv0wsmgCOfeV1VVyd5pNt/NPBiYE3X1g7Ahu7YE8BVfW29bIifZR/gsm495O2B/9t37Oqq+h7wvSQbgEVVtS7JvyR5EbAI+EpVjV986j8DV1TVv3X/Hcavj3LZEP06AvhsVT0NPJTk+iGukQzo+SjJf6I3Wt1Ar9xwalV9Ydw5RwHj1wGo7vzrqur4zTT/ve7rUwz+/QpwaVWdPsGxJ/sWghqmLYA/Bc6rqpVd/8+aoF/j27sIeDOwF70R9VR9t+/1Jrq/SrsR+fbTaE96liWOeSbJc4ELgD/rAvALwG92f/KT5KAkO3anH96trjdGrxSxGrgZeGmSA7rzd0xy0IC3vRH49e78VwC7dvtXAa9Lsmd3bLckPzqgrceAnTdzbBe+v9TmiZs5Z7wr6H2k1GH0/ltM1Pdjk+yQZGfg1ZO0tY7eXwTQq5Vv172+CXhtV4teRG/xI2kgR9Dzww5JbqMXGJuATwDndccuolcfvTW9OsO36M2UgN4SqH8GHABcT+9P/aeTvBlYkeQ53XlnAPdO8v5nd+ffCfwtcD9AVd2V5Azg2u4fgSeB3wK+OUlbnwYu7G70vW5cHfos4LNdCeWLwP4TXP//qaonupLDv1bVUxMcvzXJZcBX6f3FsWaS5i4ErkzyVeAavj+6vpxeOecuep9+ciu9T8ORJuVqdppQVyL47ap61Yi7Mqu6fxhuBV5fVV+fxffZqao2JtkduIXejdGHZuv9tG1wBK15K70HXq6i95fBrIVz56okP0yvLv1+w1nDcAQtSY3yJqEkNcqAlqRGGdCS1CgDWpIaZUBLUqP+H2nw8thw4q0+AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
predictpredict_probadecision_functiony_true
34580.00.810241-1.4515800.0
34590.00.902262-2.2226180.0
34620.00.976899-3.7445220.0
34700.00.954009-3.0322170.0
34780.00.964846-3.3122430.0
34790.00.900526-2.2030870.0
34820.00.946305-2.8692530.0
34840.00.681535-0.7608370.0
34850.00.924836-2.5099490.0
34860.00.957875-3.1240760.0
34940.00.870815-1.9081850.0
34970.00.959444-3.1636630.0
34980.00.877308-1.9671850.0
35020.00.892309-2.1145500.0
35030.00.946427-2.8716501.0
35070.00.968260-3.4179210.0
35090.00.961510-3.2181030.0
35120.00.907378-2.2820280.0
35170.00.976704-3.7359070.0
35210.00.665222-0.6866550.0
35230.00.699328-0.8441000.0
34230.00.951770-2.9823370.0
34290.00.603810-0.4213640.0
34340.00.955454-3.0656610.0
34370.00.934065-2.6508730.0
34420.00.912519-2.3447820.0
34430.00.927844-2.5540320.0
34470.00.916637-2.3975060.0
34530.00.945561-2.8546910.0
34550.00.745451-1.0744960.0
\n", "
" ], "text/plain": [ " predict predict_proba decision_function y_true\n", "3458 0.0 0.810241 -1.451580 0.0\n", "3459 0.0 0.902262 -2.222618 0.0\n", "3462 0.0 0.976899 -3.744522 0.0\n", "3470 0.0 0.954009 -3.032217 0.0\n", "3478 0.0 0.964846 -3.312243 0.0\n", "3479 0.0 0.900526 -2.203087 0.0\n", "3482 0.0 0.946305 -2.869253 0.0\n", "3484 0.0 0.681535 -0.760837 0.0\n", "3485 0.0 0.924836 -2.509949 0.0\n", "3486 0.0 0.957875 -3.124076 0.0\n", "3494 0.0 0.870815 -1.908185 0.0\n", "3497 0.0 0.959444 -3.163663 0.0\n", "3498 0.0 0.877308 -1.967185 0.0\n", "3502 0.0 0.892309 -2.114550 0.0\n", "3503 0.0 0.946427 -2.871650 1.0\n", "3507 0.0 0.968260 -3.417921 0.0\n", "3509 0.0 0.961510 -3.218103 0.0\n", "3512 0.0 0.907378 -2.282028 0.0\n", "3517 0.0 0.976704 -3.735907 0.0\n", "3521 0.0 0.665222 -0.686655 0.0\n", "3523 0.0 0.699328 -0.844100 0.0\n", "3423 0.0 0.951770 -2.982337 0.0\n", "3429 0.0 0.603810 -0.421364 0.0\n", "3434 0.0 0.955454 -3.065661 0.0\n", "3437 0.0 0.934065 -2.650873 0.0\n", "3442 0.0 0.912519 -2.344782 0.0\n", "3443 0.0 0.927844 -2.554032 0.0\n", "3447 0.0 0.916637 -2.397506 0.0\n", "3453 0.0 0.945561 -2.854691 0.0\n", "3455 0.0 0.745451 -1.074496 0.0" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# The train and val subjects from fold 0\n", "tr_subjs = results.train_subjects[0]\n", "val_subjs = results.val_subjects[0]\n", "\n", "# An object specifying just site 29's subjects\n", "site29 = bp.ValueSubset('Site', 29, decode_values=True)\n", "\n", "# Get the intersection w/ intersection obj\n", "site_29_tr = bp.Intersection([tr_subjs, site29])\n", "site_29_val = bp.Intersection([val_subjs, site29])\n", "\n", "# Plot\n", "data.plot_bivar('Site', 'Dependent any drug', subjects=bp.Intersection([tr_subjs, site29]))\n", "data.plot_bivar('Site', 'Dependent any drug', subjects=bp.Intersection([val_subjs, site29]))\n", "\n", "# Grab just the subjects as actual index\n", "val_subjs = data.get_subjects(site_29_val)\n", "\n", "# Get a dataframe with the predictions made for just fold0\n", "preds_df_fold0 = results.get_preds_dfs()[0]\n", "\n", "# Let's see predictions for just these validation subjects\n", "preds_df_fold0.loc[val_subjs]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that it has learned to just predict 0 for every subject, which because of the imbalance is right most of the time, but really doesn't tell us if it has learned to predict site or substance dependence." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Drop imbalanced subjects\n", "The last option was just don't use the imbalanced subjects at all. We will do this by indexing only the balanced sites" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "# Note the ~ before the previously defined is_imbalanced\n", "balanced_sites = np.flatnonzero(~is_imbalanced)\n", "\n", "# We can specify just these subjects using the ValueSubset wrapper\n", "balanced_subjs = bp.ValueSubset('Site', values=balanced_sites, decode_values=False)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8d17d0d434dd452eb75b6b7019897c19", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Folds: 0%| | 0/3 [00:00