Introduction aux algorithmes d'apprentissage automatique

Le Machine Learning est l'étude de l'analyse prédictive qui fonctionne sur le principe que les ordinateurs apprennent des données passées et font ensuite des prédictions sur les nouvelles données. L'avènement des algorithmes d'apprentissage automatique remonte à longtemps lorsque les ordinateurs ont été développés. Cependant, le battage médiatique récent est le résultat des grandes quantités de données qui sont générées et de l'énorme puissance de calcul que possèdent les ordinateurs modernes. Cela a entraîné l'émergence du Deep Learning, un sous-domaine du Machine Learning qui se nourrit de plus de données. Il fonctionne comme un cerveau humain où les neurones sont utilisés pour prendre de meilleures décisions. De même, en Deep Learning, les réseaux de neurones forment les couches qui suivent le principe de la transmission et de la propagation vers l'arrière pour prendre de meilleures décisions.

Catégories d'algorithmes d'apprentissage automatique

Le domaine des algorithmes d'apprentissage machine pourrait être classé en -

  • Apprentissage supervisé - Dans l'apprentissage supervisé, l'ensemble de données est étiqueté, c'est-à-dire que pour chaque caractéristique ou variable indépendante, il existe des données cibles correspondantes que nous utiliserions pour former le modèle.
  • Apprentissage non supervisé - Contrairement à l'apprentissage supervisé, l'ensemble de données n'est pas étiqueté dans ce cas. Ainsi, la technique de regroupement est utilisée pour regrouper les données en fonction de leur similitude entre les points de données du même groupe.
  • Apprentissage par renforcement - Un type spécial d'apprentissage automatique où le modèle apprend de chaque action entreprise. Le modèle est récompensé pour toute décision correcte prise et pénalisé pour toute mauvaise décision qui lui permet d'apprendre les modèles et de prendre de meilleures décisions précises sur des données inconnues.

Division des algorithmes d'apprentissage automatique

Les problèmes des algorithmes d'apprentissage machine peuvent être divisés en -

  • Régression - Il existe une relation continue entre les variables dépendantes et indépendantes. La variable cible est de nature numérique tandis que les variables indépendantes peuvent être numériques ou catégorielles.
  • Classification - L'énoncé de problème le plus courant dans le monde réel consiste à classer un point de données dans une classe binaire, multinomiale ou ordinale. Dans le problème de classification binaire, la variable cible n'a que deux résultats (Oui / Non, 0/1, Vrai / Faux). Dans le problème de classification multinomiale, il existe plusieurs classes dans la variable cible (Apple / Orange / Mango, etc.). Dans le problème de classification ordinale, la variable cible est ordonnée (par exemple - la note des élèves).

Maintenant, pour résoudre ce genre de problèmes, les programmeurs et les scientifiques ont développé des programmes ou des algorithmes qui pourraient être utilisés sur les données pour faire des prédictions. Ces algorithmes pourraient être divisés en algorithmes linéaires et non linéaires ou basés sur des arbres. Les algorithmes linéaires comme la régression linéaire, la régression logistique sont généralement utilisés lorsqu'il existe une relation linéaire entre l'entité et la variable cible, tandis que les données qui présentent des modèles non linéaires, les méthodes basées sur les arbres telles que l'arbre de décision, la forêt aléatoire, le renforcement des gradients, etc., sont préférés.

Jusqu'à présent, nous avons eu une brève intuition sur l'apprentissage automatique. Vous allez maintenant apprendre certains de ses algorithmes préprogrammés que vous pourriez utiliser dans votre prochain projet.

Des algorithmes

Il existe actuellement de nombreux algorithmes d'apprentissage automatique sur le marché et cela ne fera qu'augmenter compte tenu de la quantité de recherches en cours dans ce domaine. La régression linéaire et logistique sont généralement les premiers algorithmes que vous apprenez en tant que Data Scientist, suivis par des algorithmes plus avancés.

Voici quelques-uns des algorithmes d'apprentissage automatique ainsi que des exemples d'extraits de code en python.

1. Régression linéaire

Comme son nom l'indique, cet algorithme pourrait être utilisé dans les cas où la variable cible qui est de nature continue dépend linéairement des variables dépendantes. Il est représenté par -

y = a * x + b + e, où y est la variable cible que nous essayons de prédire, a est l'ordonnée à l'origine et b est la pente, x est notre variable dépendante utilisée pour faire la prédiction. Il s'agit d'une régression linéaire simple car il n'y a qu'une seule variable indépendante. Dans le cas de la régression linéaire multiple, l'équation aurait été -

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

Ici, e est le terme d'erreur et a1, a2 .. a (n) sont le coefficient des variables indépendantes.

Pour évaluer les performances du modèle, une métrique est utilisée qui, dans ce cas, pourrait être l'erreur quadratique moyenne qui est la racine carrée de la moyenne de la somme de la différence entre les valeurs réelles et prévues.

Le but de la régression linéaire est de trouver la ligne la mieux ajustée qui minimiserait la différence entre les points de données réels et prévus.

La régression linéaire pourrait être écrite en Python comme ci-dessous -

2. Régression logistique

En termes de maintien d'une relation linéaire, c'est la même chose que la régression linéaire. Cependant, contrairement à la régression linéaire, la variable cible dans la régression logistique est catégorielle, c'est-à-dire de nature binaire, multinomiale ou ordinale. Le choix de la fonction d'activation est important en régression logistique car pour les problèmes de classification binaire, le log des cotes en faveur c'est à dire la fonction sigmoïde est utilisé.

Dans le cas d'un problème multi-classes, la fonction softmax est préférée car une fonction sigmoïde prend beaucoup de temps de calcul.

La métrique utilisée pour évaluer un problème de classification est généralement la précision ou la courbe ROC. Plus la zone sous le ROC est grande, meilleur est le modèle. Un graphique aléatoire aurait une AUC de 0, 5. La valeur 1 indique la plus grande précision, tandis que 0 indique la moindre précision.

La régression logistique pourrait être écrite en apprenant comme -


3. K-voisins les plus proches

Les algorithmes d'apprentissage automatique peuvent être utilisés pour les problèmes de classification et de régression. L'idée derrière la méthode KNN est qu'elle prédit la valeur d'un nouveau point de données en fonction de ses K voisins les plus proches. K est généralement préféré comme un nombre impair pour éviter tout conflit. Lors de la classification de tout nouveau point de données, la classe avec le mode le plus élevé dans les voisins est prise en compte. Alors que pour le problème de régression, la moyenne est considérée comme la valeur.

J'ai appris que le KNN est écrit comme -


KNN est utilisé dans la construction d'un moteur de recommandation.

4. Soutenir les machines à vecteurs

Un algorithme de classification où un hyperplan sépare les deux classes. Dans un problème de classification binaire, deux vecteurs de deux classes distinctes sont considérés comme les vecteurs de support et l'hyperplan est dessiné à la distance maximale des vecteurs de support.

Comme vous pouvez le voir, une seule ligne sépare les deux classes. Cependant, dans la plupart des cas, les données ne seraient pas aussi parfaites et un simple hyperplan ne pourrait pas séparer les classes. Par conséquent, vous devez régler des paramètres tels que la régularisation, le noyau, le gamma, etc.

Le noyau peut être linéaire ou polynomial selon la façon dont les données sont séparées. Dans ce cas, le noyau est de nature linéaire. Dans le cas de la régularisation, vous devez choisir une valeur optimale de C, car la valeur élevée pourrait entraîner un sur-ajustement tandis qu'une petite valeur pourrait sous-adapter le modèle. L'influence d'un seul exemple d'entraînement est définie par Gamma. Les points proches de la ligne sont considérés dans le gamma élevé et vice versa pour le gamma faible.

Dans sklearn, SVM s'écrit -


5. Bayes naïfs

Il fonctionne sur le principe du théorème de Bayes qui trouve la probabilité d'un événement considérant certaines conditions réelles. Le théorème de Bayes est représenté comme -

L'algorithme est appelé Naive car il pense que toutes les variables sont indépendantes et la présence d'une variable n'a aucun rapport avec les autres variables, ce qui n'est jamais le cas dans la vie réelle. Naive Bayes pourrait être utilisé dans la classification des courriers électroniques indésirables et dans la classification des textes.

Code Naïve Bayes en Python -

6. Arbre de décision

Utilisé pour les problèmes de classification et de régression, l'algorithme Arbre de décision est l'un des algorithmes d'apprentissage automatique les plus simples et les plus facilement interprétables. Il n'est pas affecté par les valeurs aberrantes ou manquantes dans les données et pourrait capturer les relations non linéaires entre les variables dépendantes et indépendantes.

Pour construire un arbre de décision, toutes les fonctionnalités sont prises en compte dans un premier temps, mais la fonctionnalité avec le gain d'informations maximal est considérée comme le nœud racine final sur la base duquel le fractionnement successif est effectué. Ce fractionnement se poursuit sur le nœud enfant en fonction des critères d'information maximum et il s'arrête jusqu'à ce que toutes les instances aient été classées ou que les données n'aient pas pu être divisées davantage. Les arbres de décision sont souvent sujets au sur-ajustement et il est donc nécessaire d'ajuster l'hyperparamètre comme la profondeur maximale, les nœuds foliaires minimaux, les échantillons minimaux, les caractéristiques maximales, etc. Pour réduire le sur-ajustement, il existe une approche gourmande qui définit les contraintes à chaque étape et choisit les meilleurs critères possibles pour cette répartition. Il existe une autre meilleure approche appelée élagage, où l'arbre est d'abord construit à une certaine profondeur prédéfinie, puis à partir du bas, les nœuds sont supprimés s'il n'améliore pas le modèle.

Dans sklearn, les arbres de décision sont codés comme -



7. Forêt aléatoire

Pour réduire le surajustement dans l'Arbre de décision, il est nécessaire de réduire la variance du modèle et ainsi le concept d'ensachage a été mis en place. L'ensachage est une technique où la sortie de plusieurs classificateurs est prise pour former la sortie finale. La forêt aléatoire est une de ces méthodes d'ensachage où l'ensemble de données est échantillonné en plusieurs ensembles de données et les entités sont sélectionnées au hasard pour chaque ensemble. Ensuite, sur chaque donnée échantillonnée, l'algorithme Arbre de décision est appliqué pour obtenir la sortie de chaque mode. Dans le cas d'un problème de régression, la moyenne de la sortie de tous les modèles est prise alors que, en cas de problème de classification, la classe qui obtient le vote maximum est considérée pour classer le point de données. La forêt aléatoire n'est pas influencée par les valeurs aberrantes, les valeurs manquantes dans les données et elle contribue également à la réduction de la dimensionnalité. Cependant, il n'est pas interprétable, ce qui est un inconvénient pour Random Forest. En Python, vous pouvez coder Random Forest comme -


8. Clustering K-means

Jusqu'à présent, nous avons travaillé avec des problèmes d'apprentissage supervisé où pour chaque entrée il y a une sortie correspondante. Maintenant, nous apprendrions un apprentissage non supervisé où les données ne sont pas étiquetées et doivent être regroupées en groupes spécifiques. Il existe plusieurs techniques de clustering disponibles. Cependant, le plus commun d'entre eux est le clustering K-means. Ink-means, k fait référence au nombre de clusters qui doivent être définis avant de maintenir la variance maximale dans l'ensemble de données. Une fois le k défini, les centroïdes sont initialisés. Les centroïdes sont ensuite ajustés à plusieurs reprises de sorte que la distance entre les points de données dans un centroïde soit maximale et la distance entre deux points séparés soit maximale. La distance euclidienne, la distance de Manhattan, etc. sont quelques-unes des formules de distance utilisées à cet effet.

La valeur de k a pu être trouvée à partir de la méthode du coude.

Le clustering K-means est utilisé dans les industries du commerce électronique où les clients sont regroupés en fonction de leurs modèles de comportement. Il pourrait également être utilisé dans Risk Analytics. Ci-dessous est le code python -


Conclusion: algorithmes d'apprentissage automatique

Le Data Scientist est le métier le plus sexy du 21ème siècle et le Machine Learning est certainement l'un de ses principaux domaines d'expertise. Pour être un Data Scientist, il faut posséder une compréhension approfondie de tous ces algorithmes et également plusieurs autres nouvelles techniques telles que le Deep Learning.

Articles recommandés

Cela a été un guide pour les algorithmes d'apprentissage machine. Ici, nous avons discuté du concept, des catégories, des problèmes et des différents algorithmes du langage machine. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Techniques d'apprentissage automatique
  2. Qu'est-ce que le Deep Learning
  3. Data Scientist vs Machine Learning
  4. Apprentissage supervisé vs apprentissage non supervisé
  5. Apprentissage automatique hyperparamètre
  6. Qu'est-ce que l'apprentissage par renforcement?
  7. Techniques d'apprentissage en ensemble les plus utilisées
  8. Guide complet des exemples d'algorithme C ++
  9. Guide des étapes du cycle de vie de l'apprentissage automatique

Catégorie: