Merging EBMs#

In this notebook, we will fit several Explainable Boosting Machines (EBMs) and then merge them into a single EBM model. The resulting EBM model retains the glassbox interpretability of the component EBM models, allowing us to view both global and local explanations of the merged model.

This notebook can be found in our examples folder on GitHub.

# install interpret if not already installed
    import interpret
except ModuleNotFoundError:
    !pip install --quiet interpret pandas scikit-learn
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from interpret import show

from interpret import set_visualize_provider
from interpret.provider import InlineProvider

df = pd.read_csv(
df.columns = [
    "Age", "WorkClass", "fnlwgt", "Education", "EducationNum",
    "MaritalStatus", "Occupation", "Relationship", "Race", "Gender",
    "CapitalGain", "CapitalLoss", "HoursPerWeek", "NativeCountry", "Income"
X = df.iloc[:, :-1]
y = df.iloc[:, -1]

seed = 42
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=seed)

Explore the dataset

from import ClassHistogram

hist = ClassHistogram().explain_data(X_train, y_train, name = 'Train Data')