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.

samedi 28 novembre 2020

(Vidéo) Exportation des modèles prédictifs

 Dans cette vidéo, je vais plus loin dans le déploiement de modèles prédictifs en abordant 2 points clés du processus : le stockage du modèle élaboré sur les données d'apprentissage dans un fichier de manière à pouvoir l'exploiter par la suite sans avoir à le réentraîner ; l'élaboration d'une application de déploiement qui prend en entrée le modèle sauvegardé et les données à traiter, dans le but d'automatiser le processus de prédiction.

Après avoir détaillé la démarche, je détaille les deux programmes pour R (glm), Python (Scikit-Learn, LogisticRegression) et Knime (Logistic Regression Learner) : (1) celui qui permet d'entraîner le modèle sur les données d'apprentissage et de le sauvegarder ; (2) celui qui prend en entrée le fichier représentant le modèle et les données de déploiement, effectue la prédiction, et exporte cette dernière dans un fichier Excel (un CSV aurait pu faire l'affaire aussi).

Les codes sources et les données utilisées sont bien sûr disponibles.

Mots-clés : modélisation, exportation des modèles, déploiement, logiciel r, glm, python, scikit-learn, knime
Didacticiel vidéo : Exportation de modèles et déploiement
Slides de présentation : Modélisation - Déploiement
Données et programmes : Codes R et Python, Archive Knime
Références :
"Introduction à R – Régression Logistique", mars 2012.
"Python – Machine Learning avec scikit-learn", septembre 2015.
"Analyse prédictive avec Knime", février 2016.

dimanche 22 novembre 2020

(Vidéo) Conversion d'un Notebook Python avec Pandoc

Dans cette vidéo, je montre comment générer un fichier Word (docx) à partir d'un projet Jupyter Notebook (ipynb). On peut y voir plusieurs avantages pour le post-traitement du document : disposer d'un correcteur orthographique et grammatical plus performant, bénéficier des fonctionnalités d'édition plus avenants des traitements de texte, etc. 

Je m'appuie sur un projet très succinct de construction d'un arbre de décision sur le jeu de données ultra-connu des Iris de Fisher. Nous remarquerons que les commentaires, le code, les sorties y compris graphiques du notebook sont parfaitement intégrés dans le fichier Word.

Mots-clés : pandoc, jupyter notebook, scikit-learn, arbre de décision
Didacticiel vidéo : Pandoc pour fichiers ipynb
Données et programme : Notebook et output
Références :
Pandoc - A universal document converter.

jeudi 19 novembre 2020

(Vidéo) Modélisation, évaluation, déploiement

 Dans cette vidéo, je parle d'une des modalités d'évaluation pratique que j'utilise dans mon cours d'introduction à la data science, dans la partie concernant l'analyse prédictive tout du moins.

L'idée est simple : les étudiants doivent produire une modèle prédictif pour le classement, en mesurer les performances, puis le déployer sur une base non-étiquetée c.-à-d. sans la variable cible.

Ils doivent rendre plusieurs éléments dont les projections réalisées sur cette dernière base. Parmi les critères d'évaluation du travail des étudiants figure en bonne place la confrontation entre les classes prédites et les classes observées que j'avais en réalité conservé à part pour la correction. Deux aspects m'importent alors : la performance prédictive pure (la capacité à faire le moins d'erreurs possibles), qui me permet de comparer les projets ; la concordance entre les erreurs annoncées et celles que je mesure moi-même après coup.

Mots-clés : analyse prédictive, arbre de décision, knime, déploiement
Didacticiel vidéo : Modélisation, évaluation, déploiement
Support : Schéma CRISP-DM
Données et programme : Spam et archive Knime
Références :
R. Rakotomalala, "Support de cours Data Science".

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.