Descriptif du sujet

publicité
 Titre : Evaluation des performances de Regroupement de données avec Apache -­‐ Mahout Encadrants : Khaled Tannir, Maria Malek, Hubert Kadiam Introduction : Apache Mahout est un sous-­‐projet de Lucene ayant pour but de fournir des librairies d’apprentissage automatique (machine learning) extensibles. Mahout a été conçu pour fonctionner sur la base de Hadoop, un framework Java destiné aux applications distribuées et intensives en termes de traitement de données. Le point particulièrement intéressant de cet outil est la disponibilité d’algorithmes permettant de filtrer, de regrouper et de classer des données entre elles. Ces algorithmes peuvent être exécutés en parallèle étant donné que Mahout exploite la puissance du modèle de parallélisation des traitements MapReduce. Dans le cadre de ce travail nous nous intéressons, pour le moment, uniquement aux algorithmes de regroupement des données appelés aussi « Clusturing ». En présence d’un gros volume de données, qu'il soit du texte ou numérique, il est souvent utile de regrouper ensemble les éléments similaires automatiquement. Par exemple regrouper toutes les nouvelles d’une journée de tous les journaux des États-­‐Unis. Ainsi, nous avons la possibilité de grouper tous les articles sur la même histoire ensemble. Nous pouvons alors choisir de nous concentrer sur des groupes spécifiques et des histoires sans avoir à parcourir un grand nombre d’histoires avec aucun rapport. Le « clustering » calcule la similarité entre éléments de la collection, avec une seule tâche celle de regrouper des éléments similaires. Dans de nombreuses implémentations de clustering, les éléments de la collection sont représentés par des vecteurs dans un espace à n dimensions. Vus comme des vecteurs, on peut alors calculer la distance entre deux éléments à l'aide de mesures telles que la distance de Manhattan, la distance euclidienne, ou la similitude du cosinus. Ensuite, les clusters (ou groupes) peuvent être calculés en regroupant les éléments qui sont proches en distance. Mahout supporte plusieurs implémentations d’algorithmes de clustering, toutes écrites pour exploiter Map-­‐Reduce, chacune possède son propre ensemble d'objectifs et de critères : • Canopy : un algorithme de clustering rapide souvent utilisé pour créer des éléments destinés à d’autres algorithmes de classification. • k-­‐means (et fuzzy K-­‐means) : regroupe les objets en k-­‐cluster en se basant sur la distance entre les objets à partir des centroïdes (ou centres), de la précédente itération. • Mean-­‐Shift : un algorithme qui ne nécessite aucune connaissance a priori sur le nombre de clusters et peut produire des grappes de forme arbitraire. • Dirichlet : clusters basés sur le mélange de plusieurs modèles probabilistes. Ceci lui donne l'avantage de ne pas avoir besoin de s'engager dans une vue particulière des groupes de façon prématurée. Dans le cadre de ce travail on s’intéressera à l’algorithme « k-­‐means » en particulier. Motivation : Dans le cadre des travaux de recherche, nous souhaitons : • Evaluer les capacités du Framework Mahout à regrouper des données • Evaluer les temps de traitements en variant le volume de données en entrée. • Comparer les résultats obtenus avec ceux de LibCloud Ces travaux serviront à l’adoption ou non du framework Mahout dans le cadre du projet Marguerite. Liens utiles : http://mahout.apache.org/ https://cwiki.apache.org/MAHOUT/k-­‐means-­‐clustering.html http://www.javabeat.net/articles/331-­‐k-­‐means-­‐clustering-­‐algorithms-­‐in-­‐mahout-­‐1.html http://bickson.blogspot.com/2011/09/understanding-­‐mahout-­‐k-­‐means-­‐clustering.html 
Téléchargement