What is supervised learning?

Comme nous l’avons dit dans l’article Avez-vous dit apprentissage machine ?, l’apprentissage supervisé est l’un des trois principaux types d’apprentissage machine. Il se fait à l’aide d’annotations, ce qui signifie que les échantillons de données d’entraînement sont étiquetés et que le but est d’apprendre une fonction qui se rapproche le plus possible de la relation entre l’entrée et la sortie observable dans les données.

« À LA FIN DE L’ARTICLE, VOUS POURREZ DISTINGUER ENTRE LES ALGORITHMES DE CLASSIFICATION ET DE RÉGRESSION »

La question que vous pouvez vous poser maintenant est à quels types de problèmes cela convient. Il y a principalement deux contextes où l’apprentissage supervisé est recommandé : la classification et la régression.

La classification permet de trier les individus en catégories. L’annotation est donc discrète, p.ex. succès/échec d’une expérience, survie des passagers du Titanic.

La régression consiste à identifier des valeurs réelles (dollars, poids, etc.). L’annotation est donc continue, par exemple les ventes en magasin, le nombre de touristes.

Avant d’aller plus loin, examinons comment un problème d’apprentissage machine est abordé.

Dans un premier temps, les données sont extraites de multiples façons (appel API, fichier CSV, requête SQL,…), puis elles sont nettoyées pour supprimer toute redondance ou inexactitude et explorées pour reconnaître les caractéristiques, la cible, le type du problème (classification/régression), le nombre de valeurs manquantes, etc.

Ensuite, nous devons manipuler les prédicteurs à l’aide de techniques d’ingénierie des caractéristiques telles que : binarisation des variables catégorielles et remplissage des valeurs manquantes. Il s’agit d’une étape importante car elle rend les ensembles de données conformes aux spécifications des modèles.

Finalement, nous adaptons notre modèle aux données d’entraînement et nous le testons sur des données de validation qu’il n’a jamais vues pour évaluer sa performance. Pour une estimation plus robuste des performances, nous utilisons la validation croisée où l’ensemble de validation est tiré de différentes parties des données.

Algorithmes de régression – Exemples

Régression linéaire

La régression linéaire simple est probablement la plus ancienne technique d’apprentissage machine. Ce n’est pas une méthode qui a été conçue explicitement pour être utilisée dans des cadres de prédiction, mais son but initial est d’observer la relation entre deux variables numériques constantes. Par exemple, les gains d’un joueur de basket-ball par rapport aux points marqués l’année précédente. Il tente de trouver la corrélation entre les deux variables en traçant une ligne de tendance.

Cependant, dans les ensembles de données complexes, nous avons plus de deux variables à analyser. Voici la notion de régression linéaire multivariée où l’idée est d’obtenir un coefficient de « corrélation » pour chaque prédicteur avec la variable réponse.

Discutons brièvement d’un exemple simple lorsque nous avons trois prédicteurs et une variable cible y.

Notre objectif est de trouver les coefficients : \beta_i tel que: y = \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_3

Cela peut se faire en résolvant le problème du maximum de vraisemblance.

Réseaux neuronaux

Un réseau neuronal est conçu pour modéliser le fonctionnement du cerveau humain. Il s’agit d’un réseau d’éléments fonctionnels interconnectés, chacun ayant plusieurs entrées et une sortie.

Pour simplifier les choses, voyons comment fonctionne un réseau neuronal à une couche cachée. Il est composé d’une couche d’entrée, d’une couche cachée et d’une couche de sortie.

Dans la figure ci-dessus, nous avons des échantillons décrits par trois prédicteurs. Une fois que la couche cachée reçoit les données d’entrée, elle applique la fonction d’activation sur le produit scalaire entre les poids et les prédicteurs et génère la sortie :

y(x_1,\ldots,x_n) = f(w_1x_1 + w_2x_2 + \ldots + w_nx_n)

w_i sont les paramètres, x_i les predicteurs et f la function d’activation.

Dans une architecture de réseau neuronal, la dernière couche est celle qui génère la sortie, cela dépend du problème à résoudre : classification ou régression. Plusieurs fonctions d’activation sont utilisées, les plus connues sont sigmoid, tanh, ReLU et Leaky ReLU.

Dans le cas de la classification, la sigmoïd et le tanh sont utilisés pour obtenir des probabilités entre 0 et 1 alors que pour la régression, nous utilisons surtout ReLU ou Leaky ReLU.

Algorithmes de classification – Exemples

Régression logistique

La régression logistique a été introduite suite à la volonté de modéliser les probabilités postérieures des différentes classes en utilisant des fonctions linéaires comme dans le cas de la régression linéaire. Nous aimerions modéliser les probabilités de cette façon :

P(Y_i\vert X_i) = \beta_0 + \beta^tX_i

Toutefois, ils doivent être définis dans l’intervalle[0,1], ce qui n’est pas garanti dans l’expression ci-dessus. Pour vérifier cette condition, nous utilisons la fonction logit :

logit(p) = log(\frac{p}{1-p})

Nous allons donc chercher \beta_0 et \beta_1 dans l’équation suivante en résolvant le problème d’optimisation du maximum de vraisemblance :

log(\frac{P(Y_i=1\vert X_i)}{1 - P(Y_i=1\vert X_i)}) = \beta_0 + \beta^tX_i

Random Forest Classifier

Random Forest s’inscrit dans le cadre des algorithmes d’arbre. Il est basé sur le principe du Bagging (Bootstrap Aggregating) où l’idée est de construire plusieurs arbres en prenant à chaque fois un bootstrap des données (tirage avec remise) pour réduire la variance des arbres. La principale différence entre le Bagging et Random Forest est que dans le premier cas, il est fortement supposé que les arbres sont indépendants et distribués de manière identique alors qu’en réalité ceux-ci sont corrélés.

En effet, en cherchant des variables sur lesquelles diviser les branches, il est très probable de trouver les mêmes en passant d’un arbre à l’autre. L’idée est de sélectionner au hasard un sous-ensemble de toutes les variables sur lesquelles la recherche de la meilleure répartition sera effectuée.

SVM Classifier

Les SVM (Support Vector Machines) sont une classe d’algorithmes d’apprentissage initialement définis pour la classification, c’est-à-dire la prédiction d’une variable qualitative binaire. Ils ont ensuite été généralisés aux tâches de régression. En cas de discrimination d’une variable binaire, la méthode est basée sur la recherche de l’hyperplan de marge optimale qui, lorsque les données sont séparables linéairement, sépare correctement les données tout en étant le plus loin possible de toutes les observations. Le principe est donc de trouver un discriminateur dont la capacité de généralisation (qualité de la prévision) est la plus grande possible.

Il est important de savoir que la marge est déterminée par les vecteurs de support uniquement comme le montrent les images pour un cas linéairement séparable. Cela signifie que si les vecteurs de support sont précis, le modèle est robuste au bruit car la marge n’est pas affectée par ces nouveaux points.

LEAVE A REPLY

Please enter your comment!
Please enter your name here