Table des matières:
- Mahout a été spécialement conçu pour servir de moteur de recommandation, en utilisant ce que l'on appelle un algorithme de
- Contrairement à la méthode d'apprentissage supervisé pour la fonction moteur de recommandation de Mahout, le clustering est un apprentissage
- Les algorithmes de classification utilisent des ensembles de données d'apprentissage étiquetés par l'homme, où la catégorisation et la classification de toutes les entrées futures sont régies par ces étiquettes connues. Ces classificateurs implémentent ce que l'on appelle l'apprentissage supervisé
Vidéo: How to create a Java project with Maven in Netbeans IDE 2024
L'apprentissage automatique fait référence à une branche des techniques d'intelligence artificielle qui fournit des outils permettant aux ordinateurs d'améliorer leur analyse en fonction des événements antérieurs. Ces systèmes informatiques exploitent les données historiques des tentatives précédentes de résolution d'une tâche afin d'améliorer les performances des futures tentatives de tâches similaires.
En termes de résultats attendus, l'apprentissage automatique peut ressembler beaucoup à cet autre mot à la mode «exploration de données»; cependant, le premier se concentre sur la prédiction par l'analyse des données de formation préparées , la dernière concerne la découverte de connaissances à partir de données brutes non traitées. Pour cette raison, l'apprentissage automatique dépend fortement des techniques de modélisation statistique et s'inspire des domaines de la théorie des probabilités et de la reconnaissance des formes.
Mahout est un projet open source d'Apache, proposant des bibliothèques Java pour des algorithmes d'apprentissage automatique distribués ou évolutifs.
Ces algorithmes couvrent des tâches d'apprentissage automatique classiques telles que la classification, le regroupement, l'analyse des règles d'association et les recommandations. Bien que les bibliothèques Mahout soient conçues pour fonctionner dans un contexte Apache Hadoop, elles sont également compatibles avec tout système supportant le framework MapReduce. Par exemple, Mahout fournit des bibliothèques Java pour les collections Java et les opérations mathématiques courantes (algèbre linéaire et statistiques) qui peuvent être utilisées sans Hadoop.
Mahout est un projet en évolution avec plusieurs contributeurs. Au moment d'écrire ces lignes, la collection d'algorithmes disponibles dans les bibliothèques Mahout n'est en aucun cas complète; Cependant, la collection d'algorithmes mis en œuvre pour l'utilisation continue de s'étendre avec le temps.
Filtrage collaboratif
Mahout a été spécialement conçu pour servir de moteur de recommandation, en utilisant ce que l'on appelle un algorithme de
filtrage collaboratif . Mahout combine la richesse des algorithmes de classification et de classification à sa disposition pour produire des recommandations plus précises basées sur les données d'entrée. Ces recommandations sont souvent appliquées en fonction des préférences de l'utilisateur, en tenant compte du comportement de l'utilisateur. En comparant les sélections précédentes d'un utilisateur, il est possible d'identifier les voisins les plus proches (personnes avec un historique de décision similaire) à cet utilisateur et de prédire les sélections futures en fonction du comportement des voisins.
Pensez à un moteur de «profil de goût» tel que Netflix - un moteur qui recommande des notes basées sur les habitudes de notation et de visionnement précédentes de cet utilisateur. Dans cet exemple, les modèles de comportement d'un utilisateur sont comparés à l'historique de l'utilisateur - et aux tendances des utilisateurs ayant les mêmes goûts appartenant à la même communauté Netflix - pour générer une recommandation pour le contenu non encore visualisé par l'utilisateur en question.
Clustering
Contrairement à la méthode d'apprentissage supervisé pour la fonction moteur de recommandation de Mahout, le clustering est un apprentissage
non supervisé - où les étiquettes des points de données sont inconnues à l'avance et doivent être déduites des données sans intervention humaine (partie supervisée ). Généralement, les objets d'un cluster doivent être similaires. les objets provenant de différentes grappes devraient être dissemblables. Les décisions prises à l'avance sur le nombre de clusters à générer, les critères de mesure de la «similarité» et la représentation des objets auront un impact sur l'étiquetage produit par les algorithmes de clustering.
Par exemple, un moteur de mise en cluster disposant d'une liste d'articles d'actualités devrait être capable de définir des clusters d'articles dans cette collection qui traitent de sujets similaires.
Supposons qu'une série d'articles sur le Canada, la France, la Chine, la foresterie, le pétrole et le vin soient regroupés. Si le nombre maximal de clusters a été défini sur 2, votre algorithme peut générer des catégories telles que «régions» et «industries». "Les ajustements au nombre de grappes produiront des catégorisations différentes; par exemple, la sélection pour 3 groupes peut aboutir à des regroupements par paire des catégories nation-industrie.
Classifications
Les algorithmes de classification utilisent des ensembles de données d'apprentissage étiquetés par l'homme, où la catégorisation et la classification de toutes les entrées futures sont régies par ces étiquettes connues. Ces classificateurs implémentent ce que l'on appelle l'apprentissage supervisé
dans le monde de l'apprentissage automatique. Les règles de classification - définies par les données d'apprentissage, qui ont été étiquetées à l'avance par des experts du domaine - sont ensuite appliquées aux données brutes non traitées afin de déterminer au mieux leur étiquetage approprié.
Ces techniques sont souvent utilisées par les services de messagerie qui essaient de classer les spams avant qu'ils ne traversent votre boîte de réception. Plus précisément, étant donné un courriel contenant un ensemble de phrases connues pour se produire ensemble dans une certaine classe de courrier indésirable - délivré à partir d'une adresse appartenant à un botnet connu - votre algorithme de classification est capable d'identifier de manière fiable l'e-mail comme malveillant.
En plus de la richesse des algorithmes statistiques fournis par Mahout, un module
User Defined Algorithms (UDA) est également disponible. Les utilisateurs peuvent remplacer les algorithmes existants ou implémenter les leurs via le module UDA. Cette personnalisation robuste permet un réglage des performances des algorithmes natifs de Mahout et une flexibilité dans la résolution de problèmes d'analyse statistique uniques. Si Mahout peut être considéré comme une extension d'analyse statistique à Hadoop, UDA devrait être vu comme une extension des capacités statistiques de Mahout.
Les applications d'analyse statistique traditionnelles (telles que SAS, SPSS et R) sont dotées d'outils puissants pour générer des flux de travail. Ces applications utilisent des interfaces utilisateur graphiques intuitives qui permettent une meilleure visualisation des données. Les scripts Mahout suivent un modèle similaire à ces autres outils pour générer des workflows d'analyse statistique.
Lors de l'étape finale d'exploration et de visualisation des données, les utilisateurs peuvent exporter vers des formats lisibles par l'homme (JSON, CSV) ou tirer parti des outils de visualisation tels que Tableau Desktop.
L'architecture de Mahout se trouve au sommet de la plateforme Hadoop. Hadoop décharge le programmeur en séparant la tâche de programmation des tâches MapReduce de la gestion complexe requise pour gérer le parallélisme entre les systèmes de fichiers distribués. Dans le même esprit, Mahout fournit des abstractions conviviales d'algorithmes statistiques complexes, prêts à être implémentés avec le framework Hadoop.