Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
cours:plim:alglib:start [2016/10/14 08:25] tigli [AlgLib et Analyse de Données] |
cours:plim:alglib:start [2016/10/14 13:21] dartigues [AlgLib et Analyse de Données] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{:cours:plim:alglib:site-logo-v3.png?500|}} | {{:cours:plim:alglib:site-logo-v3.png?500|}} | ||
+ | |||
+ | //Jean-Yves Tigli - Nov 1016// | ||
==== Préambule ==== | ==== 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: | 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: | ||
Ligne 24: | Ligne 27: | ||
==== AlgLib et Analyse de Données ==== | ==== 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 [[http://www.alglib.net/translator/man/manual.csharp.html#pck_DataAnalysis|site]]. | Comme indiqué ci-dessus, AlgLib fournit des librairies pour l'analyse de données. La liste et le manuel se trouvent sur ce [[http://www.alglib.net/translator/man/manual.csharp.html#pck_DataAnalysis|site]]. | ||
Ligne 46: | Ligne 50: | ||
==== Exemple de mise en oeuvre ==== | ==== Exemple de mise en oeuvre ==== | ||
- | Sans anticiper sur votre choix, nous allons présenter ici quelques exemples de mise en oeuvre d'AlgLib pour l'analyse de données. | + | 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 === | === 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). | 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 [[http://www.codeproject.com/Articles/985824/Implementing-The-K-Means-Clustering-Algorithm-in-C|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 : | ||
+ | |||
+ | - Choisir k objets formant ainsi k clusters | ||
+ | - Ré)affecter chaque objet O au cluster Ci de centre Mi tel que dist(O,Mi) est minimal | ||
+ | - Recalculer Mi de chaque cluster (le barycentre) | ||
+ | - 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 ([[https://youtu.be/BVFG7fd1H30|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 [[http://www.alglib.net/translator/man/manual.csharp.html#example_clst_kmeans|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 {{:cours:plim:alglib:exemple_alglib_kmeans_c_.zip|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 [[https://www.visualstudio.com/downloads/|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 : | ||
+ | * rajoutant le chargement du DataSet depuis un fichier (excel, csv ...le format est laissé à votre choix). Ceci vous permettra quelque soit l'algorithme de votre projet de visualiser les données bruts issues de votre SmartPhone. | ||
+ | * rajoutant la sauvegarde des k clusters (k défini interactivement) dans un fichier (excel, csv ...le format est laissé à votre choix). Ceci vous permettra quelque soit l'algorithme de votre projet de visualiser les clusters issus de l'analyse. | ||
+ | * rajoutant différents méthodes d'affichage des données et des clusters : | ||
+ | * textuelles (System.Console.Write) | ||
+ | * graphiques (avec les Winforms par exemple) | ||
+ | |||
+ | 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. | ||
+ | |||