L’approche SVM (support vector machine) est une technique de data mining / machine learning très populaire dans les domaines proches de la recherche. Je l’avais directement implémentée dans Tanagra en son temps (en m’inspirant du code de Weka). J’avais ensuite intégré la librairie LIBSVM (une des très rares bibliothèques externes de Tanagra) lorsque je me suis rendu compte des performances de cette dernière.
Faire un cours dessus était une autre histoire. Comment présenter les SVM en allant à l’essence des choses sans assommer les étudiants à coups de formules mathématiques plus ou moins abstraites ? J’avais demandé à un groupe d’étudiants du Master SISE de faire le cours à ma place cette année dans le cadre de l’unité d’enseignement « Travail en groupe ». L'exercice m’a surtout permis de voir les réactions des autres étudiants qui assistaient à la séance, et mettre le doigt sur les ressorts de compréhension. L’idée est de prendre le temps de détailler avec des exemples simples traités sous Excel (vraiment simples !) la résolution des problèmes d’optimisations sous-jacents à la technique. Le fichier accompagne ce support.
La présentation est complétée par la mise en œuvre de l’approche sous les logiciels libres Python (scikit-learn), R (e1071) et Tanagra (SVM et C-SVC).
Je remercie le groupe d’étudiants qui a travaillé sur ce thème. Ils s’en sont vus, mais je pense que l’essentiel du message est passé auprès de leurs camarades.
Mots-clés : svm, machines à vecteurs de support, séparateurs à vaste marge, package e1071, logiciel R, logiciel Python, package scikit-learn, sklearn
Composants : SVM, C-SVC
Lien : Support Vector Machine (SVM)
Fichier exemple : svm exemples.xlsx
Références :
Tutoriel Tanagra, "SVM - Comparaison de logiciels", oct. 2008.
Tutoriel Tanagra, "Classifieurs linéaires", mai 2013.
Tutoriel Tanagra, "Support Vector Machine avec R et Python", mai 2016.
Ce blog recense les documents pédagogiques consacrés à la data science, machine learning et big data. Les outils sont principalement les logiciels Tanagra, R et Python. [04 nov. 2022] Suite à la panne du serveur de fichiers, les posts antérieurs à mai 2015 ont été perdus, les liens sont cassés. J'ai dû créer un site à part avec les archives (depuis 2004) et les bons liens ; j'y fais figurer également les nouveaux tutoriels depuis mars 2024. Voir "Nouveau Site" ci-dessous. Ricco.
jeudi 12 mai 2016
mercredi 4 mai 2016
Gradient boosting avec R et Python
Ce tutoriel fait suite au support de cours consacré au « Gradient Boosting ». Il vient également en complément des supports et tutoriels pour les techniques de bagging, random forest et boosting mis en ligne précédemment (novembre 2015).
La trame sera très classique : après avoir importé les données préalablement scindées en deux fichiers (apprentissage et test), nous construisons les modèles prédictifs et nous les évaluons. Le critère taux d’erreur en test est privilégié pour comparer les performances.
La question du paramétrage, particulièrement délicate dans le cadre du gradient boosting, est étudiée. En effet, ils sont nombreux, et leur influence est considérable. Malheureusement, si l’on devine à peu près les pistes à explorer pour améliorer la qualité des modèles (plus ou moins "coller" à l’échantillon d’apprentissage c.-à-d. plus ou moins régulariser), identifier avec exactitude les paramètres à manipuler et fixer les bonnes valeurs relèvent un peu de la boule de cristal, surtout lorsqu’ils interagissent entre eux. Ici, plus que pour d’autres méthodes de machine learning, la stratégie essai-erreur prend beaucoup d'importance.
Nous utiliserons R et Python, avec les packages dédiés, dans ce tutoriel.
Mots clés : logiciel R, programmation R, arbre de décision, adabag package, rpart package, Python, scikit-learn package, boosting, random forest
Lien : Gradient boosting
Fichier : gradient_boosting.zip
Références :
R. Rakotomalala, "Gradient boosting - Diapos", avril 2016.
R. Rakotomalala, "Bagging, Random Forest, Boosting - Diapos", novembre 2015.
La trame sera très classique : après avoir importé les données préalablement scindées en deux fichiers (apprentissage et test), nous construisons les modèles prédictifs et nous les évaluons. Le critère taux d’erreur en test est privilégié pour comparer les performances.
La question du paramétrage, particulièrement délicate dans le cadre du gradient boosting, est étudiée. En effet, ils sont nombreux, et leur influence est considérable. Malheureusement, si l’on devine à peu près les pistes à explorer pour améliorer la qualité des modèles (plus ou moins "coller" à l’échantillon d’apprentissage c.-à-d. plus ou moins régulariser), identifier avec exactitude les paramètres à manipuler et fixer les bonnes valeurs relèvent un peu de la boule de cristal, surtout lorsqu’ils interagissent entre eux. Ici, plus que pour d’autres méthodes de machine learning, la stratégie essai-erreur prend beaucoup d'importance.
Nous utiliserons R et Python, avec les packages dédiés, dans ce tutoriel.
Mots clés : logiciel R, programmation R, arbre de décision, adabag package, rpart package, Python, scikit-learn package, boosting, random forest
Lien : Gradient boosting
Fichier : gradient_boosting.zip
Références :
R. Rakotomalala, "Gradient boosting - Diapos", avril 2016.
R. Rakotomalala, "Bagging, Random Forest, Boosting - Diapos", novembre 2015.
samedi 30 avril 2016
Gradient boosting - Diapos
Le gradient boosting est une technique ensembliste qui généralise le boosting en introduisant la possibilité d’utiliser explicitement des fonctions de coûts (le boosting classique utilise implicitement une fonction de coût exponentielle).
Ces diapos montrent les tenants et aboutissants de la méthode. La régression est développée dans un premier temps. Le problème du classement est analysé par la suite.
Les solutions implémentées dans les packages pour R et Python sont étudiées.
Mots-clés : boosting, arbres de régression, package gbm, package mboost, package xgboost, logiciel R, logiciel Python, package scikit-learn, sklearn
Lien : Gradient boosting
Références :
R. Rakotomalala, "Bagging, Random Forest, Boosting - Diapos", novembre 2015.
Natekin A., Knoll A., "Gradient boosting machines, a tutorial", in Frontiers in Neurorobotics, décembre 2013.
Ces diapos montrent les tenants et aboutissants de la méthode. La régression est développée dans un premier temps. Le problème du classement est analysé par la suite.
Les solutions implémentées dans les packages pour R et Python sont étudiées.
Mots-clés : boosting, arbres de régression, package gbm, package mboost, package xgboost, logiciel R, logiciel Python, package scikit-learn, sklearn
Lien : Gradient boosting
Références :
R. Rakotomalala, "Bagging, Random Forest, Boosting - Diapos", novembre 2015.
Natekin A., Knoll A., "Gradient boosting machines, a tutorial", in Frontiers in Neurorobotics, décembre 2013.
jeudi 14 avril 2016
Mining of Massive Datasets (2nd Edition)
L'ouvrage « Mining of Massive Datasets », littéralement « Fouille de données massives », s’inscrit dans l’air du temps. Le contexte, maintes fois évoqué, est bien connu aujourd'hui : la profusion des données et la multiplication des sources, exacerbées par les outils de communication et notre mode de vie, induisent de nouveaux défis et opportunités pour le Data Mining.
Par rapport aux très nombreuses références qui existent, le livre de Leskovec, Rajaraman et Ullman présente une double particularité : il est basé sur des enseignements dispensés à l’Université de Stanford, c'est dire s'il a fait ses preuves ; le livre au format PDF ainsi que tout le matériel pédagogique associé (les diaporamas relatifs à chaque chapitre en Powerpoint et PDF) sont librement accessibles sur le web. C’est Byzance ! Sachant par ailleurs que l’ouvrage imprimé est disponible dans les librairies (mais pas gratuitement).
Cette fiche de lecture retrace les principales notions présentées dans cet ouvrage.
Mots clés : big data, data science, data scientist, machine learning, statistical learning
Lien : Résumé
Références :
J. Leskovec, A. Rajaraman, J.D. Ullman, "Mining of Massive Datasets" (2nd Edition), Cambridge University Press, November 2014.
Par rapport aux très nombreuses références qui existent, le livre de Leskovec, Rajaraman et Ullman présente une double particularité : il est basé sur des enseignements dispensés à l’Université de Stanford, c'est dire s'il a fait ses preuves ; le livre au format PDF ainsi que tout le matériel pédagogique associé (les diaporamas relatifs à chaque chapitre en Powerpoint et PDF) sont librement accessibles sur le web. C’est Byzance ! Sachant par ailleurs que l’ouvrage imprimé est disponible dans les librairies (mais pas gratuitement).
Cette fiche de lecture retrace les principales notions présentées dans cet ouvrage.
Mots clés : big data, data science, data scientist, machine learning, statistical learning
Lien : Résumé
Références :
J. Leskovec, A. Rajaraman, J.D. Ullman, "Mining of Massive Datasets" (2nd Edition), Cambridge University Press, November 2014.
jeudi 24 mars 2016
Classification automatique sous Python
J'explore Python chaque jour, chaque semaine. Mon objectif est de pouvoir l'utiliser de manière indifférenciée avec R dans mes cours de machine learning (data mining) à l'Université.
Dans cette veine, je reprends étape par étape un précédent tutoriel consacré à la classification automatique sous R. Nous constatons, pour ce qui est du clustering avec la CAH et les K-Means en tous les cas, que les deux logiciels sont équivalents. Les commandes sont similaires, non pas dans leur syntaxe, mais dans leur mode opératoire. Et les résultats sont identiques, mis à part les k-means qui sont heuristiques par nature.
Nous utilisons les packages SciPy et Scikit-learn.
Mots clés : logiciel R, classification ascendante hiérarchique, CAH, méthode des centres mobiles, k-means, package scipy, package scikit-learn, analyse en composantes principales, ACP
Composants : linkage, dendrogram, fcluster, kmeans
Lien : cah et k-means avec Python
Données : cah_kmeans_avec_python.zip
Références :
Tutoriel Tanagra, "Classification automatique sous R", octobre 2015.
Dans cette veine, je reprends étape par étape un précédent tutoriel consacré à la classification automatique sous R. Nous constatons, pour ce qui est du clustering avec la CAH et les K-Means en tous les cas, que les deux logiciels sont équivalents. Les commandes sont similaires, non pas dans leur syntaxe, mais dans leur mode opératoire. Et les résultats sont identiques, mis à part les k-means qui sont heuristiques par nature.
Nous utilisons les packages SciPy et Scikit-learn.
Mots clés : logiciel R, classification ascendante hiérarchique, CAH, méthode des centres mobiles, k-means, package scipy, package scikit-learn, analyse en composantes principales, ACP
Composants : linkage, dendrogram, fcluster, kmeans
Lien : cah et k-means avec Python
Données : cah_kmeans_avec_python.zip
Références :
Tutoriel Tanagra, "Classification automatique sous R", octobre 2015.
jeudi 25 février 2016
Analyse prédictive sous Knime
Knime est un logiciel de data mining librement téléchargeable en ligne (Knime Analytics Platform). Je l’étudie depuis longtemps. Mon premier tutoriel à son propos date de 2008. Je me suis rendu compte récemment que je n’avais jamais écrit un guide « simple » montrant une démarche d’analyse prédictive basique sous cet outil, à savoir : (1) importer les données ; (2) les partitionner en échantillons d’apprentissage et test ; (3) construire le modèle à partir de l’ensemble d’apprentissage ; (4) l’appliquer sur l’ensemble de test pour obtenir la prédiction du modèle ; (5) confronter les valeurs observées et prédites de la variable à prédire à travers la matrice de confusion ; (6) en déduire les indicateurs (mesures) de performances des modèles (taux d’erreur, etc.).
Dans un processus de « scoring », une variante est apportée à partir du point n°4 : (4’) appliquer le modèle sur l’échantillon test pour obtenir le score des individus ; (5’) construire la courbe lift cumulée ou courbe de gain à partir des valeurs observées de la variable cible et les scores.
Ce tutoriel retrace toutes ces étapes avec force copies d’écrans comme toujours. La régression logistique est mise à contribution mais le processus est transposable à toute méthode de machine learning. Nous introduirons très brièvement la sélection de variables - à la sauce Knime - dans la dernière partie.
Mots clés : régression logistique, knime, sélection de variables, échantillons d'apprentissage et de test
Lien : Analyse prédictive.pdf
Fichier : pima.xls
Références :
Knime - https://www.knime.org/
Dans un processus de « scoring », une variante est apportée à partir du point n°4 : (4’) appliquer le modèle sur l’échantillon test pour obtenir le score des individus ; (5’) construire la courbe lift cumulée ou courbe de gain à partir des valeurs observées de la variable cible et les scores.
Ce tutoriel retrace toutes ces étapes avec force copies d’écrans comme toujours. La régression logistique est mise à contribution mais le processus est transposable à toute méthode de machine learning. Nous introduirons très brièvement la sélection de variables - à la sauce Knime - dans la dernière partie.
Mots clés : régression logistique, knime, sélection de variables, échantillons d'apprentissage et de test
Lien : Analyse prédictive.pdf
Fichier : pima.xls
Références :
Knime - https://www.knime.org/
samedi 20 février 2016
Building Machine Learning Systems
.. with Python (2nd Edition).
J’ai toujours eu des réticences à acheter et conseiller à mes étudiants des ouvrages consacrés à des outils. Généralement, ils prétendent couvrir un très large panel d’approches en quelques centaines de pages. A la sortie, on se rend compte qu’ils traitent de manière très superficielle les méthodes sous-jacentes qu’ils essaient d’illustrer. Et, de toute manière, on trouvera toujours sur le web des tutoriels en français ou en anglais, qui décriront les opérations et les sorties des logiciels de manière autrement plus approfondie. De plus, la diffusion croissante de nombreuses vidéos de démonstration sur la plate-forme d’échange YouTube modifie la donne concernant ce type de document à vocation pédagogique.
Pourquoi alors faire une fiche de lecture sur « Building Machine Learning Systems with Python » qui s’inscrit finalement dans cette lignée des ouvrages centrés sur les outils ?
Tout simplement parce que l'ouvrage de Luis Pedro Coelho et Willi Richert nous permet de cerner le champ des possibles en matière de Machine Learning sous Python. Le livre ne prétend pas à l’exhaustivité. Il ne constitue certainement pas un ouvrage sur l’apprentissage automatique. L’objectif serait plutôt de titiller la curiosité du lecteur. Pour ma part, j’y ai surtout vu une source d’inspiration intéressante me permettant de faire évoluer mes Cours / Travaux Dirigés pour mes enseignements de Data Mining - Data Science en Master Statistique et Informatique.
Mots clés : big data, data science, data scientist, machine learning, statistical learning, python
Lien : Résumé
Références :
L.P. Coelho, W. Richert, "Buildong Machine Learning Systems with Python (2nd Edition)", Packt Publishing, mars 2015.
J’ai toujours eu des réticences à acheter et conseiller à mes étudiants des ouvrages consacrés à des outils. Généralement, ils prétendent couvrir un très large panel d’approches en quelques centaines de pages. A la sortie, on se rend compte qu’ils traitent de manière très superficielle les méthodes sous-jacentes qu’ils essaient d’illustrer. Et, de toute manière, on trouvera toujours sur le web des tutoriels en français ou en anglais, qui décriront les opérations et les sorties des logiciels de manière autrement plus approfondie. De plus, la diffusion croissante de nombreuses vidéos de démonstration sur la plate-forme d’échange YouTube modifie la donne concernant ce type de document à vocation pédagogique.
Pourquoi alors faire une fiche de lecture sur « Building Machine Learning Systems with Python » qui s’inscrit finalement dans cette lignée des ouvrages centrés sur les outils ?
Tout simplement parce que l'ouvrage de Luis Pedro Coelho et Willi Richert nous permet de cerner le champ des possibles en matière de Machine Learning sous Python. Le livre ne prétend pas à l’exhaustivité. Il ne constitue certainement pas un ouvrage sur l’apprentissage automatique. L’objectif serait plutôt de titiller la curiosité du lecteur. Pour ma part, j’y ai surtout vu une source d’inspiration intéressante me permettant de faire évoluer mes Cours / Travaux Dirigés pour mes enseignements de Data Mining - Data Science en Master Statistique et Informatique.
Mots clés : big data, data science, data scientist, machine learning, statistical learning, python
Lien : Résumé
Références :
L.P. Coelho, W. Richert, "Buildong Machine Learning Systems with Python (2nd Edition)", Packt Publishing, mars 2015.
jeudi 7 janvier 2016
Data Science : fondamentaux et études de cas
Machine learning avec Python et R
Data Science est un terme très en vogue. Tout le monde en parle. Une requête sur Youtube du terme exact "data science" ramène 112.000 vidéos, 9.910.000 références sur Google (au 7 janvier 2016).
Cet ouvrage d’Eric Biernat et Michel Lutz aborde le thème du data science en s’appuyant sur le prisme du machine learning. Ce parti pris est heureux parce qu’il leur évite de partir dans tous les sens. Bien sûr, d’autres prismes sont possibles. Mais on peut difficilement tout traiter dans un livre. Cadrer le débat est nécessaire.
Les auteurs font le tour de quelques techniques existantes dans un premier temps. Puis, dans un second temps, ils partagent leur expérience, tant dans les missions qu’il ont eu à mener, que dans les compétitions (les fameux "challenge") auxquelles ils ont participé.
Mots clés : big data, data science, data scientist, machine learning, statistical learning, python, logiciel R
Lien : Résumé
Références :
Eric Biernat, Michel Lutz, "Data Science : fondamentaux et études de cas - Machine learning avec Python et R", Eyrolles, octobre 2015.
Data Science est un terme très en vogue. Tout le monde en parle. Une requête sur Youtube du terme exact "data science" ramène 112.000 vidéos, 9.910.000 références sur Google (au 7 janvier 2016).
Cet ouvrage d’Eric Biernat et Michel Lutz aborde le thème du data science en s’appuyant sur le prisme du machine learning. Ce parti pris est heureux parce qu’il leur évite de partir dans tous les sens. Bien sûr, d’autres prismes sont possibles. Mais on peut difficilement tout traiter dans un livre. Cadrer le débat est nécessaire.
Les auteurs font le tour de quelques techniques existantes dans un premier temps. Puis, dans un second temps, ils partagent leur expérience, tant dans les missions qu’il ont eu à mener, que dans les compétitions (les fameux "challenge") auxquelles ils ont participé.
Mots clés : big data, data science, data scientist, machine learning, statistical learning, python, logiciel R
Lien : Résumé
Références :
Eric Biernat, Michel Lutz, "Data Science : fondamentaux et études de cas - Machine learning avec Python et R", Eyrolles, octobre 2015.
samedi 2 janvier 2016
Bonne année 2016 - Bilan 2015
L’année 2015 s’achève, 2016 commence. Je vous souhaite à tous une belle et heureuse année 2016.
Un petit bilan chiffré concernant l'activité organisée autour de Tanagra pour l' année écoulée. L'ensemble des sites (logiciel, support de cours, ouvrages, tutoriels) a été visité 255.386 fois cette année, soit 700 visites par jour.
Depuis la mise en place du compteur Google Analytics (01 février 2008), le groupe de sites a été visité 1.847.033 fois, soit 639 visites par jour.
Qui êtes-vous en 2015 ? La majorité des visites viennent de France (46%) et du Maghreb (16 %). Puis viennent les autres pays francophones, dont une grande partie vient d'Afrique. Pour ce qui est des pays non francophones, nous observons parmi ceux qui reviennent souvent : les États-Unis, l'Inde, le Royaume Uni, l'Allemagne, le Brésil.
Que consultez-vous en priorité en 2015 ? Les pages qui ont le plus de succès sont celles qui se rapportent à la documentation sur le Data Science (Data Mining, Statistique, Machine Learning, Big Data Analytics, Analyse de Données) : les supports de cours, les tutoriels, les liens vers les autres documents accessibles en ligne, etc. On peut rapprocher la page consacrée à la Programmation R, qui est la plus consultée, à cette thématique générale. Depuis septembre 2015, une page dédiée au Machine Learning sous Python a été mis en ligne, espérons qu’elle connaîtra la même audience.
En cette nouvelle année, je souhaite le meilleur à tous les passionnés de Data Science, de Statistique et d’Informatique.
Ricco.
Diaporama : Tanagra - Bilan 2015
Un petit bilan chiffré concernant l'activité organisée autour de Tanagra pour l' année écoulée. L'ensemble des sites (logiciel, support de cours, ouvrages, tutoriels) a été visité 255.386 fois cette année, soit 700 visites par jour.
Depuis la mise en place du compteur Google Analytics (01 février 2008), le groupe de sites a été visité 1.847.033 fois, soit 639 visites par jour.
Qui êtes-vous en 2015 ? La majorité des visites viennent de France (46%) et du Maghreb (16 %). Puis viennent les autres pays francophones, dont une grande partie vient d'Afrique. Pour ce qui est des pays non francophones, nous observons parmi ceux qui reviennent souvent : les États-Unis, l'Inde, le Royaume Uni, l'Allemagne, le Brésil.
Que consultez-vous en priorité en 2015 ? Les pages qui ont le plus de succès sont celles qui se rapportent à la documentation sur le Data Science (Data Mining, Statistique, Machine Learning, Big Data Analytics, Analyse de Données) : les supports de cours, les tutoriels, les liens vers les autres documents accessibles en ligne, etc. On peut rapprocher la page consacrée à la Programmation R, qui est la plus consultée, à cette thématique générale. Depuis septembre 2015, une page dédiée au Machine Learning sous Python a été mis en ligne, espérons qu’elle connaîtra la même audience.
En cette nouvelle année, je souhaite le meilleur à tous les passionnés de Data Science, de Statistique et d’Informatique.
Ricco.
Diaporama : Tanagra - Bilan 2015
dimanche 29 novembre 2015
Random Forest et Boosting avec R et Python
Ce tutoriel fait suite au support de cours consacré au "Bagging, Random Forest et Boosting" (cf. références). Nous montrons l’implémentation de ces méthodes sur un fichier de données. Nous suivrons à peu près la même trame que dans le support, c.-à-d. nous décrivons tout d’abord la construction d’un arbre de décision, nous mesurons les performances en prédiction, puis nous voyons ce que peuvent apporter les méthodes ensemblistes. Différents aspects de ces méthodes seront mis en lumière : l’importance des variables, l’influence du paramétrage, l’impact des caractéristiques des arbres sous-jacents (base classifier), etc.
Dans un premier temps, nous mettrons l’accent sur R (packages rpart, adabag et randomforest) et Python (package scikit-learn). Disposer d’un langage de programmation permet de multiplier les analyses et donc les commentaires. Evaluer l’influence du paramétrage sur les performances sera notamment très intéressant. Dans un deuxième temps, nous étudierons les fonctionnalités des logiciels qui fournissent des solutions clés en main, très simples à mettre en œuvre, plus accessibles pour les personnes rebutées par la programmation, avec Tanagra et Knime.
Mots clés : logiciel R, programmation R, arbre de décision, adabag package, rpart package, randomforest package, Python, scikit-learn package, bagging, boosting, random forest
Composants : BAGGING, RND TREE, BOOSTING, C4.5, DISCRETE SELECT EXAMPLES
Lien : Baggin, Random Forest et Boosting
Fichier : randomforest_boosting_fr.zip
Références :
R. Rakotomalala, "Bagging, Random Forest, Boosting - Diapos", novembre 2015.
Dans un premier temps, nous mettrons l’accent sur R (packages rpart, adabag et randomforest) et Python (package scikit-learn). Disposer d’un langage de programmation permet de multiplier les analyses et donc les commentaires. Evaluer l’influence du paramétrage sur les performances sera notamment très intéressant. Dans un deuxième temps, nous étudierons les fonctionnalités des logiciels qui fournissent des solutions clés en main, très simples à mettre en œuvre, plus accessibles pour les personnes rebutées par la programmation, avec Tanagra et Knime.
Mots clés : logiciel R, programmation R, arbre de décision, adabag package, rpart package, randomforest package, Python, scikit-learn package, bagging, boosting, random forest
Composants : BAGGING, RND TREE, BOOSTING, C4.5, DISCRETE SELECT EXAMPLES
Lien : Baggin, Random Forest et Boosting
Fichier : randomforest_boosting_fr.zip
Références :
R. Rakotomalala, "Bagging, Random Forest, Boosting - Diapos", novembre 2015.
jeudi 19 novembre 2015
Bagging, Random Forest, Boosting - Diapos
Les techniques ensemblistes de type bagging / boosting jouissent d’une forte popularité dans la recherche en machine learning. Les versions fondatrices sont assez anciennes, je me rappelle pour ma part avoir programmé le bagging dans la version 2.5 de Sipina, en 1996, lorsque Breiman avait mis en ligne le brouillon de son article qui sera par la suite publié dans Machine Learning. Leurs performances prédictives justifient amplement cette notoriété. Mais, notamment parce qu’elles ne se prêtent pas à des interprétations fines des relations de cause à effet, elles sont peu utilisées dans les entreprises qui s’appuient sur des processus « classiques » de scoring et d’analyse prédictive (j’encadre énormément de stage d’étudiants en master professionnels).
Du moins jusqu’à présent. En effet, avec l’essor du data science, des entreprises fortement novatrices s’investissent de plus en plus dans cette voie (le nombre d’offres d’emploi où le terme data science apparaît explicitement augmente rapidement sur le site de l’APEC). La recherche appliquée devient source de dynamisme et de productivité, dans de très nombreux domaines. La valorisation des données massives devient cause nationale. Et je vois arriver une demande patente en faveur des techniques avancées de machine learning. Je me suis dit qu’il était temps d’introduire ce thème dans mon cours de data mining en Master SISE (Statistique et Informatique) à l’Université Lyon 2.
Mots-clés : bagging, boosting, random forest, forêts aléatoires, arbres de décision, package rpart, package adabag, package randomforest, logiciel R
Lien : Bagging - Random Forest - Boosting
Références :
Breiman L., « Bagging Predictors », Machine Learning, 26, p. 123-140, 1996.
Breiman L., « Random Forests », Machine Learning, 45, p. 5-32, 2001.
Freund Y., Schapire R., « Experiments with the new boosting algorithm », International Conference on Machine Learning, p. 148-156, 1996.
Zhu J., Zou H., Rosset S., Hastie T., « Multi-class AdaBoost », Statistics and Its Interface, 2, p. 349-360, 2009.
Du moins jusqu’à présent. En effet, avec l’essor du data science, des entreprises fortement novatrices s’investissent de plus en plus dans cette voie (le nombre d’offres d’emploi où le terme data science apparaît explicitement augmente rapidement sur le site de l’APEC). La recherche appliquée devient source de dynamisme et de productivité, dans de très nombreux domaines. La valorisation des données massives devient cause nationale. Et je vois arriver une demande patente en faveur des techniques avancées de machine learning. Je me suis dit qu’il était temps d’introduire ce thème dans mon cours de data mining en Master SISE (Statistique et Informatique) à l’Université Lyon 2.
Mots-clés : bagging, boosting, random forest, forêts aléatoires, arbres de décision, package rpart, package adabag, package randomforest, logiciel R
Lien : Bagging - Random Forest - Boosting
Références :
Breiman L., « Bagging Predictors », Machine Learning, 26, p. 123-140, 1996.
Breiman L., « Random Forests », Machine Learning, 45, p. 5-32, 2001.
Freund Y., Schapire R., « Experiments with the new boosting algorithm », International Conference on Machine Learning, p. 148-156, 1996.
Zhu J., Zou H., Rosset S., Hastie T., « Multi-class AdaBoost », Statistics and Its Interface, 2, p. 349-360, 2009.
samedi 31 octobre 2015
Classification automatique sous R
Un collègue à la recherche d’un tutoriel introductif à la classification automatique (typologie, clustering en anglais) avec R m’a contacté récemment. A ma très grande surprise, je me suis rendu compte que je n’en avais pas moi-même écrit. Pourtant, j’ai abordé plusieurs fois le thème, mais sous l’angle de traitements sophistiqués (enchaînement k-means et cah, déploiement, classification sur données mixtes, …).
Voici donc un petit guide montrant les principales commandes sous R, essentiellement la classification ascendante hiérarchique (CAH) et la méthode des centres mobiles (k-means). Pour ajouter un peu de sel à l’affaire, je décris des pistes pour la détermination du nombre de classes pour les k-means, j’aborde également la question de l’interprétation des groupes à l’aide de techniques statistiques univariées (statistiques comparatives) et multivariées (analyse en composantes principales - ACP). La complémentarité de cette dernière avec la classification automatique fait toujours autant de merveilles.
Mots clés : logiciel R, classification ascendante hiérarchique, CAH, méthode des centres mobiles, k-means, package fpc, analyse en composantes principales, ACP
Composants : hclust, kmeans, kmeansruns
Lien : cah et k-means avec R
Données : cah_kmeans_avec_r.zip
Références :
Marie Chavent, Page Teaching, Université de Bordeaux (consulté oct. 2015).
Voici donc un petit guide montrant les principales commandes sous R, essentiellement la classification ascendante hiérarchique (CAH) et la méthode des centres mobiles (k-means). Pour ajouter un peu de sel à l’affaire, je décris des pistes pour la détermination du nombre de classes pour les k-means, j’aborde également la question de l’interprétation des groupes à l’aide de techniques statistiques univariées (statistiques comparatives) et multivariées (analyse en composantes principales - ACP). La complémentarité de cette dernière avec la classification automatique fait toujours autant de merveilles.
Mots clés : logiciel R, classification ascendante hiérarchique, CAH, méthode des centres mobiles, k-means, package fpc, analyse en composantes principales, ACP
Composants : hclust, kmeans, kmeansruns
Lien : cah et k-means avec R
Données : cah_kmeans_avec_r.zip
Références :
Marie Chavent, Page Teaching, Université de Bordeaux (consulté oct. 2015).
lundi 28 septembre 2015
Python - Econométrie avec StatsModels
StatsModels est un package dédié à la modélisation statistique. Il incorpore un grand nombre de techniques économétriques telles que la régression linéaire, le modèle linéaire généralisé, le traitement des séries temporelles (ARIMA, etc.).
Dans ce tutoriel, nous essaierons de cerner les potentialités de StatsModels en déroulant une étude de cas en régression linéaire multiple. Nous aborderons tour à tour : l’estimation des paramètres du modèle à l’aide de la méthode des moindres carrés ordinaires, la mise en œuvre de quelques tests statistiques, la vérification de la compatibilité de la distribution des résidus avec l’hypothèse de normalité, la détection des points atypiques et influents, l’analyse de la colinéarité, la prédiction ponctuelle et par intervalle.
Mots clés : programmation python, économétrie, statsmodels, moindres carrés ordinaires, mco
Lien : fr_Tanagra_Python_StatsModels.pdf
Fichier : fr_python_statsmodels.zip
Références :
StatsModels: Statistics in Python
Python Package Index: StatsModels
Dans ce tutoriel, nous essaierons de cerner les potentialités de StatsModels en déroulant une étude de cas en régression linéaire multiple. Nous aborderons tour à tour : l’estimation des paramètres du modèle à l’aide de la méthode des moindres carrés ordinaires, la mise en œuvre de quelques tests statistiques, la vérification de la compatibilité de la distribution des résidus avec l’hypothèse de normalité, la détection des points atypiques et influents, l’analyse de la colinéarité, la prédiction ponctuelle et par intervalle.
Mots clés : programmation python, économétrie, statsmodels, moindres carrés ordinaires, mco
Lien : fr_Tanagra_Python_StatsModels.pdf
Fichier : fr_python_statsmodels.zip
Références :
StatsModels: Statistics in Python
Python Package Index: StatsModels
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/#/
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/#/
mercredi 16 septembre 2015
Python - Machine learning avec scikit-learn
Honnêtement, mon intérêt pour Python doit beaucoup à la découverte des packages de statistique et de data mining qui l’accompagnent. « scikit-learn » en fait partie. Il se revendique comme une librairie de « machine learning ».
Machine learning (apprentissage automatique en français, c’est moins sexy d’un coup) est un champ d’étude de l’intelligence artificielle, qui est une branche de l’informatique. Quand on s’intéresse de plus près aux démarches et aux techniques, on se rend vite compte que nous sommes très proches de ce qu’on appelle par ailleurs modélisation statistique, analyse exploratoire des données, ou encore techniques de data mining. Je le dis souvent à mes étudiants, plutôt que de s’intéresser aux origines ou aux communautés, il est plus profitable de s’intéresser aux finalités. Et scikit-learn propose une panoplie d’outils assez large, couvrant en grande partie l’activité typique du data analyst : l’apprentissage supervisé avec le classement et la régression, l’apprentissage non supervisé (clustering), la réduction de dimension (comprenant les méthodes factorielles), la sélection de modèles, et le preprocessing des données (transformation de variables).
Ce support détaille quelques fonctionnalités de scikit-learn à travers le prisme de l’analyse prédictive. Plusieurs thèmes sont abordés : la construction des modèles, leur évaluation sur un échantillon test, l’utilisation de la validation croisée lors du traitement des petits échantillons, la recherche des paramètres optimaux des algorithmes d’apprentissage, la sélection de variables. Nous nous appuyons sur le fameux fichier PIMA que j’utilise beaucoup dans mes enseignements en raison de ses vertus pédagogiques.
Mots clés : langage python, numpy, scikit-learn, machine learning, data mining, modélisation statistique, validation croisée, matrice de confusion, taux d'erreur, taux de succès, sensibilité, rappel, précision, courbe de gain, courbe lift cumulée
Lien : Machine learning avec scikit-learn
Fichiers : Exemples illustratifs
Références :
Vidéo : Régression Logistique avec Python / Scikit-Learn, juillet 2021
Site officiel : scikit-learn - Machine Learning in Python
Machine learning (apprentissage automatique en français, c’est moins sexy d’un coup) est un champ d’étude de l’intelligence artificielle, qui est une branche de l’informatique. Quand on s’intéresse de plus près aux démarches et aux techniques, on se rend vite compte que nous sommes très proches de ce qu’on appelle par ailleurs modélisation statistique, analyse exploratoire des données, ou encore techniques de data mining. Je le dis souvent à mes étudiants, plutôt que de s’intéresser aux origines ou aux communautés, il est plus profitable de s’intéresser aux finalités. Et scikit-learn propose une panoplie d’outils assez large, couvrant en grande partie l’activité typique du data analyst : l’apprentissage supervisé avec le classement et la régression, l’apprentissage non supervisé (clustering), la réduction de dimension (comprenant les méthodes factorielles), la sélection de modèles, et le preprocessing des données (transformation de variables).
Ce support détaille quelques fonctionnalités de scikit-learn à travers le prisme de l’analyse prédictive. Plusieurs thèmes sont abordés : la construction des modèles, leur évaluation sur un échantillon test, l’utilisation de la validation croisée lors du traitement des petits échantillons, la recherche des paramètres optimaux des algorithmes d’apprentissage, la sélection de variables. Nous nous appuyons sur le fameux fichier PIMA que j’utilise beaucoup dans mes enseignements en raison de ses vertus pédagogiques.
Mots clés : langage python, numpy, scikit-learn, machine learning, data mining, modélisation statistique, validation croisée, matrice de confusion, taux d'erreur, taux de succès, sensibilité, rappel, précision, courbe de gain, courbe lift cumulée
Lien : Machine learning avec scikit-learn
Fichiers : Exemples illustratifs
Références :
Vidéo : Régression Logistique avec Python / Scikit-Learn, juillet 2021
Site officiel : scikit-learn - Machine Learning in Python
Inscription à :
Articles (Atom)