Mahout - Apprentissage automatique

Apache Mahout est une bibliothèque d'apprentissage automatique hautement évolutive qui permet aux développeurs d'utiliser des algorithmes optimisés. Mahout met en œuvre des techniques d'apprentissage automatique populaires telles que la recommandation, la classification et le clustering. Par conséquent, il est prudent d'avoir une brève section sur l'apprentissage automatique avant d'aller plus loin.

Qu'est-ce que l'apprentissage automatique?

L'apprentissage automatique est une branche de la science qui traite de la programmation des systèmes de manière à ce qu'ils apprennent et s'améliorent automatiquement avec l'expérience. Ici, apprendre signifie reconnaître et comprendre les données d'entrée et prendre des décisions éclairées en fonction des données fournies.

Il est très difficile de répondre à toutes les décisions basées sur toutes les contributions possibles. Pour résoudre ce problème, des algorithmes sont développés. Ces algorithmes construisent des connaissances à partir de données spécifiques et d'expériences passées avec les principes de la statistique, de la théorie des probabilités, de la logique, de l'optimisation combinatoire, de la recherche, de l'apprentissage par renforcement et de la théorie du contrôle.

Les algorithmes développés forment la base de diverses applications telles que:

  • Traitement de la vision
  • Traitement du langage
  • Prévisions (par exemple, tendances boursières)
  • La reconnaissance de formes
  • Games
  • Exploration de données
  • Systèmes experts
  • Robotics

L'apprentissage automatique est un vaste domaine et il est tout à fait au-delà de la portée de ce tutoriel de couvrir toutes ses fonctionnalités. Il existe plusieurs façons de mettre en œuvre des techniques d'apprentissage automatique, mais les plus couramment utilisées sontsupervised et unsupervised learning.

Enseignement supervisé

L'apprentissage supervisé consiste à apprendre une fonction à partir des données de formation disponibles. Un algorithme d'apprentissage supervisé analyse les données d'apprentissage et produit une fonction déduite, qui peut être utilisée pour cartographier de nouveaux exemples. Voici des exemples courants d'apprentissage supervisé:

  • classer les e-mails comme spam,
  • étiqueter les pages Web en fonction de leur contenu, et
  • reconnaissance vocale.

Il existe de nombreux algorithmes d'apprentissage supervisé tels que les réseaux de neurones, les machines vectorielles de soutien (SVM) et les classificateurs Naive Bayes. Mahout implémente le classificateur Naive Bayes.

Apprentissage non supervisé

L'apprentissage non supervisé donne du sens aux données non étiquetées sans avoir aucun ensemble de données prédéfini pour son apprentissage. L'apprentissage non supervisé est un outil extrêmement puissant pour analyser les données disponibles et rechercher des modèles et des tendances. Il est le plus couramment utilisé pour regrouper des entrées similaires dans des groupes logiques. Les approches courantes de l'apprentissage non supervisé comprennent:

  • k-means
  • des cartes auto-organisées, et
  • classification hiérarchique

Recommandation

La recommandation est une technique populaire qui fournit des recommandations précises basées sur des informations utilisateur telles que les achats précédents, les clics et les évaluations.

  • Amazon utilise cette technique pour afficher une liste des éléments recommandés susceptibles de vous intéresser, en tirant des informations de vos actions passées. Il existe des moteurs de recommandation qui fonctionnent derrière Amazon pour capturer le comportement des utilisateurs et recommander des éléments sélectionnés en fonction de vos actions précédentes.

  • Facebook utilise la technique de recommandation pour identifier et recommander les «personnes que vous connaissez peut-être».

Classification

Classification, également appelée categorization, est une technique d'apprentissage automatique qui utilise des données connues pour déterminer comment les nouvelles données doivent être classées dans un ensemble de catégories existantes. La classification est une forme d'apprentissage supervisé.

  • Les fournisseurs de services de messagerie tels que Yahoo! et Gmail utilisent cette technique pour décider si un nouveau courrier doit être classé comme spam. L'algorithme de catégorisation s'entraîne en analysant les habitudes des utilisateurs de marquer certains mails comme des spams. Sur cette base, le classificateur décide si un futur courrier doit être déposé dans votre boîte de réception ou dans le dossier des spams.

  • L'application iTunes utilise la classification pour préparer des listes de lecture.

Clustering

Le regroupement est utilisé pour former des groupes ou des grappes de données similaires basées sur des caractéristiques communes. Le clustering est une forme d'apprentissage non supervisé.

  • Les moteurs de recherche tels que Google et Yahoo! utiliser des techniques de regroupement pour regrouper des données ayant des caractéristiques similaires.

  • Les groupes de discussion utilisent des techniques de regroupement pour regrouper divers articles en fonction de sujets connexes.

Le moteur de clustering parcourt complètement les données d'entrée et en fonction des caractéristiques des données, il décidera sous quel cluster il doit être regroupé. Jetez un œil à l'exemple suivant.

Notre bibliothèque de tutoriels contient des sujets sur divers sujets. Lorsque nous recevons un nouveau didacticiel sur TutorialsPoint, il est traité par un moteur de clustering qui décide, en fonction de son contenu, où il doit être regroupé.