Economie Statistique

De la théorie à la pratique

Tous les modèles proposées répondent à un problème d’optimisation et convergent avec un algorithme donnée et avec des hypothèses précises sur les données. Dans la plupart des cas, ces hypothèses ne sont jamais vérifiées. Malgré tout, on continue à utiliser le machine learning parce qu’il marche plutôt bien même si les hypothèses initiales ne sont pas vérifiées mais connaître la façon dont sont construits ces modèles aide à construire une liste de recettes qui améliorent leur performances et qui accélèrent le moment où le problème devient vraiment intéressant. Deux ou trois petits à garder à l’esprit.

Les réseaux de neurones s’apprennent avec des méthodes de d’optimisation basées sur le gradient. Elles n’aiment pas les échelles logarithmiques. Les variables de type fréquences (nombre de clics sur une page, nombre d’occurence d’un mot, …) ont des queues épaisses et quelques valeurs extrêmes, il est conseillé de normaliser et de passer à une échelle logarithmique. Elles n’aiment pas les gradients élevés : le gradient peut avoir une valeur très élevée dan un voisinage localisée (un regression proche d’une fonction en escalier), l’optimisation à base de gradient mettra beaucoup de temps à converger. Elles n’aiment pas les variables discrètes : le calcul du gradient fonctionne beaucoup mieux sur des variables continues plutôt que des variables discrètes car cela limite le nombre de valeurs que peut prendre le gradient.

Les forêts aléatoires et les arbres de décision sont des méthodes ensemblistes. Elles n’utilisent pas de gradient. Elles ne sont pas sensibles à la normalisation, comme ces modèles sont des assemblages de décisions basées sur des seuils, ils ne sont pas sensibles aux changements d’échelle. En revanche, elles n’aiment pas trop pas décisions obliques, comme un seuil s’applique sur une variable, il ne peut approcher une droite x + y = 1 qu’avec une fonction en escalier (lire Random Rotation Ensembles). Ces algorithms n’aiment pas non plus les problèmes multi-classe. Pour un assemblage de fonction binaire (au dessus ou en dessous du seuil), il est plus facile d’avoir seulement deux choix. On compense cette lacune avec deux stratégies one versus rest ou one versus one (stratégie dite aussi pair-wise).

Le boosting est une technique de machine learning qui consiste à sur-pondérer les erreurs. Pour un algorithme d’apprentissage itératif, cela consiste à donner plus de poids à l’itération n aux erreurs produites par l’itération n-1. L’algorithme le plus connu est AdaBoost. Le gradient boosting est l’application de ce concept à un modèle et une fonction d’erreur dérivable. A ce sujet : The Boosting Approach to Machine Learning An Overview, A Theory of Multiclass Boosting, weak learner.

XGBoost est un librairie qui a bénéficié de nombreux apports au fur et à mesure des compétitions Kaggle qu’elle a permis de gagner. Certains paramètres qui pilotent l’apprentissage du modèle ne sont pas issus de la théorie mais de la pratique et permettent de contourner un problème de données qui ferait échouer l’apprentissage : paramètres de XGBoost. C’est le cas du paramètre scale_pos_weight qui permet de forcer une distribution des labels de sortie dans le cas d’un problème de classification binaire. C’est utile dans le cas d’un problème de Imbalanced classification.

Notebooks

Lectures

JMLR poste régulièrement des articles sur des librairies de machine learning open source telles que fastFM: A Library for Factorization Machines.

Recherche

Digressions

Métriques

Modules