Commit 1adb9ff8 authored by Simon Clarke's avatar Simon Clarke
Browse files

Added imputation notebook

parent 4d4e6d94
%% Cell type:markdown id: tags:
# Imputing Missing Data
%% Cell type:markdown id: tags:
In this notebook we investigate ways for dealing with missing data using Scikit-Learn's imputation routines. There are three main routines we will discuss: `SimpleImputer`, `KNNImputer` and `IterativeImputer`. We will also only discuss imputing continuous, numerical values, for imputing categorical values possible approaches are using the mode or the `KNNImputer`.
We will use the [Pima Indians Diabetes Dataset](https://www.kaggle.com/uciml/pima-indians-diabetes-database), which can be downloaded from [Monash Gitlab](https://gitlab.erc.monash.edu.au/bads/data-challenges-resources/-/tree/main/Machine-Learning/Imputation/pima_indians_diabetes.csv). This aims to predict whether the patient has diabetes from a number of diagnostic measurements. All patients are females of Pima Indian heritage, who are at least 21 years old.
Previously, we have dealt with missing data by deleting that entry. However, that means losing valuable data which contributes to the training of your model. A better approach is to impute the data, i.e., infer the missing data from the existing observations.
We will concentrate here on Scikit-Learn's imputation routines, although some of the techniques, such as replacement of values with the mean or mode, can be easily implemented in Pandas.
We first import the standard libraries and the csv file.
%% Cell type:code id: tags:
``` python
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings("ignore")
pima = pd.read_csv("pima_indians_diabetes.csv")
```
%% Cell type:markdown id: tags:
We can now view a random sample of the data. In the columns `BloodPressure`, `SkinThickness` and `Insulin` there are values of 0, which are clearly not physical. This is indicative of missing values.
%% Cell type:code id: tags:
``` python
pima.sample(20)
```
%%%% Output: execute_result
Pregnancies Glucose BloodPressure SkinThickness Insulin BMI \
480 3 158 70 30 328 35.5
11 10 168 74 0 0 38.0
111 8 155 62 26 495 34.0
186 8 181 68 36 495 30.1
396 3 96 56 34 115 24.7
258 1 193 50 16 375 25.9
26 7 147 76 0 0 39.4
679 2 101 58 17 265 24.2
139 5 105 72 29 325 36.9
269 2 146 0 0 0 27.5
589 0 73 0 0 0 21.1
547 4 131 68 21 166 33.1
401 6 137 61 0 0 24.2
168 4 110 66 0 0 31.9
12 10 139 80 0 0 27.1
412 1 143 84 23 310 42.4
6 3 78 50 32 88 31.0
153 1 153 82 42 485 40.6
71 5 139 64 35 140 28.6
632 2 111 60 0 0 26.2
DiabetesPedigreeFunction Age Outcome
480 0.344 35 1
11 0.537 34 1
111 0.543 46 1
186 0.615 60 1
396 0.944 39 0
258 0.655 24 0
26 0.257 43 1
679 0.614 23 0
139 0.159 28 0
269 0.240 28 1
589 0.342 25 0
547 0.160 28 0
401 0.151 55 0
168 0.471 29 0
12 1.441 57 0
412 1.076 22 0
6 0.248 26 1
153 0.687 23 0
71 0.411 26 0
632 0.343 23 0
%% Cell type:markdown id: tags:
This can be investigated further by displaying the descriptive statistics, for which it is apparent that `Glucose` and `BMI` also have unrealistic values of 0. A value of `Pregnancies` of 0, is a physically realistic value.
%% Cell type:code id: tags:
``` python
pima.describe()
```
%%%% Output: execute_result
Pregnancies Glucose BloodPressure SkinThickness Insulin \
count 768.000000 768.000000 768.000000 768.000000 768.000000
mean 3.845052 120.894531 69.105469 20.536458 79.799479
std 3.369578 31.972618 19.355807 15.952218 115.244002
min 0.000000 0.000000 0.000000 0.000000 0.000000
25% 1.000000 99.000000 62.000000 0.000000 0.000000
50% 3.000000 117.000000 72.000000 23.000000 30.500000
75% 6.000000 140.250000 80.000000 32.000000 127.250000
max 17.000000 199.000000 122.000000 99.000000 846.000000
BMI DiabetesPedigreeFunction Age Outcome
count 768.000000 768.000000 768.000000 768.000000
mean 31.992578 0.471876 33.240885 0.348958
std 7.884160 0.331329 11.760232 0.476951
min 0.000000 0.078000 21.000000 0.000000
25% 27.300000 0.243750 24.000000 0.000000
50% 32.000000 0.372500 29.000000 0.000000
75% 36.600000 0.626250 41.000000 1.000000
max 67.100000 2.420000 81.000000 1.000000
%% Cell type:markdown id: tags:
To see how many 0 values there are in these fields, we can sum the number of rows which match this criteria. The two fields with the most missing values are `SkinThickness` and `Insulin`.
%% Cell type:code id: tags:
``` python
print((pima[['Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI']] == 0).sum())
```
%% Cell type:markdown id: tags:
Since 0 is a valid entry in `Pregnancies` and `Outcome`, it is easiest to mark the missing values as NaN (not a number). This is the default for missing values for the sklearn imputation routines. Marking the values as NaN gives the same number of missing entries as previously.
%% Cell type:code id: tags:
``` python
pima[['Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI']] = \
pima[['Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI']].replace(0, np.NaN)
print(pima.isnull().sum())
```
%% Cell type:markdown id: tags:
We now set up a simple random forest model to investigate the effect of a selection of different imputation methods on the accuracy and feature importance. The function below creates a random forest model for the diabetes data, prints the accuracy and feature importance in descending order.
%% Cell type:code id: tags:
``` python
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
def rf_model(pimadf):
Xf = pimadf.drop(columns=['Outcome'])
Yf = np.ravel(pimadf[['Outcome']])
X_train, X_test, Y_train, Y_test = train_test_split(Xf,Yf,test_size=0.8,random_state=0)
rfc = RandomForestClassifier()
rfc.fit(X_train,Y_train) # fit the data to the model
Y_pred = rfc.predict(X_test)
acc = accuracy_score(Y_test,Y_pred)
print("Testing score is %5.3f" % acc)
feature_importances = pd.DataFrame(rfc.feature_importances_,
index = X_train.columns,
columns=['Importance']).sort_values('Importance', ascending=False)
print(feature_importances)
```
%% Cell type:markdown id: tags:
The first example is to drop all rows which have a missing value. This results in approximately half of the dataset being dropped. For this data one of the most important features is `Insulin`, which is the feature with the most missing values.
%% Cell type:code id: tags:
``` python
pima_drop = pima.copy()
pima_drop.dropna(inplace=True)
print('Dropping rows')
print('Shape of array',pima_drop.shape)
print('Shape of original array',pima.shape)
rf_model(pima_drop)
```
%% Cell type:markdown id: tags:
For reference we can plot the distribution of `Insulin` and `SkinThickness` to investigate how different imputation methods affect this. For the other features with missing values the distributions will not be significantly affected, and the exact imputation method probably is not critical to the model.
%% Cell type:code id: tags:
``` python
fig, axes = plt.subplots(1, 2, figsize=(10,4))
sns.histplot(pima_drop, x="Insulin", stat="density", ax = axes[0])
sns.histplot(pima_drop, x="SkinThickness", stat="density", ax = axes[1])
axes[1].set_xlim(0,100)
axes[1].set_ylim(0,0.06)
```
%%%% Output: execute_result
(0.0, 0.06)
%%%% Output: display_data
![](data:image/png;base64,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)
%% Cell type:markdown id: tags:
Replacing the missing values with the mean or the median now results in a decrease in the accuracy of the model, and the feature importance of `SkinThickness` and `Insulin` being ranked very low. This is understandable, as replacing the missing values with a constant results in the reduction of the variance of the feature.
%% Cell type:code id: tags:
``` python
pima_mean = pima.copy()
pima_mean.fillna(pima_mean.mean(), inplace=True)
print('Imputation using mean')
rf_model(pima_mean)
```
%% Cell type:code id: tags:
``` python
pima_median = pima.copy()
pima_median.fillna(pima_mean.median(), inplace=True)
print('Imputation using median')
rf_model(pima_median)
```
%% Cell type:markdown id: tags:
This reduction in variance can be clearly seen by plotting the distributions of the mean and median datasets. For both, the plots are now dominated by a single peak.
%% Cell type:code id: tags:
``` python
fig, axes = plt.subplots(2, 2, figsize=(10,7))
sns.histplot(pima_mean, x="Insulin", stat="density", ax = axes[0,0])
axes[0,0].set_xlabel('Insulin - Mean')
sns.histplot(pima_median, x="Insulin", stat="density", ax = axes[1,0])
axes[1,0].set_xlabel('Insulin - Median')
sns.histplot(pima_mean, x="SkinThickness", stat="density", ax = axes[0,1])
axes[0,1].set_xlabel('SkinThickness - Mean')
sns.histplot(pima_median, x="SkinThickness", stat="density", ax = axes[1,1])
axes[1,1].set_xlabel('SkinThickness - Median');
```
%%%% Output: display_data
![](data:image/png;base64,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)
%% Cell type:markdown id: tags:
The first machine learning imputer we consider is the k-Nearest Neighbours imputer. This iterates through all the missing values, treating each one as a label, and then finds the corresponding label of its k-Nearest Neighbours. This will be affected by the distance metric that is used, the number of neighbours and the order that the features are imputed. In this case we use the default values and 5 neighbours.
Now the accuracy is approximately the same as for the dataset where we dropped the rows, and higher than using the mean and median. Also, since the ranking of features is more consistent with the original dataset.
%% Cell type:code id: tags:
``` python
from sklearn.impute import KNNImputer
pima_knnn = pima.copy()
X = pima_knnn.iloc[:,0:8]
Xm = X.mean()
Xs = X.std()
X = (X-X.mean())/X.std()
Xt = KNNImputer(n_neighbors=5).fit_transform(X)
pima_knnn.iloc[:,0:8] = Xt
print('Imputation using k-Nearest Neighbours')
pima_knnn.iloc[:,0:8] = Xs*pima_knnn.iloc[:,0:8]+Xm
rf_model(pima_knnn)
```
%% Cell type:markdown id: tags:
The second method we consider is the sklearn `IterativeImputer`. This is an experimental addition to sklearn, so needs to be enabled as well as imported. As it is experimental, it may change in future versions.
`IterativeImputer` works be marking the missing values, and then repeating the imputation process N times or until the data converges. Initially the missing values are set using a simple scheme, such as being replaced by the mean or median. Then on each iteration a machine learning algorithm is used as a regressor to update each column which is marked as having missing values. The non-missing values are used to train the model, and then the model is used to predict the missing values. Any regression technique could be used to predict the missing values. Common ones that are used are BayesianRidge, k-Nearest Neighbours and Random Forest Regression. Using this algorithm with Random Forest Regression is equivalent to the R routine `missForest`. The routine `KNNImputer` can be seen as `IterativeImputer` with one iteration.
In this example, we use the default algorithm, BayesianRidge. This gives that the testing score slightly, however the feature importance is consistent with the original dataset and the results of ``KNNImputer`.
%% Cell type:code id: tags:
``` python
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer
pima_ii = pima.copy()
X = pima_ii.iloc[:,0:8]
Xm = X.mean()
Xs = X.std()
X = (X-X.mean())/X.std()
Xt = IterativeImputer(max_iter=20).fit_transform(X)
pima_ii.iloc[:,0:8] = Xt
print('Iterative imputation using Bayesian Ridge')
pima_ii.iloc[:,0:8] = Xs*pima_ii.iloc[:,0:8]+Xm
rf_model(pima_ii)
```
%% Cell type:markdown id: tags:
Plotting the distributions shows that the `KNNImputer` and `IterativeImputer` gives similar results for `Insulin`, but that `IterativeImputer` seems to give a distribution which is more consistent with the original dataset for `SkinThickness`.
%% Cell type:code id: tags:
``` python
fig, axes = plt.subplots(3, 2, figsize=(10,10))
sns.histplot(pima_drop, x="Insulin", stat="density", ax = axes[0,0])
axes[0,0].set_xlabel('Insulin - Drop Rows')
sns.histplot(pima_knnn, x="Insulin", stat="density", ax = axes[1,0])
axes[1,0].set_xlabel('Insulin - kNN')
sns.histplot(pima_ii, x="Insulin", stat="density", ax = axes[2,0])
axes[2,0].set_xlabel('Insulin - Iterative Imputer')
sns.histplot(pima_drop, x="SkinThickness", stat="density", ax = axes[0,1])
axes[0,1].set_xlabel('SkinThickness - Drop Rows')
axes[0,1].set_xlim(0,100)
axes[0,1].set_ylim(0,0.06)
sns.histplot(pima_knnn, x="SkinThickness", stat="density", ax = axes[1,1])
axes[1,1].set_xlabel('SkinThickness - kNN')
axes[1,1].set_xlim(0,100)
axes[1,1].set_ylim(0,0.06)
sns.histplot(pima_ii, x="SkinThickness", stat="density", ax = axes[2,1])
axes[2,1].set_xlabel('SkinThickness - Iterative Imputer')
axes[2,1].set_xlim(0,100)
axes[2,1].set_ylim(0,0.06)
```
%%%% Output: execute_result
(0.0, 0.06)
%%%% Output: display_data
![](data:image/png;base64,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)
%% Cell type:markdown id: tags:
For all the examples so far we have only consider one realisation of the Random Forest Regressor. To understand the effectiveness of the various imputation algorithms we need to combine this with cross validation. The following code consider the variation of the f1-score using Logistic Regression for the imputation strategies:
* Drop rows with missing values.
* Simple imputation using the mean.
* Simple imputation using the median.
* k-Nearest Neighbours imputation.
* Iterative imputation using:
* BayesianRidge,
* DecisionTreeRegressor,
* RandomForestRegressor,
* k-Nearest Neighbours Regression.
The individual scores for each run are stored in a dataframe, for which we can finally investigate the descriptive statistics.
%% Cell type:code id: tags:
``` python
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
N_SPLITS = 10
X_full = pima_drop.drop(columns=['Outcome'])
Y_full = np.ravel(pima_drop[['Outcome']])
lr_estimator = LogisticRegression(solver='newton-cg', C=1.e3)
score_drop = pd.DataFrame(
cross_val_score(
lr_estimator, X_full, Y_full, scoring='f1', cv=N_SPLITS
),
columns=['Drop Data']
)
```
%% Cell type:code id: tags:
``` python
from sklearn.impute import SimpleImputer
from sklearn.pipeline import make_pipeline
# Estimate the score after imputation (mean and median strategies)
X_missing = pima.drop(columns=['Outcome'])
Y_missing = np.ravel(pima[['Outcome']])
score_simple_imputer = pd.DataFrame()
for strategy in ('mean', 'median'):
estimator = make_pipeline(
SimpleImputer(missing_values=np.nan, strategy=strategy),
lr_estimator
)
score_simple_imputer[strategy] = cross_val_score(
estimator, X_missing, Y_missing, scoring='f1',
cv=N_SPLITS
)
```
%% Cell type:code id: tags:
``` python
from sklearn.impute import KNNImputer
score_knn_imputer = pd.DataFrame()
estimator = make_pipeline(
KNNImputer(n_neighbors=15),
rf_estimator
)
score_knn_imputer['KNeighborsRegressor'] = cross_val_score(
estimator, X_missing, Y_missing, scoring='f1',
cv=N_SPLITS
)
```
%% Cell type:code id: tags:
``` python
from sklearn.linear_model import BayesianRidge
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor
from sklearn.neighbors import KNeighborsRegressor
estimators = [
BayesianRidge(),
DecisionTreeRegressor(random_state=0),
RandomForestRegressor(random_state=0),
KNeighborsRegressor(n_neighbors=15)
]
score_iterative_imputer = pd.DataFrame()
for impute_estimator in estimators:
estimator = make_pipeline(
IterativeImputer(random_state=0, estimator=impute_estimator, max_iter=10),
lr_estimator
)
score_iterative_imputer[impute_estimator.__class__.__name__] = \
cross_val_score(
estimator, X_missing, Y_missing, scoring='f1', cv=N_SPLITS
)
```
%% Cell type:markdown id: tags:
We can now investigate the descriptive statistics for each imputation method in tabular and graphical format. The green dots in the figure represent the mean values for each method.
The first thing to note is that by using imputation with the full dataset, the variance of the model has been reduced significantly, which suggests that the `Drop Data` model suffers from overfitting. This is consistent with the fact that one way to reduce overfitting is to increase the amount of data. In general, as the complexity of the imputer is increased the accuracy also increases, though the result is dependent on the underlying strategy.
For this example, the best methods for imputation seem to:
* Simple imputation using the median.
* Iterative imputation using:
* BayesianRidge,
* RandomForestRegressor.
As with most modelling the final strategy for imputation depends on the model that you use, and should be decided on after extensive initial testing.
%% Cell type:code id: tags:
``` python
scores = pd.concat(
[score_drop, score_simple_imputer, score_knn_imputer, score_iterative_imputer],
keys=['Original', 'SimpleImputer', 'KNN', 'IterativeImputer'], axis=1
)
scores.describe()
```
%%%% Output: execute_result
Original SimpleImputer KNN \
Drop Data mean median KNeighborsRegressor
count 10.000000 10.000000 10.000000 10.000000
mean 0.621762 0.626776 0.632280 0.626371
std 0.132392 0.062190 0.055559 0.059190
min 0.352941 0.520000 0.541667 0.520000
25% 0.543478 0.605662 0.605662 0.605662
50% 0.641026 0.632874 0.640256 0.626225
75% 0.718531 0.663265 0.666667 0.663265
max 0.782609 0.727273 0.727273 0.711111
IterativeImputer \
BayesianRidge DecisionTreeRegressor RandomForestRegressor
count 10.000000 10.000000 10.000000
mean 0.635335 0.629131 0.633366
std 0.056181 0.059494 0.049522
min 0.541667 0.541667 0.541667
25% 0.613384 0.588889 0.612077
50% 0.637331 0.625000 0.645680
75% 0.663265 0.663462 0.663462
max 0.727273 0.739130 0.711111
KNeighborsRegressor
count 10.000000
mean 0.627487
std 0.057144
min 0.541667
25% 0.584496
50% 0.626225
75% 0.666667
max 0.711111
%% Cell type:code id: tags:
``` python
# plot results
fig, ax = plt.subplots(figsize=(13, 6))
scores.plot.box(showmeans=True, vert=False, ax=ax)
ax.set_title('Pima Indian Diabetes Classification with Different Imputation Methods')
ax.set_xlabel('Accuracy (larger is better)')
plt.show()
```
%%%% Output: display_data
![](data:image/png;base64,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)
%% Cell type:markdown id: tags:
## Exercises
%% Cell type:code id: tags:
``` python
```
Pregnancies,Glucose,BloodPressure,SkinThickness,Insulin,BMI,DiabetesPedigreeFunction,Age,Outcome
6,148,72,35,0,33.6,0.627,50,1
1,85,66,29,0,26.6,0.351,31,0
8,183,64,0,0,23.3,0.672,32,1
1,89,66,23,94,28.1,0.167,21,0
0,137,40,35,168,43.1,2.288,33,1
5,116,74,0,0,25.6,0.201,30,0
3,78,50,32,88,31,0.248,26,1
10,115,0,0,0,35.3,0.134,29,0
2,197,70,45,543,30.5,0.158,53,1
8,125,96,0,0,0,0.232,54,1
4,110,92,0,0,37.6,0.191,30,0
10,168,74,0,0,38,0.537,34,1
10,139,80,0,0,27.1,1.441,57,0
1,189,60,23,846,30.1,0.398,59,1
5,166,72,19,175,25.8,0.587,51,1
7,100,0,0,0,30,0.484,32,1