Rappels sur scikit-learn et le machine learning#

Links: notebook, html, python, slides, GitHub

Quelques exercices simples sur scikit-learn. Le notebook est long pour ceux qui débutent en machine learning et sans doute sans suspens pour ceux qui en ont déjà fait.

from jyquickhelper import add_notebook_menu
add_notebook_menu()
%matplotlib inline

Des données synthétiques#

On simule un jeu de données aléatoires.

from numpy import random
n = 1000
X = random.rand(n, 2)
X[:5]
array([[0.25324685, 0.97811479],
       [0.32928095, 0.40816327],
       [0.44178633, 0.51600754],
       [0.76893618, 0.34170807],
       [0.00282938, 0.49371721]])
y = X[:, 0] * 3 - 2 * X[:, 1] ** 2 + random.rand(n)
y[:5]
array([-0.18666718,  1.29326419,  1.64748543,  2.39341326,  0.06048883])

Exercice 1 : diviser en base d’apprentissage et de test#

Exercice 2 : caler une régression linéaire#

Et calculer le coefficient R^2.

Exercice 3 : améliorer le modèle en appliquant une transformation bien choisie#

Exercice 4 : caler une forêt aléatoire#

Exercice 5 : un peu de math#

Comparer les deux modèles sur les données suivantes ? Que remarquez-vous ? Expliquez pourquoi ?

X_test2 = random.rand(n, 2) + 0.5
y_test2 = X_test2[:, 0] * 3 - 2 * X_test2[:, 1] ** 2 + random.rand(n)

Exercice 6 : faire un graphe avec…#

Le nuage de points du premier et second jeu, les prédictions des deux modèles, une légende, un titre… avec pandas ou directement avec matplotlib au choix.

Exercice 7 : illuster l’overfitting avec un arbre de décision#

Sur le premier jeu de données.

Exercice 8 : augmenter le nombre de features et régulariser une régression logistique#

L’objectif est de regarder l’impact de la régularisation des coefficients d’une régression logistique lorsque le nombre de features augmentent.