dimanche 7 juin 2020

Machine learning : d'Octave à Python

  • 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.