Une présentation très simple montre les 10 algorithmes d’apprentissage automatique les plus populaires, qui donnent leurs définitions, leurs avantages, leurs inconvénients.
Les 10 plus populaires algorithmes du machine learning
1. Les 10 plus populaires
algorithmes du
Machine Learning
Présenté par : Hakim NASAOUI
LinkedIn : https://www.linkedin.com/in/hakimnasaoui/
2. Introduction
Dans l'apprentissage automatique, il existe un théorème appelé « No Free
Lunch ». En résumé, il est indiqué qu'aucun algorithme ne fonctionne mieux pour
chaque problème, et qu'il est particulièrement pertinent pour l'apprentissage
supervisé (c'est-à-dire la modélisation prédictive).
Par exemple, vous ne pouvez pas dire que les réseaux de neurones sont toujours
meilleurs que les arbres de décision ou inversement. De nombreux facteurs sont
en jeu, tels que la taille et la structure de votre source de données.
Par conséquent, vous devriez essayer de nombreux algorithmes différents pour
votre problème, tout en utilisant un "ensemble de tests" à conserver pour évaluer
les performances et sélectionner le gagnant.
Bien sûr, les algorithmes que vous essayez doivent être adaptés à votre
problème, c'est-à-dire choisir la bonne tâche d'apprentissage automatique.
Comme analogie, si vous devez nettoyer votre maison, vous pouvez utiliser un
aspirateur, un balai ou une vadrouille, mais vous ne sortiriez pas une pelle et
commenceriez à creuser.
3. Principe
Cependant, il existe un principe commun qui sous-tend tous les algorithmes
d'apprentissage automatique supervisé pour la modélisation prédictive.
Les algorithmes d'apprentissage automatique sont décrits comme
l'apprentissage d'une fonction cible (f) qui mappe le mieux les variables
d'entrée (X) à une variable de sortie (Y): Y = f (X)
Il s’agit d’une tâche d’apprentissage générale dans laquelle nous aimerions
faire des prévisions dans l’avenir (Y) à partir de nouveaux exemples de
variables d’entrée (X). Nous ne savons pas à quoi ressemble la fonction (f) ni
sa forme. Si nous le faisions, nous l'utilisions directement et nous n'aurions
pas besoin de l'apprendre à partir de données utilisant des algorithmes
d'apprentissage automatique.
4. Principe
Le type le plus courant d’apprentissage automatique consiste à apprendre à
mapper Y = f (X) pour établir des prédictions de Y pour le nouveau X. C’est ce
que l’on appelle modélisation prédictive ou analyse prédictive et notre
objectif est de permettre des prédictions aussi précises que possible.
Pour les débutants en apprentissage automatique désireux de comprendre les
bases de l’apprentissage automatique, voici un survol rapide des 10
principaux algorithmes d’apprentissage automatique utilisés par les
informaticiens.
6. Choix de l’algorithme
Le choix de l'algorithme optimal pour votre problème dépend de ses
fonctionnalités telles que la vitesse, la précision des prévisions, la durée de
la formation, la quantité de données nécessaires à la formation, sa facilité
de mise en œuvre, sa difficulté à l'expliquer à d'autres car une tâche de
grande envergure scientifique doit discuter et expliquer les modèles et les
algorithmes ML et surtout si l’algorithme résout votre problème.
Un algorithme ne peut pas résoudre tous les problèmes d'apprentissage
machine.
9. Régression linéaire
La régression linéaire est peut-être l’un des algorithmes les plus connus et les
mieux compris en statistique et en apprentissage automatique.
La modélisation prédictive vise principalement à réduire au minimum l'erreur
d'un modèle ou à rendre les prévisions les plus précises possibles, au
détriment de l'explicabilité. Nous allons emprunter, réutiliser et voler des
algorithmes provenant de nombreux domaines, y compris des statistiques, et
les utiliser à ces fins.
La représentation de la régression linéaire est une équation qui décrit une
ligne qui correspond le mieux à la relation entre les variables d'entrée (x) et
les variables de sortie (y), en recherchant des pondérations spécifiques pour
les variables d'entrée appelées coefficients (B).
11. Régression linéaire
Par exemple: y = B0 + B1 * x
Nous allons prédire y étant donné l'entrée x et l'objectif de l'algorithme
d'apprentissage par régression linéaire est de trouver les valeurs des
coefficients B0 et B1.
Différentes techniques peuvent être utilisées pour apprendre le modèle de
régression linéaire à partir de données, telles qu'une solution d'algèbre
linéaire pour l'optimisation des moindres carrés ordinaires et la descente de
gradient.
La régression linéaire existe depuis plus de 200 ans et a fait l'objet de
nombreuses études. L'utilisation de cette technique a pour règle de supprimer
les variables très similaires (corrélées) et d'éliminer le bruit de vos données,
si possible. C'est une technique simple et rapide et un bon premier algorithme
à essayer.
12. Régression logistique
La régression logistique est une autre technique empruntée par
l'apprentissage automatique du domaine des statistiques. C'est la méthode de
référence pour les problèmes de classification binaire (problèmes avec deux
valeurs de classe).
La régression logistique s'apparente à la régression linéaire en ce sens que
l'objectif est de trouver les valeurs des coefficients qui pondèrent chaque
variable d'entrée. Contrairement à la régression linéaire, la prédiction pour la
sortie est transformée à l'aide d'une fonction non linéaire appelée fonction
logistique.
13. Régression logistique
La fonction logistique
ressemble à un grand S et
transformera toute valeur
entre 0 et 1. Ceci est utile car
nous pouvons appliquer une
règle à la sortie de la fonction
logistique pour aligner les
valeurs sur 0 et 1 (par
exemple, IF inférieur à 0,5,
puis sortie 1) et prédire une
valeur de classe.
14. Régression logistique
En raison de la manière dont le modèle est appris, les prédictions faites par
régression logistique peuvent également être utilisées comme la probabilité
qu'une instance de données donnée appartienne à la classe 0 ou à la classe 1.
Cela peut être utile pour les problèmes pour lesquels vous devez justifier
davantage une prédiction.
Comme la régression linéaire, la régression logistique fonctionne mieux
lorsque vous supprimez des attributs qui ne sont pas liés à la variable de
sortie, ainsi que des attributs très similaires (corrélés) les uns aux
autres. C'est un modèle rapide à apprendre et efficace sur les problèmes de
classification binaire.
15. Régression logistique
Avantages Inconvénients
Rapide à entrainer et prévoir Pas très précis
Bon pour les petits problèmes de
données de classification
Ne pas utiliser pour des données non
linéaires
Facile à comprendre Pas flexible pour adapter à des données
complexes
Le modèle finit parfois par sur-adapter
16. Analyse discriminante linéaire
La régression logistique est un algorithme de classification traditionnellement
limité aux problèmes de classification à deux classes. Si vous avez plus de
deux classes, l'algorithme d'analyse linéaire discriminante est la technique de
classification linéaire préférée.
La représentation de LDA est assez simple. Il consiste en des propriétés
statistiques de vos données, calculées pour chaque classe. Pour une seule
variable d'entrée, cela comprend:
La valeur moyenne pour chaque classe.
La variance calculée dans toutes les classes.
17. Analyse discriminante linéaire
Les prédictions sont faites en calculant une valeur
distincte pour chaque classe et en faisant une
prédiction pour la classe avec la plus grande
valeur. La technique suppose que les données ont
une distribution gaussienne (courbe en cloche),
c'est donc une bonne idée de supprimer les
données aberrantes de vos données avant de
commencer. C'est une méthode simple et puissante
pour résoudre les problèmes de modélisation
prédictive.
18. Arbres de classification et de
régression
Les arbres de décision constituent un type important d’algorithme pour la
modélisation prédictive.
La représentation du modèle d'arbre de décision est un arbre binaire. Ceci est
votre arbre binaire d'algorithmes et de structures de données, rien
d'extraordinaire. Chaque nœud représente une variable d'entrée unique (x) et
un point de partage sur cette variable (en supposant que la variable est
numérique).
20. Arbres de classification et de
régression
Les nœuds feuille de l'arbre contiennent une variable de sortie (y) utilisée
pour effectuer une prédiction. Les prédictions sont effectuées en parcourant
les divisions de l’arbre jusqu’à arriver à un nœud feuille et en sortie la valeur
de classe à ce nœud feuille.
Les arbres sont rapides à apprendre et très rapides pour faire des
prédictions. En outre, ils sont souvent exacts pour un large éventail de
problèmes et ne nécessitent aucune préparation particulière pour vos
données.
21. Naïve Bayes
Naïve Bayes est un algorithme simple mais étonnamment puissant pour la
modélisation prédictive.
Le modèle comprend deux types de probabilités qui peuvent être calculées
directement à partir de vos données d'entraînement: 1) la probabilité de
chaque classe; et 2) La probabilité conditionnelle pour chaque classe étant
donnée chaque valeur x. Une fois calculé, le modèle de probabilité peut être
utilisé pour établir des prévisions pour les nouvelles données à l'aide du
théorème de Bayes. Lorsque vos données ont une valeur réelle, il est courant
de supposer une distribution gaussienne (courbe de cloche) afin de pouvoir
estimer facilement ces probabilités.
22. Naïve Bayes
Naïve Bayes est appelée naïve car elle suppose que chaque variable d'entrée est
indépendante. Ceci est une hypothèse forte et irréaliste pour des données réelles. Néanmoins,
la technique est très efficace sur un large éventail de problèmes complexes.
23. Naïve Bayes
L'algorithme KNN est très simple et très efficace. La représentation du
modèle pour KNN est l’ensemble des données de formation. Simple droit?
Les prévisions sont établies pour un nouveau point de données en effectuant
une recherche dans l'ensemble complet d'apprentissage pour les K instances
les plus similaires (les voisins) et en résumant la variable de sortie pour ces K
instances. Pour les problèmes de régression, il peut s’agir de la variable de
sortie moyenne. Pour les problèmes de classification, il peut s’agir de la
valeur de classe mode (ou la plus courante).
24. K-Nearest Neighbor
L'astuce consiste à déterminer la similarité
entre les instances de données. La technique
la plus simple si vos attributs ont tous la
même échelle (tous en pouces, par exemple)
consiste à utiliser la distance euclidienne, un
nombre que vous pouvez calculer
directement en fonction des différences
entre chaque variable en entrée.
25. K-Nearest Neighbor
KNN peut nécessiter beaucoup de mémoire ou d'espace pour stocker toutes
les données, mais effectue uniquement un calcul (ou un apprentissage)
lorsqu'une prévision est nécessaire, juste à temps. Vous pouvez également
mettre à jour et gérer vos instances de formation au fil du temps pour que les
prévisions restent exactes.
L'idée de distance ou de proximité peut tomber en très grandes dimensions
(beaucoup de variables d'entrée), ce qui peut affecter négativement les
performances de l'algorithme sur votre problème. C'est ce qu'on appelle la
malédiction de la dimensionnalité. Il vous suggère d'utiliser uniquement les
variables d'entrée les plus pertinentes pour prédire la variable de sortie.
26. K-Nearest Neighbor
Avantages Inconvénients
Simple Mémoire intensive coûteuse
Adaptable au problème Toutes les données de formation
peuvent être impliquées dans la prise
de décision
Précis Ralentissement des performances dû
aux opérations IO
Facile à comprendre Choisir une mauvaise mesure de
distance peut produire des résultats
inexacts
Utilise des arbres spatiaux pour
améliorer les problèmes d'espace
27. Learning Vector Quantization (LVQ)
L'inconvénient de K-Nearest Neighbours est que vous devez conserver
l'ensemble de vos données d'entraînement. L'algorithme Learning Vector
Quantization (ou LVQ en abrégé) est un algorithme de réseau de neurones
artificiel qui permet de choisir le nombre d'instances de formation sur
lesquelles se suspendre et d'apprendre exactement à quoi ces instances
devraient ressembler.
28. Learning Vector Quantization (LVQ)
La représentation de LVQ est une collection de vecteurs de ‘codebook’. Celles-ci
sont sélectionnées au hasard au début et adaptées pour résumer au mieux
l'ensemble de données d'apprentissage sur un certain nombre d'itérations de
l'algorithme d'apprentissage. Une fois appris, les vecteurs du dictionnaire de codes
peuvent être utilisés pour faire des prédictions, tout comme K-Nearest
Neighbours. Le voisin le plus similaire (vecteur de code correspondant le mieux)
est trouvé en calculant la distance entre chaque vecteur de code et la nouvelle
instance de données. La valeur de classe ou (valeur réelle dans le cas d'une
régression) pour la meilleure unité correspondante est ensuite renvoyée en tant
que prédiction. Les meilleurs résultats sont obtenus si vous redimensionnez vos
données pour qu'elles aient la même plage, par exemple entre 0 et 1.
Si vous découvrez que KNN donne de bons résultats sur votre jeu de données,
essayez d’utiliser LVQ pour réduire les besoins en mémoire du stockage du jeu de
données d’entraînement complet.
29. Support Vector Machines (SVM)
Les machines à vecteurs de support sont peut-être l’un des algorithmes
d’apprentissage automatique les plus populaires et les plus discutés.
Un hyperplan est une ligne qui divise l’espace variable en entrée. Dans SVM,
un hyperplan est sélectionné pour mieux séparer les points de la variable
d'entrée par leur classe, soit la classe 0, soit la classe 1. En deux dimensions,
vous pouvez visualiser ceci sous forme de ligne et supposons que tous nos
points d'entrée peuvent être complètement séparé par cette
ligne. L'algorithme d'apprentissage SVM recherche les coefficients qui
permettent la meilleure séparation des classes par l'hyperplan.
31. Support Vector Machines (SVM)
La distance entre l'hyperplan et les points de données les plus proches est
appelée la marge. L'hyperplan optimal ou optimal pouvant séparer les deux
classes est la ligne qui présente la marge la plus grande. Seuls ces points sont
pertinents dans la définition de l'hyperplan et dans la construction du
classificateur. Ces points sont appelés les vecteurs de support. Ils supportent
ou définissent l'hyperplan. En pratique, un algorithme d'optimisation est
utilisé pour trouver les valeurs des coefficients qui maximisent la marge.
SVM est peut-être l’un des classificateurs les plus puissants prêts à l’emploi et
il vaut la peine d’essayer votre ensemble de données.
32. Random Forest
Random Forest est l’un des algorithmes d’apprentissage automatique les plus
populaires et les plus puissants. Il s’agit d’un type d’algorithme
d’apprentissage automatique appelé «Bootstrap Aggregation» ou «bagging».
Le bootstrap est une méthode statistique puissante permettant d’estimer une
quantité à partir d’un échantillon de données. Comme un moyen. Vous prenez
beaucoup d'échantillons de vos données, calculez la moyenne, puis faites la
moyenne de toutes vos valeurs moyennes pour vous donner une meilleure
estimation de la vraie valeur moyenne.
33. Random Forest
Dans la mise en sac, la même approche est utilisée, mais plutôt pour estimer
des modèles statistiques entiers, le plus souvent des arbres de
décision. Plusieurs échantillons de vos données d'entraînement sont prélevés,
puis des modèles sont construits pour chaque échantillon de données. Lorsque
vous devez effectuer une prévision pour les nouvelles données, chaque
modèle en fait une prédiction et la moyenne des prédictions est calculée afin
de fournir une meilleure estimation de la valeur de sortie réelle.
35. Random Forest
Random forest est un ‘tweak’ sur cette approche où les arbres de décision
sont créés de telle sorte que plutôt que de sélectionner les points de partage
optimaux, les séparations sous-optimales sont effectuées en introduisant
aléatoire.
Les modèles créés pour chaque échantillon de données sont donc plus
différents qu'ils ne le seraient autrement, mais restent précis de manière
unique et différente. En combinant leurs prévisions, on obtient une meilleure
estimation de la véritable valeur de sortie sous-jacente.
Si vous obtenez de bons résultats avec un algorithme à variance élevée
(comme les arbres de décision), vous pouvez souvent obtenir de meilleurs
résultats en ensachant cet algorithme.
36. Random Forest
Avantages Inconvénients
Très précis Lent à l'entraînement
bon point de départ pour résoudre un
Problème
Sur-adapter
Flexible et peut s'adapter à une variété
de données différentes
Ne convient pas aux petits échantillons
Rapide à exécuter Petit changement dans les données
d'entraînement => changement de modèle
Facile à utiliser Parfois trop simple pour des problèmes
très complexes
Utile pour les problèmes de régression et
de classification
Peut modéliser les valeurs manquantes
Haute performance
37. Boosting & AdaBoost
Le boosting est une technique d'ensemble qui tente de créer un classificateur
fort à partir d'un certain nombre de classificateurs faibles. Cela se fait en
construisant un modèle à partir des données d'apprentissage, puis en créant
un deuxième modèle qui tente de corriger les erreurs du premier modèle. Les
modèles sont ajoutés jusqu'à ce que l'ensemble d'apprentissage soit
parfaitement prévu ou jusqu'à ce qu'un nombre maximal de modèles soit
ajouté.
AdaBoost a été le premier algorithme de boosting réellement réussi
développé pour la classification binaire. C'est le meilleur point de départ pour
comprendre stimuler. Les méthodes de boosting modernes reposent sur
AdaBoost, notamment les machines à boosting de gradient stochastique.
39. Boosting & AdaBoost
AdaBoost est utilisé avec des arbres de décision courts. Une fois le premier arbre
créé, les performances de l’arbre sur chaque instance d’entraînement servent à
pondérer le degré d’attention accordé à l’arbre suivant créé qui doit prêter
attention à chaque instance d’entraînement. Les données d'entraînement qui sont
difficiles à prédire ont plus de poids, alors que les cas faciles à prévoir ont moins
de poids. Les modèles sont créés séquentiellement l'un après l'autre, chacun
mettant à jour les pondérations sur les instances d'apprentissage qui affectent
l'apprentissage effectué par l'arborescence suivante de la séquence. Une fois
toutes les arborescences construites, des prédictions sont établies pour les
nouvelles données et la performance de chaque arborescence est pondérée par
son degré de précision par rapport aux données d'apprentissage.
Étant donné que l'algorithme accorde beaucoup d'attention à la correction des
erreurs, il est important que vous disposiez de données claires, sans données
aberrantes.
41. Conclusion
Une question typique posée par un débutant, face à une grande variété
d’algorithmes d’apprentissage automatique, est la suivante: «quel algorithme
dois-je utiliser?». La réponse à la question varie en fonction de nombreux
facteurs, notamment:
1. La taille, la qualité et la nature. de données;
2. Le temps de calcul disponible;
3. L'urgence de la tâche;
4. Et ce que vous voulez faire avec les données.
Même un scientifique expérimenté ne peut pas dire quel algorithme donnera
les meilleurs résultats avant d’essayer différents algorithmes. Bien qu'il existe
de nombreux autres algorithmes d'apprentissage automatique, ceux-ci sont
les plus populaires.