Outils pour utilisateurs

Outils du site


cours:plim:alglib:start

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
cours:plim:alglib:start [2016/10/14 08:27]
tigli [Exemple de mise en oeuvre]
cours:plim:alglib:start [2016/10/19 16:00] (Version actuelle)
dartigues [Exemple de mise en oeuvre]
Ligne 27: 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 49: 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 ===
Ligne 55: Ligne 56:
 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).
  
-L'​algorithme peut être résumé ​en une phrase ​:  +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"​.  
-//Étant donnés ​des points et un entier k, le problème ​est de diviser ​les points en groupes, souvent appelés ​clusters, ​de façon ​à minimiser une certaine fonctionOn considère la distance ​d'​un ​point à la moyenne des points ​de son cluster ; la fonction à minimiser est la somme des carrés ​de ces distances.//+ 
 +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 Macil 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 (excelcsv ...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. 
 + 
 +=== Transparents Cours Intro Data Mining === 
 + 
 + 
 +{{:​cours:​plim:​alglib:​intro_data_mining.pptx|}}
cours/plim/alglib/start.1476426474.txt.gz · Dernière modification: 2016/10/14 08:27 par tigli