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