Apprentissage machine avec cornac dans Hadoop

Apprentissage automatique

Sommaire

se réfère à une branche des techniques d'intelligence artificielle qui fournit des outils permettant d'ordinateurs pour améliorer leur analyse basée sur des événements antérieurs. Ces systèmes informatiques exploiter les données historiques des précédentes tentatives de résoudre une tâche afin d'améliorer la performance des futures tentatives de tâches similaires.

En termes de résultats escomptés, l'apprentissage machine peut sembler un peu comme cet autre mot à la mode “ exploration de données ” - cependant, les anciens se concentre sur la prévision par l'analyse de préparé données d'entraînement, ce dernier est concerné par la découverte de connaissances à partir de non transformés données brutes. Pour cette raison, l'apprentissage machine dépend fortement de techniques de modélisation statistique et puise dans les domaines de la théorie des probabilités et de la reconnaissance des formes.

Mahout est un projet open source Apache, offrant bibliothèques Java pour les algorithmes d'apprentissage automatique évolutives distribuée ou autrement.

image0.jpg

Ces algorithmes couvrent tâches d'apprentissage machine classiques telles que la classification, clustering, analyse de la règle d'association, et des recommandations. Bien que les bibliothèques Mahout sont conçus pour fonctionner dans un contexte Hadoop, ils sont également compatibles avec tout système soutenant le cadre MapReduce. Par exemple, Mahout fournit des bibliothèques Java pour les collections Java et des opérations mathématiques commune (algèbre linéaire et des statistiques) qui peuvent être utilisés sans Hadoop.

Comme vous pouvez le voir, les bibliothèques Mahout sont mises en œuvre en Java MapReduce et exécuter sur votre cluster en tant que collections d'emplois MapReduce de chaque fil (avec MapReduce v2), ou MapReduce v1.

Mahout est un projet évolutif avec de multiples contributeurs. Au moment d'écrire ces lignes, la collecte des algorithmes disponibles dans les bibliothèques de Mahout est nullement COMPLETE- Toutefois, la collecte des algorithmes mis en œuvre pour une utilisation continue à se développer avec le temps.

Il existe trois grandes catégories de Mahout algorithmes pour soutenir l'analyse statistique: filtrage collaboratif, le regroupement, et la classification.

Le filtrage collaboratif




Mahout a été spécifiquement conçu pour servir de moteur de recommandation, en utilisant ce qui est connu en tant que filtrage collaboratif algorithme. Mahout combine la richesse des algorithmes de regroupement et de classification à sa disposition pour produire des recommandations plus précises fondées sur des données d'entrée.

Ces recommandations sont souvent appliquées contre les préférences de l'utilisateur, en prenant en considération le 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 ayant des antécédents de décision similaire) à cet utilisateur et de prédire de futures sélections basées sur le comportement des voisins.

Considérons un “ goûter profil ” moteur tel que Netflix - un moteur qui recommande évaluations fondées sur le pointage et visualisation précédentes habitudes de cet utilisateur. Dans cet exemple, les modèles de comportement pour un utilisateur sont comparées à l'histoire de l'utilisateur - et les tendances des utilisateurs avec des goûts similaires appartenant à la même communauté Netflix - pour générer une recommandation pour des contenus pas encore vu par l'utilisateur en question.

Clustering

Contrairement à la méthode d'apprentissage supervisé pour recommandation moteur métrage de Mahout, le regroupement est une forme de sans surveillance l'apprentissage - où les étiquettes pour les points de données sont inconnues à l'avance et doivent être déduites des données sans intervention humaine (la supervisé partie).

Généralement, les objets au sein d'un cluster doivent être des objets similarités de différents groupes devraient être dissemblables. Les décisions prises à l'avance le nombre de grappes pour générer, les critères de mesure “ similitude, ” et la représentation des objets aura un impact sur l'étiquetage produit par des algorithmes de clustering.

Par exemple, un moteur de clustering qui est fourni une liste des articles de presse devrait être en mesure de définir des grappes d'articles dans cette collection qui discuter de sujets similaires.

Supposons un ensemble d'articles sur le Canada, la France, la Chine, de la foresterie, de l'huile et du vin devait être regroupées. Si le nombre maximal de clusters ont été mis à 2, votre algorithme pourrait produire des catégories telles que “ les régions ” et “ n ° 148 industries. Aux ajustements du nombre de grappes vont produire categorizations- différente par exemple, la sélection de 3 clusters peut entraîner des groupements de paires de catégories nation-industrie.

Classifications

Les algorithmes de classification font usage d'ensembles de données formation aux droits marqué, où la catégorisation et la classification de toutes les entrées avenir est régi par ces marqueurs connus. Ces classificateurs mettre en œuvre ce qui est connu comme apprentissage supervisé dans la machine monde de l'apprentissage.

Les règles de classification - fixés par les données de formation, qui a été marqué à l'avance par des experts du domaine - sont ensuite appliquées contre les données brutes et non de déterminer le mieux à leur étiquetage approprié.

Ces techniques sont souvent utilisés par les services de messagerie qui tentent de distinguer le spam e-mail avant qu'ils ne jamais traverser votre boîte de réception. Plus précisément, étant donné un e-mail contenant un ensemble de phrases connus de se produire fréquemment ensemble dans une certaine classe de spam - livré à partir d'une adresse appartenant à un botnet connu - votre algorithme de classification est en mesure d'identifier de manière fiable l'e-mail comme malveillant.

En plus de la richesse des algorithmes statistiques qui Mahout fournit nativement, un soutien Les algorithmes définis par l'utilisateur (UDA) module est également disponible. Les utilisateurs peuvent remplacer les algorithmes existants ou mettre en œuvre leur propre à travers le module UDA. Cette personnalisation robuste permet un réglage de la performance des algorithmes de Mahout indigènes et la flexibilité pour relever les défis uniques d'analyse statistiques.

Si Mahout peut être considéré comme une extension d'analyse statistiques pour Hadoop, UDA devrait être considérée comme une extension de capacités statistiques de Mahout.

Applications d'analyse statistique traditionnels (tels que SAS, SPSS, et R) sont des outils puissants pour générer des flux de travail. Ces applications utilisent des interfaces utilisateurs graphiques intuitives qui permettent la visualisation de meilleures données. Scripts Mahout suivent un schéma similaire à celui de ces autres outils pour générer des flux de travail d'analyse statistique.

image1.jpg

Au cours de la dernière étape de l'exploration de données et la visualisation, les utilisateurs peuvent exporter vers des formats lisibles par l'homme (JSON, CSV) ou de profiter d'outils de visualisation tels que Tableau Desktop.

L'architecture de Mahout se trouve au sommet de la plateforme Hadoop. Hadoop soulage le programmeur en séparant la tâche d'emplois MapReduce de programmation de la comptabilité complexe nécessaire pour gérer le parallélisme entre les systèmes de fichiers distribués. Dans le même esprit, Mahout fournit des abstractions de programmeur-friendly d'algorithmes statistiques complexes, prêts à être mise en œuvre avec le framework Hadoop.


» » » » Apprentissage machine avec cornac dans Hadoop