Rappels sur scikit-learn et le machine learning

Links: notebook, html, PDF, 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.