{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"# Predicting Hospital Readmission with a Binary Classification Model\n",
"\n",
"In this tutorial, we'll be looking at hospital admission data in patients with diabetes. This dataset was collected from 130 hospitals in the United States from 1999 to 2008. More details can be found on the UCI Machine Learning Repository [website](https://archive.ics.uci.edu/ml/datasets/diabetes+130-us+hospitals+for+years+1999-2008).\n",
"\n",
"This walkthrough is divided into two parts:\n",
"\n",
"- **Data preprocessing (Steps 1-5)**, which involves data cleaning, exploration, and feature engineering\n",
"- **Data modelling (Steps 6-10)**, where we will train a machine learning model to predict whether a patient will be readmitted to the hospital"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data Preprocessing"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 1: Importing Depedencies\n",
"\n",
"Before getting started, we'll need to import several packages. These include:\n",
"\n",
"- [pandas](https://pandas.pydata.org/pandas-docs/stable/) - a package for performing data analysis and manipulation\n",
"- [numpy](https://docs.scipy.org/doc/numpy/) - a package for scientific computing \n",
"- [matplotlib](https://matplotlib.org/) - the standard Python plotting package\n",
"- [seaborn](https://seaborn.pydata.org/) - a dataframe-centric visualization package that is built off of **matplotlib**"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import warnings\n",
"warnings.simplefilter(action='ignore', category=FutureWarning)\n",
"\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 2: Load the Data\n",
"\n",
"We will be loading in the data as a [pandas.DataFrame](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html).\n",
"\n",
"The data is stored in a csv file, which we can access locally (see data/patient_data.csv) or in the cloud (stored in a AWS S3 bucket). We'll import the S3 version of this data using a pandas method called `read_csv`."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_csv(\"https://s3.us-east-2.amazonaws.com/explore.datasets/diabetes/patient_data.csv\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To get a glimpse of our data, we can use either the `head()`, which shows the first 5 rows of the dataframe."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
encounter_id
\n",
"
patient_nbr
\n",
"
race
\n",
"
gender
\n",
"
age
\n",
"
weight
\n",
"
admission_type_id
\n",
"
discharge_disposition_id
\n",
"
time_in_hospital
\n",
"
medical_specialty
\n",
"
...
\n",
"
examide
\n",
"
citoglipton
\n",
"
insulin
\n",
"
glyburide-metformin
\n",
"
glipizide-metformin
\n",
"
glimepiride-pioglitazone
\n",
"
metformin-rosiglitazone
\n",
"
metformin-pioglitazone
\n",
"
diabetesMed
\n",
"
readmitted
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
2278392
\n",
"
8222157
\n",
"
Caucasian
\n",
"
Female
\n",
"
[0-10)
\n",
"
NaN
\n",
"
6
\n",
"
25
\n",
"
1
\n",
"
Pediatrics-Endocrinology
\n",
"
...
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
NO
\n",
"
\n",
"
\n",
"
1
\n",
"
149190
\n",
"
55629189
\n",
"
Caucasian
\n",
"
Female
\n",
"
[10-20)
\n",
"
NaN
\n",
"
1
\n",
"
1
\n",
"
3
\n",
"
NaN
\n",
"
...
\n",
"
No
\n",
"
No
\n",
"
Up
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
Yes
\n",
"
>30
\n",
"
\n",
"
\n",
"
2
\n",
"
64410
\n",
"
86047875
\n",
"
AfricanAmerican
\n",
"
Female
\n",
"
[20-30)
\n",
"
NaN
\n",
"
1
\n",
"
1
\n",
"
2
\n",
"
NaN
\n",
"
...
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
Yes
\n",
"
NO
\n",
"
\n",
"
\n",
"
3
\n",
"
500364
\n",
"
82442376
\n",
"
Caucasian
\n",
"
Male
\n",
"
[30-40)
\n",
"
NaN
\n",
"
1
\n",
"
1
\n",
"
2
\n",
"
NaN
\n",
"
...
\n",
"
No
\n",
"
No
\n",
"
Up
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
Yes
\n",
"
NO
\n",
"
\n",
"
\n",
"
4
\n",
"
16680
\n",
"
42519267
\n",
"
Caucasian
\n",
"
Male
\n",
"
[40-50)
\n",
"
NaN
\n",
"
1
\n",
"
1
\n",
"
1
\n",
"
NaN
\n",
"
...
\n",
"
No
\n",
"
No
\n",
"
Steady
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
No
\n",
"
Yes
\n",
"
NO
\n",
"
\n",
" \n",
"
\n",
"
5 rows × 44 columns
\n",
"
"
],
"text/plain": [
" encounter_id patient_nbr race gender age weight \\\n",
"0 2278392 8222157 Caucasian Female [0-10) NaN \n",
"1 149190 55629189 Caucasian Female [10-20) NaN \n",
"2 64410 86047875 AfricanAmerican Female [20-30) NaN \n",
"3 500364 82442376 Caucasian Male [30-40) NaN \n",
"4 16680 42519267 Caucasian Male [40-50) NaN \n",
"\n",
" admission_type_id discharge_disposition_id time_in_hospital \\\n",
"0 6 25 1 \n",
"1 1 1 3 \n",
"2 1 1 2 \n",
"3 1 1 2 \n",
"4 1 1 1 \n",
"\n",
" medical_specialty ... examide citoglipton insulin \\\n",
"0 Pediatrics-Endocrinology ... No No No \n",
"1 NaN ... No No Up \n",
"2 NaN ... No No No \n",
"3 NaN ... No No Up \n",
"4 NaN ... No No Steady \n",
"\n",
" glyburide-metformin glipizide-metformin glimepiride-pioglitazone \\\n",
"0 No No No \n",
"1 No No No \n",
"2 No No No \n",
"3 No No No \n",
"4 No No No \n",
"\n",
" metformin-rosiglitazone metformin-pioglitazone diabetesMed readmitted \n",
"0 No No No NO \n",
"1 No No Yes >30 \n",
"2 No No Yes NO \n",
"3 No No Yes NO \n",
"4 No No Yes NO \n",
"\n",
"[5 rows x 44 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### How many rows and columns are in our dataset?"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(101766, 44)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Our dataset has 101,766 rows and 45 columns. Each row represents a unique hospital admission. Columns represent patient demographics, medical details, and admission-specific information such as length of stay (`time_in_hospital`). We can see a list of all columns by applying `.columns` to our dataframe."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Columns: ['encounter_id', 'patient_nbr', 'race', 'gender', 'age', 'weight', 'admission_type_id', 'discharge_disposition_id', 'time_in_hospital', 'medical_specialty', 'num_lab_procedures', 'num_procedures', 'num_medications', 'number_outpatient', 'number_emergency', 'number_inpatient', 'number_diagnoses', 'max_glu_serum', 'A1Cresult', 'metformin', 'repaglinide', 'nateglinide', 'chlorpropamide', 'glimepiride', 'acetohexamide', 'glipizide', 'glyburide', 'tolbutamide', 'pioglitazone', 'rosiglitazone', 'acarbose', 'miglitol', 'troglitazone', 'tolazamide', 'examide', 'citoglipton', 'insulin', 'glyburide-metformin', 'glipizide-metformin', 'glimepiride-pioglitazone', 'metformin-rosiglitazone', 'metformin-pioglitazone', 'diabetesMed', 'readmitted']\n"
]
}
],
"source": [
"print(f\"Columns: {data.columns.tolist()}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Looking at the columns, we can see that a large proportion are medication names. Let's store these column names as a separate list, which we'll get back to in a bit."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"There are 23 medications represented as columns in the dataset.\n"
]
}
],
"source": [
"medications = ['metformin', 'repaglinide', 'nateglinide', 'chlorpropamide', 'glimepiride', \n",
" 'acetohexamide', 'glipizide', 'glyburide', 'tolbutamide', 'pioglitazone', \n",
" 'rosiglitazone', 'acarbose', 'miglitol', 'troglitazone', 'tolazamide', \n",
" 'examide', 'citoglipton', 'insulin', 'glyburide-metformin', 'glipizide-metformin',\n",
" 'glimepiride-pioglitazone', 'metformin-rosiglitazone', 'metformin-pioglitazone']\n",
"\n",
"print(f\"There are {len(medications)} medications represented as columns in the dataset.\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### How many hospital admissions and unique patients are in the dataset? "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of hospital admissions: 101,766\n",
"Number of unique patients: 71,518\n"
]
}
],
"source": [
"n_admissions = data['encounter_id'].nunique()\n",
"n_patients = data['patient_nbr'].nunique()\n",
"\n",
"print(f\"Number of hospital admissions: {n_admissions:,}\")\n",
"print(f\"Number of unique patients: {n_patients:,}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### How many patients have had more than one hospital admission?"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"admissions_per_patient = data['patient_nbr'].value_counts().reset_index()\n",
"admissions_per_patient.columns = ['patient_nbr', 'count']\n",
"multiple_admissions = admissions_per_patient[admissions_per_patient['count'] > 1]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Proportion of patients that have multiple admissions: 23.45%\n",
"Maximum number of admissions for a given patient: 40\n"
]
}
],
"source": [
"print(f\"Proportion of patients that have multiple admissions: {multiple_admissions['patient_nbr'].nunique()/n_patients:.2%}\")\n",
"print(f\"Maximum number of admissions for a given patient: {multiple_admissions['count'].max()}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Almost one-quarter of the patients (23.45%) have had more than 1 hosptial admission. The maximum number of hospital admissions for a given patient is 40. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 3: Data Cleaning\n",
"\n",
"Data cleaning is a crucial step in the machine learning pipeline, and typically requires the most time and effort in any data science project."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Decoding Admission Type\n",
"\n",
"The `admission_type_id` column describes the type of admission and is represented by integers. The `id` column links to descriptors found in a separate file. We'll update this column so that it represents the descriptor name instead of simply the id number.\n",
"\n",
"Our mapper files are located in `data/id_mappers/`. They are also stored on the cloud in a AWS S3 bucket."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
admission_type_id
\n",
"
description
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
1
\n",
"
Emergency
\n",
"
\n",
"
\n",
"
1
\n",
"
2
\n",
"
Urgent
\n",
"
\n",
"
\n",
"
2
\n",
"
3
\n",
"
Elective
\n",
"
\n",
"
\n",
"
3
\n",
"
4
\n",
"
Newborn
\n",
"
\n",
"
\n",
"
4
\n",
"
5
\n",
"
Not Available
\n",
"
\n",
"
\n",
"
5
\n",
"
6
\n",
"
NaN
\n",
"
\n",
"
\n",
"
6
\n",
"
7
\n",
"
Trauma Center
\n",
"
\n",
"
\n",
"
7
\n",
"
8
\n",
"
Not Mapped
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" admission_type_id description\n",
"0 1 Emergency\n",
"1 2 Urgent\n",
"2 3 Elective\n",
"3 4 Newborn\n",
"4 5 Not Available\n",
"5 6 NaN\n",
"6 7 Trauma Center\n",
"7 8 Not Mapped"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"admission_type = pd.read_csv(\"https://s3.us-east-2.amazonaws.com/explore.datasets/diabetes/id_mappers/admission_type_id.csv\")\n",
"admission_type"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see that the admission type mapper file has 3 values which represent missing data:\n",
"\n",
"1. NaN\n",
"2. 'Not Mapped'\n",
"3. 'Not Available'\n",
"\n",
"Let's collapse these into one category that represents a missing value. We can use `pandas` [replace](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.replace.html) method to do this. "
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"missing_values = ['nan', 'Not Available', 'Not Mapped']\n",
"admission_type['description'] = admission_type['description'].replace(missing_values, np.nan)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"admission_type.columns = ['admission_type_id', 'admission_type']"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"data = data.merge(admission_type, on='admission_type_id')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have a \"clean\" mapper, we can apply it to our dataset. We can [map](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html) `admission_type_id` values in our original dataframe to the descriptors in our `admission_type_mapper` dictionary."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Emergency 53990\n",
"Elective 18869\n",
"Urgent 18480\n",
"Trauma Center 21\n",
"Newborn 10\n",
"Name: admission_type, dtype: int64"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['admission_type'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
],
"text/plain": [
" discharge_disposition_id \\\n",
"13 14 \n",
"8 9 \n",
"14 15 \n",
"20 21 \n",
"29 29 \n",
"\n",
" description \n",
"13 Hospice / medical facility \n",
"8 Admitted as an inpatient to this hospital \n",
"14 Discharged/transferred within this institution... \n",
"20 Expired, place unknown. Medicaid only, hospice. \n",
"29 Discharged/transferred to a Critical Access Ho... "
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"discharge_disposition = pd.read_csv(\"https://s3.us-east-2.amazonaws.com/explore.datasets/diabetes/id_mappers/discharge_disposition_id.csv\")\n",
"discharge_disposition.sample(n=5, random_state=416)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In medicine, \"expired\" is a term that describes a patient who has died. We only want to predict hospital readmission for living patients so we're going to remove hospital admissions in which the patient was recorded as \"expired\" upon being discharged in our dataset.\n",
"\n",
"We'll first convert our `description` column to lowercase (`str.lower()`), then we'll search for rows that contain \"expired\" (`str.contains(\"expired\")`). "
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"discharge_disposition['expired'] = discharge_disposition['description'].str.lower().str.contains('expired')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's take a look at all discharge dispositions that indicate an expired patient. We'll create a new dataframe that filters for rows in which the expired column is True."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
discharge_disposition_id
\n",
"
description
\n",
"
expired
\n",
"
\n",
" \n",
" \n",
"
\n",
"
10
\n",
"
11
\n",
"
Expired
\n",
"
True
\n",
"
\n",
"
\n",
"
18
\n",
"
19
\n",
"
Expired at home. Medicaid only, hospice.
\n",
"
True
\n",
"
\n",
"
\n",
"
19
\n",
"
20
\n",
"
Expired in a medical facility. Medicaid only, ...
\n",
"
True
\n",
"
\n",
"
\n",
"
20
\n",
"
21
\n",
"
Expired, place unknown. Medicaid only, hospice.
\n",
"
True
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" discharge_disposition_id \\\n",
"10 11 \n",
"18 19 \n",
"19 20 \n",
"20 21 \n",
"\n",
" description expired \n",
"10 Expired True \n",
"18 Expired at home. Medicaid only, hospice. True \n",
"19 Expired in a medical facility. Medicaid only, ... True \n",
"20 Expired, place unknown. Medicaid only, hospice. True "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"discharge_expired = discharge_disposition[discharge_disposition['expired']==True]\n",
"discharge_expired"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"discharge_disposition_id's that indicate an expired patient: [11, 19, 20, 21]\n"
]
}
],
"source": [
"expired_ids = discharge_expired['discharge_disposition_id'].tolist()\n",
"print(f\"discharge_disposition_id's that indicate an expired patient: {expired_ids}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The next step is to remove all rows in our original dataset that has `discharge_disposition_id` equal to one of the values in our `expired_ids` list."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"data = data[~data['discharge_disposition_id'].isin(expired_ids)]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"After removing expired patients, how many patients do we have in our dataset?"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Original number of patients: 71,518\n",
"Number of expired patients: 1,079\n",
"After filtering out expired patients: 70,439\n"
]
}
],
"source": [
"n_patients_nonexpired = data['patient_nbr'].nunique()\n",
"print(f\"Original number of patients: {n_patients:,}\")\n",
"print(f\"Number of expired patients: {n_patients-n_patients_nonexpired:,}\")\n",
"print(f\"After filtering out expired patients: {n_patients_nonexpired:,}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We had 1,079 expired patients in our dataset. After removing them, our dataset has 70,439 patients."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Converting Medication Features From Categorical to Boolean"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Remember that list of medications we created when we loaded our data in Step 2? We're going to convert these medication columns into boolean variables."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"No 80216\n",
"Steady 18256\n",
"Up 1067\n",
"Down 575\n",
"Name: metformin, dtype: int64"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[medications[0]].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Medication columns are currently categorical datatypes that have several possible categories including:\n",
"\n",
"- \"No\" (not taking the medication)\n",
"- \"Up\" (increased medication dose)\n",
"- \"Down\" (decrease medication dose)\n",
"- \"Steady\" (no changes in dose)\n",
"\n",
"To keep things simple, we'll update the column to \"0\" (not taking the medication) to \"1\" (taking the medication). We're losing out on information regarding their dose change, but it's a compromise we're willing to make in order to simplify our dataset.\n",
"\n",
"We can use [numpy.where](https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html) to convert all instances of \"No\" to `0` and everything else (i.e., \"Up\", \"Down\", \"Steady\") to `1`. Let's loop through all medications and convert each column to boolean."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"for m in medications:\n",
" data[f'{m}_bool'] = np.where(data[m]=='No', 0, 1)\n",
" data = data.drop(columns=m)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Our medication data are now represented as boolean features. Let's take a look at the prevalence of these medications. We'll calcualte the proportion of patients taking each type of medication. Because some patients have had multiple hospital admissions in this dataset, we'll need to do some wrangling to determine whether a patient was on a given medication during any of their admissions. The wrangling process consists of the following steps:\n",
"\n",
"- applying `groupby` to `patient_nbr` and calculate the sum of admissions in which the patient was administered a medication\n",
"- convert the column to boolean such that patients that have \"0\" are False and \"1\" is True\n",
"- calculate the sum of patients on that specific medication\n",
"- calculate the proportion of patients who were administered that medication"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"prevalence = []\n",
"\n",
"for m in medications:\n",
" patient_meds = data.groupby('patient_nbr')[f'{m}_bool'].sum().reset_index()\n",
" patient_meds[f'{m}_bool'] = patient_meds[f'{m}_bool'].astype(bool)\n",
" n_patients_on_med = patient_meds[f'{m}_bool'].sum()\n",
" proportion = n_patients_on_med/n_patients\n",
" prevalence.append(proportion)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have a list of medication prevalence, we can create a dataframe and sort by prevalence to determine which medications are most prevalent in our dataset. "
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.barplot(x='medication', y='prevalence', data=medication_counts.head(10), palette='viridis')\n",
"plt.xticks(rotation=90)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see that `insulin` is by far the most prevalent medication followed by `metformin`. More than half of the patients in our dataset were prescribed insulin whie 22% were prescribed metformin. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[MeSH](https://en.wikipedia.org/wiki/Medical_Subject_Headings) (or Medical Subject Headings) are a type of \"tag\" that describes a medical term. We'll use RxNav's API to further investigate which MeSH terms are assocaited with our list of medications. We'll cretea a function called `get_mesh_from_drug_name` which returns relevant MeSH terms for a given drug name."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"import requests\n",
"\n",
"def get_mesh_from_drug_name(drug_name):\n",
" drug_name = drug_name.strip()\n",
" rxclass_list = []\n",
" try:\n",
" r = requests.get(f\"https://rxnav.nlm.nih.gov/REST/rxclass/class/byDrugName.json?drugName={drug_name}&relaSource=MESH\")\n",
" response = r.json()\n",
" all_concepts = response['rxclassDrugInfoList']['rxclassDrugInfo']\n",
" for i in all_concepts:\n",
" rxclass_list.append(i['rxclassMinConceptItem']['className'])\n",
" except:\n",
" pass\n",
" return list(set(rxclass_list))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We'll pass the top 10 medications into `get_mesh_from_drug_name` and get their relevant MeSH terms. The results will be stored in a dictionary that we'll call `med_mesh_descriptors`."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"top_ten_meds = medication_counts.head(10)['medication'].tolist()\n",
"\n",
"med_mesh_descriptors = dict()\n",
"for m in top_ten_meds:\n",
" med_mesh_descriptors[m] = get_mesh_from_drug_name(m)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'insulin': [],\n",
" 'metformin': ['Hypoglycemic Agents'],\n",
" 'glipizide': ['Hypoglycemic Agents'],\n",
" 'glyburide': ['Hypoglycemic Agents'],\n",
" 'pioglitazone': ['Hypoglycemic Agents'],\n",
" 'rosiglitazone': ['Hypoglycemic Agents'],\n",
" 'glimepiride': ['Immunosuppressive Agents',\n",
" 'Hypoglycemic Agents',\n",
" 'Anti-Arrhythmia Agents'],\n",
" 'repaglinide': ['Hypoglycemic Agents'],\n",
" 'nateglinide': ['Hypoglycemic Agents'],\n",
" 'glyburide-metformin': ['Hypoglycemic Agents']}"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"med_mesh_descriptors"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The results above show that all medications have the MeSH term [hypoglycemic agent](https://en.wikipedia.org/wiki/Anti-diabetic_medication), which means it's an anti-diabetic medication. Interestingly, the medication `glimepiride` also has two other associated MeSH terms 'Anti-Arrhythmia Agents' and 'Immunosuppressive Agents' in addition to it being a hypoglycemic agent.\n",
"\n",
"If you want to learn more about each medication in our dataset, check out the [RxNav dashboard](https://mor.nlm.nih.gov/RxNav/) which gives an overview of medication properties and interactions.\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Creating a Target Variable"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The goal of our model will be to predict whether a patient will get readmitted to the hospital. Looking at the `readmitted` column, we see that there are 3 possible values: \n",
"\n",
"1. `NO` (not readmitted)\n",
"2. `>30` (readmitted more than 30 days after being discharged)\n",
"3. `<30` (readmitted within 30 days of being discharged)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"NO 53212\n",
">30 35545\n",
"<30 11357\n",
"Name: readmitted, dtype: int64"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['readmitted'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To keep things simple, we'll view this as a binary classification problem: did the patient get readmitted? We're going to use `numpy.where` to convert all instances of \"NO\" to 0 (means patient did not get readmitted) and everyhting else to 1 (patient did get readmitted)."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 53212\n",
"1 46902\n",
"Name: readmitted_bool, dtype: int64"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['readmitted_bool'] = np.where(data['readmitted']=='NO', 0, 1)\n",
"data['readmitted_bool'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 4: Data Exploration and Visualization"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Assessing Missing Values\n",
"\n",
"To get a better sense of the missing values in our data, let's visualize it using [missingno](https://github.com/ResidentMario/missingno)'s \"nullity\" matrix."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import missingno as msno\n",
"\n",
"msno.matrix(data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The data-dense columns are fully black, while the sparse columns (with missing values) have a mixture of white and black. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Patient Demographics: Age and Gender"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1MAAAEWCAYAAACDss1qAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3XmYJWV99//3RwYFRTYZeZBFUFEz6iPqCLglKIYtKmiI4qMyKgYXcInm94gxihtGs2iiKHmIjoBRUVF0VBQRQSUJyyDIKmGCqIMICAi4O/j9/VF3Q9F095w+M6e7p+f9uq66us5d27fqnD73+VbddVeqCkmSJEnS9NxjtgOQJEmSpHWRyZQkSZIkDcFkSpIkSZKGYDIlSZIkSUMwmZIkSZKkIZhMSZIkSdIQTKa03kryr0nespbWtUOSXyTZoL0+M8nL1sa62/q+mmTJ2lrfNLb7riQ/S/LTmd62JM1H1j0DbXdO1T1r+7hqfjGZ0ryU5Ookv05yW5KfJ/nPJK9IcsdnvqpeUVXvHHBdT59qnqr6UVVtUlW3r4XY35bk38etf9+qOn5N1z3NOHYA3gAsqqr/NcV8OyX5Q5JjZi46SZp7rHvW3CB1T5L7JnlfO0a/TPKjJCcl2W0mY5XAZErz2zOr6r7AA4H3AG8EPrq2N5Jkwdpe5xyxA3BjVV2/mvkOBm4GnpfkXqMPS5LmNOueNTNl3dPqmW8CjwKeAWwK/BFwIrDvTAU5iHn8HqnHZErzXlXdUlXLgOcBS5I8EiDJcUne1ca3SvLldibxpiTfSXKPJB+n+2L/UmtK8X+T7JikkhyS5EfAN3tl/S/OByc5N8mtSb6YZMu2rT2SrOzHOHYGMsk+wN/QJSa/SPK9Nv2OJgYtrr9N8sMk1yc5IclmbdpYHEvambqfJXnzZMcmyWZt+Rva+v62rf/pwGnAA1ocx02yfOiSqb8Ffg88c9z0vZJckeSWJB9O8q1+U4kkL01yeZKbk5ya5IFTvpmStI6w7hlZ3fMiYDvggKq6pKpur6pfVtVJVfW23jYenuS0dlyvSPLc3rTjknwoyVfSXUU8J8mDe9P/NMn3W911NJBx8U9ad7XjcFiSK4ErJzsGmj9MprTeqKpzgZXAUyaY/IY2bSGwNV2lUlX1IuBHdGcaN6mqv+8t8yd0Z8P2nmSTBwMvBbYBVgEfGCDGrwHvBj7dtvfoCWZ7cRueCjwI2AQ4etw8TwYeBuwJvDXJH02yyQ8Cm7X1/EmL+SVV9Q26M3w/aXG8eJLln0xXqZ0IfAa4o219kq2Ak4A3AfcDrgCe2Ju+P91xfg7dcf8O8KlJtiNJ6yTrngmtSd3zdODUqvrlZPuT5D50SdkngfsDBwEfTrKoN9tBwNuBLYAVwFFt2a2Az9OdJNwK+B/gSb11D1J3HQDsBixC857JlNY3PwG2nKD893QVzwOr6vdV9Z2qqtWs623tbNivJ5n+8XbW7JfAW4Dnpt0kvIZeALyvqq6qql/QJSsHjTsz+faq+nVVfQ/4HnC3irHFchDwpqq6raquBv6J7qzfoJYAX62qm+kqrX2S3L9N2w+4tKo+X1VjFXr/ZuJXAH9XVZe36e8GdvHqlKR5yLqnWQt1z1b06pIku7Qre7cmuaIVPwO4uqo+VlWrquoC4HPAX/TWc3JVndvqn08Au7TysbrrpKr6PfDPTL/u+ruqummK90jziMmU1jfbAjdNUP4PdGemvp7kqiRHDLCuH09j+g+BDekqgTX1gLa+/roX0J3VHNP/4v8V3RnE8bZqMY1f17aDBJFkY7qK6RMAVfVfdGdS/08vzjuOQfuB0G9i8kDgX1ol+HO69yWDbl+S1iHWPXdao7oHuJEuAQWgqi6sqs3prhSN3bf7QGC3sfql1TEvAPodWkwW60R1V/+YDlJ3re490jxiMqX1RpLH033ZnTV+Wjs79oaqehDwLOD1SfYcmzzJKld39nD73vgOdGcgfwb8Erh3L64N6JoKDLren9B9mffXvQq4bjXLjfezFtP4dV0z4PLPprvx98NJfpquC9ttubOp37V0TQCBO+6v2q63/I+Bl1fV5r1h46r6z2nuhyTNWdY9d7Omdc/pwF6tKd9kfgx8a1z9sklVvXKA9V9L7xi2uqt/TAepu1Z3LDWPmExp3kuyaZJn0N3X8+9VdfEE8zwjyUPal+YtwO3AH9rk6+jadU/XC5MsSnJv4B3ASa372v8GNkryZ0k2pGuX3e8F7zpgx/S60h3nU8BfpeuSfBPubOe+ajrBtVg+AxyVrpvZBwKvB/596iXvsARYStej0i5teBLw6CSPAr4CPCrJAa0ZyGHc9azgvwJvSvIIuOOG5H4TDElaZ1n3TGwt1D0n0CU8Jyd5ZJINkmwELO7N82XgoUlelGTDNjx+inu4+r4CPCLJc1rd9RqsuzQFkynNZ19KchvdWaQ3A+8DXjLJvDsD3wB+AfwX8OGqOqNN+zvgb9sl/b+exvY/DhxH15RgI7ovZKrqFuBVwEfozsT9krs2f/ts+3tjku9OsN6lbd3fBn4A/AZ49TTi6nt12/5VdGdNP9nWP6Uk29LdYPzPVfXT3nA+8DVgSVX9jK4Z4N/TNctYBCwHfgtQVScD7wVOTHIrcAlzrFtbSRqCdc/qDVX3AFTVb+g6wbiMLvG5la6Do8cDz23z3AbsRXdv1k/ojsV7uWvyONn6x+qu99DVXTsD/9Gbbt2lu8jq73OUpDXXznauBF7Q+7EgSZK0zvLKlKSRSbJ3ks3TPWTxb+hu0j17lsOSJElaK0ymJI3SE+ie0fEzugf6HmBXsZIkab6wmZ8kSZIkDcErU5IkSZI0hAWrn2V+2WqrrWrHHXec7TAkab12/vnn/6yqFq5+zvWP9ZQkzb5B66n1LpnacccdWb58+WyHIUnrtSQ/nO0Y5irrKUmafYPWUzbzkyRJkqQhmExJkiRJ0hBMpiRJkiRpCCZTkiRJkjQEkylJkiRJGoLJlCRJkiQNwWRKkiRJkoZgMiVJkiRJQzCZkiRJkqQhLJjtAHSnP9vnLTO6va987Z0zuj1J0sx5ysv9jtf0fef/zexvEWldN7IrU0m2T3JGksuSXJrkta38bUmuSXJhG/brLfOmJCuSXJFk7175Pq1sRZIjeuU7JTmnlX86yT1HtT+SJEmS1DfKZn6rgDdU1SJgd+CwJIvatPdX1S5tOAWgTTsIeASwD/DhJBsk2QD4ELAvsAh4fm89723reghwM3DICPdHkiRJku4wsmSqqq6tqu+28duAy4Ftp1hkf+DEqvptVf0AWAHs2oYVVXVVVf0OOBHYP0mApwEnteWPBw4Yzd5IkiRJ0l3NSAcUSXYEHgOc04oOT3JRkqVJtmhl2wI/7i22spVNVn4/4OdVtWpc+UTbPzTJ8iTLb7jhhrWwR5IkSZLWdyNPppJsAnwOeF1V3QocAzwY2AW4FvinUcdQVcdW1eKqWrxw4cJRb06SJEnSemCkvfkl2ZAukfpEVX0eoKqu603/N+DL7eU1wPa9xbdrZUxSfiOweZIF7epUf35JkiRJGqlR9uYX4KPA5VX1vl75Nr3Zng1c0saXAQcluVeSnYCdgXOB84CdW89996TrpGJZVRVwBnBgW34J8MVR7Y8kSZIk9Y3yytSTgBcBFye5sJX9DV1vfLsABVwNvBygqi5N8hngMrqeAA+rqtsBkhwOnApsACytqkvb+t4InJjkXcAFdMmbJEmSJI3cyJKpqjoLyASTTplimaOAoyYoP2Wi5arqKrre/iRJkiRpRs1Ib36SJEmSNN+YTEmS1ltJrk5ycZILkyxvZVsmOS3Jle3vFq08ST6QZEV7vMdje+tZ0ua/MsmSXvnj2vpXtGUnarEhSVpHmUxJktZ3T62qXapqcXt9BHB6Ve0MnN5eA+xL1znSzsChdI/6IMmWwJHAbnRNz4/sPUPxGOAve8vtM/rdkSTNFJMpSZLuan/g+DZ+PHBAr/yE6pxN93iObYC9gdOq6qaquhk4DdinTdu0qs5uPdCe0FuXJGkeMJmSJK3PCvh6kvOTHNrKtq6qa9v4T4Gt2/i2wI97y65sZVOVr5ygXJI0T4z0ob2SJM1xT66qa5LcHzgtyff7E6uqktSog2iJ3KEAO+yww6g3J0laS7wyJUlab1XVNe3v9cDJdPc8XTf2gPn29/o2+zXA9r3Ft2tlU5VvN0H5RHEcW1WLq2rxwoUL13S3JEkzxGRKkrReSnKfJPcdGwf2Ai4BlgFjPfItAb7YxpcBB7de/XYHbmnNAU8F9kqyRet4Yi/g1Dbt1iS7t178Du6tS5I0D9jMT5K0vtoaOLn1Vr4A+GRVfS3JecBnkhwC/BB4bpv/FGA/YAXwK+AlAFV1U5J3Aue1+d5RVTe18VcBxwEbA19tgyRpnjCZkiStl6rqKuDRE5TfCOw5QXkBh02yrqXA0gnKlwOPXONgJUlzks38JEmSJGkIJlOSJEmSNASTKUmSJEkagsmUJEmSJA3BZEqSJEmShmAyJUmSJElDMJmSJEmSpCH4nClN6OkveOeMb/Mbn3jLjG9TkiRJGpZXpiRJkiRpCF6ZkiRJ0pyz14lvmu0QtA76+kF/N6Pb88qUJEmSJA3BZEqSJEmShmAyJUmSJElDMJmSJEmSpCGYTEmSJEnSEEymJEmSJGkIJlOSJEmSNASTKUmSJEkagsmUJEmSJA3BZEqSJEmShmAyJUmSJElDMJmSJEmSpCGMLJlKsn2SM5JcluTSJK9t5VsmOS3Jle3vFq08ST6QZEWSi5I8treuJW3+K5Ms6ZU/LsnFbZkPJMmo9keSJEmS+kZ5ZWoV8IaqWgTsDhyWZBFwBHB6Ve0MnN5eA+wL7NyGQ4FjoEu+gCOB3YBdgSPHErA2z1/2lttnhPsjSZIkSXcYWTJVVddW1Xfb+G3A5cC2wP7A8W2244ED2vj+wAnVORvYPMk2wN7AaVV1U1XdDJwG7NOmbVpVZ1dVASf01iVJkiRJIzUj90wl2RF4DHAOsHVVXdsm/RTYuo1vC/y4t9jKVjZV+coJyifa/qFJlidZfsMNN6zRvkiSJEkSzEAylWQT4HPA66rq1v60dkWpRh1DVR1bVYuravHChQtHvTlJkiRJ64GRJlNJNqRLpD5RVZ9vxde1Jnq0v9e38muA7XuLb9fKpirfboJySZIkSRq5UfbmF+CjwOVV9b7epGXAWI98S4Av9soPbr367Q7c0poDngrslWSL1vHEXsCpbdqtSXZv2zq4ty5JkiRJGqkFI1z3k4AXARcnubCV/Q3wHuAzSQ4Bfgg8t007BdgPWAH8CngJQFXdlOSdwHltvndU1U1t/FXAccDGwFfbIEmSJEkjN7JkqqrOAiZ77tOeE8xfwGGTrGspsHSC8uXAI9cgTEnSei7JBsBy4JqqekaSnYATgfsB5wMvqqrfJbkXXc+xjwNuBJ5XVVe3dbwJOAS4HXhNVZ3ayvcB/gXYAPhIVb1nRndOkjRSM9KbnyRJc9hr6R7fMea9wPur6iHAzXRJEu3vza38/W0+2jMUDwIeQfe8ww8n2aAlaR+ie47iIuD5bV5J0jxhMiVJWm8l2Q74M+Aj7XWApwEntVnGPw9x7DmJJwF7tvn3B06sqt9W1Q/omqvv2oYVVXVVVf2O7mrX/qPfK0nSTDGZkiStz/4Z+L/AH9rr+wE/r6pV7XX/GYZ3PPewTb+lzT/d5yTejc9DlKR1k8mUJGm9lOQZwPVVdf5sx+LzECVp3TTK3vwkSZrLngQ8K8l+wEbApnSdRWyeZEG7+tR/huHYcw9XJlkAbEbXEcVkz0NkinJJ0jzglSlJ0nqpqt5UVdtV1Y50HUh8s6peAJwBHNhmG/88xLHnJB7Y5q9WflCSe7WeAHcGzqV7pMfOSXZKcs+2jWUzsGuSpBnilSlJku7qjcCJSd4FXED3AHra348nWQHcRJccUVWXJvkMcBmwCjisqm4HSHI43cPnNwCWVtWlM7onkqSRMpmSJK33qupM4Mw2fhVdT3zj5/kN8BeTLH8UcNQE5afQPZRekjQP2cxPkiRJkoZgMiVJkiRJQzCZkiRJkqQhmExJkiRJ0hBMpiRJkiRpCCZTkiRJkjQEkylJkiRJGoLJlCRJkiQNwWRKkiRJkoawYLYDkNY1j3vzO2Z8m+cf9dYZ36YkSZKm5pUpSZIkSRqCyZQkSZIkDcFmfpLWmicf9+YZ3+ZZLz5qxrcpSZIEXpmSJEmSpKGYTEmSJEnSEEymJEmSJGkIJlOSJEmSNASTKUmSJEkagsmUJEmSJA3BZEqSJEmShmAyJUmSJElDMJmSJEmSpCGYTEmSJEnSEEaWTCVZmuT6JJf0yt6W5JokF7Zhv960NyVZkeSKJHv3yvdpZSuSHNEr3ynJOa3800nuOap9kSRJkqTxRnll6jhgnwnK319Vu7ThFIAki4CDgEe0ZT6cZIMkGwAfAvYFFgHPb/MCvLet6yHAzcAhI9wXSZIkSbqLkSVTVfVt4KYBZ98fOLGqfltVPwBWALu2YUVVXVVVvwNOBPZPEuBpwElt+eOBA9bqDkiSJEnSFGbjnqnDk1zUmgFu0cq2BX7cm2dlK5us/H7Az6tq1bjyCSU5NMnyJMtvuOGGtbUfkiRJktZjM51MHQM8GNgFuBb4p5nYaFUdW1WLq2rxwoULZ2KTkiRJkua5gZKpJKcPUrY6VXVdVd1eVX8A/o2uGR/ANcD2vVm3a2WTld8IbJ5kwbhySdJ6aG3VU5IkTceUyVSSjZJsCWyVZIskW7ZhR6ZoVjfF+rbpvXw2MNbT3zLgoCT3SrITsDNwLnAesHPrue+edJ1ULKuqAs4ADmzLLwG+ON14JEnrtjWpp9qy5yb5XpJLk7y9lU/YW2yroz7dys9p2xhb17R6pJUkzQ8LVjP95cDrgAcA5wNp5bcCR0+1YJJPAXvQVXArgSOBPZLsAhRwdVs/VXVpks8AlwGrgMOq6va2nsOBU4ENgKVVdWnbxBuBE5O8C7gA+OhguyxJmkeGrqeA3wJPq6pfJNkQOCvJV4HX0/UWe2KSf6XrLfaY9vfmqnpIkoPoepV93rgeaR8AfCPJQ9s2PgT8Kd29veclWVZVl62VPZckzbopk6mq+hfgX5K8uqo+OJ0VV9XzJyieNOGpqqOAoyYoPwU4ZYLyq7izmaAkaT20hvVUAb9oLzdsQ9H1Fvt/WvnxwNvokqn92zh0vcke3XqXvaNHWuAHScZ6pIXWIy1AkhPbvCZTkjRPrO7KFABV9cEkTwR27C9TVSeMKC5JkgY2bD3Vnmd4PvAQuqtI/8PkvcXe0cNsVa1Kcgtd77LbAmf3VttfZnyPtLtNEsehwKEAO+yww1QhS5LmkIGSqSQfp+uF70Lg9lZcgMmUJGnWDVtPtSbluyTZHDgZePgo45wijmOBYwEWL15csxGDJGn6BkqmgMXAotYkQpKkuWaN6qmq+nmSM4An0HqLbVen+r3FjvUwu7L1JrsZXe+yk/U8yxTlkqR5YNDnTF0C/K9RBiJJ0hqYdj2VZGG7IkWSjek6iricyXuLXdZe06Z/syVv0+qRdsj9kyTNQYNemdoKuCzJuXS9HwFQVc8aSVSSJE3PMPXUNsDx7b6pewCfqaovJ7mMiXuL/Sjw8dbBxE10ydGwPdJKkuaBQZOpt40yCEmS1tDbprtAVV0EPGaC8gl7i62q3wB/Mcm6ptUjrSRpfhi0N79vjToQSZKGZT0lSZoNg/bmdxtdr0gA96R7Fscvq2rTUQUmSdKgrKckSbNh0CtT9x0b7z2gcPdRBSVJ0nRYT0mSZsOgvfndoTpfAPYeQTySJK0R6ylJ0kwZtJnfc3ov70H3PI/fjCQiSZKmyXpKkjQbBu3N75m98VXA1XRNKCRJmguspyRJM27Qe6ZeMupAJEkalvWUJGk2DHTPVJLtkpyc5Po2fC7JdqMOTpKkQVhPSZJmw6AdUHwMWAY8oA1famWSJM0F1lOSpBk3aDK1sKo+VlWr2nAcsHCEcUmSNB3WU5KkGTdoMnVjkhcm2aANLwRuHGVgkiRNg/WUJGnGDZpMvRR4LvBT4FrgQODFI4pJkqTpsp6SJM24QbtGfwewpKpuBkiyJfCPdJWXJEmzzXpKkjTjBr0y9b/HKiiAqroJeMxoQpIkadqspyRJM27QZOoeSbYYe9HO+A16VUuSpFGznpIkzbhBK5p/Av4ryWfb678AjhpNSJIkTZv1lCRpxg2UTFXVCUmWA09rRc+pqstGF5YkSYOznpIkzYaBm0C0SsmKSZI0J1lPSZJm2qD3TEmSJEmSekymJEmSJGkIJlOSJEmSNASTKUmSJEkagsmUJEmSJA3BZEqSJEmShmAyJUmSJElDMJmSJEmSpCGMLJlKsjTJ9Uku6ZVtmeS0JFe2v1u08iT5QJIVSS5K8tjeMkva/FcmWdIrf1ySi9syH0iSUe2LJEmSJI03yitTxwH7jCs7Aji9qnYGTm+vAfYFdm7DocAx0CVfwJHAbsCuwJFjCVib5y97y43fliRJkiSNzMiSqar6NnDTuOL9gePb+PHAAb3yE6pzNrB5km2AvYHTquqmqroZOA3Yp03btKrOrqoCTuitS5IkSZJGbqbvmdq6qq5t4z8Ftm7j2wI/7s23spVNVb5ygvIJJTk0yfIky2+44YY12wNJkiRJYhY7oGhXlGqGtnVsVS2uqsULFy6ciU1Kkua4JNsnOSPJZUkuTfLaVu79vZKkgcx0MnVda6JH+3t9K78G2L4333atbKry7SYolyRpUKuAN1TVImB34LAki/D+XknSgBbM8PaWAUuA97S/X+yVH57kRLrK6JaqujbJqcC7e5XSXsCbquqmJLcm2R04BzgY+OBM7ohm1hMPf+eMbu8/j37LjG5P0sxrzc6vbeO3Jbmcrsn4/sAebbbjgTOBN9K7vxc4O8nY/b170O7vBUgydn/vmbT7e1v52P29X52J/ZMkjd7Ikqkkn6KrYLZKspLurN17gM8kOQT4IfDcNvspwH7ACuBXwEsAWtL0TuC8Nt87xior4FV0PQZuTFcxWTlJkoaSZEfgMXQn6Gb8/t4kh9Jd7WKHHXYYfkckSTNqZMlUVT1/kkl7TjBvAYdNsp6lwNIJypcDj1yTGCVJSrIJ8DngdVV1a/+2pqqqJCO/v7eqjgWOBVi8ePGM3E8sSVpzs9YBhSRJsy3JhnSJ1Ceq6vOt2Pt7JUkDMZmSJK2XWs96HwUur6r39SaN3d8Ld7+/9+DWq9/utPt7gVOBvZJs0e7x3Qs4tU27NcnubVsH99YlSZoHZroDCkmS5oonAS8CLk5yYSv7G7y/V5I0IJMpSdJ6qarOAiZ77pP390qSVstmfpIkSZI0BJMpSZIkSRqCyZQkSZIkDcFkSpIkSZKGYDIlSZIkSUMwmZIkSZKkIZhMSZIkSdIQTKYkSZIkaQgmU5IkSZI0BJMpSZIkSRqCyZQkSZIkDcFkSpIkSZKGYDIlSZIkSUMwmZIkSZKkIZhMSZIkSdIQTKYkSZIkaQgmU5IkSZI0BJMpSZIkSRqCyZQkSZIkDcFkSpIkSZKGYDIlSZIkSUMwmZIkSZKkIZhMSZIkSdIQTKYkSZIkaQgmU5IkSZI0BJMpSZIkSRqCyZQkSZIkDWFWkqkkVye5OMmFSZa3si2TnJbkyvZ3i1aeJB9IsiLJRUke21vPkjb/lUmWzMa+SJIkSVo/zeaVqadW1S5Vtbi9PgI4vap2Bk5vrwH2BXZuw6HAMdAlX8CRwG7ArsCRYwmYJEmSJI3aXGrmtz9wfBs/HjigV35Cdc4GNk+yDbA3cFpV3VRVNwOnAfvMdNCSpHVXkqVJrk9ySa9srbWUSPK41hJjRVs2M7uHkqRRmq1kqoCvJzk/yaGtbOuquraN/xTYuo1vC/y4t+zKVjZZ+d0kOTTJ8iTLb7jhhrW1D5Kkdd9x3P1E3NpsKXEM8Je95TzpJ0nzyGwlU0+uqsfSVUyHJfnj/sSqKrqEa62oqmOranFVLV64cOHaWq0kaR1XVd8GbhpXvFZaSrRpm1bV2a1eO6G3LknSPDAryVRVXdP+Xg+cTHcm77pW8dD+Xt9mvwbYvrf4dq1ssnJJktbE2mopsW0bH19+N7agkKR104wnU0nuk+S+Y+PAXsAlwDJgrJ35EuCLbXwZcHBrq747cEur5E4F9kqyRWtOsVcrkyRprVjbLSWm2I4tKCRpHbRgFra5NXByuwd3AfDJqvpakvOAzyQ5BPgh8Nw2/ynAfsAK4FfASwCq6qYk7wTOa/O9o6rGN9WQJGm6rkuyTVVdO42WEnuMKz+zlW83wfySpHlixpOpqroKePQE5TcCe05QXsBhk6xrKbB0bccoSVqvjbWUeA93bylxeJIT6TqbuKUlXKcC7+51OrEX8KZ20u/W1qriHOBg4IMzuSOSpNGajStTkiTNCUk+RXdVaaskK+l65XsPa6+lxKvoegzcGPhqGyRJ84TJlCRpvVVVz59k0lppKVFVy4FHrkmMkqS5ay49tFeSJEmS1hkmU5IkSZI0BJv5Seu4R//jkTO6ve/99dtndHuSJElzlVemJEmSJGkIJlOSJEmSNASTKUmSJEkagsmUJEmSJA3BZEqSJEmShmAyJUmSJElDMJmSJEmSpCGYTEmSJEnSEHxor6R56yVfff2Mbu9j+75vRrcnSZJml1emJEmSJGkIJlOSJEmSNASTKUmSJEkagsmUJEmSJA3BZEqSJEmShmAyJUmSJElDMJmSJEmSpCH4nClJmgHvPeuFM77NNz7532d8m5IkrU+8MiVJkiRJQzCZkiRJkqQhmExJkiRJ0hBMpiRJkiRpCCZTkiRJkjQEkylJkiRJGoLJlCRJkiQNwedMSdJ66EvnPHlGt/fM3c6a0e1JkjQTvDIlSZIkSUMwmZIkSZKkIazzyVSSfZJckWRFkiNmOx5JkvqspyRp/lqnk6kkGwAfAvYFFgHPT7JodqOSJKljPSVJ89u63gHFrsCKqroKIMmJwP7AZYMsvN+jXjnC0CZ2ysXHzPg2JUmzZo3qKUnS3Jaqmu0YhpbkQGCfqnpZe/0iYLeqOnzcfIcCh7aXDwOuWMNNbwX8bA3XsTbNpXjmUiwwt+KZS7GA8UzeABLtAAAQ9ElEQVRlLsUCcyuetRXLA6tq4VpYz5w2i/WUpjaX/qekYfgZHr2B6ql1/crUQKrqWODYtbW+JMuravHaWt+amkvxzKVYYG7FM5diAeOZylyKBeZWPHMplvlkbddTmpqfY63r/AzPHev0PVPANcD2vdfbtTJJkuYC6ylJmsfW9WTqPGDnJDsluSdwELBslmOSJGmM9ZQkzWPrdDO/qlqV5HDgVGADYGlVXToDm55rTTHmUjxzKRaYW/HMpVjAeKYyl2KBuRXPXIplzpvFekpT83OsdZ2f4Tline6AQpIkSZJmy7rezE+SJEmSZoXJlCRJkiQNwWRKkiStE5LcnuTC3rDjCLf14iRHj2r90nhJKsm/914vSHJDki+vZrk9VjePRme9TqaS7Jjk10kubK/3SXJFkhVJjphiua8l+fn4D27rremctvynW89NJDk8yUtXF0OSh42rJG5N8ro235ZJTktyZfu7xSTr2zPJd9vyZyV5SCu/V4tpRYtxx1b+qCTHTXI8Nk9yUpLvJ7k8yROmGct3evvykyRfaOVJ8oEWy0VJHtvKFyb52mTvTyvbIMkF/WM/2XGfIJ4z2/s7FtP91+DYXJ3k4rae5b1tDHpskuSoJP/dju1rhj02STZKcm6S7yW5NMnbp3tsevMvS3LJ6vYnyTOSvGOSY/NXLY5LknwqyUbTfJ+e1/b90iTv7ZVP9j7tnWRVb/uvbdu+NO3/Z5rvzeFtG5Vkq3Hv2d3emzZtSVvvlUmW9MrP6r1P2yc5I8llLbbXDhHbR9v7fFG6/81NVnNs7vgMT/JeLU1yff89n2Y8n0j3P3VJW9eGUx2r8Z9jaQi/rqpdesPVsx2QtBb9Enhkko3b6z/FRynMfVW13g7AjsAlbXwD4H+ABwH3BL4HLJpkuT2BZwJfHlf+GeCgNv6vwCvb+L2BC1YXw7jyDYCf0j19GeDvgSPa+BHAeydZ338Df9TGXwUc1xv/1zZ+EPDp3jLfAHYYHwtwPPCyNn5PYPPpxDIurs8BB7fx/YCvAgF2B87pzfcx4EmTHRvg9cAn+8d+suM+QQxnAosnKB/m2FwNbDXBugZ9n14CnADco72+/7DHps27SRvfEDgH2H06x6ZNf047tpesbn/aNi+g+2z3Y9kW+AGwcW/7Lx40FuB+wI+Ahb3P4J5TvU9t+79o79MjgUtaXAva+/eQab43j2nrvMt7PNl7A2wJXNX+btHGt2jT3gBc18a3AR7bxu9L97+6aJqxbdobf19vmdV+hif6nwL+GHgsd/8/GzSe/drxCPAp7vzOG+hz7OAw3QH4xQRlGwD/QNcN/UXAy1v5HsC3gC+2/8v3AC8AzgUuBh7c5nsm3ffmBe3/ZetW/mLg6Da+kK4eO68NfoYd1vpAV5e9GziwvT4BeCPtNw+wK/Bf7bP6n8DDWvkevXnuAyxtn/MLgP1ne7/m+7BeX5kaZ1dgRVVdVVW/A04E9p9oxqo6HbitX5YkwNOAk1rR8cABbf5fAVcn2XUa8ewJ/E9V/bC93r+t8y7rnig8YNM2vhnwkwmWPwnYs8UM8CW6H2D9/dmM7ofWR9s+/K6qfj7NWMbWtSndsflCb/kTqnM2sHmSbdq0L9BVdhOtZzvgz4CP9MomPe7TMK1jM411TRXLK4F3VNUfAKrq+t7y0zo2bd5ftJcbtqGmc2zaFY7XA+8aZH+q+8Y+E3jGBKtbAGycZAFdUvOTacTyIODKqrqhvf4G8OcTxDL+fbqN7n36I7of7r+qqlV0P6SeM9W+jFdVF9TEZ7sne2/2Bk6rqpuq6mbgNGCftsxpdP+HVNW1VfXdNn4bcDld8jmd2G6FOz73G9P9v6/u2Ez6Ga6qbwM3TbKvg8RzSjseRVdxb9dbftr/49IANs6drQtObmWHALdU1eOBxwN/mWSnNu3RwCvovhteBDy0qnalq0de3eY5i+4E1GPo6v7/O8F2/wV4f9vGn9Orh6S17ETgoNaq43/TJfpjvg88pX1W30qXeI33ZuCb7XP+VOAfktxnxDGv10ym7rQt8OPe65Xc+UNnEPcDft5+wE20/HLgKdNY30F0Z3rHbF1V17bxnwJbT7Lcy4BTkqykqzje08rv2L8W4y0t5sli2wm4AfhYumZ1H+n9Mw4ay5gDgNPHfggy9bGe6jj9M10l94de2eqO+3gfa5XwW3o/Nqd7bKD7Efv1JOcnObRXPuixeTDwvCTLk3w1yc7jY5lgfyY9NumaP14IXE/3w/4cpnds3gn8E/CrceVT7c/d4qmqa4B/pLu6dC3dD5yvTyOWFcDDWnO0BXSfne3btKnep1+3WC4BnpLkfknuTXeFZGz56X5ux5vsvZnqPbuVLve5X286rRneY7izkhw4tiQfa/M8HPjg+Nim8RmeyrSOVWve9yJgrAnfsP/j0ur0m/k9u5XtBRzcvgPHvvvGvlPPaycyfkvX+uTrrfxiuiu10J0EODXJxcD/Bzxigu0+HTi6bWMZsOlYM1tpbaqqi+g+m88HThk3eTPgs61p9vuZ+LO6F3BE+6yeCWxE13JDI2IyNXOuBx4wyIzp7iV5FvDZiaa3s8CTPSDsr4D9qmo7uuY07xsytgV0zX+OaWdAfknX3Gc6sYx5PndNDKcbC0meAVxfVecPuJ6JvKCqHkX3Q+4pdD/+hooHeHJVPRbYFzgsyR+Pn2E1x+ZewG+qajHwb3SX5IeNhaq6vap2oftRsGuSRw6wPgCS7ELX3OXkqeabYH/uFk+7t2Z/umT8AcB9krxw0FjalZ1XAp8GvkPX1O72ARZdBTygqi4H3kv3g+lrwIUTLT/g53ZtWUXvOLUfYJ8DXtc7wTBwbFX1kra+y4HnDbD9gb97JtneIMfqw8C3q+o7o45HmkCAV/eSrJ3aSRyA3/bm+0Pv9R/o6jnoTkoc3eqHl9P9+BzvHnRXr8a2sW2vRYC0ti2jOzE5/rfTO4EzquqRdM1TJ/qsBvjz3md1h1Y3akRMpu50DXeewYbuR+k1SXbrNSl41hTL30jXlGVBf/ne9I3ozp4PYl/gu1V1Xa/surFmMu3v9W381BbbR5IsBB7drkpA94P0ieP3r8W4WYt5sthWAit76zqJLrkaKJaxlaS7gX9X4Cu9dU94rKeIBeBJwLOSXE13Cfxp6Xq8mfC4j12pacM74I6rJmNNrD7Z4hrm2PTXdT1wcm9dgx6blcDn2/jJdJfyhz02/bh+DpxB18xs0GPzBGBxO7ZnAQ9NcuZU+zNFPE8HflBVN1TV79s+PnEasVBVX6qq3arqCcAVdPcW3eXYTPA+ZSyWqvpoVT2uqv4YuLm3/MCf20lM9t5M9Z5B9z3767atDekSqU9U1ed780wrtqq6ne7/YKwJ5LQ/w6sxnf/xI+nuJ3l9b/k1+hxL03Qq8Mrc2QHKQ6fZrGkz7vx8Lplknq9zZ7PAsZNQ0qgsBd5eVRePK+9/Vl88ybKnAq8ea32T5DEjiVB3MJm603nAzul6HLsnXTO7ZVV1Ti+7XzbZwu3s7RnAga1oCd1Nr2MeStcEaRATXclZxp1f8nesu6r2brG9jO6H42ZJHtrm+1O6s9fjlz+Qrj3t2Nnmu8VWVT8FfpzkYa1oT+CyacQy5kC6myJ/M25fDk5nd7qmYGNNiiY8TlX1pqrarqp2pHtvvllVL5zsuI9dqWnDW9N1L7oV3PGD9hm97Uzr2CS5T5L7jo3TXVKfaF1THZsv0LVlBvgT7vzBP+1jk66HtM3b+MZ07/v3Bz02VXVMVT2gHdsnA/9dVXtMtT9TxPMjYPck925f5HsClw8aS9uHsV4Wt6DrWGHsh/tU79O9xmLpLb8Dd3aqMem+TPK5nchk782pwF5Jtmgx79XKxiygu2cydPcgXl5V468Yrza2tt2x3jlDd/X6+wMcm+l89wwcT4vjZXT3jD2/2v1/veWn9TmW1sBH6Oqn76Zr/vT/uPOq0yDeRtd06nzgZ5PM8xq6k04XJbmM7j4saSSqamVVfWCCSX8P/F2SC5j8M/5OununL0pyaXutUao50AvGbA3cvWer/eh+1P4P8OYplvsO3f1Ev6a7wrB3K38Q3U3YK+ia6N2rt8x3gfsNEMN96M4obzZuvvsBpwNX0t2Uv+UksT2bri349+jayj6olW/UYlrRYnxQb5mj6S4Xj49lF7r7Gy6i+/G/xXRiafOeCewzrizAh9pxvpheD3vAX9M117jbsenNswd37c1v0uM+7rie3/blUrqbiTcY5ti07X2vDZf2PyvTeJ82p7tadzFdzzyPHvbY0F3VuqDt2yXAW6dzbFbzeZx0f4AvA4+aYJm30/3IvwT4+Ng2B42F7kTCZW04qFc+4fvUtn8j8Mze/+dl7f3Zc4j35jV0/9er6Dpw+cgA781LW1wrgJf0yp9Jl0hAl6hWe58ubMN+g8ZGd/LrP9q2LwE+Qevdb7Jj0/8MT/L+foru3rbft30+ZJrHalU7HmP789bpfI4dHBwcHBzW9SFVM3XbwNyT7ibwL1fX9nSU23kM8Pqquts9OjMVw2SS3Iuux7Mn0zXFmbVYWjzfpuvG82aPzd3imUvHZmvgk1W15xyI5aF0P+Q3rTs7uJgTkiwFnlpVO6125tFs/47PcFWtmu33qsV0x+d4tmKQJGltWd+b+d1O1yzuwtXOuWa2At4yyzFMZge658msmu1Y0t3z9b7ejyyPTTNHj80b5kgsW9M9m2P56macBd8HFsyRzzDMvc+xJEnrtPX6ypQkSZIkDWt9vzIlSZIkSUMxmZIkSZKkIZhMSZIkaaSSHJfkwNXPKa1bTKYkSZI0p/Qe8i7NaSZT0hyU5AtJzk9yaZJDW9khSf47yblJ/i3J0a18YZLPJTmvDU+a3eglSeuyJG9JckWSs5J8KslfJ3lwkq+1uuk7SR7e5j0uyQeS/GeSq8auPrWHdh/d1vMN4P699T8uybfauk5Nsk0rPzPJPydZDrx2NvZdmi6zfmluemlV3ZRkY+C8JF+h617/scBtwDfpHkoL3QOI319VZyXZATgV+KPZCFqStG5L8njgz4FHAxsC36V76P2xwCuq6sokuwEfBp7WFtuG7pmMDweWAScBzwYeBiyie4TFZcDSJBsCH6R73twNSZ4HHEX38HOAe1bV4pHvqLSWmExJc9Nrkjy7jW8PvAj4VlXdBJDks8BD2/SnA4uSjC27aZJNquoXMxmwJGleeBLwxar6DfCbJF8CNgKeCHy2V9fcq7fMF6rqD8Bl7aHuAH8MfKqqbgd+kuSbrfxhwCOB09q6NgCu7a3r0yPYJ2lkTKakOSbJHnQJ0hOq6ldJzqR7+OtkV5vuAezeKj5Jkta2ewA/r6pdJpn+2954JpmnP/3SqnrCJNN/Od3gpNnkPVPS3LMZcHNLpB4O7A7cB/iTJFu0m3L/vDf/14FXj71IMlllJ0nS6vwH8MwkGyXZBHgG8CvgB0n+Au64H+rRq1nPt4HnJdmg3RP11FZ+BbAwyRPaujZM8oiR7Ik0A0ympLnna8CCJJcD7wHOBq4B3g2cS1fRXQ3c0uZ/DbA4yUVJLgNeMeMRS5Lmhao6j+6+p4uArwIX09U3LwAOSfI94FJg/9Ws6mTgSrp7pU4A/qut/3fAgcB727oupGtCKK2TUlWzHYOkAYzdB9WuTJ0MLK2qk2c7LknS/NKrb+5Nd4Xp0Kr67mzHJc1F3jMlrTveluTpdDcCfx34wizHI0man45NsoiuvjneREqanFemJEmSJGkI3jMlSZIkSUMwmZIkSZKkIZhMSZIkSdIQTKYkSZIkaQgmU5IkSZI0hP8f2nCP1w0mWmMAAAAASUVORK5CYII=\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(14,4))\n",
"plt.subplot(1,2,1)\n",
"sns.countplot(x='age', data=data, palette='viridis')\n",
"plt.title(\"Distribution of Age\")\n",
"\n",
"plt.subplot(1,2,2)\n",
"sns.countplot(data['gender'], palette='viridis')\n",
"plt.title(\"Distribution of Gender\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Female 0.538013\n",
"Male 0.461987\n",
"Name: gender, dtype: float64"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['gender'].value_counts(normalize=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The age distribution plot shows that our dataset represents an aging population. The most common age range is 70-80 years old. Our population also has a higher proportion of females than males."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### How long were hospital stays for a given admission?"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(8,6))\n",
"sns.countplot(data['time_in_hospital'], palette='viridis')\n",
"plt.xlabel(\"time in hospital (days)\")\n",
"plt.title(\"Length of Hospital Stay\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean time in hospital: 4.39\n"
]
}
],
"source": [
"print(f\"Mean time in hospital: {data['time_in_hospital'].mean():.2f}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Patients stayed on average 4.4 days in hospital. The longest stay was 14 days."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Number of Diagnoses, Procedures, Medications"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(14,5))\n",
"\n",
"plt.subplot(1,2,1)\n",
"sns.kdeplot(data['num_medications'], shade=True, legend=False)\n",
"plt.title(f\"Number of Medications, mean: {data['num_medications'].mean():.2f}\", size=14)\n",
"\n",
"plt.subplot(1,2,2)\n",
"sns.kdeplot(data['num_lab_procedures'], shade=True, legend=False)\n",
"plt.title(f\"Number of Lab Procedures, mean: {data['num_lab_procedures'].mean():.2f}\", size=14)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Patients on average were administered 16 medications during their hospital stay. The average number of lab procedures was 43."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### What was the most common medical specialty?\n",
"\n",
"We also have information on the medical specialty of a patient's attending physician. This can give us a sense of the nature of a patient's illness during their hospital stay. For example, \"orthopedics\" would suggest that the patient's presenting issue was bone-related, while \"nephrology\" suggests a kidney problem."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"There are 72 medical specialties.\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
specialty
\n",
"
count
\n",
"
prevalence
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
InternalMedicine
\n",
"
14328
\n",
"
0.143117
\n",
"
\n",
"
\n",
"
1
\n",
"
Emergency/Trauma
\n",
"
7449
\n",
"
0.074405
\n",
"
\n",
"
\n",
"
2
\n",
"
Family/GeneralPractice
\n",
"
7302
\n",
"
0.072937
\n",
"
\n",
"
\n",
"
3
\n",
"
Cardiology
\n",
"
5296
\n",
"
0.052900
\n",
"
\n",
"
\n",
"
4
\n",
"
Surgery-General
\n",
"
3068
\n",
"
0.030645
\n",
"
\n",
"
\n",
"
5
\n",
"
Nephrology
\n",
"
1544
\n",
"
0.015422
\n",
"
\n",
"
\n",
"
6
\n",
"
Orthopedics
\n",
"
1394
\n",
"
0.013924
\n",
"
\n",
"
\n",
"
7
\n",
"
Orthopedics-Reconstructive
\n",
"
1231
\n",
"
0.012296
\n",
"
\n",
"
\n",
"
8
\n",
"
Radiologist
\n",
"
1129
\n",
"
0.011277
\n",
"
\n",
"
\n",
"
9
\n",
"
Pulmonology
\n",
"
856
\n",
"
0.008550
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" specialty count prevalence\n",
"0 InternalMedicine 14328 0.143117\n",
"1 Emergency/Trauma 7449 0.074405\n",
"2 Family/GeneralPractice 7302 0.072937\n",
"3 Cardiology 5296 0.052900\n",
"4 Surgery-General 3068 0.030645\n",
"5 Nephrology 1544 0.015422\n",
"6 Orthopedics 1394 0.013924\n",
"7 Orthopedics-Reconstructive 1231 0.012296\n",
"8 Radiologist 1129 0.011277\n",
"9 Pulmonology 856 0.008550"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"medical_specialties = data['medical_specialty'].value_counts().reset_index()\n",
"medical_specialties.columns = ['specialty', 'count']\n",
"medical_specialties['prevalence'] = medical_specialties['count']/len(data)\n",
"print(f\"There are {data['medical_specialty'].nunique()} medical specialties.\")\n",
"medical_specialties.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### What proportion of patients were on diabetes medication during their hospital stay?"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Yes 0.77184\n",
"No 0.22816\n",
"Name: diabetesMed, dtype: float64"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['diabetesMed'].value_counts(normalize=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"77% of patients were on diabetes medication during their stay."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Do patients have normal A1C levels?\n",
"\n",
"The A1C blood test is used to diagnose whether a patient has type I or II diabetes, and represents the average levels of blood sugar over the past 3 months. The higher the A1C level, the poorer a patient's blood sugar control which indicates a higher risk of diabetes complications. The table below represents Mayo Clinic's [guideline](https://www.mayoclinic.org/tests-procedures/a1c-test/about/pac-20384643) of how to interpret A1C levels:\n",
"\n",
"|interpretation|A1C level|\n",
"|-----------|--------|\n",
"|no diabetes|<5.7|\n",
"|pre-diabetes|5.7-6.4|\n",
"|diabetes|>6.5|\n",
"|well-managed diabetes|<7|\n",
"|poorly managed diabetes|>8|\n",
"\n",
"Our dataset has a `A1Cresult` which reflects a patient's A1C level during their hospital stay. "
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
">8 0.482994\n",
"Norm 0.292783\n",
">7 0.224224\n",
"Name: A1Cresult, dtype: float64"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['A1Cresult'].value_counts(normalize=True)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Proportion of hospital admissions with missing A1C result: 83.14%\n"
]
}
],
"source": [
"print(f\"Proportion of hospital admissions with missing A1C result: {data['A1Cresult'].isna().sum()/len(data):.2%}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Of the hospital admissions where A1C was measured, almost half had a A1C level of greater than 8, which suggests that the patient's diabetes was poorly managed. However, the availability of A1C data is sparse in our dataset, so we may want to consider not including it in the first iteration of our model."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 5: Feature Selection and Engineering"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Our dataset contains quite a few categorical variables such as `race`, `age`, and `admission_type`. In general, machine learning models can't handle categorical variables so we can use one-hot and label encoding to convert our string features to numerical without adding a hierarchy. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### One-hot Encoding\n",
"\n",
"Let's say we want to convert a patient's race to a numerical feature. We could use label encoding to convert each race to values 0-5 but this suggests an inherent order among races that does not exist. With one-hot encoding, each race becomes an independent feature."
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"categorical = ['race', 'admission_type']\n",
"\n",
"for c in categorical:\n",
" data = pd.concat([data, pd.get_dummies(data[c], prefix=c)], axis=1)\n",
" data.drop(columns=c)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[70-80) 25562\n",
"[60-70) 22185\n",
"[50-60) 17102\n",
"[80-90) 16706\n",
"[40-50) 9626\n",
"[30-40) 3765\n",
"[90-100) 2668\n",
"[20-30) 1650\n",
"[10-20) 690\n",
"[0-10) 160\n",
"Name: age, dtype: int64"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['age'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Label Encoding\n",
"\n",
"There are a couple of features where label encoding is applicable. \n",
"\n",
"- age (from `[0-10)` to `[70-80)`) can assume an ordinal relationship\n",
"- gender (`Male` or `Female`) converts to 0 and 1 which is binary\n",
"\n",
"Let's go ahead and apply scikit-learn's [LabelEncoder](https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html) to these two columns."
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.preprocessing import LabelEncoder\n",
"\n",
"label_encoder = LabelEncoder()\n",
"\n",
"data['age_label'] = label_encoder.fit_transform(data['age'])\n",
"data['gender_bool'] = label_encoder.fit_transform(data['gender'].astype(str))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Because our `gender` column contained some missing values, it was considered to be a mixed datatype. We had to convert it to a string datatype in order to label encoding to work."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data Modelling"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 6: Defining the X and y Variables"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Given that we now have a good understanding of our dataset, we can now aim to build predictive models. The first step is to separate our features and target into variables `X` and `y` respectively."
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"med_features = ['metformin_bool', 'repaglinide_bool',\n",
" 'nateglinide_bool', 'chlorpropamide_bool', 'glimepiride_bool',\n",
" 'acetohexamide_bool', 'glipizide_bool', 'glyburide_bool',\n",
" 'tolbutamide_bool', 'pioglitazone_bool', 'rosiglitazone_bool',\n",
" 'acarbose_bool', 'miglitol_bool', 'troglitazone_bool',\n",
" 'tolazamide_bool', 'examide_bool', 'citoglipton_bool', 'insulin_bool',\n",
" 'glyburide-metformin_bool', 'glipizide-metformin_bool',\n",
" 'glimepiride-pioglitazone_bool', 'metformin-rosiglitazone_bool',\n",
" 'metformin-pioglitazone_bool']\n",
"\n",
"demographic_features = ['race_AfricanAmerican', 'race_Asian',\n",
" 'race_Caucasian', 'race_Hispanic', 'race_Other', 'age_label',\n",
" 'admission_type_Elective', 'admission_type_Newborn',\n",
" 'admission_type_Trauma Center', 'admission_type_Urgent', 'gender_bool']\n",
"\n",
"other_features = ['num_lab_procedures', 'num_procedures',\n",
" 'num_medications', 'number_outpatient', 'number_emergency',\n",
" 'number_inpatient', 'number_diagnoses']\n",
"\n",
"all_features = med_features + demographic_features + other_features\n",
"\n",
"X = data[all_features]\n",
"y = data['readmitted_bool']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 7: Choosing our Model\n",
"\n",
"When building a binary classification model, there are a wide selection of machine learning models to choose from:\n",
"\n",
"- Random Forest Classification\n",
"- Logistic Regression\n",
"- Linear Discriminant Analysis\n",
"- Support Vector Machines (SVM)\n",
"- Gaussian Naive Bayes\n",
"- k-Nearest Neighbours\n",
"\n",
"We'll test out the [Random Forest Classifier (RFC)](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html) for this dataset. RFC is an ensemble learning technique that works by creating a \"forest\" of decision trees. Each tree evaluates the data for a given patient and outputs a 0 or 1. Random Forest looks at the output of all trees and gives the majority vote as its result. Let's say we have a forest with 3 trees and 2 of them predict the patient will be readmitted. The majority vote is that the patient will be readmitted.\n",
"\n",
"\n",
"\n",
"We're choosing Random Forest because:\n",
"\n",
"- it is robust to outliers\n",
"- it is able to handle unbalanced datasets \n",
"- it measures feature importance\n",
"\n",
"We'll import RFC from [scikit-learn](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html) which is a very comprehensive Python library for data mining and data analysis."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.ensemble import RandomForestClassifier"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can inspect the default parameters for RandomForestClassifier by creating an instance of the class and applying `get_params()`:"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'bootstrap': True,\n",
" 'class_weight': None,\n",
" 'criterion': 'gini',\n",
" 'max_depth': None,\n",
" 'max_features': 'auto',\n",
" 'max_leaf_nodes': None,\n",
" 'min_impurity_decrease': 0.0,\n",
" 'min_impurity_split': None,\n",
" 'min_samples_leaf': 1,\n",
" 'min_samples_split': 2,\n",
" 'min_weight_fraction_leaf': 0.0,\n",
" 'n_estimators': 'warn',\n",
" 'n_jobs': None,\n",
" 'oob_score': False,\n",
" 'random_state': None,\n",
" 'verbose': 0,\n",
" 'warm_start': False}"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"RandomForestClassifier().get_params()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can keep the default values for most of these parameters. But there are a few that can be modified prior to training the model that can impact model performance. These are called [hyperparameters](https://en.wikipedia.org/wiki/Hyperparameter_(machine_learning)). Some RFC hyperparameters include:\n",
"\n",
"- `n_estimators`: number of trees in the forest\n",
"- `max_depth`: maximum number of levels in each decision tree\n",
"- `max_features`: maximum number of features considered for splitting a node\n",
"- `min_samples_split`: number of data points placed in a node before the node is split \n",
"\n",
"These are external configurations that can't be learned from training the model. To select the optimal values of a hyperparameter, we'll need to use a technique called hyperparameter tuning. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 8: Hyperparameter Tuning"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Hyperparemter tuning is a critical step in the machine learning pipeline. It describes the process of choosing a set of optimal hyperparameters for a model. The hyperparameters that you select can have a significant impact on your model's performance. \n",
"\n",
"We're going to be testing out two hyperparameter tuning techniques offered by scikit-learn:\n",
"\n",
"- [GridSearchCV](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html)\n",
"- [RandomizedSearchCV](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.RandomizedSearchCV.html)\n",
"\n",
"\n",
"\n",
"With grid search, you define your search space as a grid of values and iterate over each grid point until you find the optimal combination of values. Let's say we want to tune `max_depth` and `n_estimators` in our RandomForestClassifer. We'll set our search space as follows:\n",
"\n",
"- n_estimators = [5,10,50]\n",
"- max_depth = [3,5,10]\n",
"\n",
"This means that we'll have to train our model 9 times to test for every configuration of values. We'll choose the combination of n_estimators and max_depth that give us the best model performance.\n",
"\n",
"Let's implement this with scikit-learn's GridSearchCV. We first need to define our search space as a dictionary. We also need to initialize our model."
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import GridSearchCV\n",
"\n",
"search_space = {\n",
" 'n_estimators': [5,10,50],\n",
" 'max_depth': [3,5,10]\n",
"}\n",
"\n",
"rfc = RandomForestClassifier(random_state=42)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, we set up grid search. GridSearchCV also performs [cross-validation](https://machinelearningmastery.com/k-fold-cross-validation/) (hence the `'CV'`) so we can specify how many folds we want in our analysis. We'll set our number of folds to 3. The more folds you use, the longer it will take to compute results."
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [],
"source": [
"grid_search = GridSearchCV(rfc, search_space, cv=3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The last step is to run fit. We'll pass in X and y which we created in *Step 6*. GridSearchCV will use RFC's default metric, [accuracy](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html#sklearn.ensemble.RandomForestClassifier.score). If we want to optimize our model using another metric, we can specify `scoring = 'precision'` (or whichever metric we're interested in) inside GridSearchCV. Let's stick with accuracy for now."
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"GridSearchCV(cv=3, error_score='raise-deprecating',\n",
" estimator=RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n",
" max_depth=None, max_features='auto', 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='warn', n_jobs=None,\n",
" oob_score=False, random_state=42, verbose=0, warm_start=False),\n",
" fit_params=None, iid='warn', n_jobs=None,\n",
" param_grid={'n_estimators': [5, 10, 50], 'max_depth': [3, 5, 10]},\n",
" pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
" scoring=None, verbose=0)"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grid_search.fit(X, y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What are the optimal hyperparameters?"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimal hyperparameters: {'max_depth': 5, 'n_estimators': 50}\n",
"Best score: 0.617\n"
]
}
],
"source": [
"print(f\"Optimal hyperparameters: {grid_search.best_params_}\")\n",
"print(f\"Best score: {grid_search.best_score_:.3f}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Based on the search space we defined for GridSearchCv, it looks like max_depth of 5 and n_estimators of 50 are our optimal hyperparmeters which gave us an accuracy of 0.617. \n",
"\n",
"We can also see a thorough report of our results with `cv_results_`. It shows fit time, score time, and mean train/test score (averaged over all folds). We'll sort by `mean_test_score`."
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
mean_fit_time
\n",
"
std_fit_time
\n",
"
mean_score_time
\n",
"
std_score_time
\n",
"
param_max_depth
\n",
"
param_n_estimators
\n",
"
params
\n",
"
split0_test_score
\n",
"
split1_test_score
\n",
"
split2_test_score
\n",
"
mean_test_score
\n",
"
std_test_score
\n",
"
rank_test_score
\n",
"
split0_train_score
\n",
"
split1_train_score
\n",
"
split2_train_score
\n",
"
mean_train_score
\n",
"
std_train_score
\n",
"
\n",
" \n",
" \n",
"
\n",
"
5
\n",
"
1.132375
\n",
"
0.009537
\n",
"
0.121620
\n",
"
0.001741
\n",
"
5
\n",
"
50
\n",
"
{'max_depth': 5, 'n_estimators': 50}
\n",
"
0.609014
\n",
"
0.633214
\n",
"
0.608373
\n",
"
0.616867
\n",
"
0.011562
\n",
"
1
\n",
"
0.633694
\n",
"
0.621683
\n",
"
0.627437
\n",
"
0.627605
\n",
"
0.004905
\n",
"
\n",
"
\n",
"
2
\n",
"
0.821872
\n",
"
0.007762
\n",
"
0.100330
\n",
"
0.000355
\n",
"
3
\n",
"
50
\n",
"
{'max_depth': 3, 'n_estimators': 50}
\n",
"
0.600264
\n",
"
0.627461
\n",
"
0.613047
\n",
"
0.613591
\n",
"
0.011110
\n",
"
2
\n",
"
0.624509
\n",
"
0.611839
\n",
"
0.619121
\n",
"
0.618490
\n",
"
0.005192
\n",
"
\n",
"
\n",
"
8
\n",
"
1.907094
\n",
"
0.071164
\n",
"
0.202362
\n",
"
0.028745
\n",
"
10
\n",
"
50
\n",
"
{'max_depth': 10, 'n_estimators': 50}
\n",
"
0.610332
\n",
"
0.621767
\n",
"
0.606814
\n",
"
0.612971
\n",
"
0.006383
\n",
"
3
\n",
"
0.655344
\n",
"
0.647828
\n",
"
0.647259
\n",
"
0.650144
\n",
"
0.003685
\n",
"
\n",
"
\n",
"
4
\n",
"
0.251050
\n",
"
0.008086
\n",
"
0.035588
\n",
"
0.000535
\n",
"
5
\n",
"
10
\n",
"
{'max_depth': 5, 'n_estimators': 10}
\n",
"
0.606107
\n",
"
0.624554
\n",
"
0.596686
\n",
"
0.609116
\n",
"
0.011574
\n",
"
4
\n",
"
0.631596
\n",
"
0.615375
\n",
"
0.622912
\n",
"
0.623294
\n",
"
0.006628
\n",
"
\n",
"
\n",
"
7
\n",
"
0.399570
\n",
"
0.004194
\n",
"
0.045592
\n",
"
0.000699
\n",
"
10
\n",
"
10
\n",
"
{'max_depth': 10, 'n_estimators': 10}
\n",
"
0.609553
\n",
"
0.614216
\n",
"
0.601510
\n",
"
0.608426
\n",
"
0.005248
\n",
"
5
\n",
"
0.654161
\n",
"
0.644068
\n",
"
0.642195
\n",
"
0.646808
\n",
"
0.005255
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" mean_fit_time std_fit_time mean_score_time std_score_time \\\n",
"5 1.132375 0.009537 0.121620 0.001741 \n",
"2 0.821872 0.007762 0.100330 0.000355 \n",
"8 1.907094 0.071164 0.202362 0.028745 \n",
"4 0.251050 0.008086 0.035588 0.000535 \n",
"7 0.399570 0.004194 0.045592 0.000699 \n",
"\n",
" param_max_depth param_n_estimators params \\\n",
"5 5 50 {'max_depth': 5, 'n_estimators': 50} \n",
"2 3 50 {'max_depth': 3, 'n_estimators': 50} \n",
"8 10 50 {'max_depth': 10, 'n_estimators': 50} \n",
"4 5 10 {'max_depth': 5, 'n_estimators': 10} \n",
"7 10 10 {'max_depth': 10, 'n_estimators': 10} \n",
"\n",
" split0_test_score split1_test_score split2_test_score mean_test_score \\\n",
"5 0.609014 0.633214 0.608373 0.616867 \n",
"2 0.600264 0.627461 0.613047 0.613591 \n",
"8 0.610332 0.621767 0.606814 0.612971 \n",
"4 0.606107 0.624554 0.596686 0.609116 \n",
"7 0.609553 0.614216 0.601510 0.608426 \n",
"\n",
" std_test_score rank_test_score split0_train_score split1_train_score \\\n",
"5 0.011562 1 0.633694 0.621683 \n",
"2 0.011110 2 0.624509 0.611839 \n",
"8 0.006383 3 0.655344 0.647828 \n",
"4 0.011574 4 0.631596 0.615375 \n",
"7 0.005248 5 0.654161 0.644068 \n",
"\n",
" split2_train_score mean_train_score std_train_score \n",
"5 0.627437 0.627605 0.004905 \n",
"2 0.619121 0.618490 0.005192 \n",
"8 0.647259 0.650144 0.003685 \n",
"4 0.622912 0.623294 0.006628 \n",
"7 0.642195 0.646808 0.005255 "
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results = pd.DataFrame(grid_search.cv_results_).sort_values(by='mean_test_score', ascending=False)\n",
"results.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In 2012, Bergstra and Bengio from the University of Montreal proposed a new technique called [random search](http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf) which is similar to grid search but instead of sampling over a discrete set of values, you’re now randomly sampling from a distribution of values. Random search is effective in situations where not all hyperparameters are equally important.\n",
"\n",
"\n",
"\n",
"The visualization above gives an example of when random search can perform better. With grid search, you’re only looking at 3 different values of a given hyperparamter. But with random search you’re looking at nine different values. As you increase the number of samples in your random search, you increase the probability of finding the optimal hyperparameters for your model. \n",
"\n",
"Let's test out random search using scikit-learn's RandomizedSearchCV. We'll define our search space over a uniform distribution of values. We'll iterate 9 times, just like we did for grid search. "
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimal hyperparameters: {'max_depth': 4, 'n_estimators': 59}\n",
"Best score: 0.615\n"
]
}
],
"source": [
"from sklearn.model_selection import RandomizedSearchCV\n",
"from scipy.stats import randint\n",
"\n",
"search_space = {\n",
" \"n_estimators\": randint(10,100),\n",
" \"max_depth\": randint(1, 11)\n",
"}\n",
"\n",
"random_search = RandomizedSearchCV(rfc, param_distributions=search_space, n_iter=9, cv=3)\n",
"random_search.fit(X,y)\n",
"\n",
"print(f\"Optimal hyperparameters: {random_search.best_params_}\")\n",
"print(f\"Best score: {random_search.best_score_:.3f}\")"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
mean_fit_time
\n",
"
std_fit_time
\n",
"
mean_score_time
\n",
"
std_score_time
\n",
"
param_max_depth
\n",
"
param_n_estimators
\n",
"
params
\n",
"
split0_test_score
\n",
"
split1_test_score
\n",
"
split2_test_score
\n",
"
mean_test_score
\n",
"
std_test_score
\n",
"
rank_test_score
\n",
"
split0_train_score
\n",
"
split1_train_score
\n",
"
split2_train_score
\n",
"
mean_train_score
\n",
"
std_train_score
\n",
"
\n",
" \n",
" \n",
"
\n",
"
7
\n",
"
1.149746
\n",
"
0.021392
\n",
"
0.129111
\n",
"
0.002811
\n",
"
4
\n",
"
59
\n",
"
{'max_depth': 4, 'n_estimators': 59}
\n",
"
0.606107
\n",
"
0.629858
\n",
"
0.609841
\n",
"
0.615269
\n",
"
0.010428
\n",
"
1
\n",
"
0.629873
\n",
"
0.614746
\n",
"
0.624890
\n",
"
0.623170
\n",
"
0.006294
\n",
"
\n",
"
\n",
"
0
\n",
"
1.136515
\n",
"
0.057328
\n",
"
0.126526
\n",
"
0.004007
\n",
"
4
\n",
"
58
\n",
"
{'max_depth': 4, 'n_estimators': 58}
\n",
"
0.605178
\n",
"
0.630068
\n",
"
0.609152
\n",
"
0.614799
\n",
"
0.010918
\n",
"
2
\n",
"
0.629634
\n",
"
0.614791
\n",
"
0.625174
\n",
"
0.623200
\n",
"
0.006218
\n",
"
\n",
"
\n",
"
1
\n",
"
2.200676
\n",
"
0.430752
\n",
"
0.166357
\n",
"
0.003467
\n",
"
6
\n",
"
65
\n",
"
{'max_depth': 6, 'n_estimators': 65}
\n",
"
0.609853
\n",
"
0.623895
\n",
"
0.609691
\n",
"
0.614479
\n",
"
0.006658
\n",
"
3
\n",
"
0.636511
\n",
"
0.625938
\n",
"
0.630029
\n",
"
0.630826
\n",
"
0.004353
\n",
"
\n",
"
\n",
"
6
\n",
"
2.004584
\n",
"
0.041066
\n",
"
0.205204
\n",
"
0.006243
\n",
"
6
\n",
"
80
\n",
"
{'max_depth': 6, 'n_estimators': 80}
\n",
"
0.610362
\n",
"
0.622247
\n",
"
0.608313
\n",
"
0.613640
\n",
"
0.006143
\n",
"
4
\n",
"
0.636661
\n",
"
0.626223
\n",
"
0.630313
\n",
"
0.631066
\n",
"
0.004294
\n",
"
\n",
"
\n",
"
4
\n",
"
2.834532
\n",
"
0.151390
\n",
"
0.263107
\n",
"
0.004990
\n",
"
9
\n",
"
77
\n",
"
{'max_depth': 9, 'n_estimators': 77}
\n",
"
0.610152
\n",
"
0.623925
\n",
"
0.606125
\n",
"
0.613401
\n",
"
0.007621
\n",
"
5
\n",
"
0.648422
\n",
"
0.641221
\n",
"
0.641520
\n",
"
0.643721
\n",
"
0.003326
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" mean_fit_time std_fit_time mean_score_time std_score_time \\\n",
"7 1.149746 0.021392 0.129111 0.002811 \n",
"0 1.136515 0.057328 0.126526 0.004007 \n",
"1 2.200676 0.430752 0.166357 0.003467 \n",
"6 2.004584 0.041066 0.205204 0.006243 \n",
"4 2.834532 0.151390 0.263107 0.004990 \n",
"\n",
" param_max_depth param_n_estimators params \\\n",
"7 4 59 {'max_depth': 4, 'n_estimators': 59} \n",
"0 4 58 {'max_depth': 4, 'n_estimators': 58} \n",
"1 6 65 {'max_depth': 6, 'n_estimators': 65} \n",
"6 6 80 {'max_depth': 6, 'n_estimators': 80} \n",
"4 9 77 {'max_depth': 9, 'n_estimators': 77} \n",
"\n",
" split0_test_score split1_test_score split2_test_score mean_test_score \\\n",
"7 0.606107 0.629858 0.609841 0.615269 \n",
"0 0.605178 0.630068 0.609152 0.614799 \n",
"1 0.609853 0.623895 0.609691 0.614479 \n",
"6 0.610362 0.622247 0.608313 0.613640 \n",
"4 0.610152 0.623925 0.606125 0.613401 \n",
"\n",
" std_test_score rank_test_score split0_train_score split1_train_score \\\n",
"7 0.010428 1 0.629873 0.614746 \n",
"0 0.010918 2 0.629634 0.614791 \n",
"1 0.006658 3 0.636511 0.625938 \n",
"6 0.006143 4 0.636661 0.626223 \n",
"4 0.007621 5 0.648422 0.641221 \n",
"\n",
" split2_train_score mean_train_score std_train_score \n",
"7 0.624890 0.623170 0.006294 \n",
"0 0.625174 0.623200 0.006218 \n",
"1 0.630029 0.630826 0.004353 \n",
"6 0.630313 0.631066 0.004294 \n",
"4 0.641520 0.643721 0.003326 "
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results = pd.DataFrame(random_search.cv_results_).sort_values(by='mean_test_score', ascending=False)\n",
"results.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Grid Search and Random Search are uninformed methods which means that they do not take into consideration results from past evaluations. When you're working with a very large search space, you might want to consider a \"smarter\" approach to hyperparameter tuning such a Sequential-Based Model Optimization (SMBO). The SMBO approach keeps track of previous iteration results which is used to sample hyperapramters at the current iteration. In other words, SMBO is trying to reduce the number of iterations by sampling the most promising hyperparameters based on past results. You can check out [scikit-optimize](https://scikit-optimize.github.io/) to learn more about how to implement SMBO hyperparameter tuning with scikit-learn models. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 9: Evaluating Model Performance"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There are several metrics that we can use to evaluate model performance:\n",
"\n",
"- accuracy\n",
"- precision\n",
"- recall\n",
"- F1-score\n",
"- ROC AUC score\n",
"\n",
"A comprehensive list of classification metrics can be found in scikit-learn's metrics module [documentation](https://scikit-learn.org/stable/modules/model_evaluation.html#classification-metrics). \n",
"\n",
"In this walkthrough, we'll look at accuracy, precision and recall. But before we can start evaluating our model, let's split our data into two parts: 1) a training set and 2) a test set. We'll fit our model on the training data, and evaluate its performance using the test set."
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n",
" max_depth=4, max_features='auto', 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=59, n_jobs=None,\n",
" oob_score=False, random_state=99, verbose=0, warm_start=False)"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.model_selection import train_test_split\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n",
"\n",
"rfc = RandomForestClassifier(**random_search.best_params_)\n",
"rfc.fit(X_train, y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Accuracy is RFC's default evaluation metric. Using the score metric, we get the measured accuracy from the trained model. "
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 0.620\n"
]
}
],
"source": [
"accuracy = rfc.score(X_test, y_test)\n",
"\n",
"print(f\"Accuracy: {accuracy:.3f}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"An accuracy score of 0.62 means that ~62% of hospital admissions were correctly labeled. The dataset that we're working with is relatively balanced, but let's say we have an imbalanced dataset where 90% of patients ended up being readmitted. Using accuracy to evaluate a model trained on imbalanced data is a problem because if we automatically predicted all patients to be readmitted, our accuracy would be 90% by default. Precision and recall are better ways to evaluate performance of models trained on imbalanced data. \n",
"\n",
"#### Precision and Recall \n",
"\n",
"Precision and recall are information retrieval metrics that evaluate classification models. \n",
"\n",
"- [Precision](https://developers.google.com/machine-learning/crash-course/classification/precision-and-recall) is the \"fraction of relevant instances among the retrieved instances\".\n",
" - What proportion of predicted readmitted patients were actually readmitted?\n",
"- Recall is the \"fraction of the total amount of relevant instances that were actually retrieved\".\n",
" - What proportion of readmitted patients were identified correctly?\n",
"\n",
"Looking at the equations below, we can see that precision aims to minimize the number of **False Positives**, while recall aims to minimize the number of **False Negatives**.\n",
"\n",
""
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Precision: 0.621\n",
"Recall: 0.451\n"
]
}
],
"source": [
"from sklearn.metrics import precision_score, recall_score, confusion_matrix\n",
"\n",
"y_pred = rfc.predict(X_test)\n",
"\n",
"precision = precision_score(y_true=y_test, y_pred=y_pred)\n",
"recall = recall_score(y_true=y_test, y_pred=y_pred)\n",
"\n",
"print(f\"Precision: {precision:.3f}\")\n",
"print(f\"Recall: {recall:.3f}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- Of the patients who were labelled as readmitted, ~62% were actually readmitted.\n",
"- Of the patients who were actually readmitted, 45% were labelled as readmitted. \n",
"\n",
"Another way to assess our model's performance is to visualize our results with a [confusion matrix](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html#sklearn.metrics.confusion_matrix)."
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(33.0, 0.5, 'actual')"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"confusion = confusion_matrix(y_true=y_test, y_pred=y_pred)\n",
"labels = np.array([['TN','FP'],['FN','TP']])\n",
"\n",
"sns.heatmap(confusion,annot=labels, fmt='', linewidths=2, cmap=\"Blues\")\n",
"plt.xlabel(\"predicted\")\n",
"plt.ylabel(\"actual\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The heatmap above shows that we have more False Negatives than False Positives. This means that when we predict a patient will be readmitted, there's a good chance that we got it right. But when we predict that a patient won't be admitted, we're missing quite a few patients who actually do return to the hospital. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 10: Examining Feature Importance"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With RandomForestClassifier, we can dig further to examine which features were the most important in classification."
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
features
\n",
"
importance
\n",
"
\n",
" \n",
" \n",
"
\n",
"
39
\n",
"
number_inpatient
\n",
"
0.502475
\n",
"
\n",
"
\n",
"
38
\n",
"
number_emergency
\n",
"
0.145222
\n",
"
\n",
"
\n",
"
37
\n",
"
number_outpatient
\n",
"
0.103304
\n",
"
\n",
"
\n",
"
40
\n",
"
number_diagnoses
\n",
"
0.095260
\n",
"
\n",
"
\n",
"
36
\n",
"
num_medications
\n",
"
0.049601
\n",
"
\n",
"
\n",
"
28
\n",
"
age_label
\n",
"
0.021661
\n",
"
\n",
"
\n",
"
29
\n",
"
admission_type_Elective
\n",
"
0.019275
\n",
"
\n",
"
\n",
"
34
\n",
"
num_lab_procedures
\n",
"
0.018061
\n",
"
\n",
"
\n",
"
35
\n",
"
num_procedures
\n",
"
0.016270
\n",
"
\n",
"
\n",
"
17
\n",
"
insulin_bool
\n",
"
0.009118
\n",
"
\n",
"
\n",
"
0
\n",
"
metformin_bool
\n",
"
0.005045
\n",
"
\n",
"
\n",
"
25
\n",
"
race_Caucasian
\n",
"
0.003034
\n",
"
\n",
"
\n",
"
1
\n",
"
repaglinide_bool
\n",
"
0.001752
\n",
"
\n",
"
\n",
"
6
\n",
"
glipizide_bool
\n",
"
0.001735
\n",
"
\n",
"
\n",
"
24
\n",
"
race_Asian
\n",
"
0.001074
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" features importance\n",
"39 number_inpatient 0.502475\n",
"38 number_emergency 0.145222\n",
"37 number_outpatient 0.103304\n",
"40 number_diagnoses 0.095260\n",
"36 num_medications 0.049601\n",
"28 age_label 0.021661\n",
"29 admission_type_Elective 0.019275\n",
"34 num_lab_procedures 0.018061\n",
"35 num_procedures 0.016270\n",
"17 insulin_bool 0.009118\n",
"0 metformin_bool 0.005045\n",
"25 race_Caucasian 0.003034\n",
"1 repaglinide_bool 0.001752\n",
"6 glipizide_bool 0.001735\n",
"24 race_Asian 0.001074"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feature_importances = {\n",
" 'features': list(X.columns.values),\n",
" 'importance': list(rfc.feature_importances_)\n",
"}\n",
"\n",
"important_features = pd.DataFrame(feature_importances)\n",
"important_features.sort_values(by='importance', ascending=False).head(15)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The most important feautures appear to be `number_inpatient` and `number_emergency`, which represents the number of inpatient and emergency visits of the patient in the year preceding the encounter. So if a patient was admitted to the hospital in the past, this increases their chance of being readmitted in the future. "
]
}
],
"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.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}