samedi 30 octobre 2021

(Vidéo) Arbres de décision avec scikit-learn

Cette vidéo montre comment construire un arbre de décision avec la librairie "scikit-learn" pour Python. Nous utilisons la fameuse base iris. Les principales étapes abordées sont : l'entraînement de l'arbre sur l'échantillon d'apprentissage, les différents modes d'affichage de l'arbre, la prédiction et l'évaluation sur l'échantillon test, la modification des hyperparamètres et ses conséquences sur les performances du classifieur.

Mots-clés : python, scikit-learn, arbres de décision, decision tree
Vidéo : Arbres scikit-learn
Notebook + Données : Iris Dataset
Références :
"Python - Machine Learning avec scikit-learn", septembre 2015.
"Arbres de décision avec Scikit-Learn", février 2020.

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".

jeudi 7 octobre 2021

(Vidéo) Ridge, Lasso – Optim. des hyperparamètres

La question de l'optimisation des hyperparamètres des algorithmes de machine learning est posée dans cette vidéo. Nous nous appuyons sur l'exploration des performances mesurées en validation croisée sur l'échantillon d'apprentissage. Nous prenons pour exemple la régression logistique binaire, avec les régression pénalisées "Ridge" et "Lasso", pour lesquels nous faisons varier le paramètre de régularisation. L'outil GridSearchCV de la librairie Scikit-Learn pour Python est mise à contribution.

Mots-clés : python, scikit-learn, régression logistique binaire, gridsearchcv
Vidéo : Hyperparamètres Ridge Lasso
Notebook + Données : Spam Dataset
Références :
"Python - Machine Learning avec scikit-learn", septembre 2015.
"Régression logistique sur les grandes bases avec scikit-learn", décembre 2020.
"Pipeline Python pour le déploiement", janvier 2021.

mardi 28 septembre 2021

Régression Logistique – Machine Learning

Ce document est une version simplifiée et "modernisée" de mon support de cours pour la régression logistique, un peu plus "machine learning", un peu moins "statistique". Elle fait la part belle aux algorithmes d'optimisation, et essaie de clarifier autant que faire se peut le rôle des hyperparamètres. Sont tour à tour présentés : le mode d'estimation des coefficients de la régression, l'explicitation de l'importance des variables, les différentes approches pour la sélection de variables, les mécanismes de régularisation pour la régression en grandes dimensions (ridge, lasso, elasticnet), la régression multiclasse (approche multinomiale et combinaison de régressions binaires). L'interprétation approfondie des coefficients (odds-ratio), l'analyse des interactions, et l'inférence statistique qui s'y rapportent (tests, intervalles de confiance) ont été mis de côté.

Signe des temps, les exemples illustratifs sont réalisés sous Python avec la fameuse librairie "Scikit-Learn".

Mots-clés : régression logistique binaire, algorithmes d'optimisation, newton-raphson, descente de gradient, descente de gradient stochastique, importance des variables, sélection de variables, rfe, recursive feature elimination, rfecv, cross-validation, validation croisée, régression multiclasse, modèle multinomial, régressions one vs. rest, ovr, ridge, lasso, elasticnet
Support : ML – Régression logistique
Notebooks Python et fichiers : Breast - Iris
Références :
Page de cours "Régression logistique".
"Python - Machine learning avec scikit-learn", septembre 2015.
"Vidéo – Régression logistique avec Python / Scikit-Learn", juillet 2021.
"Régression logistique sous Python (Scikit-Learn, Statsmodels)", mars 2020.

samedi 25 septembre 2021

(Vidéo) Excel – Filtres, tableaux croisés

Cette vidéo présente rapidement quelques outils pour la manipulation des tables de données dans le tableur Excel. Nous voyons tour à tour : les filtres automatiques et avancés, puis les tableaux croisés dynamiques. Une illustration de l'utilisation de la fonction SI(…) d'Excel est également proposée.

Mots-clés : tableur, excel, listes de données, filtres, TCD, tableaux croisés dynamiques
Vidéo : Filtres & TCD Excel
Fichier : Produits
Références :
Filtres automatiques, avancés, tableaux croisés dynamiques.

jeudi 16 septembre 2021

(Vidéo) Cross-validation, leave-one-out

Cette vidéo s'attache à montrer l'intérêt et le mode opératoire de deux techniques de rééchantillonnage dans l'évaluation des performances des classifieurs : la validation croisée (cross-validation) et le leave-one-out. Je les positionne en particulier par rapport aux techniques usuelles d'évaluation en resubstitution et en schéma holdout (apprentissage-test). Une démonstration sous Tanagra montre les écarts que l'on peut observer entre les taux d'erreurs estimés selon les approches adoptées avec une base (200 observations vs. 60 variables prédictives candidates) et un algorithme (arbres de décision avec C4.5) propices au sur-apprentissage. Ils sont très révélateurs de leurs comportements respectifs.

Mots-clés : cross-validation, leave-one-out, holdout, resubstitution, taux d'erreur, arbres de décision, c4.5
Vidéo : Cross-validation
Slides : Schéma validation croisée
Données : Sonar
Références :
"Validation croisée, Boostrap (Diapos)", février 2015.

mardi 3 août 2021

(Vidéo) SAS sous Python avec SASPy

Dans cette vidéo, nous explorons les fonctionnalités du package SASPy. Il fournit des API qui permettent d'exploiter les fonctionnalités de la solution SAS Cloud pour l'enseignement académique. Plusieurs aspects retiennent particulièrement notre attention ici : la configuration de l'outil, qui n'est pas des plus simples ; la gestion en ligne des données, notamment l'accès aux banques SAS ; la mise en œuvre des algorithmes de machine learning et l'affichage des résultats. Nous privilégions un seul mode d'interaction avec le serveur distant dans notre tutoriel. En fin de vidéo, je précise les autres modalités possibles.

Mots-clés : sas, saspy, cloud, régression logistique, haute performance, random forest, sas ondemand for academics
Vidéo : SASPy
Données, fichier de configuration, notebook : Breast Cancer
Références :
"SASPy".
"SAS onDemand for Academics".

samedi 24 juillet 2021

(Vidéo) Extension Intel(R) pour scikit-learn

L'extension Intel pour Scikit-learn est un package de machine learning pour Python. Il reproduit les signatures de fonctions et les fonctionnalités de Scikit-learn, mais s'appuie en sous-main sur la librairie oneAPI Data Analytics Library (oneDAL) d'Intel. Il se présente comme un patch que l'on peut appliquer à des projets de machine learning développés (ou que nous sommes en train de développer) à l'aide de scikit-learn, sans voir à introduire d'autres modifications dans le code source. L'intérêt est de bénéficier des capacités de calcul accrues de la librairie d'Intel, en particulier en termes de temps de traitement.

Dans cette vidéo, nous appliquons les SVM (SVC de Scikit-learn) sur la base "segmentation" dupliquée 8 fois (18480 observations, 19 descripteurs). Par rapport à Scikit-learn, le temps d'exécution a été réduit d'un facteur de 1.43 dans la phase d'apprentissage, et de 100 fois (!) durant la prédiction en resubstitution.

Les tutoriels accessibles sur la page web du package montrent qu'il est possible d'obtenir des gains plus spectaculaires encore lorsque l'on exploite des machines autrement mieux charpentées que la mienne.

Mots-clés : svm, support vector machine, scikit-learn, oneDAL
Vidéo : Extension Scikit-learn - Python
Données et notebook : SVM Segmentation
Références :
"Intel(R) extension for Scikit-learn".
"oneAPI Data Analytics Library".

dimanche 18 juillet 2021

(Vidéo) Perceptron avec TensorFlow / Keras (Python)

Dans cette vidéo, nous implémentons des perceptrons simples et multicouches sous Python. Ce type de réseau de neurones est bien connu aujourd'hui. L'intérêt ici est d'étudier leur mise en œuvre et l'inspection des résultats avec l'utilisation du tandem de librairies TensorFlow et Keras qui font référence dans la pratique du deep learning.

Un précédent document rédigé (avril 2018) étudiait le même sujet, en traitant d'autres bases de données. Mis à part une commande spécifique pour la prédiction, nous constatons que les fonctionnalités spécifiques à notre étude (analyse prédictive) sont restées stables. Cet aspect est toujours rassurant pour la maintenance évolutive de nos projets de machine learning.

Mots-clés : réseau de neurones, perceptron simple, perceptron multicouches, deep learning, tensorflow, keras
Vidéo : TensorFlow / Keras - Python
Données et notebook : Segmentation dataset
Références :
"Deep Learning avec TensorFlow et Keras (Python)", avril 2018.

vendredi 16 juillet 2021

(Vidéo) Anaconda Python - Environnements

La gestion des packages peut se révéler délicate sous Anaconda Python. Certains projets nécessitent un pool de librairies avec des versions spécifiques, parfois même avec une version dédiée de l'interpréteur Python. Modifier en conséquence la configuration de base de la distribution n'est pas adaptée. Des problèmes d'incompatibilités peuvent apparaître. On risque même de compromettre le bon fonctionnement d'autres projets existants.

Le mécanisme des environnements permet de dépasser ces potentiels problèmes. L'idée est de créer un espace dédié pour chaque projet, au sein duquel nous installons la version de Python et les packages idoines. Ainsi, au fil du temps, nous avons l'assurance de retrouver à chaque démarrage de notre projet la configuration adéquate. Pour illustrer notre propos, nous montrons dans cette vidéo la création d'un environnement à l'aide du gestionnaire "conda". Nous installons alors les dernières versions (à ce jour) des librairies fameuses de deep learning, tensorflow et keras. Nous démarrons enfin le notebook Jupyter (qu'il faut également installer dans l'environnement) pour vérifier leur disponibilité. 

Mots-clés : anaconda python, conda, environnements, tensorflow, keras
Vidéo : Conda Environnement
Références :
Conda, Managing Environments.

mardi 13 juillet 2021

(Vidéo) Régression logistique avec Python / scikit-learn

Dans cette vidéo, nous étudions les fonctionnalités de la régression logistique proposée par la librairie scikit-learn de Python. Nous inspectons les résultats, en particulier la lecture des coefficients et leur exploitation en tant qu'indicateurs de pertinence des variables. Nous embrayons alors sur la sélection de variables en détaillant le mode opératoire de l'outil RFE (recursive feature elimination), qui combine la stratégie backward avec la méthodologie wrapper basée sur la mesure des performances en validation croisée (RFECV). L'étude de cas confirme encore une fois la nature exploratoire de la démarche machine learning.

Mots-clés : régression logistique binaire, sélection de variables backward, wrapper, accuracy, taux de reconnaissance, recursive feature elimination, rfe, refcv, validation croisée, scikit-learn
Vidéo : Logistic Python
Données et notebook : Vote au Congrès
Références :
Page de cours "Régression logistique".
"Régression logistique sous Python", mars 2020.
"Python – Machine learning avec sckit-learn", septembre 2015.
"(Vidéo) Python – La package Yellowbrick", mars 2021.

jeudi 8 juillet 2021

(Vidéo) Régression logistique avec Knime

Dans cette vidéo, nous étudions les fonctionnalités de la régression logistique proposée dans Knime Analytics Platform. Nous appliquons le schéma usuel "holdout" dans un premier temps, un modèle prédictif est élaboré à partir d'une base d'apprentissage, il est par la suite évalué sur une base de test. Nous comparons les résultats obtenus par ailleurs avec d'autres outils. Dans un second temps, nous implémentons une approche de sélection de variables "wrapper" où l'objectif est de chercher le sous-ensemble de variables explicatives le plus performant au sens d'un critère de performance. 

Mots-clés : régression logistique binaire, sélection de variables forward, wrapper, accuracy, taux de reconnaissance, knime
Vidéo : Logistic Regression Knime
Données et workflow : Vote au Congrès
Références :
Page de cours "Régression logistique".
"Analyse prédictive sous Knime", février 2016.

(Vidéo) La Proc Logistic de SAS

Dans cette vidéo, nous réalisons une régression logistique sous SAS Studio, version accessible via le programme SAS OnDemand for Academics. Après avoir importé le fichier de données (classeur Excel) dans le cloud, nous le chargeons dans la banque WORK, nous lançons ensuite les traitements : une régression logistique binaire basique dans un premier temps, nous introduisons la sélection de variables ensuite, à laquelle nous associons la construction de la courbe ROC pour l'évaluation des performances des modèles.

Mots-clés : régression logistique binaire, sélection de variables forward, courbe ROC, critère AUC, SAS Studio, SAS OnDemand for Academic
Vidéo : Proc Logistic
Données, programmes et sorties : Vote au Congrès
Références :
Page de cours "Régression logistique".
"La proc logistic de SAS 9.3", avril 2012.

mardi 6 juillet 2021

(Vidéo) Régression logistique pas-à-pas

 Dans cette vidéo, nous détaillons une démarche d'analyse prédictive en utilisant le tandem Tanagra et tableur (Excel). La modélisation, via la régression logistique binaire, sur l'échantillon d'apprentissage est réalisée à l'aide de Tanagra. Le déploiement du modèle sur l'échantillon test est réalisée "manuellement" sous le tableur Excel. Il comprend : le calcul du logit, la dérivation de la probabilité d'appartenance à la classe cible, la déduction de la classe d'appartenance prédite. La matrice confusion est ensuite calculée, ainsi que les indicateurs de performances usuels. Nous comparons enfin les performances prédictives des modèles sans et avec sélection de variables.

Mots-clés : régression logistique binaire, sélection de variables forward, matrice de confusion, taux d'erreur, rappel / sensibilité, précision
Vidéo : Régression logistique avec Tanagra / Excel
Classeur Excel et schéma : Vote au Congrès
Références :
Page de cours "Régression logistique".

vendredi 4 juin 2021

(Vidéo) Régression avec la "proc reg" de SAS

 Dans cette vidéo, nous présentons l'utilisation de la PROC REG de SAS dans un exercice de régression linéaire multiple. Nous avons accès à SAS Studio en ligne via le programme SAS OnDemand for Academics. Nous effectuons un tour rapide des fonctionnalités de l'outil : la régression, l'inspection des résultats, les graphiques des résidus, la détection des points atypiques, la sélection de variables.

Mots-clés : économétrie, modèle linéaire, régression linéaire multiple
Vidéo : Régression multiple avec SAS
Données et code SAS : Consommation voitures
Références :
Documentation "PROC REG" de SAS.