- Dans son cours en ligne ‘Machine Learning’ (Stanford), le professeur NG Andrew utilise les langages Octave et Matlab pour les travaux pratiques. J’ai refait le premier TP en Python (Pandas et Numpy) et cet article est à prendre comme un retour d’expérience.
Le TP numero 1 se divise en deux parties :
Les problèmes de régression linéaire par la descente de gradient
· A une seule variable
· A plusieurs variables
Avec une comparaison par rapport à une résolution par l’équation
normale.
Partie 1
Le problème est de trouver les coefficients de la droite qui
s’ajuste le mieux à ce nuage de point :
Pour cela on utilisa le méthode de la descende de gradient qui consiste trouver par petites touches le
point le plus base de cette figure : Elle représente la courbe du ‘coût’
(fonction d’erreur)
Le résultat est le point situé au coordonnées : 1.1664
(<->) et -3.630 (|)
Utilisation de Python
Les librairies utilisées sont :
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
Axe3D permettra de réaliser la courbe 3D de la fonction coût.
La difficulté du codage réside dans le partage de rôle entre
pandas et numpy. Les calculs de matrices sont à faire avec numpy mais pandas
propose aussi ses propres fonctions de calcul.
Je n’ai pas chercher à refactoriser mon code qui demeure
très laid.
L’effort portera sur la 2eme partie de l’exercice.
Ci-dessous la comparaison entre Python et Octave.