La fouille d’images ou image mining est une discipline assez ancienne. Schématiquement, il s’agit d’appliquer des techniques de machine learning au contenu des images c.-à-d. à partir de leurs caractéristiques visuelles. Sa démocratisation est plus récente en revanche. J’y vois plusieurs raisons : la profusion des données images avec le web (big data, etc., etc.) nécessite un savoir faire supplémentaire, on observe d’ailleurs que le traitement d’images est de plus en plus présent dans les challenges ; l’apparition d’outils faciles à appréhender pour les férus de data mining.
Le module "Image Processing" de Knime est assez symbolique de cette évolution. Il n’est même pas nécessaire de faire l’apprentissage langage de programmation. On peut réaliser une analyse complète sans avoir à écrire une seule ligne de code. Le plus important est d’avoir une vision globale de la trame de l’étude. Il nous suffit alors de définir dans le bon ordre la séquence des traitements pour obtenir des résultats qui tiennent la route.
Ce tutoriel a pour objet un problème de classement. On souhaite discerner automatiquement les photos contenant un véhicule de celles contenant tout autre type d’objet. La principale information est que, malgré des connaissances relativement succinctes en traitement d’images, j’ai pu mener à son terme l’étude avec une aisance qui en dit long sur l’utilisabilité du logiciel. Le plus difficile aura été d’identifier le composant le plus adapté à chaque étape, les tutoriels didactiques sont rares, en français n’en parlons même pas, il faut prendre un peu de temps pour lire attentivement la documentation.
Mots clés : image mining, fouille d'images, catégorisation d'images, arbres de décision, random forest
Lien : fr_Tanagra_Image_Mining_Knime.pdf
Données et programme (archive Knime) : image mining tutorial
Références :
Knime Image Processing, https://tech.knime.org/community/image-processing
S. Agarwal, A. Awan, D. Roth, « UIUC Image Database for Car Detection » ; https://cogcomp.cs.illinois.edu/Data/Car/
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.
mardi 7 juin 2016
mardi 31 mai 2016
Programmation Python sous Spark avec PySpark
Dans la série « je découvre Spark », voici un tutoriel consacré à la librairie PySpark pour la programmation Python sous Spark. Il vient en contrepoint à celui consacré à SparkR (pour R). La trame est exactement la même.
La première partie est donc commune (installation et configuration de Spark) ; la seconde partie consacré à l’exploitation des méthodes de PySpark est originale.
La principale information est que nous avons pu réaliser exactement les mêmes traitements sous R et Python, à savoir : l’importation des données, leur partition en échantillon d’apprentissage et de test, la modélisation sur la première, la prédiction sur la seconde, l’élaboration de la matrice de confusion et le calcul des indicateurs de performances.
Tout comme pour SparkR, ce tutoriel a bénéficié du travail exploratoire des étudiants du Master SISE de cette année pour leurs projets « Big Data ». Je les remercie encore une fois.
Mots-clés : langage python, package pyspark, big data, hadoop, spark, big data analytics, anaconda, spyder, régression logistique
Lien : Python sous Spark avec PySpark
Fichiers : Données et programme Python
Références :
Spark, "Welcome to Spark Python API Docs!".
Tutoriel Tanagra, "Programmation R sous Spark avec SparkR", mai 2016.
La première partie est donc commune (installation et configuration de Spark) ; la seconde partie consacré à l’exploitation des méthodes de PySpark est originale.
La principale information est que nous avons pu réaliser exactement les mêmes traitements sous R et Python, à savoir : l’importation des données, leur partition en échantillon d’apprentissage et de test, la modélisation sur la première, la prédiction sur la seconde, l’élaboration de la matrice de confusion et le calcul des indicateurs de performances.
Tout comme pour SparkR, ce tutoriel a bénéficié du travail exploratoire des étudiants du Master SISE de cette année pour leurs projets « Big Data ». Je les remercie encore une fois.
Mots-clés : langage python, package pyspark, big data, hadoop, spark, big data analytics, anaconda, spyder, régression logistique
Lien : Python sous Spark avec PySpark
Fichiers : Données et programme Python
Références :
Spark, "Welcome to Spark Python API Docs!".
Tutoriel Tanagra, "Programmation R sous Spark avec SparkR", mai 2016.
jeudi 19 mai 2016
Programmation R sous Spark avec SparkR
Apache Spark est un framework open source de calcul distribué dédié au Big Data. Sa particularité est qu’il est capable de travailler en mémoire vive. Il est très performant pour les opérations nécessitant plusieurs itérations sur les mêmes données, exactement ce dont ont besoin les algorithmes de machine learning.
Au-delà des API (modules de classes et fonctions) standards, Spark intègre des librairies additionnelles : Streaming, traitement des données en flux ; SQL, accès aux données Spark avec des requêtes SQL ; GraphX, traitement des graphes ; et, c’est ce qui nous intéresse au premier chef, MLlib, types de données et algorithmes pour le machine learning.
SparkR est un package R qui permet de manipuler les types de données et méthodes de MLlib (pas toutes, le portage est en cours) en programmation R, et de bénéficier directement des avantages de Spark (gestion de la volumétrie, calcul distribué). Ce tutoriel a pour objectif de s’initier à l’utilisation de SparkR en traitant un exemple typique d’analyse prédictive.
Enfin, et ça me fait très plaisir de pouvoir le dire, ce document doit beaucoup au travail de deux groupes d’étudiants du Master SISE pour leurs projets "Big Data", l’un avait travaillé sur "SparkR", l’autre sur "PySpark" (programmation Python, qui fera l’objet d’un autre tutoriel). Ils ont largement défriché le terrain, qu’ils en soient chaleureusement remerciés.
Mots-clés : logiciel R, package SparkR, big data, hadoop, spark, big data analytics, rstudio, régression logistique
Lien : R sous Spark avec SparkR
Fichiers : Données et programme R
Références :
Phelip A., "Découvrez SparkR, la nouvelle API de Spark", Blog Xebia, Sept. 2015.
Emaasit D., "Installing and starting SparkR locally on Windows OS and RStudio", R-bloggers, July 2015.
Tutoriel Tanagra, "Programmation Python sous Spark avec PySpark", mai 2016.
Tutoriel Tanagra, "Programmation R sous Hadoop", avril 2015.
Au-delà des API (modules de classes et fonctions) standards, Spark intègre des librairies additionnelles : Streaming, traitement des données en flux ; SQL, accès aux données Spark avec des requêtes SQL ; GraphX, traitement des graphes ; et, c’est ce qui nous intéresse au premier chef, MLlib, types de données et algorithmes pour le machine learning.
SparkR est un package R qui permet de manipuler les types de données et méthodes de MLlib (pas toutes, le portage est en cours) en programmation R, et de bénéficier directement des avantages de Spark (gestion de la volumétrie, calcul distribué). Ce tutoriel a pour objectif de s’initier à l’utilisation de SparkR en traitant un exemple typique d’analyse prédictive.
Enfin, et ça me fait très plaisir de pouvoir le dire, ce document doit beaucoup au travail de deux groupes d’étudiants du Master SISE pour leurs projets "Big Data", l’un avait travaillé sur "SparkR", l’autre sur "PySpark" (programmation Python, qui fera l’objet d’un autre tutoriel). Ils ont largement défriché le terrain, qu’ils en soient chaleureusement remerciés.
Mots-clés : logiciel R, package SparkR, big data, hadoop, spark, big data analytics, rstudio, régression logistique
Lien : R sous Spark avec SparkR
Fichiers : Données et programme R
Références :
Phelip A., "Découvrez SparkR, la nouvelle API de Spark", Blog Xebia, Sept. 2015.
Emaasit D., "Installing and starting SparkR locally on Windows OS and RStudio", R-bloggers, July 2015.
Tutoriel Tanagra, "Programmation Python sous Spark avec PySpark", mai 2016.
Tutoriel Tanagra, "Programmation R sous Hadoop", avril 2015.
lundi 16 mai 2016
SVM : Support Vector Machine avec R et Python
Ce tutoriel vient compléter le support de cours consacré au « Support Vector Machine » auquel nous nous référerons constamment [SVM - Diapos] . Il met en lumière deux éléments importants de la méthode : la position des points supports et le tracé des frontières dans l’espace de représentation lorsque nous construisons un séparateur linéaire ; la complexité du paramétrage dans le recherche de la solution adéquate pour un problème artificiel dont nous maîtrisons pourtant les caractéristiques. Nous utiliserons tour à tour les logiciels R (package ‘’e1071’’) et Python (package ‘’scikit-learn’’).
Nous nous concentrons sur les aspects didactiques. Pour le lecteur intéressé par les aspects opérationnels de la pratique des SVM (schéma apprentissage-test pour l’évaluation des classifieurs, identification des paramètres optimaux à l’aide des grilles de recherche), je conseille la lecture de notre support repère. Je préconiserais également la lecture des tutoriels consacrés à la comparaison des logiciels proposant les SVM et à l’étude du comportement des différents classifieurs linéaires (voir références).
Mots-clés : svm, machines à vecteurs de support, séparateurs à vaste marge, package e1071, logiciel R, logiciel Python, package scikit-learn, sklearn
Lien : SVM - Support Vector Machine
Fichier : svm_r_python.zip
Références :
R. Rakotomalala, "Support Vector Machine - Diapos", mai 2016.
Tutoriel Tanagra, "SVM - Comparaison de logiciels", oct. 2008.
Tutoriel Tanagra, "Classifieurs linéaires", mai 2013.
Nous nous concentrons sur les aspects didactiques. Pour le lecteur intéressé par les aspects opérationnels de la pratique des SVM (schéma apprentissage-test pour l’évaluation des classifieurs, identification des paramètres optimaux à l’aide des grilles de recherche), je conseille la lecture de notre support repère. Je préconiserais également la lecture des tutoriels consacrés à la comparaison des logiciels proposant les SVM et à l’étude du comportement des différents classifieurs linéaires (voir références).
Mots-clés : svm, machines à vecteurs de support, séparateurs à vaste marge, package e1071, logiciel R, logiciel Python, package scikit-learn, sklearn
Lien : SVM - Support Vector Machine
Fichier : svm_r_python.zip
Références :
R. Rakotomalala, "Support Vector Machine - Diapos", mai 2016.
Tutoriel Tanagra, "SVM - Comparaison de logiciels", oct. 2008.
Tutoriel Tanagra, "Classifieurs linéaires", mai 2013.
jeudi 12 mai 2016
SVM : Support Vector Machine - Diapos
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.
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.
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.
Inscription à :
Articles (Atom)