Apprentissage avec Python et Scikit-learn

Page 1 sur 4Lecteur de document UniversityLib

Apprentissage avec Python et Scikit-learn

Linear Regression and Model Evaluation in Data Science · lab

Voir tous les documents en intelligence artificielle et données

APPRENTISSAGE AVEC PYTHON ET SICKIT LEARN

Master 1 Business Analytics & Data Science

TP1 : Régression Linéaire avec Scikit-learn

Suite : Evaluation du Modèle & Etude Théorique

Mounira Ilahi Amri

Objectifs

Pour le TP précédent, nous avons vu comment faire une régression

linéaire en python à l’aide de la librairie sklearn sur un problème

élémentaire. Ce TP fait la suite. Nous allons apprendre à :

 Utiliser la somme résiduelle des carrés pour évaluer

l’apprentissage de notre modèle,

 Résoudre analytiquement l’équation correspondant à notre

modèle afin de minimiser la fonction de coût,

 Mesurer les performances de notre modèle sur un ensemble

de test.

** Ce tp est insipré des travaux de Gavin Hackeling dans le livre

Mastering machine learning with scikit-learn.

Exercice 3: Evaluation du modèle

Il nous faut maintenant évaluer notre modèle. Pour cela, nous avons besoin de définir

Publicité

une fonction de perte (également appelée une fonction de coût). La différence entre le

prix réel des pizzas et le prix prédit par notre modèle est appelée erreur résiduelle ou

erreur d’apprentissage. Lorsque nous évaluons notre modèle sur une base de test

indépendante, l’erreur résultante est appelée erreur de prédiction ou erreur de test.

Nous pouvons créer le meilleur modèle possible en minimisant la somme de l’erreur

résiduelle. Cette erreur est appellée residual sum of squares RSS (indiqués par les lignes

verticales en rouge).

1

La fonction de coût associée à cette erreur est définie comme suit :

(cid:6)

(cid:1)(cid:2)(cid:2) (cid:4) (cid:5)

(cid:7)(cid:8)(cid:9)

(cid:10)(cid:11)(cid:12) (cid:13) (cid:14) (cid:10)(cid:15)(cid:12)(cid:16)(cid:16) (cid:17)

avec yi la valeur observée et f (xi) la valeur prédite.

Calculer l’erreur obtenue en python.

Residual sum of squares : 1.75

Exercice 4: Etude théorique de notre problème de pizza

Nous souhaitons trouver les meilleurs paramètres α et β pour résoudre l’équation y =

αx + β (minimiser la fonction de coût).

Publicité

Pour calculer le paramètre α nous avons besoin de calculer la variance de x et la

covariance de x et y. La variance mesure à quel point un échantillon de points est

éparpillé. Une variance proche de 0 signifie que les données sont proches de leur

moyenne. La variance est calculée comme suit :

avec x¯ la moyenne des x, xi l’exemple d’apprentissage, et n le nombre d’exemples.

Nous pouvons directement calculer la variance d’un échantillon à l’aide de la

2

bibliothèque numpy avec la fonction np.var(x, ddof=1).

La covariance mesure à quel point deux variables changent ensemble. Si les variables

augmentent en même temps alors la covariance est positive, si l’une augmente et l’autre

diminue alors la covariance est négative. S’il n’existe aucune relation entre les deux

variables alors la covariance est nulle.

La covariance est calculée :

avec xi le ième exemple, x¯ la moyenne des x, y¯ la moyenne des prix, et yi le prix du

ième exemple.

Comme pour la variance, nous pouvons calculer la covariance directement à l’aide de

numpy avec np.cov(x.transpose(), y)[0][1].

Nous avons maintenant les valeurs de la variance et de la covariance nécessaires pour

calculer le paramètre α comme suit :

Publicité

Calculer ce paramètre.

Il nous faut maintenant calculer le paramètre β = y¯ αx¯, avec y¯ la moyenne des y,

et x¯ la moyenne des x (notre modèle doit passer par le centroid de coordonnées (x¯,

y¯)).

Calculer ce paramètre.

Afin d’éviter le surapprentissage, nous souhaitons maintenant évaluer notre modèle

sur un ensemble de test indépendant. Définissons cet ensemble comme suit :

Exemple

1

2

3

4

5

Taille

8

9

11

16

Publicité

12

Prix

11

8.5

15

18

11

Nous allons utiliser une mesure classique appelée R-squared (coefficient de

3

détermination). Nous avons besoin de notre RSS définie précédement ainsi que la

somme totale des carrés :

avec yi la prédiction pour la ième variable et y¯ la moyenne des valeurs prédites.

Nous définissons simplement

Heureusement, là encore nous pouvons calculer directement R2 avec sklearn, en

utilisant la fonction score.

Rsquared = 0.66

4