Affichage des articles dont le libellé est Analyse discriminante. Afficher tous les articles
Affichage des articles dont le libellé est Analyse discriminante. Afficher tous les articles

jeudi 14 octobre 2021

(Vidéo) Scoring – Courbe Lift

Deux vidéos pour le prix d'une cette fois-ci. Nous retraçons la construction de la courbe de gain (courbe lift cumulé) à l'aide du tandem Tanagra + Excel. L'idée est de reproduire pas-à-pas les étapes décrites dans le cours : construction du modèle prédictif à partir de l'échantillon d'apprentissage, mise en lumière de la fonction score, son application sur l'échantillon test pour obtenir les scores des individus (probabilités d'appartenance à la classe cible, ou une grandeur équivalente), conception des deux colonnes permettant l'élaboration de la courbe (taille de cible et taux de vrais positifs [rappel, sensibilité]). Deux vidéos parce que nous utilisons l'analyse discriminante linéaire d'une part, la régression logistique d'autre part.

Mots-clés : tableur excel, courbe lift cumulé, courbe de gain, gain chart
Vidéo 1 : Scoring – Analyse Discriminante
Vidéo 2 : Scoring – Régression logistique
Données : Heart Dataset
Références :
"Scoring – Ciblage Marketing".

vendredi 30 avril 2021

(Vidéo) Cost-sensitive learning

Dans cette vidéo, il est question de la prise en compte des coûts de mauvais classement en analyse prédictive. Les erreurs de prédiction ne sont pas toutes équivalentes. Classer en bonne santé une personne malade n'induit pas les mêmes conséquences que l'inverse par exemple. Cette information additionnelle est portée par une matrice dite de "coûts de mauvais classement". Elle traduit en valeurs numériques les répercussions des erreurs. Notre rôle consiste à utiliser à bon escient cette matrice pour guider la modélisation, mais aussi pour évaluer et comparer les performances des classifieurs.

Mots-clés : logiciel R, package rpart, MASS, lda, matrice de coûts de mauvais classement
Vidéo : Cost-sensitive learning
Données, slides, notebook : Breast cancer
Références :
Documentation MLR, "Cost-Sensitive Classification".
"Pratique de la régression logistique", version 2.0, septembre 2009.
"Coûts de mauvais classement en apprentissage supervisé", janvier 2009.

lundi 25 janvier 2021

(Vidéo) Sélection forward en ADL

Dans cette vidéo, je détaille une implémentation possible de la sélection pas-à-pas "forward" de sélection de variables en analyse discriminante linéaire. Le mécanisme repose sur l'ajout graduel des variables les plus contributives. Dans la méthode proposée, les matrices de variance covariances intra-classes et totales sont calculées une fois pour toutes sur la totalité des variables au démarrage des calculs, puis nous y piochons au fur et à mesure les sous-matrices adéquates pour évaluer la pertinence des variables, sans qu'il ne soit nécessaire de revenir sur les données initiales. Cette approche assure la rapidité des calculs sur les grandes bases de données en nombre d'observations avec un nombre de variables candidates relativement modéré (de l'ordre de plusieurs centaines). Elle devient problématique lorsque le nombre de variables est très élevé (de l'ordre de plusieurs milliers, situation courante en text mining par exemple) du fait de l'occupation mémoire des matrices initiales de covariances. Une implémentation sous R montre la viabilité de la solution. 

Mots-clés : analyse discriminante prédictive, stepdisc, forward, sélection de variables
Vidéo : Stepdisc Forward
Données et programme : Forward Selection dataset
Références :
"Pratique de l'analyse discriminante linéaire", mai 2020.
"Stepdisc – Analyse discriminante", mars 2008.

jeudi 17 décembre 2020

Titre : (Vidéo) Sélection rapide de variables

Il est question de la sélection rapide de variables en analyse prédictive dans cette vidéo. Nous nous penchons en particulier sur les méthodes de ranking permettant de filtrer en amont les descripteurs avant la mise en œuvre des algorithmes de machine learning. Elles présentent l'avantage d'être très rapides sur des grandes bases de données, tant en nombre de variables que de variables prédictives candidates.

Ces techniques ne prennent en compte que la pertinence des descripteurs cependant c.-à-d. au sens de leur liaison statistique avec la variable cible, sans égard pour d'éventuelles redondances entre eux. Elles introduisent également un présupposé fort – très audacieux même – reposant sur l'idée que les descripteurs ainsi mis en évidence seront efficaces quel que soit l'algorithme d'apprentissage utilisé pour modéliser le concept les associant à la variable cible. Malgré tout, elles constituent une alternative très intéressantes aux autres méthodes de sélection. Elles permettent de défricher rapidement les grandes bases de données en réduisant drastiquement la dimensionnalité avec un effort de calcul minime.

Nous utilisons le module "feature_selection" de la libraire "scikit-learn" pour Python dans ce tutoriel. Le jeu de données correspond au fameux "waveform", bien connu en machine learning, auquel nous avons adjoint des descripteurs a priori non-pertinents que la méthode devrait pouvoir évacuer relativement facilement.

Mots-clés : python, scikit-learn, filter, ranking, feature selection, filtrage, analyse discriminante
Vidéo : Fast Feature Selection
Données et programme : Waveform data
Références :
"Filtrage des prédicteurs".
"Filtrage des prédicteurs discrets", juin 2010.

dimanche 13 décembre 2020

(Vidéo) Classifieurs linéaires

Dans cette vidéo, je reprend un ancien tutoriel dans lequel j'évaluais le comportement des différents algorithmes d'apprentissage de classifieurs linéaires sur des données artificielles. L'idée est de montrer qu'à système de représentation égal, les modèles s'expriment sous la forme de combinaisons linéaires des variables initiales, nous pouvons obtenir des résultats différents, et par conséquent des performances différentes, parce que les approches se distinguent par le mode d'estimation des coefficients.

Plutôt que R (dans la précédente expérimentation), nous utilisons Python et la fameuse librairie "scikit-learn" dans cette vidéo. Nous comparons l'analyse discriminante, la régression logistique et les SVM (support vector machine) à noyau linéaire. Pour ce dernier cas, nous observons que le paramétrage adopté pèse également sur la teneur des résultats, au-delà du choix de l'algorithme.

Les représentations graphiques dans le plan des frontières de séparation des classes induites par les algorithmes permettent d'illustrer leur comportement sur notre jeu de données.

Mots-clés : python, scikit-learn, analyse discriminante, régression logistique, svm
Vidéo : Classifieurs linéaires
Données et programme : Artificial data
Références :
"Classifieurs linéaires", mai 2013.

vendredi 4 décembre 2020

(Vidéo) Analyse discriminante sous Python

Analyse discriminante linéaire sous Python avec le package "scikit-learn". Utilisation de la classe de calcul LinearDiscriminantAnalysis. Modélisation, entraînement du modèle sur les données d'apprentissage ; prédiction sur un échantillon non-étiqueté. Lecture des résultats, en particulier des coefficients des fonctions de classement. Références vers des tutoriels plus détaillés (lambda de Wilks, F de Rao, évaluation de la pertinence des variables) ou complémentaires (autres logiciels).

Mots-clés : analyse discriminante prédictive, python, scikit-learn
Vidéo : ADL sous Python
Données et programme : Kirsch – Mirabelle – Poire sous Python
Références :
"Pratique de l'Analyse Discriminante Linéaire", mai 2020.
"Analyse discriminante linéaire sous Python", avril 2020.
"Python - Machine Learning avec scikit-learn", septembre 2015.

jeudi 3 décembre 2020

(Vidéo) Analyse discriminante sous SAS

Analyse discriminante linéaire sous SAS. Modélisation (entraînement du modèle sur les données d'apprentissage) avec la PROC DISCRIM. Sélection de variables avec la PROC STEPDISC, les méthodes pas-à-pas et en particulier l'approche "forward". Détail du mode opératoire et lecture des résultats.

Mots-clés : analyse discriminante prédictive, logiciel SAS, proc discrim, proc stepdisc
Vidéo : ADL avec SAS
Données et programme : Kirsch – Mirabelle – Poire sous SAS
Références :
"Pratique de l'Analyse Discriminante Linéaire", mai 2020.
"SAS OnDemand for Academics".

mercredi 2 décembre 2020

(Vidéo) ADL sous R avec "discriminR"

Analyse discriminante linéaire sous R avec le package "discriminR". Modélisation (entraînement du modèle sur les données d'apprentissage), prédiction, sélection de variables avec les méthodes pas-à-pas, en particulier l'approche "forward". Lecture des résultats, focus sur les fonctions de classement directement fournies par la librairie, comparaison avec le mode opératoire et les sorties du package "klaR" pour la sélection.

Mots-clés : analyse discriminante prédictive, logiciel R, package discriminR, package klaR
Vidéo : ADL avec discriminR
Sortie des traitements : Sortie Markdown
Données et programme : Kirsch – Mirabelle - Poire
Références :
"Pratique de l'Analyse Discriminante Linéaire", mai 2020.
"Analyse discriminante linéaire sous R", avril 2020.

dimanche 29 novembre 2020

(Vidéo) Recodage des explicatives qualitatives en ADL

Cette vidéo montre une solution possible pour l'intégration de variables explicatives qualitatives dans un modèle d'analyse discriminante linéaire. Elle passage par l'utilisation des "dummy variables" c.-à-d. des indicatrices 0/1. Deux questions importantes apparaissent alors : combien d'indicatrices créer pour recoder convenablement une variable catégorielle à K modalités ; et comment lire les résultats par la suite.

Mots-clés : analyse discriminante prédictive, dummy variables, indicatrices, codage disjonctif
Didacticiel vidéo : Recodage dummy variables en ADL
Classeur Excel : heart disease
Références :
"Pratique de l'Analyse Discriminante Linéaire", mai 2020, chapitre 3.

dimanche 15 novembre 2020

(Vidéo) Subdivision train-test pour les comparaisons

La période de confinement est un véritable challenge pour l'enseignement. Autant je suis à l'aise en cours avec les étudiants en présentiel dans la salle informatique durant les travaux dirigés sur machine ; autant j'ai du mal à me situer en distanciel, sans véritable retours, sans repères sur l'avancement des uns et des autres.

Pour mieux accompagner les étudiants, j'ai décidé de créer une chaîne vidéo sur YouTube pour qu'ils puissent avoir sous la main (sous les yeux) les explications ou démonstrations que j'effectue au début de chacune de mes séances.

En effet, je me permets d'aller vite en présentiel (je suis incapable de faire autrement de toute manière) parce que je suis avec eux par la suite. Je passe mon temps à roder derrière les étudiants, traquant les bugs, expliquer ce que je constate mal compris, refaire avec eux les étapes des traitements, ou tout simplement discuter de tel ou tel aspect de la data science. Ces échanges sont on ne peut plus enrichissants, à la fois pour les étudiants et pour les enseignants.

Rien de tout cela en distanciel, et surtout reproduire les démos à plusieurs reprises n'est pas envisageable, même si l'idée de discussion privée existe avec les outils d'échange à distance que nous utilisons.

Finalement, cette idée de vidéos n'est pas si mauvaise. Je m'étais toujours refusé à le faire jusqu'à présent. D'une part parce que montrer ma bobine sur le web ne m'intéresse pas spécialement ; d'autre part parce que je crois en la force de l'écrit où nous disposons de l'opportunité de prendre le temps d'expliquer les choses, parfois même de faire des digressions, choses moins évidente dans une vidéo où l'on doit être le plus schématique possible sous peine de perdre le spectateur. Mais bon, nécessité fait loi. Au moins pour les démonstrations, cette idée des tutoriels-vidéos me paraît viable.

Dans cette vidéo, je montre comment subdiviser un ensemble de données en échantillons d'apprentissage et de test, et comment s'organiser pour que la même partition soit exploitée pour comparer différents algorithmes de machine learning implémentés dans différents logiciels de data science. Nous utilisons : Knime, Tanagra, Sipina, Python / Scikit-Learn, R / Rpart. Le matériel pédagogique (données, programmes) associé aux traitements est disponible ci-dessous.

Allez savoir. Peut-être sommes-nous à un tournant de notre pratique de l'enseignement dans les universités….

Mots-clés : analyse discriminante, régression logistique, arbre de décision, python, logiciel r, scikit-learn, rpart, tanagra, sipina, knime
Didacticiel vidéo : Comparaisons des algorithmes
Support : Schéma train-test en analyse prédictive
Données et programmes : Spam, archives et code R/Python
Références :
"Analyse prédictive avec Knime", février 2016.
"Apprentissage-test avec Orange, Tanagra et Weka", avril 2008.
"Apprentissage-test avec Sipina", mars 2008.
"Python - Machine Learning avec Scikit-Learn", septembre 2015.
"Introduction à R – Arbre de décision", mars 2012.

dimanche 10 mai 2020

Pratique de l'Analyse Discriminante Linéaire

Bon, les circonstances font qu'il m'a été possible de consacrer suffisamment de temps à l'écriture d'un livre. J'ai choisi de travailler sur l'analyse discriminante linéaire, une méthode prédictive que je trouve très intéressante, tant par sa mécanique interne que par l'usage que l'on peut en faire.

Curieusement, alors qu'elle est souvent abordée dans les ouvrages de statistique exploratoire (data science dirait-on aujourd'hui), je ne connais pas de référence qui lui est entièrement consacrée en français. Je la trouve pourtant très riche. Il y a vraiment beaucoup de choses à dire sur son compte. J'ai décidé de m'y coller en choisissant délibérément l'axe prédictif, et en essayant de mettre en avant les différents aspects qui en font le sel. Ceux justement que j'essaie de souligner dans les séances que je lui consacre dans mes enseignements. En effet, sa présentation se résume très rapidement à un empilement de formules matricielles si l'on n'y prend garde. Il fallait absolument éviter cet écueil en se focalisant sur sa pratique, en étant toujours autant que possible concret et pragmatique.

Un package pour R, discriminR, réalisé par un groupe d'étudiants du Master SISE (promotion 2017-2018), Tom Alran, Benoît Courbon et Samuel Rasser-Chinta, accompagne cet ouvrage. Il permet de mettre facilement  en application les principales idées qui ont mises en avant, avec des sorties aux standards de SAS Proc Discrim et Proc Stepdisc. Un tutoriel décrit son mode opératoire et la lecture des résultats dans le chapitre consacré aux logiciels. Merci à eux d'avoir bien voulu nous faire profiter de leur travail.

Ça fait plus de 20 ans que j'enseigne l'analyse discriminante prédictive, je ne m'en lasse pas, je lui trouve toujours de beaux atours et j'adore en parler.

Mots-clés : analyse discriminante linéaire, ADL, linear discriminant analysis, LDA, fonctions de classement, évaluation, sélection de variables, stepdisc, variables explicatives qualitatives, disqual, bayésien naïf, régularisation, analyse factorielle discriminante, analyse des correspondances discriminante, proc discrim, proc stepdisc, logiciel R, package discriminR, scikit-learn, python
Ouvrage : Analyse discriminante linéaire
Package R : discriminR 0.1.0
Données exemples : Data ADL
Références :
Page de cours, "Analyse discriminante".

jeudi 9 avril 2020

Analyse Discriminante Linéaire sous R

En rédigeant mon précédent tutoriel consacré à l'analyse discriminante sous Python, je me suis rendu compte que je n'avais jamais écrit d'équivalent pour R, où l'on passerait en revue les fonctionnalités de la fonction lda() du package MASS qui fait référence sous cet environnement. C'est étonnant, surtout que je la pratique depuis un bon moment déjà. C'est même une des premières méthodes de R que j'ai explorées avec glm() et rpart(). Nous allons essayer d'y remédier dans ce document.

Nous reprenons la trame de la présentation pour Python, en prenant appui toujours sur notre support de cours dédié, mais en l'adaptant bien sûr aux spécificités de lda(). Notre référence reste SAS, avec les procédures proc discrim et proc candisc. Un des enjeux fort sera de faire le lien entre les parties descriptives et prédictives en dérivant les fonctions de classement à partir des fonctions canoniques discriminantes.

Mots-clés : logiciel R, analyse discriminante linéaire, analyse discriminante prédictive, ADL, linear discriminant analysis, lda, package MASS, sélection de variables, package klaR, stepdisc, logiciel SAS, proc discrim, proc candisc
Didacticiel : ADL sous R
Données et code source R : Kirsch - Mirabelle - Poire
Références :
R. Rakotomalala, "Analyse discriminante linéaire".
Tutoriel Tanagra, "Analyse discriminante linéaire sous Python", avril 2020.

lundi 6 avril 2020

Analyse Discriminante Linéaire sous Python

L'analyse discriminante linéaire est une méthode prédictive où le modèle s'exprime sous la forme d'un système d'équations linéaires des variables explicatives. Je l'affectionne particulièrement. Le temps que je lui consacre dans mes enseignements fait partie de mes séances favorites notamment parce qu'elle se prête à des multiples lectures. Je tiendrai très facilement des heures avec un nombre pourtant réduit de slides.

Dans ce tutoriel, nous étudierons le comportement de la classe de calcul LinearDiscriminantAnalysis du package "scikit-learn" pour Python. En faisant le tour de ses propriétés et méthodes, nous passerons en revue les différents aspects de la technique. Pour mieux situer la teneur des résultats, nous mettrons en parallèle les sorties de la procédure PROC DISCRIM du logiciel SAS qui fait figure de référence dans le domaine.

Mots-clés : python, analyse discriminante linéaire, adl, test manova, lambda de wilks, coefficients des fonctions de classement, package scikit-learn, logiciel sas, prox discrim
Données et code source Python : Kirsch - Mirabelle - Poire
Références :

mercredi 17 avril 2019

Programmer efficacement sous Python

J'avais écrit récemment un document à propos de l'optimisation des programmes sous R ("Programmer efficacement sous R", février 2019). Dans ce tutoriel, nous étudierons cette fois-ci comment déboguer, analyse et optimiser du code en Python, via l'EDI (Environnement de Développement Intégré) SPYDER livré avec la distribution ANACONDA.

D'autres environnements de développements existent pour Python ("Here are the most popular Python IDEs / Editors", KDnuggets, Décembre 2018) mais, pour ma part, SPYDER me convient très bien au jour le jour. Je le conseille souvent à mes étudiants, en partie à cause de sa similitude avec RStudio. L'interface leur étant familière, le passage d'un langage à l'autre est moins abrupt.

Tout comme pour R, nous prétexterons de l'implémentation du leave-one-out (LOOCV – Leave-One-Out Cross-Validation) en modélisation prédictive (analyse discriminante linéaire) pour explorer les fonctionnalités proposées par SPYDER.

Mots-clés : débogueur, profileur, analyse de code, leave-one-out, python, scikit-learn
Didacticiel : Programmation efficace sous Python
Programme python et données : waveform
Références :
SPYDER: The Scientific Python Development Environment -- https://docs.spyder-ide.org/

mardi 26 février 2019

Programmer efficacement sous R

Mon attention a été attirée récemment par l'excellent ouvrage "Efficient R Programming" de Gillepsie et Lovelace (2017), accessible en ligne. Les auteurs exposent les tenants et aboutissants de la programmation efficace sous R. Au-delà des trucs et astuces, ils discutent des principes de l'écriture de programmes performants (en occupation mémoire et en temps d'exécution) et présentent – entres autres – les outils de benchmarking et de profiling (profilage en français) de code. Je me suis dit que ce serait une bonne chose d'illustrer leur utilisation dans le cadre de la programmation d'une procédure type de machine learning.

Mon choix s'est porté sur la programmation du leave-one-out, une procédure de rééchantillonnage pour l'évaluation des modèles prédictifs. L'optimisation du code reposera sur une analyse fine des étapes grâce à l'outil de profiling. Nous pourrons gratter du temps d'exécution en jouant sur les spécificités des primitives de calcul utilisées, le choix des structures de données, la parallélisation des calculs. Tout cela en préservant la lisibilité du code source, gage indispensable de pérennité des applications sur le long terme.

Mots-clés : langage R, package microbenchmark, package profvis, package MASS, package parallel, programmation parallèle, leave-one-out
Programmes et données : waveform
Références :
C. Gillepsie, R. Lovelace, ''Efficient R programming'', avril 2017.

dimanche 13 janvier 2019

Stacking avec R

Ce tutoriel fait suite au support de cours consacré au stacking. L'idée, rappelons-le, est de faire coopérer des modèles en prédiction en espérant que les erreurs se compenseront. L'ensemble serait alors plus performant que les modèles sous-jacents qui le composent, pris individuellement. A la différence du boosting ou du bagging, nous créons les classifieurs à partir de la même version des données d'entraînement (sans pondération ou autres modifications), la diversité nécessaire à la complémentarité provient de l'utilisation d'algorithmes de familles différentes. Dans les exemples que nous explorerons, le pool comprendra un arbre de décision, une analyse discriminante linéaire, et un SVM avec un noyau RBF. On peut penser que ces approches possèdent des caractéristiques suffisamment dissemblables pour qu'en classement, elles ne soient pas constamment unanimes (si les modèles sont unanimes, les faire coopérer ne sert à rien).

Nous étudierons le stacking de deux manières dans ce document. Dans un premier temps, nous programmerons à partir de zéro les différentes manières de combiner les modèles (vote ‘'hard'', vote ‘'soft'', métamodèle). Au-delà du plaisir à le faire, l'objectif est de décortiquer les étapes pour s'assurer la bonne compréhension des approches. Ensuite seulement, dans un deuxième temps, nous utiliserons les outils spécialisés (caretEnsemble, H2O). Le fait de détailler les opérations précédemment permettra de mieux appréhender les paramètres et les opérations préalables que nécessitent l'appel des fonctions dédiées au stacking dans ces packages.

Mots-clés : stacking, stacked ensemble, modèles ensemblistes, logiciel R, caretEnsemble, h2o, arbre de décision, analyse discriminante linéaire, svm, noyau rbf
Didacticiel : Stacking avec R
Données et programme R : spambase + prog. R
Références :
Wolpert D., "Stacked Generalization", Neural Networks, 5:241:259, 1992.

mardi 26 juin 2018

Pipeline sous Python - La méthode DISQUAL

En inventoriant le package « fanalysis » d’Olivier Garcia dédié à l’analyse factorielle (ACP, AFC et ACM) sous Python, mon attention a été attirée par l’outil Pipeline du package « scikit-learn » mis en avant lors de la présentation de l’ACM (analyse des correspondances multiples). Un Pipeline est un méta-opérateur qui permet d’enchaîner plusieurs calculs, pourvu que les classes mises à contribution implémentent les fonctions fit() (apprentissage) et transform() (projection). Les mécanismes de classes de Python et la forte cohérence des objets de « scikit-learn » font merveille ici. Cette notion d’opérateur encapsulant plusieurs autres qui s’exécutent séquentiellement n’est pas sans rappeler les metanodes dans des logiciels de data mining tels que Knime. J’avais pu en explorer le fonctionnement lors de la programmation de la validation croisée par exemple.

Nous nous appuierons sur l’étude de la méthode DISQUAL de Gilbert Saporta pour montrer l’intérêt de la classe Pipeline de « scikit-learn ». DISQUAL (discrimination sur variables qualitatives) permet de réaliser une analyse discriminante prédictive sur des variables explicatives qualitatives en faisant succéder deux techniques statistiques : dans un premier temps, une ACM est opérée sur les descripteurs, nous obtenons une description des données dans un espace factoriel ; dans un second temps, on lance une analyse discriminante linéaire (ADL), expliquant la variable cible à partir des facteurs de l’ACM. DISQUAL cumule un double avantage : elle rend réalisable l’analyse discriminante linéaire dans une configuration qu’elle ne sait pas appréhender nativement (explicatives qualitatives) ; on peut en moduler les propriétés de régularisation, et donc la robustesse au surapprentissage, en jouant sur le nombre de facteurs de l’ACM à retenir pour l’analyse discriminante.

On note surtout dans le contexte de ce tutoriel que DISQUAL est constituée deux techniques statistiques qui se succèdent (ACM + ADL). Elle se prête à merveille à l’utilisation de l'outil Pipeline.

Mots-clés : pipeline, scikit-learn, package fanalysis, disqual, acm, analyse des correspondances multiples, discrimination sur variables qualitatives, analyse discriminante
Composants Tanagra : MULTIPLE CORRESPONDANCE ANALYSIS, LINEAR DISCRIMINANT ANALYSIS
Didacticiel : Pipeline et DISQUAL
Données et programme : Pipeline et disqual - Python
Références :
Scikit-learn, "sklearn.pipeline.Pipeline".
LeMakiStatheux, "La méthode DISQUAL".

mercredi 21 février 2018

Stratégies d'échantillonnage pour la modélisation

Ce tutoriel fait suite au support de cours consacré aux algorithmes d'échantillonnage. Nous nous y intéressions en particulier aux stratégies d'échantillonnage pour la modélisation prédictive.

Dans ce document, nous étudions expérimentalement le comportement des deux stratégies décrites dans le support. L'approche "random sampling" consiste à démarrer à partir d'une taille d'échantillon définie a priori, puis de l'augmenter graduellement tout en surveillant les performances en test (taux d'erreur). La méthode "windowing" procède du même principe mais cherche à sélectionner judicieusement les observations additionnelles à chaque étape pour améliorer la convergence.

Nos algorithmes et bases de référence seront respectivement l'analyse discriminante linéaire et les données WAVEFORM bien connus des data scientists. L'étude a été menée sous R. Mais le portage du code dans d'autres langages comme Python ne pose aucun problème conceptuel.

Mots-clés : échantillonnage, random sampling, windowing, apprentissage supervisé
Document : Stratégies d'échantillonnage pour la modélisation
Données : waveform dataset
Références :
Tutoriel Tanagra, "Algorithmes d'échantillonnage", février 2018.

mardi 16 août 2016

Master SISE - Remise à niveau - Analyse prédictive

L’analyse prédictive a énormément contribué à la popularité du data mining et du machine learning. Dans ce programme de remise à niveau pour le master SISE, nous nous concentrons sur les techniques d’apprentissage supervisé où la variable cible est catégorielle. C’est un parti pris pédagogique sachant que la régression fait également partie de l’analyse prédictive mais, dans sa perception commune, elle est plutôt associée à la démarche économétrique et aux statistiques.

Dans une première approche, nous nous focaliserons sur l’analyse discriminante linéaire et les arbres de décision. Les méthodes avancées (ex. SVM, méthodes ensemblistes [random forest, boosting, gradient boosting], réseaux de neurones, etc.) sont enseignées en Master.

Nous multiplions les outils dans ce thème : nous utilisons Excel en tandem avec Tanagra et Sipina d’une part ; R (RStudio) d’autre part. Pouvoir jongler entre les outils permet de ne pas en être dépendants.

Document principal : Principes de l’apprentissage supervisé
Outils : Excel, Tanagra, Sipina, R (RStudio), Python (Anaconda)
Exercice 1 : Analyse discriminante prédictive, données.
Exercice 2 : Analyse discriminante et sélection de variables, données.
Exercice 3 : Arbres de décision, données.
Exercice 4 : Arbres de décision – Frontières induites.
Exercice 5 : Comparaison de méthodes, données.

mardi 22 septembre 2015

R en ligne avec R-Fiddle

R-Fiddle est un environnement de programmation R accessible en ligne. Il permet de coder et de faire exécuter un programme R.

Ce type de solution est adapté à un utilisateur nomade qui change fréquemment de machine. Sous condition de disposer d’une connexion internet, il peut travailler sur un projet sans avoir à se préoccuper de l’installation de R sur des PC dont il ne dispose pas de droits administrateurs de toute façon. Le travail collaboratif est un autre contexte où ce dispositif peut se révéler particulièrement avantageux. Il nous permet de nous affranchir des échanges de fichiers toujours hasardeux (j’ai pas reçu ton e-mail ! qui n’a pas été confronté à cette dénégation péremptoire…) avec une gestion des versions aléatoire. Enfin, la solution nous permet de travailler sur un front-end léger, un ordinateur portable par exemple, et de déporter les calculs sur un serveur distant taillé en conséquence (dans le cloud dirait-on aujourd’hui pour faire poétique).

Dans ce tutoriel, nous étudions succinctement les fonctionnalités de R-Fiddle.

Mots clés : logiciel R, programmation R, cloud computing, analyse discriminante, régression logistique, arbre de décision, klaR package, rpart package, sélection de variables
Lien : fr_Tanagra_R_Fiddle.pdf
Fichier : fr_r_fiddle.zip
Références :
R-Fiddle - http://www.r-fiddle.org/#/