Outils pour utilisateurs

Outils du site


Panneau latéral

Accueil

Select other language :


Apprentissage

Enseignements

Enseignements Département Informatique SI5 et Master IFI

Enseignements Département Bâtiment Polytech'Nice

Autres Formations française et étrangère

Activités administratives, Ingénierie et Innovation Pédagogiques

Apprentissage Département Informatique SI5/Master 2 ingénierie informatique EUR DS4H


Recherche

Valorisation de la Recherche

Dépôts Logiciels à l’Agence de Protection des Programme (APP)

Valorisation des résultats de recherche et transfert

Diffusion de la Culture scientifique et Technologique

Communications de presse

Séminaire ENSI Tunis

Pédagogie Innovante

Relations industrielles et socio-économique

Organisation de Manifestations

  • Conférence sur les FabLabs, Alexandre Schneider, Professeur Agrégé en Génie Mécanique, Université de Reims Champagne-Ardenne Web
  • Journées UbiMob'14 Site Web

Animation de la Recherche

U-Santé

Privé

Outils

Sources d'Informations

cours:plim:alglib:start

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:

  • L'analyse des données (classification / régression, y compris des réseaux de neurones)
  • Optimisation et solveurs non linéaires
  • Interpolation linéaire et non linéaire par la méthode des moindre carrés
  • Outils d'algèbre linéaire (algorithmes directs, EVD / SVD), solveurs directs et itératifs linéaires, transformée de Fourier rapide
  • et de nombreux autres algorithmes (intégration numérique, ODEs , statistiques, fonctions spéciales)

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 :

  • Les performances, sachant que la version gratuite d'AlgLib n'est pas Multi-threads
  • La licence, étant donné que sous licence GPL tout code que vous pourriez développer est lui-même GPL

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 :

  • Basic dataset functions
  • Clustering functions (hierarchical, k-means, k-means++)
  • Backward compatibility functions
  • Decision forest classifier (regression model)
  • Different filters used in data analysis
  • Linear discriminant analysis
  • Linear models
  • Logit models
  • Markov Chains for Population/proportional Data
  • Basic functions for neural networks
  • Basic functions for neural ensemble models
  • Neural network training
  • Principal component analysis

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 :

  • 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.

Transparents Cours Intro Data Mining

cours/plim/alglib/start.txt · Dernière modification: 2016/10/19 16:00 par dartigues