Résultats

Nous avons donc maintenant tous les outils pour comprendre comment marche la régression linéaire. Voyons voir ses résultats sur nos données de recensement de test :


Taux d'erreur : 15.649183147%
F1 : 60.7274969174%
Temps de calcul : négligeable (10 secondes sur un pc portable de 2011)


Le dataset fourni un ensemble de performances de plusieurs algorithmes entre 14 et 21%. sur l'échantillon de test.

La régression linéaire couplée à l'encodage one-hot est donc dans la bonne moyenne.
Si nous lançons notre prédicteur sur l'ensemble d'entrainement :

Taux d'erreur : 15.8958294945%
F1 : 60.8056943813%

Les score étant très similaires au corpus de tests. On peut estimer que l'algorithme ne s'est pas sur-entrainé (il aurait eu dans ce cas de bien meilleurs scores sur le corpus d'entrainement). Une des raisons et que nous avons utilisé un simple modèle linéaire, une ligne a bien du mal à toucher un ensemble de points.


C'est à la fois un avantage et un inconvénient.

Régression polynomiale et logistique

Nous n'allons pas rentrer dans les détails mais il est possible d'utiliser d'autres modèles que la ligne pour essayer de 'coller' un peu plus à nos données. Par exemple :

modèle linéaire : h(x) = ax+b
modèle polynomial (exemple 1) : h(x) = ax2+b
modèle polynomial (exemple 2) : h(x) = a√ x  + b
modèle sigmoïde (ou logistique) : g(z) = 1 / (1+e-z)

Les modèles polynomiaux 1 et 2 sont des régressions linéaires particulières, c'est à dire : multilinéaires. Notre 'ligne' à la place d'être droite comme dans le modèle linéaire sera courbée. Mais cela reste le même type de problème. On utilisera donc pour les régressions polynomiales, la régression linéaire n'étant qu'une régression polynomiale de degré 1,  les même outils (fonction de coûts, gradient descent).

http://fr.wikipedia.org/wiki/R%C3%A9gression_polynomiale


La régression logistique est également identique mais c'est une méthode de classification contrairement à ce que son nom indique ! En effet, la formule de la sigmoïde g(z) = 1 / (1+e-z) varie simplement entre 0 et 1 (contrairement à un polynôme  ax2+b par exemple qui peut prendre toutes les valeurs). C'est donc une méthode de classification binaire.




Ces nouveaux modèles nous permette d'avoir des courbes bien plus 'flexibles' (cf animation plus haut) mais on a donc aussi plus de risques de sur-entrainement.

Régularisation

La régularisation vient alors nous aider en amoindrissant l'effet de nos paramètres (excepté le paramètre d'interception b0). On parle d'une pénalité λ (λ1, λ2, λ3, ..) que l'on va appliquer à b1, b2, b3, ... Si un i commence à être trop grand alors on lui appliquera un λi pour amoindrir sa valeur.
Notre formule de coût qui était :

J(B ) = \frac{1}{2m} [ \sum\limits_{i=0}^m (h_{B}(x^{(i)}))-y^{(i)}) ]^2
devient alors :

J(B ) = \frac{1}{2m} [ \sum\limits_{i=0}^m (h_{B}(x^{(i)}))-y^{(i)}) ]^2 + \lambda\sum\limits_{i=1}^nb _{i}^{2}



Notons de nouveau que l'on n'applique pas la régularisation sur le paramètre d'interception b0.

Exemple :

Nous avons une hypothèse h, avec une seule variable, décrite par :

h_{B}(x) = 19 - x - 13x^2 + x^3 +x^4
On voit qu'il y a un paramètre b2=-13 beaucoup plus 'grand' que les autres : b1=-,b3=1,b4=1 (rappel b0=19 ne compte pas).

Imaginons qu'après régularisation, le -13 a été pénalisé, nous aurions quelque chose comme :

\sim h_{B}(x) = 19 - x - 5x^2 + x^3 +x^4
On passerait alors d'une courbe comme celle en bleu à celle en rouge, plus régulière. (mais attention un λ et notre modèle ne collera plus du tout à nos données (underfit)).