explainingtitanic / generate_explainers.py
oegedijk's picture
Publish explainingtitanic Space snapshot
c85417e
from pathlib import Path
from sklearn.ensemble import RandomForestClassifier, RandomForestRegressor
from explainerdashboard import (
ClassifierExplainer,
RegressionExplainer,
ExplainerDashboard,
)
from explainerdashboard.datasets import *
pkl_dir = Path.cwd() / "pkls"
# classifier
print("Generating titanic explainers")
print("Generating classifier explainer")
X_train, y_train, X_test, y_test = titanic_survive()
model = RandomForestClassifier(n_estimators=50, max_depth=5).fit(X_train, y_train)
clas_explainer = ClassifierExplainer(
model,
X_test,
y_test,
cats=["Sex", "Deck", "Embarked"],
descriptions=feature_descriptions,
labels=["Not survived", "Survived"],
)
_ = ExplainerDashboard(clas_explainer)
clas_explainer.dump(pkl_dir / "clas_explainer.joblib")
# regression
print("Generating titanic fare explainer")
X_train, y_train, X_test, y_test = titanic_fare()
model = RandomForestRegressor(n_estimators=50, max_depth=5).fit(X_train, y_train)
reg_explainer = RegressionExplainer(
model,
X_test,
y_test,
cats=["Sex", "Deck", "Embarked"],
descriptions=feature_descriptions,
units="$",
)
_ = ExplainerDashboard(reg_explainer)
reg_explainer.dump(pkl_dir / "reg_explainer.joblib")
# multiclass
print("Generating titanic embarked multiclass explainer")
X_train, y_train, X_test, y_test = titanic_embarked()
model = RandomForestClassifier(n_estimators=50, max_depth=5).fit(X_train, y_train)
multi_explainer = ClassifierExplainer(
model,
X_test,
y_test,
cats=["Sex", "Deck"],
descriptions=feature_descriptions,
labels=["Queenstown", "Southampton", "Cherbourg"],
)
_ = ExplainerDashboard(multi_explainer)
multi_explainer.dump(pkl_dir / "multi_explainer.joblib")