jeudi 30 mai 2013

Sipina - Version 3.11

Une nouvelle version multithread de l’analyse discriminante linéaire est ajoutée dans Sipina 3.11. Par rapport à la précédente, elle présente le double avantage (1) de pouvoir utiliser tous les ressources disponibles sur les machines à processeurs multi-cœurs ou multiprocesseur ; (2) de mieux équilibrer la répartition des charges. Elle est en revanche plus gloutonne en espace mémoire, les structures internes de calcul sont dupliquées M fois (M est le nombre de threads).

Un tutoriel  viendra comparer le comportement de cette nouvelle approche avec la version précédente et l’implémentation monothread.

Site web : Sipina
Chargement : Fichier setup

samedi 25 mai 2013

Multithreading pour l'analyse discriminante

Le volume des données à traiter ne cesse d’augmenter dans le Data Mining. Avec le phénomène « Big Data », la gestion de la volumétrie devient un critère clé. Dans le même temps, nos machines personnelles sont de plus en plus puissantes, intégrant pour la très grande majorité d’entre eux plusieurs cœurs de calcul, si ce n’est plusieurs processeurs. Et pourtant, rares sont les logiciels généralistes qui exploitent pleinement les possibilités des machines modernes.

A l’instar d’un précédent document où nous détaillons une solution basée sur les threads pour l’induction des arbres de décision , nous proposons une nouvelle stratégie multithread pour l’analyse discriminante linéaire (prédictive) dans SIPINA 3.10. Cette méthode, très favorablement connue des statisticiens, est curieusement peu implémentée dans les logiciels d’obédience informatique. Alors que, sauf cas pathologiques que l’on sait identifier , elle présente des performances en prédiction comparables aux autres techniques linéaires sur la majorité des données, je pense notamment à la très populaire régression logistique (Saporta, 2006 – page 480 ; Hastie et al., janv. 2013 – page 128). Et, en termes de rapidité de traitements sur les grandes bases, elle est incomparablement plus rapide, plus encore lorsque nous exploitons l’architecture multi-coeur (ou multiprocesseur) des machines comme nous le constaterons durant nos expérimentations.

Pour mieux situer les améliorations induites par notre stratégie, nous comparons nos temps d’exécution avec des logiciels reconnus tels que SAS 9.3 (proc discrim), R (lda du package MASS) et Revolution R Community (une version « optimisée » de R).

Mots-clés : sipina, multithreading, thread, multithreaded data mining, multithread processing, analyse discriminante prédictive, analyse discriminante linéaire, sas, proc discrim, logiciel R, lda, package MASS
Composants :  LINEAR DISCRIMINANT ANALYSIS
Didacticiel : fr_Tanagra_Sipina_LDA_Threads.pdf
Données : multithreaded_lda.zip
Références :
Tanagra, "Multithreading pour les arbres de décision".
Tanagra, "Analyse discriminante linéaire - Comparaisons".
Wikipédia, "Analyse discriminante linéaire".

jeudi 23 mai 2013

Sipina - Version 3.10

L’analyse discriminante linéaire a été améliorée. Toutes les opérations sont réalisées en une seule passe sur les données.

Une version multithreadée de l’analyse discriminante linéaire a été ajoutée. Elle améliore la rapidité d’exécution en répartissant les calculs sur les éventuels coeurs (ordinateur avec un processeur multicoeur) ou processeurs (ordinateur multiprocesseur) présents sur la machine.

Un tutoriel à venir décrira le comportement de ces nouvelles implémentations sur quelques grandes bases de données.

Site web : Sipina
Chargement : Fichier setup

samedi 11 mai 2013

Classifieurs linéaires

L’apprentissage supervisé a pour objectif de mettre au jour une liaison fonctionnelle f(.) entre une variable cible Y (variable à prédire, variable expliquée, etc.) que l’on cherche à prédire et une ou plusieurs variables prédictives (les descripteurs, les variables explicatives, etc.) (X1, X2, ..., Xp). La fonction est paramétrée.

Dans ce tutoriel, nous étudions le comportement de 5 classifieurs linéaires sur des données artificielles. Les modèles linéaires sont des outils privilégiés de l’apprentissage supervisé. En effet, s’appuyant sur une simple combinaison linéaire des variables prédictives, ils présentent l’avantage de la simplicité : la lecture de l’influence de chaque descripteur est relativement facile (signes et valeurs des coefficients) ; les techniques d’apprentissage sont souvent rapides, même sur de très grandes bases de données. Nous nous intéresserons plus particulièrement à : (1) le modèle bayésien naïf (modèle d’indépendance conditionnelle), (2) l’analyse discriminante linéaire, (3) la régression logistique, (4) le perceptron simple, et (5) les machines à vaste marge (SVM, support vector machine).

L’expérimentation a été entièrement menée sous le logiciel R. Nous montrons également la mise en oeuvre de ces différentes techniques avec les logiciels Tanagra, Knime, Orange, RapidMiner et Weka.

Mots clés : modèles linéaires, bayésien naïf, modèle d'indépendance conditionnelle, analyse discriminante prédictive, régression logistique, perceptron, réseaux de neurones, svm linéaire, arbres de décision, rpart, random forest, forêts aléatoires, k-nn, k-ppv, plus proches voisins, package e1071, package MASS, package nnet, package lattice, package rpart, package rf, package class
Composants : NAIVE BAYES CONTINUOUS, LINEAR DISCRIMINANT ANALYSIS, BINARY LOGISTIC REGRESSION, MULTILAYER PERCEPTRON, SVM
Lien : fr_Tanagra_Linear_Classifier.pdf
Données : linear_classifier.zip
Références :
Wikipedia, "Linear Classifier".