lundi 28 février 2022

Explicabilité des modèles - Slides

Dans certains domaines (ex. santé), il est primordial de comprendre la nature des relations entre les explicatives et la variable cible dans un modèle prédictif, parce qu'il faut justifier l'affectation réalisée en prédiction, parce que le modèle doit être validé par l'expert métier, parce que nous souhaitons tout simplement disposer d'une visibilité sur la pertinence des variables utilisées, etc. Les classifieurs linéaires ou encore les méthodes à base de règles se positionnent plutôt avantageusement dans cette optique. C'est moins le cas en ce qui concernent les réseaux de neurones ou encore les méthodes ensemblistes qui, pour aussi performantes qu'elles soient, se comportent comme des boîtes noires et produisent des résultats dont nous avons du mal à cerner la teneur.

Dans ce support de cours, nous nous intéressons aux outils agnostiques pour l'interprétation des modèles. "Agnostique" dans le sens où ils peuvent s'appliquer à tout type d'algorithme prédictif sans avoir à se pencher sur leurs mécanismes internes d'affectation. Il vient synthétiser et compléter plusieurs tutoriels qui abordaient le sujet sous plusieurs angles à l'aide de différents logiciels et/ou librairies.

Mots-clés : python, scikit-learn, shap, h2o, permutation feature importance, partial dependence plot, pdp, individual conditional expectation, ice, shapley values, shapley additive explanations
Support de cours : Interprétation des modèles
Références :
C. Molnar, "Interpretable Machine Learning", version 21/02/2022.
"(Vidéo) Outils pour l'interprétation des modèles", avril 2021.
"(Vidéo) Model Explainability par H2O", avril 2021.

mardi 25 janvier 2022

Cours Delphi / Pascal - Travaux dirigés

J'ai mis en ligne les séances de travaux dirigés de mon cours de Delhi / Pascal Objet : fiches de TD + corrections (10 séances, calibrées sur approximativement - parfois plus, parfois moins - 1h30 chacune). Avec deux innovations : j'ai passé les corrigés sur LAZARUS pour que tout un chacun puisse reproduire les exercices avec un environnement de développement intégré (EDI) totalement libre d'accès et multiplateforme ; des tutoriels vidéo facilitent la prise en main de l'outil pour la mise en oeuvre des thèmes clés.

Site du cours : Cours Delphi

samedi 1 janvier 2022

Bonne Année 2022 – Bilan 2021

L'année 2021 s'achève, 2022 commence. Je vous souhaite à tous une belle et heureuse année 2022.

Comme tous les ans à cette époque, je me lance dans un petit bilan chiffré permettant de situer mes contributions pédagogiques sur l'année écoulée. J'ai mis l'accent sur les vidéos en 2021. Je m'y suis fait finalement à ce mode de réalisation des tutoriels, en les accompagnant toujours des données et codes source des programmes utilisés (Python et R, sous forme de notebooks essentiellement). L'ensemble de mes sites enregistre 622 visites par jour sur 2021, on est dans les normes des années précédentes, et, grande nouveauté en termes de comptabilisation des accès, 209 vues par jour pour les vidéos sur la chaîne YouTube M2 SISE.

Autre innovation en ce début d'année 2022, le bilan est effectué sous forme de vidéo. Ce qui me permet de montre en temps réel les chiffres produits par les outils d'analyse Google et YouTube Analytics.

En cette nouvelle année, je souhaite le meilleur à tous les passionnés de Data Science, de Statistique et d'Informatique.

Ricco.

Vidéo : Bilan 2021 – Google & YouTube Analytics
Diaporama : Slides Bilan 2021

dimanche 26 décembre 2021

(Vidéo) Représentation pré-entraînée GloVe avec Keras

Je montre dans cette vidéo comment, avec la librairie bien connue de deep learning Keras, exploiter une représentation pré-entraînée GloVe dans une démarche d'analyse de sentiments, plus généralement dans la catégorisation de textes. L'analyse des grands corpus de documents (ex. Wikipedia  + GigaWord) permet de projeter les termes dans un espace de représentation dont la dimensionnalité est contrôlée (hyperparamètre de l'algorithme). Cette représentation constitue ainsi la première couche "embedding" du réseau de neurones prédictif sous Keras. Sur notre corpus d'apprentissage (analyse des sentiments sur des tweets), l'entraînement du réseau pour le calcul des poids synaptiques reliant cette couche d'entrée avec la sortie se fait alors classiquement à l'aide d'une descente de gradient.

Mots-clés : text mining, catégorisation de textes, word embedding, keras, deep learning, python, glove, perceptron, nlp, natural language processing
Vidéo : Glove Keras
Notebook Python : Twitter Sentiment Analysis
Références :
"(Vidéo) La couche Embedding de Keras en NLP", décembre 2021.
"(Vidéo) Modèle pré-entraîné Word2Vec avec Gensim", décembre 2021.
"Glove : Global Vectors for Word Representation", J. Pennington, R. Socher, C. Manning.

vendredi 24 décembre 2021

(Vidéo) La couche Embedding de Keras en NLP

Nous nous intéressons à la couche Embedding de Keras dans cette vidéo. Il s'agit d'une couche de réseaux de neurones qui permet de représenter les termes dans un espace intermédiaire. Elle fait partie en cela des techniques de "word embedding". Mais, contrairement aux approches basées sur le voisinage telles que "Word2Vec", elle est intégrée dans un processus de modélisation prédictive. Elle ouvre également la porte à des opérateurs que nous trouvons habituellement dans les réseaux de convolutions utilisés en classement d'images. Nous illustrons notre propos par l'analyse de sentiments sur un corpus de tweets (Twitter). Après un premier modèle très basique, nous intégrons la régularisation via des mécanismes telles que le "max pooling" ou encore le "dropout" pour améliorer les performances prédictives.

Mots-clés : text mining, catégorisation de textes, tensorflow, keras, tweet, twitter, python, deep learning, nlp, natural language processing
Vidéo : Keras Embedding
Notebook Python : Twitter Dataset
Références :
"(Vidéo) Perceptron avec Tensorflow / Keras (Python)", juillet 2021.
"(Vidéo) Natural Language Processing avec Keras", décembre 2021.
"(Vidéo) Word2Vec / Doc2Vec avec Gensim – Python", décembre 2021.

mercredi 22 décembre 2021

(Vidéo) Natural Language Processing avec Keras

Dans cette vidéo, nous traitons un problème d'analyse des sentiments à partir d'un corpus de tweets étiquetés. Nous exploitons le tandem de librairies Tensorflow et Keras sous Python. Nous nous plaçons dans le cadre usuel de la catégorisation de documents en nous basant sur une représentation bag-of-words (sac de mots). Le modèle prédictif est un réseau de neurones, plus précisément un perceptron multicouche. Nous nous intéressons alors à la représentation intermédiaire des données induite par la couche cachée. Les résultats nous amènent plusieurs éléments de réflexion concernant le surapprentissage et les pistes pour y remédier dans notre contexte.

Mots-clés : text mining, catégorisation de textes, tensorflow, keras, tweet, twitter, python
Vidéo : Keras Sentiment Analysis
Notebook Python + Données : Twitter Dataset
Références :
"(Vidéo) Perceptron avec Tensorflow / Keras (Python)", juillet 2021.
"Sentiment 140 - For Academics"

lundi 20 décembre 2021

(Vidéo) Modèle pré-entraîné Word2Vec avec Gensim

Je montre dans cette vidéo comment exploiter un modèle pré-entraîné dans une démarche d'analyse de sentiments, plus généralement dans la catégorisation de textes. L'idée est d'utiliser une vectorisation de termes Word2Vec issue de l'analyse de grands corpus (ex. Wikipedia avec Wikipedia2Vec) pour projeter les documents dans un nouvel espace de représentation. Disposant ainsi d'un tableau individus (documents) -variables (features) de dimensionnalité réduite (paramétrable), nous pouvons mettre en œuvre de manière tout à fait classique les algorithmes supervisés de machine learning. Nous avons fait le choix d'un support vector machine (svm) avec un noyau RBF pour notre exemple, nous aurions pu utiliser toute autre solution prédictive.

Mots-clés : text mining, catégorisation de textes, word embedding, word2vec, doc2vec, gensim, python
Vidéo : Wikipedia2Vec
Notebook Python + Données : Imdb Reviews
Références :
"(Vidéo) Word2Vec / Doc2Vec avec Gensim – Python", décembre 2021.

vendredi 17 décembre 2021

(Vidéo) Word2Vec / Doc2Vec avec Gensim - Python

Cette vidéo est consacrée à la mise en œuvre du prolongement lexical, en particulier l'algorithme Word2Vec, à l'aide de la librairie Gensim pour Python. L'idée repose sur une forme de contextualisation des termes. Concrètement, on cherche à les représenter à l'aide de vecteurs numériques, de manière à ce que des termes voisins dans les documents présentent une forte similarité (au sens d'un indice telle que la similarité cosinus par exemple) dans le nouvel espace de représentation. La démarche peut être étendue aux documents (l'algorithme Word2Vec). Ainsi, nous disposons d'une représentation des corpus dans un espace de représentation de dimension réduite, paramétrable, rendant possible la mise en œuvre subséquente des techniques de machine learning (ex. catégorisation de documents).

Mots-clés : text mining, tokenisation, dictionnaire, word embedding, word2vec, doc2vec, gensim
Vidéo : Gensim Word2Vec
Notebook Python + Données : Imdb Reviews
Références :
"Deep Learning : l'algorithme Word2Vec", décembre 2019.
"Word2Vec avec H20 sous Python", décembre 2019.

mercredi 8 décembre 2021

(Vidéo) Topic Modeling avec Gensim / Python

Cette vidéo est consacrée à la mise en oeuvre du "topic modeling" avec le package "Gensim" pour Python. J'avais déjà consacré une vidéo sur ce sujet sous Knime. La trame reste la même. L'objectif est d'extraire des thématiques caractérisées par des termes à partir d'un corpus de documents. La spécificité ici est bien sûr est l'utilisation des packages spécialisés sur Python. Outre Gensim, nous mettons également à contribution NLTK (Natural Language Toolkit) pour la partie pré-traitement.

Mots-clés : text mining, tokenisation, dictionnaire, représentation bow, bag of words, topic model, topic modeling, latent dirichlet allocation, LDA, gensim, nltk, python
Vidéo : Gensim Topic Model
Notebook Python + Données : Imdb Reviews
Références :
"Text mining : Topic Model", décembre 2016.
"(Vidéo) Topic Modeling avec Knime", novembre 2021.

mardi 30 novembre 2021

(Vidéo) Word Embedding – L'algorithme Word2Vec

Cette vidéo montre la mise en oeuvre de l'algorithme Word2Vec en NLP (natural language processing) avec le logiciel Knime. Nous poursuivons un double objectif : représenter les termes par un vecteur de dimension "p" (hyperparamètre de l'algorithme) restituant leurs voisinages ; caractériser les documents en s'appuyant sur cette représentation.

Mots-clés : word embedding, word2vec, knime, nlp, natural language processing, réduction de dimensionnalité, deep learning, doc2vec
Vidéo : Word2Vec
Workflow Knime + Données : Imdb Reviews
Références :
"Deep Learning : l'algorithme Word2Vec", décembre 2019.
"Word2Vec avec H2O sous Python", décembre 2019.

mercredi 24 novembre 2021

(Vidéo) StandardScaler et descente de gradient

Cette vidéo montre l'influence de la standardisation (centrage-réduction) des variables prédictives quantitatives sur l'algorithme de descente de gradient stochastique lors de la minimisation de la fonction de coût pour l'estimation des coefficients de la régression logistique binaire. La transformation joue sur la vitesse de convergence de l'algorithme, elle pèse en conséquence sur les qualités prédictives du classifieur. Nous travaillons avec les outils de la librairie "scikit-learn" pour Python.

Mots-clés : régression logistique binaire, scikit-learn, standardisation, transformation de variables
Vidéo : StandardScaler
Notebook + Données : Pima Indians Diabetes
Références :
"Régression logistique – Machine Learning", septembre 2021.
Page de cours "Régression Logistique".

jeudi 18 novembre 2021

(Vidéo) Topic Modeling avec Knime

Cette vidéo est consacrée à la mise en oeuvre du "topic modeling" avec le logiciel Knime (package Text processing). La méthode consiste à extraire des corpus des "thèmes" (topics), en faible nombre, que l'on caractérise à partir des termes (tokens) qui composent les documents. On peut aussi la voir sous l'angle de la réduction de la dimensionnalité dans la mesure où nous disposons d'une description des documents dans l'espace des topics. Procéder à des analyses subséquentes est ainsi possible. Nous l'illustrons par le regroupement des documents en groupes (clusters) à l'aide d'un algorithme de classification automatique (k-means).

Mots-clés : knime, text mining, tokenisation, dictionnaire, matrice documents-termes, pondération, catégorisation de documents, topic model, topic modeling, latent dirichlet allocation, LDA, clustering,
Vidéo : Knime Topic Model
Workflow + Données : Imdb Reviews
Références :
"Text mining : Topic Model", décembre 2016.
"(Vidéo) Text mining avec Knime", novembre 2021.

lundi 8 novembre 2021

(Vidéo) Text mining avec Knime

Je montre dans cette vidéo quelques fonctionnalités de la librairie « Text processing » du logiciel Knime. Je mets l’accent en particulier sur la catégorisation de documents avec la comparaison des performances de deux algorithmes de machine learning dans un espace à très forte dimensionnalité. Sont tour à tour abordés les thèmes suivants : la conversion de textes en corpus, le pré-traitement (suppression des ponctuations, des mots-vides, de chiffres, l’harmonisation de la casse), la tokenisation, la représentation des documents en sac de mots, la matrice documents termes avec la pondération booléenne, l’analyse prédictive avec les arbres de décision et la régression logistique régularisée (Ridge).

Mots-clés : knime, tokenisation, dictionnaire, matrice documents-termes, pondération, catégorisation de documents
Vidéo : Knime Text Mining
Workflow + Données : Imdb Reviews
Références :
« Text mining avec Knime et RapidMiner », avril 2014.

vendredi 5 novembre 2021

(Vidéo) Text mining avec quanteda sous R

Je montre dans cette vidéo les principales fonctionnalités du package de text mining "quanteda" pour R. Nous abordons tour à tour : le pré-traitement du corpus (suppression des ponctuations, des mots-vides, de chiffres, l'harmonisation de la casse), la tokenisation, la représentation des documents en sac de mots, les pondérations "term frequency" et binaires, la constitution du dictionnaire, l'analyse du voisinage des termes, le calcul des associations entre termes et variables supplémentaires. Nous donnons une tournure opérationnelle à la présentation en décrivant de manière approfondie un processus de catégorisation automatique de documents à l'aide d'un algorithme de machine learning – un SVM, support vector machine – de la librairie "e1071".

Mots-clés : logiciel R, package quanteda, tokenisation, dictionnaire, matrice documents-termes, pondération, catégorisation de documents, svm linéaire
Vidéo : Quanteda
Notebook R + Données : Imdb Reviews
Références :
"quanteda : Quantitative Analysis of Textual Data".

jeudi 4 novembre 2021

(Vidéo) Text mining avec tidytext sous R

Je montre dans cette vidéo les principales fonctionnalités du package de text mining "tidytext" pour R. Nous abordons tour à tour : le pré-traitement du corpus (suppression des ponctuations, des mots-vides, de chiffres, l'harmonisation de la casse), la tokenisation, la représentation des documents en sac de mots, la pondération "term frequency", la constitution du dictionnaire, l'analyse des sentiments associés aux documents à partir de la polarité des termes recensés dans un lexique dédié.

Mots-clés : logiciel R, package tidytext, tidyverse, tokenisation, dictionnaire, matrice documents-termes, pondération, analyse des sentiments
Vidéo : Tidytext
Notebook R + Données : Imdb Reviews
Références :
"Text mining with R", J. Silge & D. Robinson.