tag:blogger.com,1999:blog-48997254415693437062024-02-20T13:05:07.670+01:00Tutoriels Tanagra pour le Data Mining, le Machine Learning et la Data ScienceCe blog recense les supports de cours et didacticiels consacrés à la pratique de la data science, machine learning et big data analytics. Les outils mis en avant sont les logiciels Tanagra, R et Python. [04 nov. 2022] Suite à la panne du serveur d'hébergement des fichiers, les posts antérieurs à mai 2015 ont été perdus, de nombreux liens sont cassés. J'ai dû créer un site à part avec les archives, complet, avec les liens corrigés. Voir l'item "Archives" ci-dessous. Bonne lecture à tous. Ricco.Unknownnoreply@blogger.comBlogger249125tag:blogger.com,1999:blog-4899725441569343706.post-22305886503248378702022-02-28T21:48:00.001+01:002022-10-25T22:45:18.229+02:00Explicabilité des modèles - Slides<p>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.</p><p>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.</p><p><b>Mots-clés </b>: python, scikit-learn, shap, h2o, permutation feature importance, partial dependence plot, pdp, individual conditional expectation, ice, shapley values, shapley additive explanations<br /><b>Support de cours </b>: <a href="http://eric.univ-lyon2.fr/ricco/cours/slides/ml_interpretation.pdf" target="_blank">Interprétation des modèles</a><br /><b>Références</b> :<br />C. Molnar, "<a href="https://christophm.github.io/interpretable-ml-book/" target="_blank">Interpretable Machine Learning</a>", version 21/02/2022.<br />"<a href="https://www.youtube.com/watch?v=caQf8Q0cB-o" target="_blank">(Vidéo) Outils pour l'interprétation des modèles</a>", avril 2021.<br />"<a href="https://www.youtube.com/watch?v=R1d7mzG_NOE" target="_blank">(Vidéo) Model Explainability par H2O</a>", avril 2021.<br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-37747802932434762812022-01-25T08:02:00.002+01:002022-10-10T14:39:49.470+02:00Cours Delphi / Pascal - Travaux dirigés<p>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 <a href="https://www.lazarus-ide.org/" target="_blank">LAZARUS</a> 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.</p><p><b>Site du cours </b>: <a href="http://eric.univ-lyon2.fr/ricco/cours/cours_delphi.html" target="_blank">Cours Delphi</a><br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-8612418657855858712022-01-01T16:27:00.002+01:002022-10-10T14:39:49.865+02:00Bonne Année 2022 – Bilan 2021<p>L'année 2021 s'achève, 2022 commence. Je vous souhaite à tous une belle et heureuse année 2022.</p><p>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). <span style="color: #0b5394;"><b>L'ensemble de mes sites enregistre 622 visites par jour sur 2021</b></span>, on est dans les normes des années précédentes, et, grande nouveauté en termes de comptabilisation des accès, <span style="color: #38761d;"><b>209 vues par jour pour les vidéos</b></span> sur <a href="https://www.youtube.com/channel/UCo01KLTiDA7JPX0B-Yk6IFg" target="_blank">la chaîne YouTube M2 SISE</a>.</p><p>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.</p><p>En cette nouvelle année, je souhaite le meilleur à tous les passionnés de Data Science, de Statistique et d'Informatique.</p><p>Ricco.</p><p><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=kIb2Bmy_Fis" target="_blank">Bilan 2021 – Google & YouTube Analytics</a><br /><b>Diaporama</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/Tanagra_Frequentation_2021.pdf" target="_blank">Slides Bilan 2021</a><br /><br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-14406620906642751122021-12-26T09:26:00.004+01:002022-10-10T14:39:50.266+02:00(Vidéo) Représentation pré-entraînée GloVe avec Keras<p>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.</p><p><b>Mots-clés</b> : text mining, catégorisation de textes, word embedding, keras, deep learning, python, glove, perceptron, nlp, natural language processing<br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=gJXFA8ZMIqU" target="_blank">Glove Keras</a><br /><b>Notebook Python </b>: <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_Pretrained_GloVe_Keras.zip" target="_blank">Twitter Sentiment Analysis</a><br /><b>Références </b>:<br />"<a href="http://tutoriels-data-mining.blogspot.com/2021/12/video-la-couche-embedding-de-keras-en.html" target="_blank">(Vidéo) La couche Embedding de Keras en NLP</a>", décembre 2021.<br />"<a href="http://tutoriels-data-mining.blogspot.com/2021/12/video-modele-pre-entraine-word2vec-avec.html" target="_blank">(Vidéo) Modèle pré-entraîné Word2Vec avec Gensim</a>", décembre 2021.<br />"<a href="https://nlp.stanford.edu/projects/glove/" target="_blank">Glove : Global Vectors for Word Representation</a>", J. Pennington, R. Socher, C. Manning.</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-76671558303154381872021-12-24T17:11:00.001+01:002022-10-10T14:39:50.666+02:00(Vidéo) La couche Embedding de Keras en NLP<p>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.</p><p><b>Mots-clés</b> : text mining, catégorisation de textes, tensorflow, keras, tweet, twitter, python, deep learning, nlp, natural language processing<br /><b>Vidéo </b>: <a href="https://www.youtube.com/watch?v=JNA5vxmBKJw" target="_blank">Keras Embedding</a><br /><b>Notebook Python </b>: <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_Embedding_Keras.zip" target="_blank">Twitter Dataset</a><br /><b>Références </b>:<br />"<a href="http://tutoriels-data-mining.blogspot.com/2021/07/video-perceptron-avec-tensorflow-keras.html" target="_blank">(Vidéo) Perceptron avec Tensorflow / Keras (Python)</a>", juillet 2021.<br />"<a href="http://tutoriels-data-mining.blogspot.com/2021/12/video-natural-language-processing-avec.html" target="_blank">(Vidéo) Natural Language Processing avec Keras</a>", décembre 2021.<br />"<a href="http://tutoriels-data-mining.blogspot.com/2021/12/video-word2vec-doc2vec-avec-gensim.html" target="_blank">(Vidéo) Word2Vec / Doc2Vec avec Gensim – Python</a>", décembre 2021.<br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-58148491240598939862021-12-22T16:05:00.004+01:002022-10-25T22:46:00.055+02:00(Vidéo) Natural Language Processing avec Keras<p>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.</p><p><b>Mots-clés</b> : text mining, catégorisation de textes, tensorflow, keras, tweet, twitter, python<br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=C-JYFL22PN4" target="_blank">Keras Sentiment Analysis</a><br /><b>Notebook Python + Données</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_Text_Mining_Keras.zip" target="_blank">Twitter Dataset</a><br /><b>Références</b> :<br />"<a href="http://tutoriels-data-mining.blogspot.com/2021/07/video-perceptron-avec-tensorflow-keras.html" target="_blank">(Vidéo) Perceptron avec Tensorflow / Keras (Python)</a>", juillet 2021.<br />"<a href="http://help.sentiment140.com/for-students" target="_blank">Sentiment 140 - For Academics</a>"<br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-76177879320986328672021-12-20T08:38:00.003+01:002022-10-25T22:46:30.219+02:00(Vidéo) Modèle pré-entraîné Word2Vec avec Gensim<p>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 <a href="https://wikipedia2vec.github.io/wikipedia2vec/pretrained/" target="_blank">Wikipedia2Vec</a>) 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.</p><p><b>Mots-clés </b>: text mining, catégorisation de textes, word embedding, word2vec, doc2vec, gensim, python<br /><b>Vidéo </b>: <a href="https://www.youtube.com/watch?v=FwSD1EM2Qkk" target="_blank">Wikipedia2Vec</a><br /><b>Notebook Python + Données </b>: <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_Pretrained_Word2Vec_Gensim.zip" target="_blank">Imdb Reviews</a><br /><b>Références</b> :<br />"<a href="http://tutoriels-data-mining.blogspot.com/2021/12/video-word2vec-doc2vec-avec-gensim.html" target="_blank">(Vidéo) Word2Vec / Doc2Vec avec Gensim – Python</a>", décembre 2021.</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-30322547498254113622021-12-17T18:58:00.001+01:002022-10-25T22:49:12.391+02:00(Vidéo) Word2Vec / Doc2Vec avec Gensim - Python<p>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).</p><p><b>Mots-clés</b> : text mining, tokenisation, dictionnaire, word embedding, word2vec, doc2vec, gensim<br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=XIlNxjG2WH0" target="_blank">Gensim Word2Vec</a><br /><b>Notebook Python + Données</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_Word2Vec_Doc2Vec_Gensim.zip" target="_blank">Imdb Reviews</a><br /><b>Références </b>:<br />"<a href="http://tutoriels-data-mining.blogspot.com/2019/12/deep-learning-l-word2vec.html" target="_blank">Deep Learning : l'algorithme Word2Vec</a>", décembre 2019.<br />"<a href="http://tutoriels-data-mining.blogspot.com/2019/12/word2vec-avec-h2o-sous-python_8.html" target="_blank">Word2Vec avec H20 sous Python</a>", décembre 2019.</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-87805902441981597492021-12-08T21:46:00.002+01:002022-10-25T22:50:53.032+02:00(Vidéo) Topic Modeling avec Gensim / Python<p>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.</p><p><b>Mots-clés </b>: text mining, tokenisation, dictionnaire, représentation bow, bag of words, topic model, topic modeling, latent dirichlet allocation, LDA, gensim, nltk, python<br /><b>Vidéo </b>: <a href="https://www.youtube.com/watch?v=arMTVXEbV9Q" target="_blank">Gensim Topic Model</a><br /><b>Notebook Python + Données</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_Topic_Modeling_Gensim_Python.zip" target="_blank">Imdb Reviews</a><br /><b>Références </b>:<br />"<a href="http://tutoriels-data-mining.blogspot.com/2016/12/text-mining-topic-model-diapos_11.html" target="_blank">Text mining : Topic Model</a>", décembre 2016.<br />"<a href="http://tutoriels-data-mining.blogspot.com/2021/11/video-topic-modeling-avec-knime_18.html" target="_blank">(Vidéo) Topic Modeling avec Knime</a>", novembre 2021.<br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-48613908459665220932021-11-30T07:30:00.001+01:002022-10-25T22:52:25.561+02:00(Vidéo) Word Embedding – L'algorithme Word2Vec<p>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.</p><p><b>Mots-clés</b> : word embedding, word2vec, knime, nlp, natural language processing, réduction de dimensionnalité, deep learning, doc2vec<br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=3KQG24jBpHg" target="_blank">Word2Vec</a><br /><b>Workflow Knime + Données</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_Word2Vec_Knime.zip" target="_blank">Imdb Reviews</a><br /><b>Références</b> :<br />"<a href="http://tutoriels-data-mining.blogspot.com/2019/12/deep-learning-l-word2vec.html" target="_blank">Deep Learning : l'algorithme Word2Vec</a>", décembre 2019.<br />"<a href="http://tutoriels-data-mining.blogspot.com/2019/12/word2vec-avec-h2o-sous-python_8.html" target="_blank">Word2Vec avec H2O sous Python</a>", décembre 2019.</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-580116222673669342021-11-24T15:44:00.002+01:002022-10-25T22:53:39.613+02:00(Vidéo) StandardScaler et descente de gradient<p>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 "<a href="https://scikit-learn.org/stable/" target="_blank">scikit-learn</a>" pour Python.</p><p><b>Mots-clés</b> : régression logistique binaire, scikit-learn, standardisation, transformation de variables<br /><b>Vidéo </b>: <a href="https://www.youtube.com/watch?v=rawaCES1Qf8" target="_blank">StandardScaler</a><br /><b>Notebook + Données</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_standardisation_sklearn.zip" target="_blank">Pima Indians Diabetes</a><br /><b>Références</b> :<br />"<a href="http://tutoriels-data-mining.blogspot.com/2021/09/regression-logistique-machine-learning_28.html" target="_blank">Régression logistique – Machine Learning</a>", septembre 2021.<br />Page de cours "<a href="https://eric.univ-lyon2.fr/ricco/cours/cours_regression_logistique.html" target="_blank">Régression Logistique</a>".<br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-40226225850447248562021-11-18T09:49:00.001+01:002022-10-10T14:39:53.362+02:00(Vidéo) Topic Modeling avec Knime<p>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).</p><p><b>Mots-clés</b> : knime, text mining, tokenisation, dictionnaire, matrice documents-termes, pondération, catégorisation de documents, topic model, topic modeling, latent dirichlet allocation, LDA, clustering, <br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=9UsJvWSdGz4" target="_blank">Knime Topic Model</a><br /><b>Workflow + Données </b>: <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_Topic_Modeling_Knime.zip" target="_blank">Imdb Reviews</a><br /><b>Références</b> :<br />"<a href="http://tutoriels-data-mining.blogspot.com/2016/12/text-mining-topic-model-diapos.html" target="_blank">Text mining : Topic Model</a>", décembre 2016.<br />"<a href="http://tutoriels-data-mining.blogspot.com/2021/11/video-text-mining-avec-knime.html" target="_blank">(Vidéo) Text mining avec Knime</a>", novembre 2021.</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-53912885405552228652021-11-08T11:39:00.002+01:002022-10-10T14:39:53.766+02:00(Vidéo) Text mining avec Knime<p>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 (<a href="http://tutoriels-data-mining.blogspot.com/2018/05/ridge-lasso-elasticnet.html" target="_blank">Ridge</a>).</p><p><b>Mots-clés</b> : knime, tokenisation, dictionnaire, matrice documents-termes, pondération, catégorisation de documents<br /><b>Vidéo </b>: <a href="https://www.youtube.com/watch?v=MzTQAJt4DbI" target="_blank">Knime Text Mining</a><br /><b>Workflow + Données</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_Text_Mining_Knime.zip" target="_blank">Imdb Reviews</a><br /><b>Références</b> :<br />« <a href="http://tutoriels-data-mining.blogspot.com/2014/04/text-mining-avec-knime-et-rapidminer.html" target="_blank">Text mining avec Knime et RapidMiner</a> », avril 2014.<br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-36601297995119578302021-11-05T18:16:00.004+01:002022-10-10T14:39:54.171+02:00(Vidéo) Text mining avec quanteda sous R<p>Je montre dans cette vidéo les principales fonctionnalités du package de <a href="http://eric.univ-lyon2.fr/ricco/cours/cours_text_mining.html" target="_blank">text mining</a> "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 <a href="http://tutoriels-data-mining.blogspot.com/2016/05/support-vector-machine-diapos.html" target="_blank">SVM</a>, support vector machine – de la librairie "<a href="https://cran.r-project.org/package=e1071" target="_blank">e1071</a>".</p><p><b>Mots-clés</b> : logiciel R, package quanteda, tokenisation, dictionnaire, matrice documents-termes, pondération, catégorisation de documents, svm linéaire<br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=OVXLyQKNNaY" target="_blank">Quanteda</a><br /><b>Notebook R + Données</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_text_mining_quanteda.zip" target="_blank">Imdb Reviews</a><br /><b>Références </b>:<br />"<a href="https://quanteda.io/" target="_blank">quanteda : Quantitative Analysis of Textual Data</a>".</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-33076507755721788002021-11-04T15:00:00.003+01:002022-10-10T14:39:54.575+02:00(Vidéo) Text mining avec tidytext sous R<p>Je montre dans cette vidéo les principales fonctionnalités du package de <a href="http://eric.univ-lyon2.fr/ricco/cours/cours_text_mining.html" target="_blank">text mining</a> "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é.</p><p><b>Mots-clés</b> : logiciel R, package tidytext, tidyverse, tokenisation, dictionnaire, matrice documents-termes, pondération, analyse des sentiments<br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=FWYZrf2p7MQ" target="_blank">Tidytext</a><br /><b>Notebook R + Données</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_tidytext.zip" target="_blank">Imdb Reviews</a><br /><b>Références</b> :<br />"<a href="https://www.tidytextmining.com/index.html" target="_blank">Text mining with R</a>", J. Silge & D. Robinson. <br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-32803406763763253972021-11-01T11:20:00.002+01:002022-10-10T14:39:54.977+02:00(Vidéo) Subdivision train-test avec scikit-learn<p>Cette vidéo montre comment subdiviser aléatoirement un jeu de données en échantillons d'apprentissage et de test à l'aide de la fonction <a href="https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html" target="_blank">train_test_split</a>(.) de la librairie "<a href="https://scikit-learn.org/stable/index.html" target="_blank">scikit-learn</a>". J'essaie de mettre l'accent sur plusieurs aspects qui me paraissent important : l'organisation des données à présenter au module, le rôle des paramètres (train_size, random_state, stratify), les structures de données obtenues en sortie. Quelques statistiques descriptives simples permettent de s'assurer de la régularité du partitionnement.</p><p><b>Mots-clés</b> : python, scikit-learn, train_test_split<br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=wnx74ICo4yg" target="_blank">Train test split</a><br /><b>Code Python + Données</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/Video_Train_Test_Split_Sklearn.zip" target="_blank">Breast Dataset</a><br /><b>Références</b> :<br />"<a href="http://tutoriels-data-mining.blogspot.com/2015/09/python-machine-learning-avec-scikit.html" target="_blank">Python - Machine learning avec scikit-learn</a>", septembre 2015.</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-20223609613342457372021-10-30T17:35:00.001+02:002022-10-10T14:39:55.376+02:00(Vidéo) Machine learning avec PyCaret<p>"<a href="https://pycaret.org/" target="_blank">PyCaret</a>" est la version Python du fameux package "caret" pour R. Il s'agit toujours d'un meta-package dans le sens où il ne programme pas directement les algorithmes de machine learning. Il s'appuie sur d'autres librairies pour cela, en particulier sur "<a href="https://scikit-learn.org" target="_blank">scikit-learn</a>". Il ajoute plutôt une surcouche destinée à nous faciliter la vie en prenant en charge une grande partie des tâches répétitives et fastidieuses de la pratique de la data science (élaboration d'un pipeline, préparation des données, détermination des meilleurs algorithmes, optimisation des hyperparamètres, déploiement, etc.). </p><p>Cette vidéo montre comment mettre à profit "PyCaret" dans un schéma d'analyse prédictive, s'inspirant assez fortement du travail que je demande à mes étudiants lorsque j'évalue leur capacité à mener à bien un projet complet de machine learning dans un temps réduit.</p><p><b>Mots-clés</b> : python, pycaret, extra trees, gradient boosting, random forest<br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=nNhIO144Qz0" target="_blank">Machine learning PyCaret</a><br /><b>Notebook + Données </b>: <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_pycaret.zip" target="_blank">Spam Dataset</a><br /><b>Références</b> :<br />"<a href="http://tutoriels-data-mining.blogspot.com/2018/04/machine-learning-avec-caret.html" target="_blank">Machine learning avec caret – Package R</a>", avril 2018.</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-25133733565170270662021-10-30T17:13:00.002+02:002022-10-10T14:39:55.775+02:00(Vidéo) Arbres de décision avec scikit-learn<p>Cette vidéo montre comment construire un arbre de décision avec la librairie "<a href="https://scikit-learn.org/" target="_blank">scikit-learn</a>" 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.</p><p><b>Mots-clés</b> : python, scikit-learn, arbres de décision, decision tree<br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=smPK8mbkisU" target="_blank">Arbres scikit-learn</a><br /><b>Notebook + Données</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_python_arbres_sklearn.zip" target="_blank">Iris Dataset</a><br /><b>Références </b>:<br />"<a href="http://tutoriels-data-mining.blogspot.com/2015/09/python-machine-learning-avec-scikit.html" target="_blank">Python - Machine Learning avec scikit-learn</a>", septembre 2015.<br />"<a href="http://tutoriels-data-mining.blogspot.com/2020/02/arbres-de-decision-avec-scikit-learn.html" target="_blank">Arbres de décision avec Scikit-Learn</a>", février 2020.<br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-58455648951853958992021-10-14T06:43:00.003+02:002022-10-10T14:39:56.172+02:00(Vidéo) Scoring – Courbe Lift<p>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.</p><p><b>Mots-clés </b>: tableur excel, courbe lift cumulé, courbe de gain, gain chart<br /><b>Vidéo 1 </b>: <a href="https://www.youtube.com/watch?v=fZ7xgnAfKM4" target="_blank">Scoring – Analyse Discriminante</a><br /><b>Vidéo 2</b> : <a href="https://www.youtube.com/watch?v=llgNGxkGds0" target="_blank">Scoring – Régression logistique</a><br /><b>Données</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_heart_scoring.zip" target="_blank">Heart Dataset</a><br /><b>Références</b> :<br />"<a href="http://eric.univ-lyon2.fr/ricco/cours/slides/scoring_et_ciblage.pdf" target="_blank">Scoring – Ciblage Marketing</a>".<br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-8407995423539176422021-10-07T14:48:00.001+02:002022-10-10T14:39:56.571+02:00(Vidéo) Ridge, Lasso – Optim. des hyperparamètres<p>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 <a href="https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression" target="_blank">régression logistique</a> binaire, avec les <a href="http://tutoriels-data-mining.blogspot.com/2018/05/ridge-lasso-elasticnet.html" target="_blank">régression pénalisées</a> "Ridge" et "Lasso", pour lesquels nous faisons varier le paramètre de régularisation. L'outil <a href="https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html" target="_blank">GridSearchCV</a> de la librairie Scikit-Learn pour Python est mise à contribution.</p><p><b>Mots-clés</b> : python, scikit-learn, régression logistique binaire, gridsearchcv<br /><b>Vidéo </b>: <a href="https://www.youtube.com/watch?v=ga2n_lkenbc" target="_blank">Hyperparamètres Ridge Lasso</a><br /><b>Notebook + Données </b>: <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_optimisation_hyperparam.zip" target="_blank">Spam Dataset</a><br /><b>Références</b> :<br />"<a href="http://tutoriels-data-mining.blogspot.com/2015/09/python-machine-learning-avec-scikit.html" target="_blank">Python - Machine Learning avec scikit-learn</a>", septembre 2015.<br />"<a href="https://www.youtube.com/watch?v=rECEjU1jTds" target="_blank">Régression logistique sur les grandes bases avec scikit-learn</a>", décembre 2020.<br />"<a href="https://www.youtube.com/watch?v=-4tOZdlTT5U" target="_blank">Pipeline Python pour le déploiement</a>", janvier 2021.<br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-87710937616816121372021-09-28T07:02:00.003+02:002022-10-25T22:58:50.721+02:00Régression Logistique – Machine Learning<p>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é.</p><p>Signe des temps, les exemples illustratifs sont réalisés sous Python avec la fameuse librairie "Scikit-Learn".</p><p><b>Mots-clés </b>: 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<br /><b>Support</b> : <a href="https://eric.univ-lyon2.fr/ricco/cours/slides/logistic_regression_ml.pdf" target="_blank">ML – Régression logistique</a><br /><b>Notebooks Python et fichiers </b>: <a href="https://eric.univ-lyon2.fr/ricco/cours/slides/fichiers/fichiers_regression_logistique_ml.zip" target="_blank">Breast - Iris</a><br /><b>Références</b> :<br />Page de cours "<a href="https://eric.univ-lyon2.fr/ricco/cours/cours_regression_logistique.html" target="_blank">Régression logistique</a>".<br />"<a href="http://tutoriels-data-mining.blogspot.com/2015/09/python-machine-learning-avec-scikit_16.html" target="_blank">Python - Machine learning avec scikit-learn</a>", septembre 2015.<br />"<a href="http://tutoriels-data-mining.blogspot.com/2021/07/video-regression-logistique-avec-python_13.html" target="_blank">Vidéo – Régression logistique avec Python / Scikit-Learn</a>", juillet 2021.<br />"<a href="http://tutoriels-data-mining.blogspot.com/2020/03/regression-logistique-sous-python_31.html" target="_blank">Régression logistique sous Python (Scikit-Learn, Statsmodels)</a>", mars 2020.<br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-55081938650225046362021-09-25T21:43:00.003+02:002022-10-10T14:39:57.369+02:00(Vidéo) Excel – Filtres, tableaux croisés<p>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.</p><p><b>Mots-clés</b> : tableur, excel, listes de données, filtres, TCD, tableaux croisés dynamiques<br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=UBdv-8hnxwA" target="_blank">Filtres & TCD Excel</a><br /><b>Fichier</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/excel_produits.xlsx" target="_blank">Produits</a><br /><b>Références</b> :<br /><a href="https://support.microsoft.com/fr-fr/office/utiliser-le-filtre-automatique-pour-filtrer-des-donn%C3%A9es-7d87d63e-ebd0-424b-8106-e2ab61133d92" target="_blank">Filtres automatiques</a>, <a href="https://support.microsoft.com/fr-fr/office/filtrer-%C3%A0-l-aide-de-crit%C3%A8res-avanc%C3%A9s-4c9222fe-8529-4cd7-a898-3f16abdff32b" target="_blank">avancés</a>, <a href="https://support.microsoft.com/fr-fr/office/cr%C3%A9er-un-tableau-crois%C3%A9-dynamique-pour-analyser-des-donn%C3%A9es-de-feuille-de-calcul-a9a84538-bfe9-40a9-a8e9-f99134456576" target="_blank">tableaux croisés dynamiques</a>.</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-5029476196139817662021-09-16T18:55:00.002+02:002022-10-10T14:39:57.764+02:00(Vidéo) Cross-validation, leave-one-out<p>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.</p><p><b>Mots-clés</b> : cross-validation, leave-one-out, holdout, resubstitution, taux d'erreur, arbres de décision, c4.5<br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=boXoZ847lsg" target="_blank">Cross-validation</a><br /><b>Slides</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/Schema_Validation_Croisee.pdf" target="_blank">Schéma validation croisée</a><br /><b>Données</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/sonar_cross_validation.xlsx" target="_blank">Sonar</a><br /><b>Références </b>:<br />"<a href="http://tutoriels-data-mining.blogspot.com/2015/02/validation-croisee-bootstrap-diapos.html" target="_blank">Validation croisée, Boostrap (Diapos)</a>", février 2015.<br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-88126859271594770682021-08-03T16:45:00.002+02:002022-10-10T14:39:58.164+02:00(Vidéo) SAS sous Python avec SASPy<p>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.</p><p><b>Mots-clés</b> : sas, saspy, cloud, régression logistique, haute performance, random forest, sas ondemand for academics<br /><b>Vidéo</b> : <a href="https://www.youtube.com/watch?v=MfG7hQpun-4" target="_blank">SASPy</a><br /><b>Données, fichier de configuration, notebook</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/video_python_saspy.zip" target="_blank">Breast Cancer</a><br /><b>Références</b> :<br />"<a href="https://sassoftware.github.io/saspy/" target="_blank">SASPy</a>".<br />"<a href="https://www.sas.com/fr_fr/software/on-demand-for-academics.html" target="_blank">SAS onDemand for Academics</a>".</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4899725441569343706.post-61885759055916194432021-07-24T17:30:00.002+02:002022-10-10T14:39:58.562+02:00(Vidéo) Extension Intel(R) pour scikit-learn<p>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 (<a href="http://oneapi-src.github.io/oneDAL/" target="_blank">oneDAL</a>) 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.</p><p>Dans cette vidéo, nous appliquons les SVM (<a href="https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html" target="_blank">SVC</a> de Scikit-learn) sur la base "<a href="https://archive.ics.uci.edu/ml/datasets/image+segmentation" target="_blank">segmentation</a>" 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.</p><p>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.</p><p><b>Mots-clés</b> : svm, support vector machine, scikit-learn, oneDAL<br /><b>Vidéo </b>: <a href="https://www.youtube.com/watch?v=2U3dYhrYLsM" target="_blank">Extension Scikit-learn - Python</a><br /><b>Données et notebook</b> : <a href="http://eric.univ-lyon2.fr/ricco/tanagra/fichiers/sklearn_intel_extension.zip" target="_blank">SVM Segmentation</a><br /><b>Références </b>:<br />"<a href="https://intel.github.io/scikit-learn-intelex/" target="_blank">Intel(R) extension for Scikit-learn</a>".<br />"<a href="https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onedal.html" target="_blank">oneAPI Data Analytics Library</a>".</p>Unknownnoreply@blogger.com