Rappels sur scikit-learn et le machine learning¶

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.

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

Des données synthétiques¶

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

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

Exercice 1 : diviser en base d'apprentissage et de test¶

In [5]:
 

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

Et calculer le coefficient $R^2$.

In [6]:
 

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

In [7]:
 

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

In [8]:
 

Exercice 5 : un peu de math¶

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

In [9]:
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.

In [10]:
 

Exercice 7 : illuster l'overfitting avec un arbre de décision¶

Sur le premier jeu de données.

In [11]:
 

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.

In [12]: