samedi 26 mai 2012

ACP sous R - Indice KMO et test de Bartlett

L’analyse en composantes principales (ACP) est une technique exploratoire très populaire. Il y a différentes manières de l’appréhender, en voici une très simplifiée : « partant d’une base de données à ‘’n’’ observations et ‘’p’’ variables, toute quantitatives, on cherche à résumer l’information disponible à l’aide de quelques variables synthétiques qu’on appelle facteurs ». Leur nombre n’est pas défini à l’avance, sa détermination est d’ailleurs un enjeu fort dans le processus. Généralement, on en prend au moins deux afin de disposer d’une représentation graphique des individus et des variables dans le plan.

Nous avons présenté maintes fois l’ACP auparavant, tant pour le logiciel R que pour Tanagra. Dans ce tutoriel, nous décrivons deux indicateurs de qualité de l’analyse qui sont directement proposés dans des logiciels commerciaux célèbres (SPSS et SAS pour ne pas les citer), mais que l’on retrouve peu ou prou dans les logiciels libres. On notera qu’ils ne sont pas non plus repris dans les ouvrages qui font référence en français. Il s’agit du test de sphéricité de Bartlett et de l’indice KMO (Kaiser – Mayer – Olkin) mesurant l’adéquation de l’échantillon. Plusieurs internautes m’ayant posé la question sur la manière des le obtenir sous R, je me suis dit qu’il y a avait là quelque chose à faire.

Dans ce qui suit, nous présentons succinctement les formules de calcul, nous leur associons un programme écrit en R, et nous montrons leur mise en œuvre sur un fichier de données. Nous comparons nos sorties avec celles du logiciel SAS.

Mots clés : analyse en composantes principales, acp, spss, sas, proc factor, princomp, indice kmo, msa index, test de sphéricité de Bartlett, xslx package, psych package, logiciel R
Composants : VARHCA, PRINCIPAL COMPONENT ANALYSIS
Lien : fr_Tanagra_KMO_Bartlett.pdf
Données : socioeconomics.zip
Références :
Tutoriel Tanagra - "ACP – Description de véhicules"
Tutoriel Tanagra - "Analyse en Composantes principales avec R"
SPSS - "Factor algorithms"
SAS - "The Factor procedure"

mardi 22 mai 2012

Le format de fichier "sparse"

Le traitement statistique des documents non-structurés est un vrai challenge. « Non-structuré » est a priori difficile à cerner. Dans le cadre du data mining, on l’utilise généralement (en simplifiant à l'extrême, je vois déjà les puristes bondir) pour toute donnée qui s’écarte du classique attribut-valeur où l’observation est décrite par un vecteur de longueur constante de caractéristiques (ex. un client est décrit par son âge, son revenu, …).

Ainsi, même si intrinsèquement le texte et l’image, pour ne citer qu’eux, ont une structure interne cohérente, un pré-traitement est nécessaire pour parvenir à une description « attribut-valeur ». Cette transformation engendre des tableaux de données volumineux avec certaines spécificités. Il est possible de les exploiter pour proposer un format de description parcimonieux, et aboutir à des fichiers de taille réduite. Il s’agit en quelque sorte d’une forme de compression sans perte. Mais le fichier reste lisible avec un simple éditeur de texte. Comme nous le constaterons pour l’exemple que nous traiterons, la réduction de la taille du fichier n’est absolument pas négligeable.

Dans ce tutoriel, nous décrivons le format de fichier « sparse » (format « creux », extension .data ou .dat) pour la régression et le classement reconnu par Tanagra (depuis la version 1.4.44), il est directement inspiré du format traité par les bibliothèques de calcul « svmlight », « libsvm » et « libcvm ». Nous illustrons son exploitation dans un processus de catégorisation de texte appliquée à la base Reuters, bien connue en data mining.

Mots clés : support vector machine, machines à vecteur de support, séparateur à vaste marge, svm, libsvm, c-svc, régression logistique, tr-irls, apprentissage supervisé, scoring, courbe roc, auc, aire sous la courbe
Composants : VIEW DATASET, CONT TO DISC, UNIVARIATE DUISCRETE STAT, SELECT FIRST EXAMPLES, C-SVC, SCORING, ROC CURVE
Lien : fr_Tanagra_Sparse_File_Format.pdf
Données : reuters.data.zip
Références :
T. Joachims, "SVMlight: Support Vector Machine".
UCI Repository,  "Reuters-21578 Text Categorization Collection".

vendredi 18 mai 2012

La librairie LIBCVM (Core Vector Machine)

Les Support Vector Machine (SVM) constituent des méthodes particulièrement efficaces en apprentissage supervisé. De par leur grande stabilité, elles sont bien adaptées aux problèmes comportant un grand nombre de descripteurs relativement à la taille d’échantillon .  Elles sont moins à leur avantage lorsque le nombre d’observations « n » devient important. En effet, une implémentation naïve est de complexité O(n^3) en temps de calcul et O(n^2) en espace de stockage. De fait, obtenir la solution optimale n’est pas possible en pratique. Les implémentations recherchent des solutions approchées, et en profitent au passage pour réduire les complexités.

J’ai découvert récemment la librairie LIBCVM. L’idée des auteurs est très astucieuse, ils tiennent le raisonnement suivant (traduction très libre) : « Puisqu’on ne peut obtenir que des solutions approchées, on peut s’appuyer sur une formulation équivalente de la recherche des points supports, la recherche de la plus petite boule englobante (Minimum Enclosing Ball) en géométrie computationnelle, et utiliser les résultats obtenus avec cette dernière ». A la sortie, tout comme les SVM, la technique produit une série de points supports utilisables pour la prédiction, les performances prédictives sont similaires voire améliorées, avec une capacité accrue d’appréhension des grandes bases (en nombre d’observations).

Les méthodes CVM (Core Vector Machine) et BVM (Ball Vector Machine) dédiées à l’apprentissage supervisé sont implémentées dans la librairie LIBCVM. Il s’agit une extrapolation de la bibliothèque LIBSVM (version 2.85), bien connue des chercheurs. Le code source en C++ étant disponible, j’ai compilé LIBCVM (version 2.2 [beta], 29 août 2011) en DLL et je l’ai intégrée dans TANAGRA 1.4.44. Dans ce tutoriel, nous décrivons le comportement des méthodes CVM et BVM sur la base « Web data set » accessible sur le site des auteurs. Nous comparons les performances (qualité de prédiction, temps de calcul) avec celles de la méthode C-SVC de la librairie LIBSVM.

Mots clés : support vector machine, machines à vecteur de support, séparateur à vaste marge, svm, libcvm, cvm, bvm, libsvm, c-svc
Composants : SELECT FIRST EXAMPLES, CVM, BVM, C-SVC
Lien : fr_Tanagra_LIBCVM_library.pdf
Données w8a.txt.zip
Références :
I.W. Tsang, A. Kocsor, J.T. Kwok : LIBCVM Toolkit, Version: 2.2 (beta)
C.C Chang, C.J. Lin : LIBSVM -- A Library for Support Vector Machines

lundi 14 mai 2012

Tanagra - Version 1.4.44

LIBSVM (http://www.csie.ntu.edu.tw/~cjlin/libsvm/). Mise à jour de la librairie LIBSVM version 3.12 (Avril 2012) [concerne les composants de support vector machine : C-SVC, Epsilon-SVR, nu-SVR]. Les calculs sont plus rapides. Possibilité de normalisation ou non des données (elle était imposée auparavant).

LIBCVM (http://c2inet.sce.ntu.edu.sg/ivor/cvm.html ; version 2.2). Intégration de la librairie LIBCVM. Deux méthodes sont disponibles : CVM et BVM (Core Vector Machine et Ball Vector Machine). Possibilité de normalisation ou non des données.

TR-IRLS (http://autonlab.org/autonweb/10538). Mise à jour de la librairie TR-IRLS pour la régression logistique sur de grandes bases de données, comportant un grand nombre de descripteurs  (dernière version disponible - 08/05/2006). Calcul automatique de la déviance, et amélioration de l’affichage des coefficients (plus de décimales). Accès à  plusieurs paramètres de l’algorithme d’apprentissage (règles d’arrêt).

FICHIER SPARSE. Importation des fichiers “sparse” (cf. format SVMLight, LibSVM ou LibCVM), extensions .DAT ou .DATA Les données peuvent être relatives à l’apprentissage supervisé ou à la régression. Le format est décrit en ligne (http://c2inet.sce.ntu.edu.sg/ivor/cvm.html).

SÉLECTION DES INDIVIDUS. Un nouveau composant pour la sélection des m premiers individus parmi n dans une branche du diagramme. Cette option est utile lorsque le fichier résulte de la concaténation des échantillons d’apprentissage et de test.

Page de téléchargement : setup