Jean-Yves Tigli - Nov 1016

Préambule

AlgLib est une bibliothèque de traitement et d'analyse de données numériques multi-plateformes. Il prend en charge plusieurs langages de programmation ( C ++ , C # , Pascal, VBA) et plusieurs systèmes d'exploitation (Windows, Linux, Solaris). AlgLib fournit les fonctionalités suivantes:

Vous trouverez les manuel de référence sur ce site, en particulier celui d'AlgLib sous C#.

Distribution de AlgLib

L'édition gratuite d'AlgLib est destiné aux scientifiques, chercheurs et ingénieurs qui ne veulent pas acheter la licence commerciale. Elle est livré gratuitement sous les termes de la licence GPL. Elle offre un ensemble complet de fonctionnalités identiques à l'édition commerciale de AlgLib. Cependant, il y a deux limites importantes dans l'édition gratuite de ALGLIB :

Le site de la librairie AlgLib est www.alglib.net

Vous trouverez entre autre sur le site une distribution gratuite pour C# : alglib-3.10.0.csharp.gpl.

AlgLib et Analyse de Données

Comme indiqué ci-dessus, AlgLib fournit des librairies pour l'analyse de données. La liste et le manuel se trouvent sur ce site.

Un grand nombre d'algorithmes sont déjà implémentés comme :

Vous y trouverez très probablement un algorithme adapté à l'analyse souhaitée des données collectées dans votre projet.

Exemple de mise en oeuvre

Sans anticiper sur votre choix, nous allons présenter ici un exemple de mise en oeuvre d'AlgLib pour l'analyse de données.

Mise en oeuvre de l'Algorithme du K-means

L'algorithme du K-means ou K-Moyennes en français est particulièrement simple et pourtant assez performant pour certains problème de classification de données (ou clustering en anglais).

Cet algorithme tient sur peu de lignes, vous pouvez donc trouver des sources intégrales qui l'implémente comme sur K Means Clustering Algorithm en C. Dans ce cas, le code est donc embarquable sur votre SmartPhone …. pour les inconditionnels du “tout local”.

L'algorithme du K-means peut se résumer ainsi en 4 étapes :

  1. Choisir k objets formant ainsi k clusters
  2. Ré)affecter chaque objet O au cluster Ci de centre Mi tel que dist(O,Mi) est minimal
  3. Recalculer Mi de chaque cluster (le barycentre)
  4. Aller à l’étape 2 si on vient de faire une affectation

Voici une vidéo illustrative de l'évolution des clusters au fur et à mesure des itérations de l'algorithme (video). Plusieurs exécutions sont présentées avec des collections de données variables et des K (nombre de clusters souhaité) différents. Vous pouvez constater l'influence du choix des points de départ affectés aléatoirement aux clusters initiaux.

Implémentation du K-means en C# avec AlgLib

Un exemple d'utilisation d'AlgLib pour la mise en oeuvre de K-means en C# se trouve sur cette page.

Cet exemple largement perfectible a été modifié pour ce tutorial. Il est commenté en français et intégré dans un projet Visual Studio C# se trouve dans le fichier contenant déjà la librairie AlgLib dans une dll.

Bien sûr il vous faudra utilise un Visual Studio déjà installé sur votre machine pour le Tutorial. Nous vous rappelons que Visual Studio 2015 Community est gratuit pour les étudiants. Vous pourrez le télécharger ici. Pour les détenteurs de Mac, il faudra se rabattre sur Visual Studio Code sur la même page.

Travail proposé sur ce tutorial

Améliorez le en :

Les plus avancé pourront ainsi produire un simulateur, en affichant le résultats à chaque appel de l'algorithme avec des collections de données et un nombre de clusters différents.

Transparents Cours Intro Data Mining

intro_data_mining.pptx