liveBook · Manning

SimpleImputer

As explained in Machine Learning for Tabular Data: XGBoost, Deep Learning, and AI

SimpleImputer is a scikit-learn transformer that replaces missing values using a univariate strategy such as the mean or median.

SimpleImputer provides a practical baseline for replacing missing values in tabular data with a univariate estimate such as the mean. In an Airbnb NYC example, it supplies a simple comparison point for more precise multivariate imputation. section 6.1.1

Listing 6.2 Multivariate imputation
from sklearn.experimental import (
    enable_iterative_imputer
)                                                             #1
from sklearn.impute import SimpleImputer, IterativeImputer
from sklearn.ensemble import RandomForestRegressor
 
Xm = data[continuous].copy()                                  #2
missing_percentage = 0.05
np.random.seed(0)
mask = np.random.rand(*Xm.shape) < missing_percentage         #3
Xm[mask] = np.nan
 
simple_imputer = SimpleImputer()
Xm_si = simple_imputer.fit_transform(Xm)                      #4
 
rf = RandomForestRegressor(random_state=0, n_jobs=-1)         #5
multivariate_imputer = IterativeImputer(
    estimator=rf,
    max_iter=1,
    tol=0.01
)                                                             #6
Xm_mi = multivariate_imputer.fit_transform(Xm)                #7
 
mae = pd.DataFrame(
    {
        "simple": np.mean(
            np.abs(data[continuous] - Xm_si), axis=0
        ),
        "multivariate": np.mean(
            np.abs(data[continuous] - Xm_mi), axis=0
        )
     },
     index = continuous
)                                                             #8
print(mae)

Apply SimpleImputer to continuous features after introducing missing values, then compare its reconstruction with IterativeImputer using mean absolute error. section 6.1.1

Airbnb feature reconstruction

After randomly removing 5% of continuous feature values, simple imputation produced higher MAE than multivariate imputation across the listed Airbnb features, making it a useful baseline rather than the most accurate option. section 6.1.1

How Machine Learning for Tabular Data: XGBoost, Deep Learning, and AI covers it

How deep it goes
Defines mean-based replacement and contrasts its error with IterativeImputer, without detailing SimpleImputer configuration beyond the basic call.
Examples
Uses Airbnb NYC continuous features with 5% randomly removed values and an MAE comparison table.
What you can do after
Apply it via scikit-learn to replace missing continuous values and establish a reconstruction-error baseline.
How it connects
Connects missing data imputation with IterativeImputer, random forests, continuous features, and mean absolute error.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Machine Learning for Tabular Data: XGBoost, Deep Learning, and AI. The section links point to the parts of the book it draws on.