INNER CODE UNIT · Python
plot_model
ankonzoid/LearningX · advanced_ML/tree_ensembles/tree_ensembles.py:31
def plot_model(tree_ensemble_model, X, y, plot_filename,
n_estimators_vec=[0, 10, 20], max_depth_vec=[1, 4, 8], name=""):
from sklearn.metrics import mean_absolute_error
print("Plotting '{}' model to '{}'...".format(name, plot_filename))
Ni, Nj = len(max_depth_vec), len(n_estimators_vec)
plt.figure(figsize=(16, 10))
for i in range(len(max_depth_vec)):
for j in range(len(n_estimators_vec)):
# Train model
model = tree_ensemble_model(n_estimators=n_estimators_vec[j], max_depth=max_depth_vec[i])
model.fit(X, y)
y_pred = model.predict(X)
err = mean_absolute_error(y, y_pred)
print(" -> n_estimators = {}, max_depth = {} -> err = {:.6f}".format(
n_estimators_vec[j], max_depth_vec[i], err))
# Plot
plt.subplot(int("{}{}{}".format(Ni, Nj, i*Ni + j + 1)))
X_flatten = X.reshape((-1,))