Hyperparamètres, LassoRandomForestRregressor et grid_search (énoncé)

Le notebook explore l'optimisation des hyper paramaètres du modèle LassoRandomForestRegressor, et fait varier le nombre d'arbre et le paramètres alpha.

In [1]:
from jyquickhelper import add_notebook_menu
add_notebook_menu()
Out[1]:
run previous cell, wait for 2 seconds
In [2]:
%matplotlib inline

0. Données

In [3]:
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
data = load_boston()
X, y = data.data, data.target
X_train, X_test, y_train, y_test = train_test_split(X, y)

1. Premiers modèles

L'object est de caler une random forest sur le jeu de données proposé puis le modèle LassoRandomForestRegressor qui enchaîne une forêt aléatoire suivi d'une régression Lasso dont on peut récupérer le code ici : lasso_random_forest_regressor.py.

On veut trouver la meilleure paire de paramètres (n_estimators, alpha). scikit-learn implémente l'objet GridSearchCV qui effectue de nombreux apprentissage avec toutes les valeurs de paramètres qu'il reçoit. La méthode get_params peut aider à comprendre désigner les paramètres.

3. Meilleur modèle

On veut récupérer le meilleur modèle et connaîtr le nombre d'arbres qui a été conservé.

4. Evolution de la performance en fonction des paramètres

On veut comprendre un peu mieux ce qui se cache derrière cette meilleure paire de paramètres. On veut faire un graphe de l'évolution de la performance en fonction des différentes valeurs de paramètres.

In [4]: