Cours sur les bases du machine learning avec exemples pratiques sur Iris et un dataset génétique de cancer du cerveau.
Ask about this video. Answers come from its transcript only — with the timestamp, so you can check them.
Generated from the transcript and can be wrong — check the timestamp.
Key Takeaways
- Les bases du machine learning incluent apprentissage supervisé, non supervisé et reinforcement learning.
- Le dataset Iris est un outil pédagogique classique pour tester et comparer des algorithmes de classification.
- L'exploration et la préparation des données sont essentielles avant la modélisation.
- Différents algorithmes de classification ont des usages spécifiques selon la complexité du problème.
- L'utilisation d'environnements comme VS Code ou Google Colab facilite la mise en œuvre pratique.
What the video covers
- Reprise du cours sur les fondamentaux de l'intelligence artificielle et du machine learning, 4e séance.
- Rappel des notions abordées : apprentissage supervisé (régression, classification), apprentissage non supervisé (clustering, PCA).
- Présentation d'exemples concrets pour illustrer les concepts, notamment des algorithmes de classification avancés comme SVM, arbres de décision, random forest, KNN.
- Premier cas d'étude : le dataset Iris, un classique en machine learning pour la classification de trois espèces de fleurs selon quatre caractéristiques.
- Explication détaillée des caractéristiques du dataset Iris et de la préparation des données pour l'entraînement des modèles.
- Introduction à l'utilisation d'outils comme VS Code ou Google Colab pour implémenter les modèles.
- Deuxième cas d'étude : un dataset Kaggle sur l'expression génétique liée aux cancers du cerveau, exploration et modélisation.
- Démonstration de l'importation, exploration et manipulation des données dans un environnement de développement.
- Discussion sur les métriques d'évaluation des modèles, la précision, et les problématiques comme l'overfitting.
- Présentation des réseaux de neurones et de la descente de gradient comme méthodes d'optimisation dans le machine learning.
Chapters
- 00:00Introduction et rappel des séances précédentes
- 09:00Présentation du dataset Iris et préparation des données
- 18:09Implémentation et exploration du dataset Iris
- 26:14Analyse statistique et visualisation des données
- 35:30Évaluation des modèles de classification
- 45:38Présentation des réseaux de neurones et optimisation
- 53:02Introduction au dataset génétique sur le cancer du cerveau
- 60:37Exploration et modélisation du dataset génétique
Full Transcript — Download SRT & Markdown
Speaker A
Bien. Alors donc voilà. Alors on va reprendre le cours concernant les bases de l'intelligence artificielle. Donc je rappelle qu'en fait c'est notre 4e séance. Donc pendant la première séance, j'avais l'occasion de présenter les concepts de base de
Speaker A
l'intelligence artificielle. C'est quoi le machine learning ? Les modèles pilotés par les données. J'ai présenté les modèles pilotés par l'apprentissage piloté par l'expérience, c'est-à-dire le reinforcement learning.
Speaker A
Ce sont les concepts de base. J'avais également parlé un petit peu de deep learning. J'avais aussi parlé un peu de l'IA générative. Et pour arriver aux large language models, donc c'est-à-dire on a présenté cette
Speaker A
cette sphère-là pour arriver là. Et donc après, donc nous avons traité le détail concernant d'abord l'apprentissage supervisé dans lequel nous avons vu principalement la régression, la régression linéaire. Et puis donc nous avons fait un cours sur
Speaker A
la classification. Donc ça, c'est dans la classification, j'avais l'occasion de traiter les concepts de base de manière générale, et nous avons vu comment implémenter un modèle de classification basé sur la régression logistique. Donc ça, c'est l'un des modèles qui sont
Speaker A
utilisés, qui sont parfois faciles à mettre en œuvre, mais surtout qui parfois donnent des résultats qui sont intéressants pour des cas notamment généralement pas complexes. Et puis donc la dernière séance, la troisième séance, nous
Speaker A
l'avons consacrée à la partie apprentissage non supervisé, c'est-à-dire le clustering, et principalement nous avons vu l'un des algorithmes les plus populaires, K-means. Nous avons vu comment l'implémenter, comment le mettre en œuvre et aussi à la
Speaker A
fin nous avons vu la problématique, la réduction de dimensionnalité des données, notamment avec l'analyse en composantes principales, PCA. Donc comment l'implémenter ? Donc ce qui fait que pendant les trois séances, je pense que c'est le
Speaker A
bon, quelqu'un qui veut faire, on va dire, qui veut maîtriser en quelque sorte les concepts de base de l'intelligence artificielle, c'est vraiment les fondements de base de l'intelligence artificielle. C'est ça.
Speaker A
Alors, juste avant d'accélérer parce qu'en fait, j'ai constaté quand même qu'il y a pas mal de concepts dont on avait parlé, il y a pas mal d'implémentations. Donc je vous avais promis, donc
Speaker A
donc je vous ai promis qu'on va s'arrêter aujourd'hui sur des études de cas, des exemples d'application et à travers lesquels j'essaierai de faire une révision en quelque sorte de tout ce qui a été fait jusqu'à présent, et donc ça
Speaker A
serait l'occasion aussi de revenir sur le fonctionnement d'autres algorithmes de classification dont j'avais parlé mais que je n'ai pas eu l'occasion la dernière fois de détailler, comme SVM, comme les arbres de décision, random forest, KNN, etc. Donc ce sont des
Speaker A
modèles, surtout multilayer perceptron. Donc ça, ce sont des modèles qui sont très, très utiles à connaître. Alors pour cela, donc ce que j'ai pensé à faire, c'est que j'essaierai de travailler sur deux exemples d'application. Donc dans un
Speaker A
premier temps, je vais, on va travailler sur un exemple très classique dans le machine learning. Bon, généralement tous les gens qui font du machine learning passent par l'étude de ce dataset qui s'appelle Iris dataset. Bon, c'est un dataset
Speaker A
dans lequel, donc dans le domaine, on va dire, dans le domaine des fleurs, c'est dans le domaine de la botanique. Et en fait, l'idée principale, c'est qu'il y a un dataset dans lequel on
Speaker A
va présenter trois types de, de quatre types de fleurs, qui sont connus, trois types plutôt. Donc il y a ce qu'on appelle virginica, vergicolor et setosa. Donc ça, ce sont trois types de fleurs. Mais on essaie de
Speaker A
caractériser ces fleurs en utilisant quatre caractéristiques principales. Donc les caractéristiques principales, c'est tout simplement les dimensions de ce qu'on appelle le pétale. Alors le pétale, c'est cette fleur-là que vous voyez là.
Speaker A
Donc on va essayer de voir la largeur et la longueur du pétale. Donc c'est, c'est la fleur qui a une petite dimension, c'est-à-dire le, et puis donc la partie de la
Speaker A
fleur, c'est le sépal. Le sépal. La même chose, on va prendre la largeur et la longueur. Donc ça, ce sont les quatre caractéristiques, c'est-à-dire nous avons un dataset dans lequel vous avez quatre features. C'est
Speaker A
la longueur du pétale, la largeur du pétale, la longueur du sépal et la largeur plutôt, voilà, la largeur, la longueur du sépal et la largeur du sépal. Et à partir de ces
Speaker A
caractéristiques, on va essayer de faire la prédiction. Est-ce qu'il s'agit de virginica ? Est-ce qu'il s'agit de vergicolor ou setosa ? Donc ça, c'est vraiment un dataset qui est très simple. Ça fait partie de la littérature. Généralement, si vous
Speaker A
voulez, par exemple, vous avez inventé un algorithme de machine learning, la première des choses que vous allez faire, vous allez le tester sur des datasets qui sont déjà connus, pour lesquels on connaît presque les performances des autres algorithmes. Et
Speaker A
donc, on va essayer d'abord de travailler sur ce cas-là. Et dans le deuxième exemple, j'ai cherché en fait à explorer au niveau de Kaggle. Donc je rappelle Kaggle, en fait, c'est un site que tout le monde devrait
Speaker A
connaître dans lequel vous pouvez chercher, vraiment, c'est là où vous allez trouver tous les datasets publiés. Et donc j'ai cherché dans le domaine, parce que je sais qu'il y a des biologistes avec vous. Donc j'ai cherché un dataset dans le domaine de la
Speaker A
biologie. Donc j'ai trouvé un dataset. On va essayer de l'explorer ensemble et de voir comment le mettre en œuvre.
Speaker A
Bon, c'est un dataset qui s'intéresse en fait à caractériser les expressions des gènes, l'expression génétique, si vous voulez, des cancers du cerveau. Donc ça, c'est un cas, on va essayer de voir le dataset. Bon, c'est un dataset que
Speaker A
j'ai téléchargé et on va essayer de le voir, on va l'explorer et on va essayer de créer des modèles et voir ce qu'on peut tirer comme profit. Bon bref, donc pour ne pas trop tarder, donc je vais d'abord commencer
Speaker A
par le premier cas. Alors le premier cas, c'est le, c'est le voilà, c'est Iris. Donc vous voyez, c'est un dataset qui est très, si vous cherchez, vous allez le trouver rapidement. Donc ici, je vais
Speaker A
vous le partager au niveau de Classroom. Vous voyez, ce dataset, c'est un dataset Iris.csv.
Speaker A
C'est un fichier .csv dans lequel vous avez la colonne ID. Bon, c'est un identifiant, mais après il faut voir que cette colonne-là ne sert à rien parce que généralement les colonnes qui vont identifier les lignes, c'est généralement
Speaker A
des colonnes qui doivent être supprimées au moment de la prédiction, de l'entraînement du modèle. Ici, donc je vois, c'est pas la longueur en centimètres, c'est le pétale en cm, le pétale en cm, et après le pétale en cm, et après l'espèce. Donc vous voyez, les espèces, tout simplement, c'est
Speaker A
soit setosa, ou bien vous voyez, donc ici le vergicolor et virginica. Voilà. Donc ça, ce sont les trois
Speaker A
types. Alors ça, c'est le dataset qu'on va ici utiliser. Alors pour cela, j'essaierai de, voilà, on va essayer de créer un projet, un nouveau projet.
Speaker A
Donc si, comme je disais, si vous travaillez avec un outil comme VS Code, Visual Studio Code, c'est important, c'est important donc de, voilà. Donc je vais ouvrir un dossier. Donc ce que je vais faire, c'est que dans mon
Speaker A
dossier, par exemple IA, je vais créer un dossier que je vais a
Speaker A
ouvrir h le dossier open un dossier. Alors enregistrer tout en fait. Voilà, ça c'est F. Alors, je fais confiance. Donc c'est-à-dire tout simplement je pars sur un IDE, j'ouvre un dossier euh que j'ai ici pour le moment, j'ai
Speaker A
rien. Euh mais si vous travaillez avec collab, donc il y en a ceux qui vont pas se casser la tête à installer les outils, c'est pas c'est pas important pour le moment. Si vraiment vous allez vers Google Collab et
Speaker A
directement vous commencez à faire le l'activité pratique. Alors moi ici donc euh une fois que je crée ce dossier là euh je vais essayer donc de créer un un fichier. Donc le fichier je vais l'appeler par exemple Iris euh
Speaker A
euh ML. Alors l'extension, je rappelle que les notebooks, l'extension c'est ça. IP NB notebook. Donc ça c'est l'extension, c'est les fichiers que vous avez l'habitude de de trouver sur Google Collab. Et donc ici pour le moment euh il faut d'abord préciser
Speaker A
l'environnement, le noyau. C'est-à-dire ici donc je suis dans un IDE, mais il faut indiquer quelle quelle version de Python que je vais utiliser euh quels sont le quel est l'environnement que je vais utiliser. C'est pour cela le plus
Speaker A
simple. Ici, il y a un bouton euh par exemple sélectionner le noyau. Alors, je vais lui demander de créer un environnement.
Speaker A
Alors, je vais utiliser ça suppose que vous avez déjà dans votre machine en fait Python qui est installé et donc vous voyez donc j'ai différentes versions que j'ai installé. Donc je vais prendre la version 3.13 et plutôt je vais lui demander de
Speaker A
de créer un environnement Python. Et c'est environnement Python Python que je vais créer. Je vais prendre la version 3.13 et c'est tout. Alors ici donc le le ça veut dire quoi ? créer un environnement de Python. Pourquoi on va
Speaker A
créer un environnement ? Parce que supposons vous avez installé vous avez installé Python version 13 dans votre machine et que à un moment donné, vous allez commencer à installer des librairies. OK ? Vous installez des librairies avec différentes versions. Le
Speaker A
problème c'est que si vous ne créez pas un environnement séparé, c'est que vous allez toujours utiliser le même environnement Python dans lequel vous allez commencer à avoir beaucoup de librairies avec différentes versions et parfois vous allez rentrer dans des
Speaker A
conflits entre les les versions. Ce n'est pas pratique. Donc ce qu'on va faire généralement c'est que pour chaque projet, on va créer un environnement. C'est comme si vous avez une version de de Python pour cet environnement. Ça veut
Speaker A
dire que toutes les librairies que vous allez installer, il va les placer dans ce dossier là que vous voyez ici dot virtual environment.
Speaker A
Donc comme je disais le dans les bonnes pratiques, c'est vrai que si vous travaillez avec Google Collab, ce problème vous l'avez pas parce que vous êtes dans un environnement qui est déjà qui est déjà fait travaillez pas de
Speaker A
problème. Mais ici donc si vous travaillez avec un IDE comme VS Code par exemple, essay toujours de de travailler comme ça. Vous ouvrez un dossier, vous créez un environnement, vous spécifiez la version et comme ça toutes les librairies que vous allez installer, ils
Speaker A
vont se trouver dans votre environnement. Ici comme ça vous n'allez pas toucher le l'environnement principal. pitant sur lequel vous travaillez et ça va vous éviter de d'avoir des petits problèmes de de version. Bref, alors l'essentiel c'est que j'ai j'ai le fichier là et après
Speaker A
donc je vais créer donc des des cellules. Donc ici donc ça c'est pour écrire du code. Et dans notre cas ici la première des choses, il me faut le le dataset.
Speaker A
Alors justement pour le dataset, je vais le chercher euh donc je vais le chercher donc dans l'autre projet, le projet classification. Alors ici donc j'ai ce fichier là dataset CSV iris.csv celui-là copier. Je vais le copier et je vais revenir sur ce ce
Speaker A
dossier-là ce projet et je peux le copier directement ici. Bon, en tout cas, donc j'ai mon dataset et puis donc je reviens euh voilà, donc je reviens à mon fichier.
Speaker A
Alors donc je rappelle que pour en fait travailler votre projet de machine learning, nous aurons besoin d'un certain nombre de librairies principalement les trois premières que vous allez devoir toujours installer. Il y a Pondas, il y a Cborn et euh Cycit
Speaker A
Learn. Donc ici, c'est parce que j'ai créé un nouvel environnement, je dois les installer. Alors ici, donc avec Python, donc plutôt avec VS Code, je vais utiliser directement nouveau terminal ici. Et après, je peux écrire tout simplement la commande pip
Speaker A
install. Alors, je vais installer Pondas, je vais installer Cborn. C'est bon. Alors ce que je en train de faire parce que le pip install il va se connecter internet, il va télécharger cette librairie, il va il va l'installer. Alors et après je vais
Speaker A
faire la même chose. Installe euh cycit learn. Ça s'écrit comme ça. Cychit learn. Donc ça c'est les trois librairies principales dont on aura besoin. Alors bien sûr si vous travaillez sur Google Collab, comment vous installez les librairies ? Au lieu de taper ça comme
Speaker A
ça, vous pouvez directement taper ici donc sur le code, vous tapez la commande point d'exclamation pip install par exemple pandas pandas.
Speaker A
Voilà. Alors ici, si vous exécutez cette cellule là, c'est la même chose ici hein. C'est-à-dire si vous travaillez, voyez donc c'est pareil si vous travaillez sur Google Collab, c'est comme ça que vous allez installer les les livraires parce que vous n'avez pas
Speaker A
accès à la console d'installation. C'est pour cela que en fait ça c'est une façon de faire. En tout cas, ici donc je vois que le les librairies sont installées. Donc je vais commencer à importer donc pondas pondas. Donc ici
Speaker A
donc la livrée je vais l'importer. Alors je rappelle que pour exécuter ça va mieux comme ça. Bon c'est mieux. Alors pour exécuter vous faites ça ou bien tout simplement shift entrée. Shift entrée. Donc ça permet de d'exécuter la
Speaker A
cellule sur laquelle ? dans laquelle je suis. Et puis la première des choses que je vais faire, alors la première des choses que je vais faire, c'est que je vais lire d'abord le dataset. Donc la première des choses et pour lire ce dataset, donc je
Speaker A
vais utiliser DF dataframe égal p.re readcsv et notre fichier CSV s'appelle tout simplementis.csv. Oui.
Speaker A
Alors sur Classroom, je vais créer un un nouveau Alors, ça c'est ça. Donc base de l'intelligence étude de cas étude de cas de machine learning.
Speaker A
Alors, je vais vous laisser dans la partie ici le class plutôt supervised lorin classification. Alors, il y a il y a a quoi ?
Speaker A
CSV et après je vais vous laisser le le le notebook pour les gens qui veulent pas taper des codes. Faites copiercoll classification.
Speaker A
Ça c'est ce qu'on va essayer de faire. Bon en tout cas je vous laisse ça pour les gens qui veulent suivre mais comme je disais l'objectif c'est vraiment pas de de pratiquer. L'objectif c'est de de réviser de comprendre le principe de
Speaker A
base. Mais bien sûr chez vous avez les vidéos, vous pouvez reprendre cette logique là. Donc voilà c'est fait. Donc j'exécute donc j'ai le dataset qui qui est affiché. Donc la première des choses qu' qu'on fait généralement, c'est regarder le dataset.
Speaker A
Alors notre dataset, vous voyez donc les différentes colonnes que nous avons ici. Et puis euh donc dans un data frame, en fait le quand vous utilisez Pandas R CSV, c'est quand on va lire les données se font de ce qu'on appelle des data
Speaker A
frames. Un data frame c'est tout simplement c'est c'est un tableau dans lequel vous avez un ensemble de colonnes. C'est ce qu'on appelle des séries. Chaque chaque colonne normalement c'est ce qu'on appelle une série. Et bien sûr vous avez un ensemble
Speaker A
de lignes. Et donc si vous voulez afficher que les par exemple les premiers éléments, par exemple si vous mettez head five, c'est-à-dire vous allez afficher tout simplement les cinq premiers les cinq premières lignes. OK ? Alors si vous
Speaker A
voulez euh euh sélectionner des échantillons aléatoires, vous utilisez simple par exemple 10. Alors ici donc vous allez aléatoirement c'est des échantillons et donc vous voyez ici ça c'est la numéro 48 et cetera et cetera.
Speaker A
Voilà. Donc ça me donne une idée à peu près. Et puis ce que je vais faire euh je vais d'abord regarder le c'est-à-dire le la description ou bien il y a une opération qui s'appelle info qui vous donne une
Speaker A
opération qui vous donne des informations sur quelles sont les différentes colonnes. Donc c'est important de voir déjà j'ai une colonne ID, c'est un entiller, j'ai c'est pas c'est pas lente en centimèt et j'ai les autres caractéristiques, j'ai l'espèce.
Speaker A
Alors, sauf que ici l'espèce ici c'est un il est de type object et quand vous voyez de type object, ça veut dire c'est des string. Ça veut dire quoi ?
Speaker A
Généralement, comme vous voyez des variables de type float par exemple comme ça, float ça veut dire c'est un nombreel. OK ? ou bien des int.
Speaker A
Généralement, c'est des des c'est des c'est des en fait c'est des variables euh c'est des variables on va dire quantitatives. OK ?
Speaker A
Alors si vous voyez des variables de type object, c'est c'est-à-dire c'est des chaînes de caractères et dans la majorité des cas c'est des variables qualitatives. C'est-à-dire qu'il peut avoir soit cette valeur, soit cette valeur, soit cette valeur. D'ailleurs,
Speaker A
c'est notre cas ici, si on regarde par exemple la colonne spécies, vous voyez donc il peut être soit cytosa vergicolore, soit l'autre.
Speaker A
Alors donc ici donc j'ai les les les caractéristiques et puis donc vous aurez besoin euh d'un certain nombre de de trait de pré-traitement euh comme par exemple je rappelle des scripes.
Speaker A
Qu'est-ce qu'il permet de faire ? Il vous permet de donner les statistiques et ça c'est important. C'est-à-dire pour chaque colonne, vous allez voir le count. Je vois déjà count, je vois 150.
Speaker A
Pour chaque colonne, il y a 150 valeurs. C'est déjà le fait d'avoir 150, ça veut dire quoi ? Ça veut dire que euh ça veut dire qu'il n'y a pas de il n'y a pas de valeur mon compte. OK ? Parce que par
Speaker A
exemple si par exemple ici vous avez 150 valeurs et là vous avez 149, que signifie ça ? Ça signifie pour cette colonne, il y a une valeur qui est manquante, qui manque. D'accord ? Et mais ce qui est bien c'est que avant de
Speaker A
faire ça, c'est de regarder d'abord le chip DF point chip. Alors chip, qu'est-ce qu'il vous donne ? Il vous donne une information sur vos dataset.
Speaker A
Le nombre de colons c'est combien ? C'est 6 et le nombre de lignes c'est 150. Alors ici donc je vois je vois ici donc le standard déviation le minimum le maximum. Si vous voulez représenter ça en transposé vous vous mettez
Speaker A
TPOSe. Donc ici voilà la colonne et count min euh le minimum le prer quartil le le quartil le 3è quartil et le maximum. Donc ça c'est souvent ces statistiques là pour chaque pour chaque caractéristique, il faut jeter un codé
Speaker A
sur le minimum. Vous voyez donc par exemple ici pour ces pas lentes, la valeur minimale c'est 4,3 et la valeur maximale c'est 7,9. Alors ici on n' pas de problème parce qu'on voit déjà que toutes les toutes les les mesures sont exprimées en
Speaker A
centimètres, n'est-ce pas ? Parce que toutes ces valeurs là, c'est en en centimèt parce que c'est précisé déjà ici, n'est-ce pas ? Mais supposons que il y a des valeurs qui sont exprimées en centimètres, il y a d'autres en mètre et
Speaker A
cetera. Donc ça veut dire que Exactement, ça veut dire que à un moment donné, il faut il faut faire la standardisation. D'accord ? Et je vais tout à l'heure revenir sur ce problème de standardisation.
Speaker A
Donc du moment que toutes les valeurs sont en c'est-à-dire ils sont mises à l'échelle. C'est-à-dire, bon, on a à peu près on peut les garder comme ça. Alors, ce qu'on va faire, c'est qu'on va regarder d'abord, on va
Speaker A
regarder d'abord le nombre de le nombre de c'est-à-dire de d'espèces. Alors, pour cela, on va utiliser DF entre crochet. La colonne s'appelle Spaces et on va utiliser value count.
Speaker A
Alors valc vous rappelle c'est très utile. Il vous dit que pour cette cette variable euh cette variable qualitative c'est une variable qualitative. Vous avez trois types de valeurs. Vous avez ca, il y a combien de valeurs ? 50. Pour
Speaker A
vergicolor, vous avez 50. Et pour aris virginia, vous avez 50. Bon, déjà on peut écrire ici un petit commentaire.
Speaker A
Vous voyez donc mark down ici. Donc vous écrivez par exemple, on peut dire que le le le dataset est équilibré. Alors il est équilibré. Ça veut dire tout simplement le le nombre de chaque classe c'est la même chose. Nous avons
Speaker A
un dataset qui est équilibré parfaitement ce genre de situation. Euh et puis alors le fait de savoir est-ce que le dataset, le nombre de classes sont équilibrées euh ça va jouer sur quelle mesure de performance qu'on va utiliser.
Speaker A
Est-ce qu'on va utiliser Ecuracy ou bien recall ou bien et cetera ? Donc j'en avais parlé. Euh donc tout ça, on va y revenir tout à l'heure. Oui. Tout à l'heure il y avait il y avait 150 valeurs pour chaque Non, c'est le total.
Speaker A
Là, j'ai pas trop 150 valeurs dans le total, mais 150 valeurs, il y a 50 cosa, il y a 50 euh Vergicolor et 50 Virginia. Ça veut dire au total 650.
Speaker A
Oui, ça c'est le type des plantes. C'est les types des plantes. C'est-à-dire ici, donc j'arrive à à la colonne et je peux voir généralement le votre output. Si vous faites la classification, vous avez besoin de savoir il y a combien de
Speaker A
classes. Si vous voulez savoir il y a combien de classes dans votre dataset, vous faites ça. Vous faites tout simplement value count, c'est-à-dire vous allez vers la colonne output et vous allez dire value count. Et ça va vous donner pour chaque valeur, il y a
Speaker A
combien d'instances qui se répètent. Et ça c'est très utile. Alors maintenant, ça c'est la première. Si vous voulez représenter ça se forme d'un graphique, vous pouvez importer cboard SNS. Alors ici donc il me dit que c'est B c'est pas installé et pourtant je l'ai
Speaker A
installé. Allez-y. Donc je fais ça, je fais install. Ça c'est quelque chose, c'est comme ça que vous allez travailler. Si vous travaillez sur Google collab. Voilà.
Speaker A
Alors donc il y a Sibon et après donc Sibon c'est quoi ? C'est pour faire du data visualization. C'est-à-dire SBON c'est l'une des librairies que vous pouvez utiliser avec euh vous savez dans Python, il y a une librairie qui qui fait partie de Python
Speaker A
qui s'appelle Mat Plot Lib euh P plot as PLT. Donc vous avez deux façons pour dessiner les graphiques les donc soit vous utilisez PLT, c'est-à-dire mat plot lip qui fait partie de de Python dans de base ou bien vous utilisez une
Speaker A
librairie qui est encore plus développée qui qui va vous faire beaucoup de graphiques qui sont beaucoup plus intéressants. C'est ce qu'on appelle cborn. Donc ça c'est les deux librairies principales qu'on va utiliser pour data visualization.
Speaker A
Et voilà. Donc ici donc je vais utiliser par exemple Cborn SNS et je peux utiliser par exemple bar plot. Alors barre plot je vais plotter quoi ? Je vais plotter ces valeurs que j'ai ici. Ça c'est-à-dire je vais
Speaker A
prendre ça contrôle C contrôle V. C'estàd je vais plotter ici le value count de chaque espèce.
Speaker A
Alors si vous faites ça, ça va vous ça va vous donner juste bah ça vous donne ça tout simplement.
Speaker A
Alors c'est-à-dire pour vous avez vous en avez 50. Cette espèce vous avez 50. Ça vous donne juste une idée sur les différentes classes. Si vous voulez afficher la valeur, vous aurez besoin de mettre ici barre et là vous mettez barre point j'ai
Speaker A
quelque chose barre point label label bar label barcontainer containers de 0 et euh Font size 16 font size juste la taille des caractères font c'est comme ça font size 10 par exemple. Alors vous voyez juste ici c'est juste pour afficher ces ces
Speaker A
valeurs ici. Donc j'ai 50 50. Bon, ça c'est c'est pour vous bien sûr à un moment donné, vous voyez donc les gens qui font du machine learning au début vous le tapez mais après ça devient vraiment c'est des copicollé
Speaker A
c'est-à-dire tout le monde travaille comme ça. Donc il faut il suffit juste savoir qu'est-ce que je veux faire parce que ça ce qui est bien c'est que c'est pas ce qui manque he c'est pas le code.
Speaker A
Il faut juste savoir dans ma tête qu'est-ce que je veux représenter. Si je sais ce que je vais représenter à la rigueur vous le demandez à chat GPT vous il vous il vous donne ce code là. C'est pas ça ce qui
Speaker A
manque. Mais le plus important euh pour nous, pour dans notre étude, c'est de comprendre chaque étape. Qu'est-ce que je veux faire ? Alors en tout cas donc je représente ici mes données. Si vous voyez que ce graphique il est un peu
Speaker A
plus grand, vous pouvez utiliser PLT ici point figure la figure avec l'attribut fix size et vous mettez la dimension de la figure. Par exemple euh je vais mettre par exemple 8 x 4 par vir 4 pour ça vous donne ça. Et si vous
Speaker A
mettez par exemple 4 x 4, bon bref, c'est-à-dire c'est juste pour un peu dimensionner votre graphique et cetera.
Speaker A
Donc c'est pas ça le problème. Alors en tout cas, donc déjà quelle est la conclusion que je vais tirer jusque là ?
Speaker A
C'est que j'ai un dataset dans lequel c'est un problème d'abord de de quel type ? De type de classification. Pourquoi de classification ? Parce que euh ici on va on va ici donc le output ça va être quoi
Speaker A
pour nous ? output, ça peut être soit la fleur cytosa, soit vergicolor, soit virginia. Donc trois espèces. Autre chose, c'était une classification parce que dans la classification vous en avez deux. Il y a la classification binaire. C'est quoi la
Speaker A
classification binaire ? Quand vous avez ce vrai ou bien faux, par exemple, je veux détecter est-ce que le patient est malade ou non. Donc dans ce cas-là, on va dire que c'est un problème de classification binaire. ou bien est-ce
Speaker A
qu'une est-ce qu'une intrusion, est-ce que c'est une faille de sécurité ou pas, est-ce que c'est une attaque ou pas et cetera et cetera. Mais ça c'est pas c'est pas une classification binaire, c'est une classification multiclasse multiclasse parce que ici
Speaker A
donc nous avons trois trois classes. Class exactement. Alors, on va continuer d'abord avant de de passer vers notre modèle, il faut remarquer que notre output c'est du texte. Et quand vous avez votre des colonnes qui sont des des
Speaker A
variables, on va dire qualitatives des catégoriques variables, s'ils sont euh si s'ils contiennent du texte, ça veut dire il faut les remplacer par des nombres, n'est-ce pas ? Ouais. Donc il va falloir qu'on remplace par exemple cytosa par 0, virginia par 1 et
Speaker A
vergicolore par 2 parce que quand le machine learning c'est des algorithmes qui utilisent que des nombres pas des chaînes de caractères. Donc on a besoin d'utiliser ce qu'on appelle l'encodage. Alors justement pour faire de le l'encodage euh on peut il y a des
Speaker A
techniques parmi ces techniques, il y a label encoder. Alors pour utiliser label encoder, qu'est-ce qu'on va faire ? Ben, je vais utiliser from cycet learn scale preprocessing je vais importer euh label encoder. Donc ça c'est pour encoder, c'est-à-dire c'est pour ne pas le faire
Speaker A
manuellement pour ne pas aller vers votre fichier et vous remplacez ça par zéro et ça c'est par 1 et ça c'est par de pour ne pas le faire manuellement comme je disais donc pour éviter de faire ça manuellement d'aller chercher
Speaker A
tout ce qui est ars cazz euh je vais le remplacer par zéro euh tout ce qui est euh l'autre par exemple vergicolor par un et l'autre par de pour ne pas le faire manuellement ben on va utiliser label encoder Pour le
Speaker A
faire et ben c'est ce qu'on va faire ici. Je vais exécuter. Bah il me dit encore si ça n'est pas installé bah il faut l'installer. Et pour l'installer donc je vous rappelle vous pouvez utiliser ici donc euh pip
Speaker A
installit lol kit dans dans peut faire je suis dans VS code. Oui oui oui, je vous ai dit qu'on peut faire vous pouvez faire ça et ça alors ça quitte le ça quit c'est pas obligatoire le point d'excl ça
Speaker A
passe en tout cas ça qu le ben pourquoi je fais ça c'est juste parce que les gens qui travaillent sur Google collab c'est comme ça parce qu'en fait ça c'est quasiment c'est comme si vous travaillez sur Google collab c'est la même
Speaker A
chose. Alors donc je vais exécuter donc ici donc j'ai label encoder. Donc je vais l'importer d'abord cette classe et puis et puis donc on va l'instancier là. C'est un peu bizarre ça prend du temps mais en tout cas alors
Speaker A
ici donc je vais utiliser scaler égal c'est pas scaler c'est encoder. Je vais créer une variable encoder égale label encoder. Voilà donc ça c'est quelque chose qui est fourni par kit learn. Et puis je vais utiliser quoi ? Je vais utiliser encoder point
Speaker A
fit transform. Je vais transformer quelle colonne ? La colonne qui m'intéresse c'est DF data frame si ce qui m'intéresse, c'est spaces. Et puis donc il va me le transf, il va faire l'encodage mais il va me donner une autre colonne. Alors cette
Speaker A
colonne là, je vais l'appeler par exemple outcome. Je je vais par exemple écrire c DF. Je vais ajouter une colonne dans mon datafe. Alors cette colonne, je vais l'appeler outcome. Outcome ou bien output ou je sais pas quoi. Égal.
Speaker A
Donc je viens d'ajouter une autre colonne dans mon data dans dans dataset. Cette colonne je l'ai appelé outcome comme ça et dans laquelle je vais placer tout simplement je vais encoder les les labels.
Speaker A
J'exécute et ici donc pour voir ce que je viens de faire je vais encore afficher mon DF.
Speaker A
J'exécute. Alors voyez donc mon data frame il est ce qu'il est. Vous voyez donc les les espèces et juste à côté vous avez la colonne outcome et outcome vous voyez donc tout ce qui est ça c'est zéro tout ce qui est
Speaker A
arginia c'est c'est de alors si vous voulez voir les autres donc vous utilisez un simple par exemple de 12 donc vous voyez bien ça c'est c'est deux ça c'est 1 2 0 donc vous avez donc les lables de notre cas c'est 0 1 et
Speaker A
et donc c'est-à-dire que maintenant notre modèle qu'on va entraîner il va plutôt se baser pour nous la sortie c'est le la donc vous voyez donc ce qu'on vient de faire ce qui nous avons fait un l'encodage et cet encodage là parmi les
Speaker A
les techniques les plus coramment utilisées c'est label encoder qui permet de remplacer donc voilà si vous avez des variables catégoriques plutôt qualitatives bah vous faites l'encodage comme ça et ça marche bien. Bref alors je pense que maintenant Oui. s'il vous
Speaker A
plaît. C'est le modèle le modèle qui a choisi euh la catégorie pour euh Vergica et oui, c'est label encoder qui choisit aléatoirement. C'est-à-dire pour vous l'essentiel peu importe 0 ou 1 ou 2 l'essentiel c'est que chaque valeur il a
Speaker A
un code mais après par la suite quand si je connais le code je peux connaître la valeur donc ici il y a pas de problème.
Speaker A
l'essentiel. Je veux modifier comment je veux modifier pour Virginica je veux donner zéro et pour tu n'as pas tu es vrai si tu veux faire si tu veux faire ça tu peux ne pas utiliser ne pas utiliser ça d'accord tu peux ne pas utiliser
Speaker A
label encoder et dans ce cas-là tu vas le faire manuellement enfin manuellement tu vas faire quelque chose comme ça tu vas dire par exemple DF on va comparer C'est exactement vous allez faire quelque chose comme ça DF de outcome OC
Speaker A
par exemple égal à quoi ? Égal DF DF de la colonne euh spaces. On va faire quelque chose comme apply et on va faire une fonction comme ça, c'est-à-dire pour euh voilà lambda si la valeur de spaces x de point
Speaker A
et après vous faites ça quelque chose. Si x égal cette valeur, je donne é à à telle valeur je donne 1 et après vous faites ça. Bon, si si vous vous continuez à faire ça, c'est à peu près
Speaker A
ce que fait ici label encoder. C'est à peu près ça. Alors maintenant, il faut juste dire que la valeur peu importe est-ce que c'est 0 la 1 l'essentiel c'est que j'ai chaque catégorie là une valeur parce que d'ailleurs ce qui
Speaker A
m'intéresse moi c'est la vraie valeur. La vraie valeur c'est c'est spaces. OK. Donc à mon avis bon ça c'est pas c'est pas c'est pas important. Donc l'essentiel label encoder euh bon c'est ça ça vous permet de de faire cette
Speaker A
opération. Alors donc maintenant on va essayer donc de si vous voulez vous pouvez faire encore du data analysis en regardant la distribution de chaque colonne, c'est très utile. Alors par exemple, je vais utiliser ces bornes SNS point je vais utiliser dispot.
Speaker A
Alors displot c'est permet de de vous représenter l'histogramme l'histogramme de chaque de chaque colonne. Alors quelle est la colonne qui m'intéresse ?
Speaker A
charge. Par exemple, si vous voulez représenter la colonne de F de pétale lente en centimèt, ben ça vous donne ça. Ça, c'est l'histogramme. C'est-à-dire pour cette colonne là, bah vous avez par exemple le entre et et 1 virgule tel.
Speaker A
Voilà le nombre de il y a voilà le nombre de de c'est-à-dire de d'instances. Entre cette valeur et cette valeur, il y a le nombre d'instances.
Speaker A
Comme ça vous donne une idée, est-ce que quel type de distribution ? On a les distributions comme je disais donc en statistique, il y a différents types de distributions qui sont assez connues et parmi les plus populaires, c'est les
Speaker A
distributions normale. Généralement les distributions normales, c'est les distributions qui qui ressemblent à une cloche. Alors, si généralement vous voyez qu'il y a une distribution sous forme d'une cloche, ça veut dire que c'est un très bon signe. comme quoi
Speaker A
celui qui a fait le l'échantillnage, celui qui a collecté les données, il a il a il a pris il a vraiment pris le temps de prendre c'est-à-dire tous les échantillons. Et donc etci, c'est une distribution normale, on peut appliquer
Speaker A
des lois de la distribution normale, mais ça c'est des statistiques, je vais pas rentrer dans les détails mais bref, ici donc c'est juste pour regarder la distribution.
Speaker A
Alors, si vous voulez représenter pour toutes les colonnes, ben vous utilisez tout simplement DF. Vous voyez ici ?
Speaker A
Alors, ça c'est pas bon. Pourquoi ? Parce que il me fait tout ça dans le même euh dans le même graphique. Alors, ce que ce que ce qu'on va faire, on va pas faire ça, mais on va d'abord
Speaker A
extraire le X et le Y, n'est-ce pas ? Alors, c'est ce qu'on va faire. Donc, pour nous, à quoi est égal le Y ? Notre output, c'est DF. C'est quelle colonne ? C'est outcome le le Y le le output. Et c'est
Speaker A
quoi le X ? Notre X grand X. Et bien tout simplement grand X, je vais prendre C DF dans lequel je vais supprimer quelle colonne ? Je vais supprimer la colonne outcome, je supprime spaces et je supprime le ID.
Speaker A
Alors, je vais utiliser cette DF point euh drop colons normal les colons que je vais supprimer et ben je vais voilà, il y a virgule, il y a la colonne spaces et la colonne ID.
Speaker A
Voilà. Alors, ça c'est important. Donc maintenant, je connais pour mon modèle, je j'ai les input et les outputs. Le X c'est les inputs et le output pour nous c'est Y. Alors maintenant ce que je vais faire c'est que je vais représenter par
Speaker A
exemple l'histogramme de uniquement pour les inputs. Bah ce que je peux faire c'est de vous pouvez utiliser par exemple euh ce qu'on va faire si vous voulez récupérer euh si vous voulez faire colonne par colonne, ça vous savez
Speaker A
comment faire. Donc vous utilisez par exemple Cborborne ou tout simplement Ouais cborne SNS point displot. Displot c'est la distribution. La colonne c'est X. Qu'est-ce qui m'intéresse dans X ?
Speaker A
C'est pétal lent. Alors je fais ça. Donc j'ai j'ai la distribution et vous pouvez faire la même chose encore pour les autres. Sinon généralement quand vous avez beaucoup de colons, vous faites une petitte boucle. Alors ça c'est pour
Speaker A
faire une petite boucle. Donc je peux récupérer les colons. Alors que sont les colons ?
Speaker A
C'est X pointc colons. C'est-à-dire si vous voulez récupérer les colons d'un data frame, on peut utiliser euh colons comme ça. Et si vous voulez afficher les colonnes, vous faites colons comme ça.
Speaker A
Et vous pouvez voir ici donc quelles sont les colonnes ? Vo je vois les colonnes comme ça. Vous pouvez faire la boucle comme ça. Fort pour chaque colonne in.
Speaker A
Colon de points. Je vais faire tout simplement cborn point dis plot de DF de quelle colonne ? C'est-à-dire ici donc je vais parcourir toutes les colonnes pour chaque colonne dessiner donc le displot. Je j'exécute si vous exécutez ça, ça vous
Speaker A
donne, voyez, si vous avez une vingtaine une vingtaine de de une vingtaine par exemple de features, bah vous voyez donc avec une petite boucle comme ça, ça permet d'afficher toutes les les distributions de toutes les features. Et là, je vois par exemple c là on peut
Speaker A
dire que c'est pas c'est pas lente, il se il s'approche d'une distribution normale. C'est on cherche cette cloche là qui fait comme ça la cloche fameuse cloche. Ça c'est presque une distribution normale. Ça c'est à peu près. Bon, ça c'est à peu près mais en
Speaker A
tout cas j'ai une idée. Mais après si vous voulez rester là, bon on peut y rester mais ici juste pour qu'on qu'on ait une idée sur ça. Bon après ce qu'on va ce qu'on va faire c'est de d'utiliser
Speaker A
les en fait chercher est-ce qu'il n'y a pas une forte corrélation entre le entre les colonnes parce que si si vous vous prenez un dataset vous n'avez aucune certitude. Il se peut qu'il y a une colonne qui dépend
Speaker A
fortement d'une autre colonne. Alors si dans votre dataset vous normalement les variables X doivent être des variables indépendantes, n'est-ce pas ? les variables x, les caractéristiques de X, c'est ce qu'on appelle les variables indépendantes. Alors que le Y, c'est une
Speaker A
variable dépendante. C'est-à-dire quoi dépendante ? C'est Y, il il est il dépend de X parce que c'est une fonction de X. Y = f(x) en quelque sorte. Cette fonction f, c'est celle qu'on cherche en réalité. cette fonction qui permet de
Speaker A
lier les entrées et les sorties. Et donc pour ça pour savoir ça, vous pouvez chercher si vous cherchez x point euh vous appelez x majuscule, la fonction s'appelle correlation comme ça. Vous voyez ici donc c'est ça vous retourne
Speaker A
une matrice de corrélation. Alors si vous voyez donc ça vous retourne une matrice de corrélation. Je vois par exemple entre ces pâes ces palentes et ces pales lentes. Vois le coefficient de corrélation il est égal à quoi ? Égal 1.
Speaker A
Pourquoi c'est 1 ? Parce que c'est 1. Parce que voilà et la variable égale elle-même, n'est-ce pas ? La la corrélation entre cou et cou c'est 1.
Speaker A
Donc c'est-à-dire vous allez voir une matrice avec des colonnes, c'est il y a que des 1. C'est normal. Mais après ce qui nous intéresse, c'est ici, c'est-à-dire euh c'est-à-dire le par exemple est-ce qu'il y a une forte corrélation entre ses pâes
Speaker A
avec par exemple c'est pas lente ? Non, il y a 0- 0. Si vous voyez que il y a une valeur qui est proche de 1, par exemple ici par exemple il y a 0,87.
Speaker A
Alors 0,87, c'est-à-dire pétale lente, il est et et il y a une forte corrélation, mais ça veut pas dire quand est-ce que vous allez dire vraiment s'il y a une très forte corrélation quand vous avez des valeurs de
Speaker A
0,98 99 alors 80 avec par exemple ici vous voyez ici donc il y a une forte corrélation entre pétal 8 et pétal lent. Alors ça euh c'est juste pour pour vous dire que quand on va essayer de de faire notre
Speaker A
modèle, une fois que si on voit par exemple que le modèle donne des des mauvais résultats, on va dire tiens je vais revenir sur les fortes corrélation, je vais supprimer vous vous supprimez une colonne et vous créez votre modèle.
Speaker A
Mais croyez-moi, donc généralement 96, c'est toujours on la garde. C'est-à-dire c'est pas parce que mais si vous vous trouvez par exemple 0,99, alors là il faut vraiment euh euh poser un point d'interrogation.
Speaker A
OK. Bon alors, sauf que cette matrice là, si vous voulez la représenter se forme d'une ce qu'on appelle une hit map. Oui. Pour les les mauvaises corrélations, est-ce qu' est-ce qu'ils sont toujours moins de de un ? Oui, le
Speaker A
c'est-à-dire on dit que soit modé quoi que ce soit l'exemple dans travaille jusque-là il y a pas de jusqu'à pas on parle pas de modèles, je parle juste j'ai des variables des variables indépendantes et j'ai des variables dépendant une variable dépendante. Dans
Speaker A
les variables indépendantes, je vais chercher est-ce qu'il y a une forte corrélation entre ces variables. Alors généralement, si vous voyez que le le coefficient de corrélation n'est pas très proche de 1, vous pouvez dire à la rigueur ce que vous pouvez dire ici dans
Speaker A
les commentaires. Si vous vous rédigez un rapport, vous créez un marque mark down. Et si vous vous faites par exemple vous dites quelle corrélation on constate ?
Speaker A
On constate qu'il y a une forte une forte corrélation entre par exemple c'est pâ entre ça et ça et pétale 8. Ça c'est des remarques que vous notez parce que normalement dans le notebook c'est fait euh vous faites encore il y a également une forte
Speaker A
corrélation une forte corrélation entre par exemple pétal lente aussi et et lente. OK. Alors, si vous exécutez ça, c'est euh donc ça c'est juste voyez donc en face de chaque résultat, vous créez un on crée généralement un commentaire dans
Speaker A
lequel on écrit un peu le les c'est-à-dire une remarque parce que ça c'est un data scientiste. Euh vous voyez avec vos yeux mais vous vous êtes un spécialiste mais les gens qui vont lire votre rapport et il faut leur il faut
Speaker A
leur euh montrer un peu ce que vous avez remarqué. Oui. Il y a il y a quelqu'un ?
Speaker A
Oui, l'effet de la corrélation négative. Alors si c'est pareil en fait la corrélation ça peut être positive ou bien négative. L'inverse. Comment ça va affecter entre les variables ? Voilà les l'essentiel c'est que la la corrélation ne doit pas dépasser un
Speaker A
c'est-à-dire que ça soit positif. Euh si si c'est négatif, vous allez dire il est euh la la corrélation est négative et après vous dites la corrélation est positive. Mais si vous voyez qu'il est proche de 1, vous dites
Speaker A
il y a une très forte corrélation entre ces variables et ces variables. C'est-à-dire je le mets mais cette information là peut-être je vais revenir par la suite pour décider est-ce que je vais supprimer cette colonne ou pas. Bah c'est très simple. C'est comme
Speaker A
si par exemple je vais vers dataset et par erreur j'ajoute une colonne j'ai dupliqué deux fois n'est-ce pas ? Vous avez une colonne que vous avez dupliqué deux fois mais après quand vous regardez la corrélation vous allez trouver un
Speaker A
Oui. Euh c'est juste pour par rapport à positif négatif. Normalement la la corrélation positive c'est lorsque les deux variables évolu dans le même sens.
Speaker A
C'est ça. Dans le sens dans le sens contraire. Tout à fait. Exactement. Tout à fait.
Speaker A
Oui. Euh positif, ça les deux variables évoluées dans le même sens et négatif dans les les sens différents. Tout à fait. C'est bon. Alors, en tout cas, si vous voulez représenter la matrice de corrélation euh un peu avec un graphique
Speaker A
oh là là avec un graphique qui est plus avec un graphique qui est beaucoup mieux, vous allez utiliser la fameuse quoi ?
Speaker A
Hitmap. Hitmap. Hitmap, c'est tout simplement dans Cborne, vous avez une un graphique qui s'appelle Hitmap qui permet de de représenter mieux. Alors, comme vous l'avez constaté aujourd'hui, donc c'est une révision, même le projecteur, il ralentit le rythme et comme ça, on
Speaker A
est sûr de d'accompagner avec nous le maximum de gens. Est-ce que jusque là il y a pas de question ? C'est clair. Parfait.
Speaker A
Alors du moment que c'est clair. Donc si vous voulez représenter comme je disais vous pouvez utiliser SNS cbor point hitmapit map qu'est-ce qu'on va représenter forme d'une hit map ? X point corrélation parce que ça correlation cette fonction il retourne un data frame
Speaker A
que vous voyez là c'est déjà suffisant pour faire une lecture mais hitmap il est il vous donne ça une avec des couleurs et après ici on va mettre maintenant un note égal à tru c'est-à-dire si vous voulez afficher les
Speaker A
les valeurs les valeurs ici c'est l'annotation et après si vous voulez Euh après vous pouvez mettre les couleurs et cetera mais ici donc la la vous voyez ici donc tout ce qui est euh alors c'est pas c'est pas en fait
Speaker A
color ici donc c'est map c'est map et après vous mettez par exemple reds quelque chose comme ça et là vous voyez donc la valeur la plus forte c'est c'est un rouge foncé et vous allez surveiller tout ce qui est rouge foncé c'est
Speaker A
c'estàd la corrélation tout ce qui est qui va vers le clair c'est des des faibles corrélation. Voilà. Alors, je pense que ça c'est on a fait un peu quelques préraitement ici dans cet exemple là.
Speaker A
Maintenant, on va passer au modèle. Alors, pour créer un modèle de classification, donc vous avez euh différents modèles. Ben le premier c'est euh c'est la logistique regression.
Speaker A
c'est la régression logistique qu'on peut utiliser ici. Alors, on va tester maintenant quatre ou cinq modèles euh et ça serait l'occasion de vous expliquer les différents modèles. Alors, from cycit learn euh lig euh linear regression. Alors, on va
Speaker A
importer linear regression, c'est la régression linéaire. Alors pour utiliser maintenant vous voyez donc créer le modèle l'entraîner après le score c'est trois lignes. Vous allez créer d'abord le modèle donc je vais l'appeler LG par exemple linear regression LR c'est pas logistique c'est
Speaker A
pas linéaire. Lineéaire c'est la régression n'est-ce pas mais la régression ça c'est autre chose parce que ici ce qu'on va utiliser une régression. Non, la régression c'est quand on a une valeur quantitative of l'output, c'est-à-dire une variable continue. Par exemple, on
Speaker A
va prédire le prix d'un appartement, ben le prix ça peut être entre 100000 et je sais pas quoi. C'est une valeur continue. Vous voulez prédire le la durée de vie euh je sais pas la durée de d'un patient dans un dans dans par
Speaker A
exemple dans une clinique, on veut prédire des valeurs. Mais si si vous voulez faire la classification, c'est logistique régression.
Speaker A
Alors, logistique regression, on peut également l'appliquer pour les les modèles multiclasses. Donc, on a on l'a déjà appliqué pour un classifieur binaire, mais également on peut l'appliquer pour le le multicasse. Alors, maintenant pour travailler ça, ben qu'est-ce qu'on va
Speaker A
faire ? On va utiliser logistique regression LR é=al logistique regression. Ensuite, on va euh faire un fit.
Speaker A
Mais vous savez que si vous voulez faire un fit, il va falloir d'abord découper, il va falloir diviser votre dataset en une partie pour l'entraînement et une partie pour les tests. Alors c'est ce qu'on fait généralement euh c'est ce que je vais
Speaker A
faire d'abord. Alors pour faire cette opération donc je vais faire from cycit learn modèle selection import. On va importer d'abord la fameuse méthode euh qui s'appelle train test split. Euh alors cette fonction, elle est très utile parce que qu'est-ce
Speaker A
que je vais faire ? Ben je vais lui dire je vais prendre euh trend test split, je vais lui donner mon X et mon Y et je vais lui demander de me diviser ce dataset en deux parties. La la la partie
Speaker A
des tests, c'est test size, c'est 0,3. Ça veut dire quoi ? 0,3, ça veut dire je vais garder 30 % des données pour les tests. Pour le test exactement et les 70 % restant, c'est pour le l'entraînement.
Speaker A
Et cette fonction là, il va vous retourner quatre variables. La première, je vais l'appeler X trend comme ça. La deuxième s'appelle Y trend plutôt X test, pardon. X trend X test.
Speaker A
Y trend Y test égal à ça. C'est-à-dire quand vous faites test split, il il va vous donner le X trend le X test, n'est-ce pas ? C'est comme si vous prenez votre tableau Excel soi-disant et vous allez le diviser. Il
Speaker A
y a 30 % des lignes, je les garde pour tester mon modèle et les 70 personnes, je vais l'utiliser pour entraîner le modèle.
Speaker A
Alors, si vous voulez que ce ce cette division vous donne toujours le même résultat, vous allez mettre random state et vous mettez une valeur quelconque.
Speaker A
Vous mettez 1 2 3 je sais pas quoi. C'est-à-dire si vous si tant que c'est random state 1 2 3 4 à chaque fois que vous exécutez cette instruction, qu'est-ce que ça vous donne ? ici. Donc parce que j'ai pas importé ça je
Speaker A
pense c'est ça et j'ai pas exécuté cette ligne. C'est normal parce que il me dit ça. Alors c'est-à-dire si vous avez une valeur de random state, ça veut dire que à chaque fois si si j'exécute cette cette opération, ça va diviser mon
Speaker A
dataset toujours de la même manière. Je vais obtenir le même résultat. Supposants, j'ai remarqué après que mon euh le le modèle donne des mauvaises performances. Peut-être je n'ai pas pris les bons les bonnes valeurs pour l'entraînement. Bah qu'est-ce que je
Speaker A
vais faire ? Je vais arriver là, je vais mettre une autre valeur. Si je change la valeur, ça ça divise encore. C'est-à-dire ici si si ça c'est juste pour pour dire que tout simplement je mets une valeur quelconque pour fixer un exemple de de
Speaker A
découpage de split. Alors maintenant, une fois que vous faites cette opération maintenant on va créer notre modèle from cycit learner euh linear model je vais importer logistique regression. J'exécute et après donc je vais créer mon modèle. Ça c'est le
Speaker A
modèle égal logistic regulation. On va utiliser modèle pointfit. Alors fit c'est l'apprentissage. Apprend des exemples input ou des exemples output et je lui demande cherche-moi la fonction mathématique qui va lier ses entrées et ses sorties.
Speaker A
C'est ça fit. Cherche-moi un modèle proche, le plus proche possible qui permet donc de de lier les entrées et les sorties. Alors X trend Y trend, donc je donne le X et le Y et lui il fait l'apprentissage. Une
Speaker A
fois qu'il fait la bon ça l'apprentissage, bon voyez ici parce que bon ça ça passe vite, il y a pas de problème. Maintenant je vais regarder le score. Si vous voulez regarder le score, vous pouvez utiliser model score
Speaker A
directement. Vous lui donnez x trend Y trend. Alors et vous faites par exemple print quelque chose comme ça. Je vais afficher le score. Normalement le score il calcule.
Speaker A
Donc vous savez dans le la classification il y a Ecuracy, il y a recol précision et score. Donc les les mesures dont on avait parlé et qui permettent de mesurer les performances d'un modèle. Alors ici quand est-ce qu'elle est on l'utilise quand vous avez
Speaker A
un dataset équilibré. Si vous avez un dataset équilibré, écurz est suffisante pour parce que ça sert à rien de chercher les il faut un score et tout ça parce que le dataset il est déjà équilibré. Et ici donc ici écur ici égal
Speaker A
train égal égal à ça. Alors vous voyez ici donc nous sommes euh déjà logistique régression il vous donne un résultat de 97 % de performance. C'est très bon.
Speaker A
C'est-à-dire, je vois déjà que ici le modèle quand vous avez un modèle qui est performant à hauteur de 97, c'est un bon signe. Mais ça c'est uniquement on a testé avec quelle données ? Avec les données d'entraînement mais je dois le
Speaker A
tester maintenant avec les données de test. Ça veut dire quoi les données d'entraînement ? C'est que vous êtes en train de le tester avec des données qu'il a déjà vu pendant l'entraînement.
Speaker A
Alors maintenant, on va le tester avec des données qu'il n'a jamais vu et on va voir est-ce qu'il est bon. Ben, on fait la même chose. On va faire copiercoller et à la place de ici extreme, vous allez donner X test Y
Speaker A
test. Alors, ça c'est test. Vous exécutez et là vous voyez par exemple pour l'entraînement vous avez 0,97 % et pour les tests vous avez 03 %. Ça veut dire que votre modèle bon c'est déjà bon quand vous dépassez 90
Speaker A
c'est bon mais on peut faire mieux. Alors justement pour faire mieux euh nous allons, je vous ai dit tout à l'heure, supposant vous faites ça, vous faites vous changez cette valeur de random state, vous la changez, vous exécutez
Speaker A
encore, regardez les valeurs, est-ce qu'elles vont changer ? C'est-à-dire ici, donc j'ai fait les données de d'entraînement, j'ai 97 et les données de test, c'est 97. Parce qu'en fait l'idée principale, c'est que euh c'est l'aléatoire, il va découper et
Speaker A
cette fois-ci il est tombé dans des données d'entraînement qui sont les plus représentatives euh ce qui fait ce qui donne quelque chose comme ça. Et mais après moi aussi pas suffisant, on va essayer de de tester avec les autres
Speaker A
modèles. OK. Donc nous allons regarder au lieu de logistique Regr on va regarder les autres modèles. Euh mais avant ça, oui, s'il vous plaît, quand est-ce qu'on utilise donc les les paramètres métriques accuracy train accuracy rec Ah, je vais vous oui,
Speaker A
je vais vous l'expliquer. Alors, je vais revenir justement si vous voulez par contre visualiser le le record et les les autres métriques. Il y a une fonction qui s'appelle qui s'appelle model selection. Alors, on va l'importer ici. Donc, on va faire
Speaker A
from cyc learn matrix je pense. Matrix learn. Alors, import. Alors, je vais importer classification report.
Speaker A
Donc classification report, il il va vous permettre de calculer en fait de calculer toutes les mesures écurc le le fo score recall et précision et comme ça après vous avez tout et après c'est à vous de dire qu'est-ce que
Speaker A
je vais utiliser. Alors donc si vous voulez utiliser classification report voilà comment vous allez faire. Vous allez d'abord faire par exemple faire la prédiction. Je vais prendre par exemple pred trend est égal égal le modèle point predict. Alors predict quoi ? C'est x
Speaker A
trend. Ça veut dire que mon modèle il a déjà appris. Je vais lui donner X et je vais il va me prédire un résultat. C'est-à-dire il va me prédire pour chaque fleur est-ce qu'il s'agit de vergicolore ? Est-ce
Speaker A
qu'il s'agit de ça ou ça ? Et puis je vais faire pour test plutôt pred test à quoi est égal ? C'est modèle point predict euh x test x test.
Speaker A
Alors ici donc vous voyez donc j'ai je fais ma prédiction pour les données d'entraînement et je fais la prédiction pour les données de test et puis je vais utiliser classification report.
Speaker A
Classification report. Qu'est-ce qu'on va lui donner actuel ? C'est quoi ? C'est le Y trend c'estàdire le vrai le vrai les vrais output c'est Y. Et ce qu'il a prédit c'est quoi ? PR pred donc je lui donne, c'est-à-dire le
Speaker A
output tri et ce qu'il a prédit et après il va les comparer et quand il va les comparer, il me donne symétrique. Il me donne ce tableau là mais vous allez faire un print si vous voulez afficher ce tableau classification report qui est
Speaker A
très utilisé. Alors ici donc j'ai pas euh j'ai pas exécuté ça encore. Ici je dois réexécuter et ça vous donne ça. Alors euh comment vous vous arrivez donc en fait à lire ça ? Alors déjà si vous si
Speaker A
vous regardez euh notre notre écurci que nous avons ici, il est là. Vous voyez ?
Speaker A
Donc écure ici c'est 0 97 mais ici il vous donne le détail il vous dit par exemple pour la classe zéro la classe zé il a accuracy de de de 1 c'est-à-dire quasiment pour la classe 0 il a prédit les bonnes valeur
Speaker A
c'està-dire la classe 0 il se trompe pas par exemple pour la classe 1 il est à 95 % il y a quelques pour la classe 2 il est à 96 et si vous faites la moyenne ça vous 0,97. Alors, c'est pareil ici pour la
Speaker A
précision. Alors, je rappelle juste parce qu'il y a quand même une question qui est posée. Alors, pour le euh précision euh voilà.
Speaker A
Alors ici donc vous voyez bien euh ici donc quand vous avez un modèle de classification euh donc j'avais parlé déjà de ça. Donc par exemple vous avez un modèle pour lequel vous avez le réel par exemple c'est zé et le prédit c'est
Speaker A
zé quand c'est zéro donc c'est ce qu'on appelle les trous négatifs. OK par exemple c'est réel c'est 1 il a prédit 1. C'est un tr positif, c'est-à-dire c'est vrai, il a il a bien prédit quand c'est zéro par exemple alors qu'il a
Speaker A
prédé un. Donc c'est ce qu'on appelle un false positif. Euh la dernière fois donc j'avais corrigé donc je reviens sur ça.
Speaker A
Donc quand on fait un false par rapport à la prédiction et non pas par rapport au au réel, j'avais déjà corrigé ça dans la vidéo parce que j'ai inversé la dernière fois et ça peut vous arriver hein. C'est c'est vraiment si vous
Speaker A
faites pas bon c'est juste une norme il faut que ça soit Heureusement il y a quelqu'un qui avait fait la remarque sur Classroom donc j'ai dû corriger. Alors le false négatif ici pourquoi c'est un false négatif ? parce
Speaker A
que en réalité c'est un 1 mais le modèle il a prédidé combien ? Zé zé c'est un false, c'est faux mais négatif parce que c'est zéro et donc après si vous avez les trous positifs les false après on
Speaker A
crée ce qu'on appelle la matrice de confusion confusion et la matrice de confusion dans laquelle vous représentez les trop positifs les les trop négatifs les fals le nombre de falses positives et le nombre de falses négatives. Alors, dans notre cas, on va on va afficher
Speaker A
notre matrice de confusion, on va l'afficher et on revient vers les métriques. Alors, si vous voulez représenter la matrice de confusion, donc on aura besoin euh alors je supprime ça. J'ai besoin d'importer from cycit learn euh matrix import
Speaker A
confusion matrix. Alors voyz donc ça c'est confusion matrix. Si vous si vous voulez utiliser, je vais utiliser confusion matrix. Qu'est-ce qu'on va lui donner actuel ? C'est quoi ? y trend et le prédit c'est pred pred trend.
Speaker A
Si vous faites ça, vous allez avoir une matrice. Regardez cette matrice c'est ça. C'est les trop positifs. C'est les trop positifs, n'est-ce pas ? Ça veut dire quoi pour la classe ? Combien de combien combien de cas qui sont plutôt
Speaker A
de la classe zéro qui sont prédit 0 ? C'est 35. et combien de de fleurs qui sont de type 1 qui ont été prédites plutôt 1 c'est 35 ça c'est de OK et après vous voyez donc ici donc vous voyez ça c'est les les
Speaker A
trous euh les trous positifs ça c'est plus ce n'est plus un classifieur binaire c'est un classifieur multi class ça c'est les positif mais le reste c'est des fals n'est-ce pas alors ici donc ça c'est alors si vous voulez représenter
Speaker A
la matrice de confusion avec hitmap, c'est beaucoup mieux. Confusion matrix comme ça cm égal à ça. Et après encore, vous utilisez SNS euh hitmap cm. Donc ça c'est votre la matrice de confusion. Et après euh vous ajoutez un
Speaker A
note égal à true. Vous voyez donc 35 là c'est là où il se trompe. Alors je vais mettre des couleurs différentes.
Speaker A
C'est C map Cap alors red c'est une chaîne de caractère. C'est ça s'écrit d'ailleurs pas comme ça.
Speaker A
Reds euh c map. Bon alors qu'est-ce qui qu'est-ce qui manque ? Red. Ah c'est majuscule R S. Non. c'est R majuscule et cetera. En tout cas, si vous regardez la documentation, vous pouvez voir un peu ça c'est plus un peu plus visible.
Speaker A
Alors, je vois ici donc le les tr positifs, le et après les autres, c'est les fals positifs, les falses négatifs.
Speaker A
Alors, ici, donc vous voyez donc euh actuel euh donc ici 0 et qui sont 0, c'est 35. euh le nombre de zéro qui qui plutôt euh le nombre de zéres qui ont été prédit euh le nombre de 1 qui ont
Speaker A
été prédé c'est 0. Et là vous voyez donc si vous cherchez le nombre d'erreurs qu'il a commise, il y en a deux ici il y a 2 + 1, c'est-à-dire sur le total de combien ? De 105. Sur le total de 105 il a fait
Speaker A
combien d'erreurs ? Il s'est trempé trois fois. de ici et une ici. Ce qui a donné à ce qui a euh permis de calculer ce 80 euh 97 %.
Speaker A
OK. Alors maintenant, je reviens juste au métrique. Donc maintenant du moment que si vous comprenez ce que c'est la matrice de confusion parce que toutes les métriques de classification ils sont calculées sur la base de matrice de confusion. Si vous voulez voir comment
Speaker A
les trucs sont calculés comme ça, regardez ce qu'il fait. Par exemple ici pour pour la la prise pour récol récolle qu'est-ce qu'il fait ? Il va prendre cette valeur là 35 d'accord ? Si horizontalement divisé par la somme ça fait combien ? 35/ 35 ça donne
Speaker A
1. Vous prenez par exemple pour la classe 2, vous prenez 31 et 1 divisé par le total et c'est quoi le total ? 33 33 Alors, si vous faites 31 divis par 33, ça va vous donner euh ça va vous donner
Speaker A
ça 0,80 euh plutôt, c'est ça ? 0,94. Vous pouvez faire les calculs. Si par exemple, si vous prenez euh pour celle-là euh 36 divisé par combien ? 37, ça va faire cette valeur. Alors, H c'est pour l'école.
Speaker A
Pour la précision, vous faites verticalement, c'est-à-dire vous prenez cette valeur 35 divisée par la somme, ça fait c'est 1. Vous voyez donc ici, c'est c'est de c'est c'est 1. OK ? Alors si vous prenez euh 31 divis par le total,
Speaker A
ça fait 31 di par 32. 31/ 32, ça va vous donner ici 0,97. Et puis ici, vous allez prendre 36 di par 38.
Speaker A
ça va vous donner 0,95. Et cette valeur là, ça provient d'où ? C'est le nombre le nombre d'échantillons de type 0, c'est 35.
Speaker A
C'est-à-dire dans le training data 7, rappelez-vous, normalement au total, on avait combien ? On a 50 50, n'est-ce pas ? Mais sur le le split qu'on a fait notre dataset de d'entraînement, il y a 70 voilà, il y en a 35 qui sont de type
Speaker A
0. Il y a 33 qui sont de type 1 et 37 qui sont de type de type 2. Donc le total le total le nombre de le nombre de lignes que nous avons dans le dataset c'est 105. Ça c'est quoi ? Ça c'est la moyenne
Speaker A
de Ça c'est la moyenne de curie n'est-ce pas ? Alors la moyenne si vous prenez maintenant précision si vous faites la moyenne alors ici il y a deux moyennes si vous voulez il y a ce qu'on appelle macro average eted
Speaker A
average. Alors pour le macro aérus c'est la moyenne comme ça c'est 1 plus ça plus ça divisé par 3 macro a précision ils sont compte là le tableau il est présenté comme ça donc regardez làbas c'est je t'explique
Speaker A
cherche les valeurs mais il y a rien qui manque. C'est juste pour parce que écurci bah ici écurci ça concerne ça ça en fait ça c'est une valeur à part c'est é oui c'est éteint bon écur ici de toute façon il
Speaker A
dépend pas de il dépend pas normalement ce tableau là c'est il fallait que ça soit décalé parce que on peut comprendre que écure ici c'est la moyenne de il faut un score n'est-ce pas ici d'accord ok mais curie tout
Speaker A
simplement a la la valeur de 0,97. Est-ce que est-ce que c'est clair jusqu'à présent ? Bah vraiment le freinage comme ça parce que cette séance là, je l'ai faite justement pour donner l'occasion de un peu de voilà de
Speaker A
rafraîchir un peu les concepts. Attends s'il te plaît, je vais d'abord répondre à une question et après je te donne la parole. Donc euh je complète et après je réponds à ta question. Alors ici donc si je vois la précision la précision c'est
Speaker A
le macro averige. Le macro average c'est quoi ? C'est tout simplement c'est la moyenne de ces valeurs. 1 + si vous faites 1 + 0,97 0,95/ 3 ça donne macro average et vous avez weed average. Alors average c'est quoi ?
Speaker A
c'est cette valeur là multiplié par le nombre de d'échantillons cette x 35 plus cette valeur multiplié par le nombre 33 + 0,95 m par 37/ 35 + 33 + 37 ça vous donne ici c'est la même valeur mais parfois c'est pas la même
Speaker A
valeur pourquoi parce que ici d'av c'estàdire indépendamment indépendamment du nombre d'échantillons pour chaque classe comme ici il se trouve que les le les le nombre de de chaque classe sont très proches, ça donne mais si vous cherchez le 4e chiffre après la virgule,
Speaker A
vous allez voir c'est pas la même chose ici pour les deux premiers chiffres après la virgule, ça vous donne la même la même chose. Donc je vois ici pour le moment je vois à peu près c'est les mêmes valeurs parce que si vous avez un
Speaker A
dataset qui est équilibré même quand on a fait un split c'est-à-dire il a respecté l'équilibre entre les classes.
Speaker A
Donc ce qui explique ce qui explique que le macro average et le wed average la moyenne c'est c'est la même chose. Donc l'essentiel c'est que ici vous avez ça c'est votre précision, ça c'est rore. Alors maintenant c'est quoi un
Speaker A
score ? Ben je je répète maintenant c'est quoi écur ici ? Ça c'est les formules. C'est les trop positifs plus les tro négatif divisé par le total. C'est-à-dire quoi ? Bah c'est-à-dire tout simplement regardez votre matrice de confusion
Speaker A
c'est 35 + 31 + 36h divisé par le total c'est-à-dire divisé par 35 + 36 + 36 plus même + 2 + 1 comme quoi écure ici n'est-ce pas que vous voyez ici bon ça c'est la précision il
Speaker A
est d'ailleurs score il a calculé 97 7 et puis vous avez comme je disais écureci il est il a un sens quand vous avez un dataset équilibré un dataset équilibré c'est-à-dire qu'est-ce que je vois écure ici je vois juste le nombre le le nombre
Speaker A
de le nombre de fois le nombre de fois que le modèle a fait juste par rapport au total des des prédictions. S'il a il a tout juste par rapport au total c'est un c'est 100 %.
Speaker A
Mais je ne vois pas est-ce qu'il s'est trompé dans cette classe ou bien dans l'autre classe ? Est-ce que c'est un false négative ou bien false l'essentiel ? Est-ce que c'est juste ou bien c'est pas c'est pas juste ? Généralement, si
Speaker A
vous avez un dataset équilibré, écurser, c'est bon. Mais si le dataset n'est pas équilibré, on va plutôt chercher les deux les deux métriques. Alors je rappelle les deux métriques principales, il y a précision et recol. Alors prion sa formule c'est ça c'est le nombre de
Speaker A
trop positifs divisé par les trop positifs plus les fals positif. Alors ça ça va vous donner le score le score la précision alors que le rolle c'est les trop positif divisé par les trop positifs plus les fals négatifs. Donc vous voyez donc la
Speaker A
différence entre précision et rco prion on va prendre les par rapport au false positif les falses positifes les erreurs pour lesquelles il a détecté par exemple qu'il est malade.
Speaker A
Supposons que moi je cherche est-ce que le patient est malade ou pas ? Donc je vais m'intéresser uniquement au aux erreurs pour lesquelles le patient n'est pas malade et il les a détecté mal. Mo les fals positif. D'accord. Et donc si j'ai ça
Speaker A
ici donc prion on s'intéresse on s'intéresse au false positif alors que dans RCO on va s'intéresser au false négatif. les forces négatives. Par exemple, le patient n'est pas malade et il a détecté malade. Et après dans la pratique, c'est
Speaker A
à vous de dire qu'est-ce qui est grave ? Qu'est-ce qui est grave ? Le cas où le patient n'est pas malade, il l'a détecté malade ou bien le patient n'est pas malade, il l'a détecté malade. C'est ça les problèmes. Par
Speaker A
exemple, le cas des patients, alors vous dites là, moi je dois pas tolérer qu'un patient en réalité il est malade alors qu'il a détecté non non malade. Par exemple, si vous voyez que dans votre métier, c'est ces casl qu'il ne faut pas
Speaker A
rater. Par exemple, le Covid s'il y a quelqu'un qui a Covid peut pas, tu vois, j'ai quelqu'un qui a qui a qui qui a le Covid mais moi je l'ai je l'ai détecté.
Speaker A
Non, il n'a pas de Covid, c'est très grave. Pourquoi ? parce que c'est si je le lasse, il va impacter le voyez donc ça ici c'est un false quel false là il a covid mais moi je l'ai détecté il n'a
Speaker A
pas le le covidé c'est un false négatif donc les fals négatives les fals négatives pour moi con un minimum il faut les minimiser et si je veux je cherche à minimiser les falses négatives et ben je vais utiliser Quoi ?
Speaker A
Est-ce que je vais utiliser la précision ou bien récolte ? Regardez finalement les forces négatives rec.
Speaker A
Donc ici je vais dire alors mon modèle je vais l'entraîner l'entraîner jusqu'à ce qu'il me donne un record qui est le maximum possible.
Speaker A
il a dit par exemple un récol qui est très fort ça veut dire que mon modèle ne rate pas les false négatives parce que vous voyez donc si si le false négative tend vers zéro le nombre tend vers zé ça veut dire
Speaker A
que les coles tend vers 1 et si si le false positif tend vers é le la précision tend vers 1 donc maintenant et ça c'est un élément qui est très important c'est en fonction des problèmes. Alors je viens de
Speaker A
l'exemple covid c'est un bon exemple parce que le covid le covid moi je l'ai détecté ma fich le covid c'est très grave parce qu'il va contaminer les autres mais supposons ma fich covid et moi je l'ai détecté covid c'est pas
Speaker A
aussi grave que ça pourquoi parce que je vais le garder je vais encore faire des analyses après je vais trouver finalement qui n'est pas malade. Est-ce que vous voyez la problématique ?
Speaker A
La cybersécurité c'est la même chose. Il faut est-ce que est-ce que je vais minimiser par exemple j'ai une une intrusion que c'est une c'est une attaque alors que moi je l'ai détecté ce n'est pas une attaque ou bien par
Speaker A
exemple l'intrusion ce n'est pas une attaque et je l'ai détecté une attaque. Donc les domaines il y en a ceux qui vont vous dire moi ce qui m'intéresse c'est de minimiser les falses négatives.
Speaker A
Il y en a d'autres qui vont vous dire moi ce qui m'intéresse c'est de minimiser les falses positives. Qu'est-ce qui va faire la différence bien la précision et récolte ? Alors accur généralement, c'est-à-dire quand vous avez le nombre de de tassat
Speaker A
équilibré, donc forcément le euh c'est-à-dire ça ça peut être une mesure qui est qui est qui est acceptable.
Speaker A
Alors le fo score, si vous voyez que les deux vous intéressent, c'est-à-dire je ne veux je ne veux rater ni les falses négatives ni les falses positives, ça veut dire il faut chercher un équilibre entre les deux. Et pour chercher un équilibre,
Speaker A
vous allez utiliser score. If score. La formule di score, c'est celle-là. C'est deux fois la précision fois récolte divisé par précision plus récolte.
Speaker A
C'est une formule, il dépend de donc finalement il score c'est un équilibre entre la précision et et record. Bon ça j'avais je l'avais beaucoup expliqué, je le répète encore une fois. Pourquoi je répète une deuxième fois ? parce que vous avez
Speaker A
d'abord posé la question mais en même temps c'est c'est une partie qui est très importante parce que si vous faites une une étude de machine learning alors si vous faites une une étude de machine learning et bien tout
Speaker A
simplement l'une de des étapes c'est définir les métriques d'évaluation tout ça alors quelles sont les métriques d'évaluation avec quoi on va mesurer que nos modèles que nous sommes en train de chercher est-ce que est performant ou pas. Donc il faut déjà
Speaker A
fixer. Vous dites dans notre cas notre métrique la plus la plus importante c'est recall ou bien celle-là. Et sur cette base je vais entraîner le modèle.
Speaker A
Ben je regarde le recall il est 0,96 mais je vais changer les paramètres. J'essaie de de changer jusqu'à ce que le recall atteint le maximum possible. Une fois que j'atteins le maximum possible de de récol pour moi moi donc je suis satisfait. Donc je peux
Speaker A
laisser je peux déployer ce modèle. Voilà. Alors donc je reviens ici. Donc je pense que ça c'est si vous voulez c'est euh c cette partie là elle est importante. Vous avez une idée comment on calcule tous ces paramètres.
Speaker A
Vous avez le on va dire la matrice de confusion et après maintenant on veut faire mieux.
Speaker A
C'est-à-dire ici donc j'ai 0,97 mais je dois tester avec d'autres modèles. Mais parce qu'il y a pas que logistic regression, on va utiliser d'autres modèles. Alors parmi les modèles, il y a on va commencer par le plus simple KNN.
Speaker A
Alors Kin donc c'est from fromit learn KNN euh plutôt near neighbors comme ça n neighbors. Voilà.
Speaker A
Import euh voilà. K Neborse classifier. Alors ça c'est KNN. Alors donc je rappelle que KNS c'est l'un des modèles de machine learning de classification et c'est un modèle vous savez bon ça me ça me laisse l'occasion de rappeler une chose c'est que dans les
Speaker A
modèles de classification juste noir qui deux catégories il a ce qu'on appelle les les classifieurs curieux n'est-ce pas et les classifieurs paresseux c'est un peu ça alors curieux Alors les classifieurs les les qui sont enthousiastes curieux ou bien
Speaker A
enthousiastes enthousiaste c'est mieux un classifieur enthousiaste c'est quoi les donc je reviens au slide c'est comme ça je vous je vous repositionne.
Speaker A
Regardez c'est ça. Donc vous avez dans les classif les classifiants enthousiastes vous avez la régression logistique SVM machine vecteur machine.
Speaker A
Vous avez les arbres de décision, les réseaux neuron artificiel les classif enthousiastes. Ça veut dire quoi enthousiaste ? C'est que quand vous faites l'entraînement, quand vous faites l'entraînement, qu'est-ce qu'il fait le modèle ? Il va chercher à chercher dès que la fonction
Speaker A
mathématique qui va lier les entrées et les sorties. C'est-à-dire que l'entraînement, ça prend du temps.
Speaker A
L'entraînement, il va il va faire des boucles, il va chercher, il va changer les paramètres jusqu'à ce qu'il trouve le modèle qui représente mieux votre votre dataset.
Speaker A
Mais dans la prédiction, la prédiction c'est instantané. Quand vous lui dites prédict, vous lui donnez quelque chose et il va vous parce que une fois qu'il a appris, vous lui donnez input, le le output, il le calcule rapidement. C'est
Speaker A
instantané. C'est-à-dire la la prédiction, ça prend pas du temps. C'est les les les classifieurs enthousiastes.
Speaker A
Par exemple, les résontificiels, c'est un classifieur qui est enthousiaste. Pourquoi ? parce que dans le l'entraînement, il va prendre du temps à entraîner. Mais une fois qu'il a entraîné, vous avez un modèle qui donne des réponses instantanées, c'est-à-dire
Speaker A
en temps réel. Alors que vous avez d'autres modèles qui sont ce qu'on appelle paresseux lazy. Parmi ces ces ces modèles paresseux, c'est KNN. Et bien KNN qu'est-ce qu'il fait quand vous faites l'entraînement, quand vous faites prédict, il ne il ne va rien calculer,
Speaker A
il va juste prendre le dataset, il va le charger en mémoire. Donc le dataset il le charge au mémoire.
Speaker A
J'ai les input et j'ai les output. Et quand vous allez lui dire prédicton appelle les cas voisins les plus proches. Il va calculer la distance entre le le les différentes classes et après il va déterminer ce ce cet
Speaker A
échantillon là il est proche de cette classe ou bien il est proche de cette classe. Je vous explique. Regardez.
Speaker A
Alors, KNN, voilà, ici donc j'ai le le slide euh ici alors regardez ici. Donc ça c'est c'est un exemple qui montre un peu comment fonctionne KNN. Supposons vous avez un petit dataset. Vous avez un dataset dans lequel je dans lequel j'ai X, Y et le
Speaker A
label le output. Alors, j'ai X Y par exemple. Ça c'est la la catégorie A, le la A. Et ça c'est c'est des points B.
Speaker A
Alors, si vous représentez ce nuage de point, vous allez trouver ce qui est en bleu, c'est la catégorie A et ce qui est en vert c'est la classe, c'est des points de la classe B. Alors, avec KNN, euh, quand vous dites par exemple fit
Speaker A
fit, c'est-à-dire l'apprentissage, qu'est-ce qu'il fait ? Il ne fait que charger ce dataset. il va le charger en mémoire comme ça, il le charge, il y a pas de il cherche pas à faire des calculs. Mais quand vous allez dire
Speaker A
prédict par exemple, je lui donne un point de x = 2,6 y = 2 le point en noir, je vais lui dire cherche-moi est-ce que h le point est-ce qu'il est proche est-ce qu'il il appartient à la catégorie A, à la classe A ou bien à la
Speaker A
classe B. Regardez ce qu'il va faire, c'est très simple. Il va prendre ce point-là, il va prendre il va calculer la distance par rapport à tous les points. Il va calculer la distance par rapport à ce point, la distance par
Speaker A
rapport à ces points et la distance par rapport aux autres points. Et vous allez avoir ça. Vous avez votre data set et après vous avez une une colonne distance. Vous avez par exemple ça c'est la distance par rapport à ce point, la
Speaker A
distance par rapport à ce point et cetera et cetera. Donc il fait il va parcourir tous les échantillons du dataset, il va calculer la distance.
Speaker A
Après maintenant quelle distance ? Il y a la distance Euclidienne, il y a ce qu'on appelle la distance Manhattan. Et donc mais en réalité quand vous avez un datasat qui contient plusieurs features, on calcule la distance entre deux vecteurs. Donc
Speaker A
forcément c'est mais en tout cas donc je calcule la distance. Une fois que je calcule la distance on va regarder ici KNN il a un paramètre qui est très important c'est K.
Speaker A
Alors si par exemple dans notre cas K = 3 K = 3, il faut toujours prendre K impaire. Pourquoi ? Parce que si vous prenez K é= à 3, c'està-dire on va chercher les trois points les voisins les plus proches. C'est ça l'idée
Speaker A
principale. Je vais chercher parmi les nuages de point les tr points les plus proches le point. Regardez, si je prends les distances, je vais faire je vais faire sorte, je vais classer je vais classer le par rapport à quoi ? Par
Speaker A
rapport à à la distance. Si je classe ce tableau là par rapport à la distance, je vais trouver les points les plus proches les points pour lesquels la distance est faible, n'est-ce pas ? Je vois ici 1,16 1,40 1 donc je vais prendre les points
Speaker A
les plus proches au mois premiers, n'est-ce pas ? Ici, je prends l' premier, je vais regarder H le point il est de quelle classe. Voilà. Donc regardez. Donc j'ai ici donc j'ai calculé la distance à mo le les points
Speaker A
les plus proches au mo les trois premiers parce que je les je les ai classé. Vous voyez ces sortent je vais classer par rapport et je vais prendre les trois. Si k é= à 3, je vais prendre les trois les
Speaker A
trois plus les trois plus proches. S'il est égal à 5, je vais prendre les 5.
Speaker A
Alors si je prends les les trois, je vais dire h le point il il appartient à quelle classe réellement ? A il appartient à quelle classe ? B A donc la classe majoritaire. Donc je vais dire que le
Speaker A
point il appartient à la classe A. Je décide. Donc il il va vers le plus proche voisin. Les plus proches voisin.
Speaker A
Moi je suis plus proche de ce groupe, n'est-ce pas ? Mais il y a il y a deux personnes à qui je suis très proche. J'ai une personne qui est plus proche. Et ben je vais aller vers je le
Speaker A
modèle, il va vous dire que vous appartenez à ce à ce groupe. KNN. Donc vous voyez donc c'est un modèle qui est paresseux. paraîs. Ceux, c'est-à-dire quand vous faites fit, il ne fait rien. Parce que faites attention parce
Speaker A
qu'il y en a beaucoup qui utilisent KNN pour parfois des datas qui sont très grands et c'est faux, c'est pas bon.
Speaker A
Parce que si vous avez un dataset où vous avez des millions d'enregistrements ou bien des milliers, ça veut dire quoi ? Ça veut dire que quand vous allez faire la prédiction, regardez la prédiction, il va parcourir, il calcule
Speaker A
les distances et ça prend du temps. Et vous savez que l'intelligence artificielle, le plus important c'est la prédiction. c'est que quand il y a un événement, il va vous dire ça c'est c'est une attaque. Je vais pas attendre
Speaker A
5 minutes pour me dire "Ah, c'est une attaque, c'est trop tard." C'est c'est donc c'est-à-dire le la prédiction doit être instantané. Mais quand est-ce KNN il est bon ? Il est très bon pour des dataset qui ne sont pas très grands.
Speaker A
Donc vous voyez donc c'est pour notre datas set 150 échantillons, c'est pas beaucoup. vous avez 200, 300, 400 euh 500, c'est pas un problème parce que euh la prédiction euh c'est c'est rapide. Alors, on revient à notre ici.
Speaker A
Euh donc ici, je vais importer le classifieur et je fais la même chose. Regardez ici. Donc je vais faire copiercoller ici. Mais je fais ça.
Speaker A
Contrôle C, contrôle V. Et là, au lieu d'utiliser logistique regression, je vais utiliser quoi ?
Speaker A
K neighbor classifier. Mais regardez ici, c'est un hyper paramètre. À quoi est égal de voisin ? C'est 3. Alors si vous mettez 4, c'est pas bon. Pourquoi c'est 4 ? Parce qu'il se peut qu'il trouve de deux et après il va vers donc un
Speaker A
paire, c'est-à-dire il ma 3 2. Donc de toute façon, il va décider. Alors ici donc je vais prendre 3 par exemple euh je fais fit et je vais calculer le score. Alors ici donc il n'est pas défini parce que j'ai pas exécuté
Speaker A
ici. Voyez le le pour le pour les données d'entraînement pour les les données d'entraînement le le modèle il est il est performant à hauteur de 95 %.
Speaker A
pour les données de test depuis tout à l'heure, vous voyez rien ? C'est ça ?
Speaker A
Bon, ça veut dire que le V du projecteur soit de la il faut de la maintenance, soit il faut le changer des Donc on va demander de changer le vue du projecteur parce que c'est pas normal.
Speaker A
Oui. Vous avez une question monsieur ? Oui. Oui. Oui. Est-ce qu'il y a une méthode pour bien déterminer c paramètres comme dans le cas de clas ? Alors, malheureusement euh de toute façon euh dans le alors dans machine learning, il n'y a
Speaker A
aucune méthode euh mathématiquement parlant qui permet de de déterminer les hyperparamètres, c'est-à-dire c'est c'est le les hyperparamètres généralement il c'est c'est des c'est des en fait c'est des paramètres qu'on détermine par euh si vous voulez de manière empirique. C'est l'expérience.
Speaker A
Par exemple, je vois ici, regardez le taux de de le le tau par exemple ici, il est de combien le taux de de performance 95 94 %. Ben, je vais changer K, je vais mettre 5.
Speaker A
J'exécute, je vois ici, je suis à 96 % et je vais mettre 7. 10. J'ai 95 là. Ça c'est 97 mais les tests c'est 95. Et je vais mettre je vais mettre 9 et vous allez changer jusqu'à ce que
Speaker A
vous trouvez euh les performances. Les données d'entraînement, c'est bon. Mais également ça doit être bon les données de test. Je rappelle bien, si vous avez un modèle qui est performant pour les données d'entraînement mais qui n'est pas bon les données de test, ça c'est ce
Speaker A
qu'on appelle le overfitting. Overfitting c'est surapprentissage. Surapprentissage ça veut dire que votre modèle il a vraiment cherché dès que la fonction mathématique qui va passer sur tous les points d'entraînement mais il rate les les données qu'il n'a pas vu.
Speaker A
Donc euh et ici donc le notre idée c'est de trouver un en fait un score. Alors ici donc vous avez une idée sur comment fonctionne en tout cas KNN. Alors voyez ici par exemple pour les données de test ici c'est un mais ça
Speaker A
veut rien dire. Pourquoi ? Parce que si vous changez le si vous changez le random state ici vous allez avoir un nouveau découpage. Vous voyez ici donc vous avez 98 et ça c'est 85. C'est-à-dire c'est c'est la random state le découpage entre les
Speaker A
données d'entraînement, les données de test, ça vous donne des valeurs comme ça. Mais déjà on constate que ça c'est un dataset qui est très simple, ça nous donne plutôt des bons résultats pour le moment aussi bien pour la la régression
Speaker A
logistique également pour le pour l'autre cas c'est KNN, n'est-ce pas ? Alors, mais on va faire mieux parce qu'il y a d'autres modèles qui peut-être qui vont nous donner au beaucoup mieux. Euh, on va utiliser SVM. Alors, SVM, c'est Oui, la batterie.
Speaker A
Merci. Ah, on a vu donc pour le cas de KNN, alors je vais utiliser SVM. Alors, en fait, SVM, c'est un modèle euh qui est également très très utilisé.
Speaker A
Le en fait SVM c'est un c'est un modèle qui va chercher à chercher un épireplan ce qu'on appelle il va rechercher les pierreplan qui sépare les différentes classes. Par exemple ici vous avez un ensemble de points en bleu et là vous avez un ensemble de
Speaker A
points en ver c'est deux classes. Bah l'idée principale c'est de de chercher ce plan là qui est en même temps plus proche à c'est-à-dire plus proche à ce groupe et plus proche à à ce groupe.
Speaker A
Parce que si vous cherchez un plan qui s'est parlé de classe, je peux avoir ce plan là et c'est parler classe, je peux avoir plusieurs plans qui s'est parlé de classe. Mais quel est le plan qu'on va prendre ? Bah, on va prendre le plan qui
Speaker A
est, on va dire, le le plus si vous voulez le plan le plan le qui doit être en même temps proche le groupe et proche l'autre l'autre groupe. C'est-à-dire en quelque sorte si vous cherchez il y a trois plans par exemple qui sont qui qui
Speaker A
séparent, vous allez prendre le plan le plus loin c'est-à-dire le le le plus loin de du point le plus proche. Par exemple, ici euh vous voyez ici, bon, je vois un exemple là.
Speaker A
Je vois par exemple un dataset dans lequel je représente en X, c'est la hauteur la hauteur des des personnes en centimètango. La hauteur la longueur la taille la taille la taille en centimèt ici je vois le la longueur des
Speaker A
cheveux et je voudrais savoir est-ce que c'est un homme ou bien c'est une femme c'est plus simple c'est un cas plus simple regardez ici. Donc je vois bien déjà dans le ces échantillons ceux qui ont la hauteur des cheveux plus grands.
Speaker A
Donc c'est c'est le c'est-à-dire c'est le groupe de c'est des femmes et euh c'est-à-dire ceux qui ont euh ceux qui ont les cheveux plus courts, c'est des femmes. Et après, je voudrais savoir par exemple, j'ai un échantillon, je
Speaker A
connais sa taille plus la longueur de ses cheveux. Je voudrais savoir est-ce que c'est une c'est un est-ce que c'est un homme ou bien une femme ? Et bien tout simplement avec SVM, qu'est-ce qu'il va faire ? Il va
Speaker A
chercher à déterminer h le le le plan qui va séparer les les deux classes. Il va trouver il y a pas qu'un seul. Celui-là, c'est un plan qui s'est parlé de classe. Celui-là, c'est un plan qui s'est parlé de place. Mais
Speaker A
qu'est-ce qu'il va prendre ? Au final, il va chercher jusqu'à ce qu'il trouve le plan le plan qui s'est parlé de classe mais qui est en fait le plus au c'est-à-dire entre les deux, c'est-à-dire en en centré ou bien en qui
Speaker A
est en tout cas plus proche plus proche aux deux classes. Encore si vous vous raisonnez par rapport à une classe, c'est-à-dire le les pierplan le plus loin au point le le plus proche et donc comme il doit être plus loin de l'autre
Speaker A
et plus loin de l'autre donc il va se situer au milieu. Donc bref, mais voyez donc quand il s'agit d'un quelque chose de simple comme ça, c'est facile de trouver cette droite mais quand il s'agit d'un d'un truc
Speaker A
multidimensionnel, vous voyez donc par exemple ici ça c'est en 3D parfois c'est c'est difficile de trouver donc le un simple un plan de D. Donc il faut trouver carrément le l'hyperplan l'hyperplan ça peut être trois dimensions 4 5 6 8 et cetera.
Speaker A
C'est-à-dire, c'est si vous imaginez ça dans le dans euh le c'est-à-dire dans en géométrie et ça va être une surface un peu bizarre, c'est-à-dire avec le plan bizarre qui qui va séparer de classe. Donc c'est un algorithme qui est
Speaker A
très connu SVM. Euh donc on va l'utiliser et on va regarder comment pour trois classes.
Speaker A
Ouais que ça soit trois classes parce que par exemple ici vous avez une classe de classe mais il faut chercher ce plan là qui va qui va l'hyperplan. C'est pour ce que là d'ailleurs on on l'appelle l'hyperplan. les PP plan, c'est-à-dire
Speaker A
il peut séparer de 3 4 5 ses classes. Donc c'est c'est un algorithme qui qui donne de très bons résultats sur un certain nombre de situations. Bon, en tout cas, donc si vous voulez appliquer SVM, vous avez un peu que un peu
Speaker A
d'explication ici si vous voulez y revenir. Euh donc pour SVM, vous allez faire la même chose.
Speaker A
from cycet learns svm c'est vector machine import sv classifier parce queen fait svm ça peut s'appliquer pour la classification et également la régression et donc ici SVC c'est pour le classifier et vous faites copiercoller et vous remplacez ici SVC bon ici donc il y a pas de
Speaker A
nombre de voisin hein, vous vous calculez. Alors, regardez, vous avez 97 pour les le les données d'entraînement, 91 pour SVM. Donc, il nous donne euh 97 pour les données d'entraînement, 91 pour les données de test. Mais il y a
Speaker A
quelque chose qui est très important dans SVM. Il y a un paramètre qui est très important qui s'appelle le kernel.
Speaker A
En fait maintenant le kernel euh généralement euh vous allez commencer par un kernel qui s'appelle linéaire.
Speaker A
Alors ici on on voit déjà qu'on a c'est un problème linéaire. Si vous changez le kernel en linéaire, vous exécutez.
Speaker A
Regardez. Alors ici vous avez les données d'entraînement, vous êtes à 99 % et les données de test à 95 %.
Speaker A
Alors, en plus de linéaire, il existe plusieurs. Il y a polygonal, il y a précomputed RBF. Euh donc par défaut Sigmoïd, vous pouvez tester mais je vois par exemple Sigmoid, ça donne de très mauvais résultats.
Speaker A
Alors ici, donc si vous vous utilisez Linear euh pour ce cas-là, donc je ça donne 99 %, on est presque proche de 1 pour les données d'entraînement et pour les données de test, c'est 95.
Speaker A
Et si vous changez le découpage, vous pouvez avoir quelque chose de mieux ici. Alors ici. Donc je fais encore un split différent et je teste. Alors ici donc je vois ça c'est encore mieux parce que là je vois un
Speaker A
équilibre entre les données d'entraînement et les données de de test. Donc je peux dire que ça B la configure bon pour moi ce modèle est il est bon.
Speaker A
Alors, il y a un autre modèle qui est très très important, c'est les les réseaux de neuron artificiel. C'est ce qu'on appelle le multilayer perceptron.
Speaker A
Alors, je rappelle juste que le fonctionnement des réseaux neurones d'ailleurs aujourd'hui l'un des modèles les plus exploités dans le l'intelligence artificielle, c'est justement ces ces réseaux de neuron.
Speaker A
Alors, d'abord juste un petit un petit rappel en fait un un neurone artificiel un neuron artificiel c'est une c'est une approximation du neurone biologique, c'est-à-dire on s'est inspiré un peu com fonctionne le neurone biologique. Un neurone biologique si
Speaker A
vous l'avez jamais vu, il est dans votre cerveau. Il y a des milliards de neurones dans votre cerveau. Vous avez ce qu'on appelle les les vous avez ce qu'on appelle les les dendrides, vous avez une partie qui s'appelle le soma,
Speaker A
c'est c'est le noyau. Et après vous avez l'axome. Et après qu'est-ce qui se passe ? C'est que les dendrites, c'est ce qui va lier le neurone avec les autres neurones. C'est-à-dire un neurone, il est lié à plusieurs neurones. Donc à
Speaker A
partir des dendrides, on reçoit les signaux des autres neurones. Et ces signaux là arrivent des autres neurones.
Speaker A
Ils arrivent là, on va faire quoi disons une une agrégation à une somme une sommation de ces signaux. Et si ce sign si la somme dépasse un seuil et ben le neurone il va émettre un W le signal
Speaker A
électrique. Donc votre cerveau, c'est comme ça qu' fonctionne. Il va émettre le signal 1, c'est-à-dire un signal électrique qui passait via ce qu'on appelle euh via la la l'axone. Et après ce signal électrique, il va arriver vers les autres neurones et et comme c'est
Speaker A
comme ça qu'on arrive à penser l'être humain, c'est comme ça qu'il marche. Alors maintenant donc ici pour l'approximation en fait les neurones artificiel c'est tout simplement on a modélisé ça avec quoi ? Bon un neuron artificiel contient de de de opérations.
Speaker A
Donc un neuron reçoit des inputs. Donc des inputs par exemple X1, X2, X3 et chaque input. Vous voyez donc H c'est ce qu'on appelle les dendries les les les connexions ont un poids le paramètre le poids de de
Speaker A
c'est-à-dire et vous avez ici le neuron qu'est-ce qu'il fait ? il va d'abord faire une sommation la sommation, il va prendre x1 multiplié par W1 + X2* par W2 le poid le la connexion + X3* par W3, ben ça va vous donner une somme.
Speaker A
Donc vous voyez donc le neurone artificiel, il reçoit des entrées, il fait ce qu'on appelle une sommation pondérée, c'est-à-dire la somme des inputs fois le poids de chaque connexion la première. Et la deuxième étape, il va utiliser ce qu'on appelle une fonction
Speaker A
de seillage. Qu'est-ce qu'il fait la fonction de seage ? La fonction de siège, il va introduire ce qu'on appelle la ninearité parce que généralement les problèmes complexes ne sont pas linéaires. Donc pour introduire la non linéarité, qu'est-ce qu'il fait la
Speaker A
fonction de sillage ? Il va tout simplement tester. Par exemple, si la somme il la somme dépasse le seuil, il va la sortie ça va être 1. C'est c'est 1 sinon ça va être zéro. C'estàdire leur biologique on va émettre soit un signal
Speaker A
électrique le signal. Donc c'est à peu près ça. C'estàd si le som dépasse le seuil on va supposer que c'est c'est un sinon c'est zé et bien c'est ça c'est ça un neurone artificiel.
Speaker A
Donc le neurone artificiel maintenant les fonctions di le seage on peut utiliser une une quelque chose comme ça.
Speaker A
Si ça dépasse 05, 5, je fais 1, sinon c'est zéro. Mais il y a des fonctions, ce qu'on appelle des fonctions d'activation. Les fonctions de siè c'est ce qu'on appelle des fonctions d'activation. Et parmi les fonctions d'activation les plus populaires, les
Speaker A
plus utilisées, il y a sigmoï. Alors sigmoï donc c'est une fonction c'est ça, c'est 1/ exponentiel x.
Speaker A
Ça c'est la sigmaïde. Alors voyez donc cette valeur la sigmaï c'est une fonction qui varie entre 0 et 1. C'est-à-dire que quelle que soit la somme que vous allez avoir ici vous lui appliquez la fonction sigmoïde à la fin
Speaker A
ça va vous donner un nombre entre 0 et et 1. Et après par la suite donc entre 0 et 1 si ça dépasse 0,5 on va dire c'est 1. Si c'est inférieur à 0,5 c'est ça va être 0. Vous avez une fonction
Speaker A
d'activation qui s'appelle tangente hyperbolique alors tangente hyperbolique ça s'écrit comme ça 2 divis par 1 + exponentiel puissance - 2x - 1. Et après, il y a une fonction qui s'appelle reli Rio c'est très simple. f(x) é= 0 si
Speaker A
x est inférieur à 0 et égal à x même si c'est il est supérieur à à é alors c'est-à-dire pour r qu'est-ce qu'il fait t toutes tous les nombres qui sont qui sont inférieurs à zéro négatif il va les
Speaker A
rendre zéro et ce qui est positif il va il va le garder tel quel.
Speaker A
Donc c'est parmi les fonctions d'activation les plus populaires mais il y en a d'autres. Donc maintenant ça c'est un un un neuron artificiel et parmi les modèles les plus connus, il y a ce qu'on appelle le percepton. Alors en fait le perceptron
Speaker A
donc c'est un modèle vous voyez donc ça a été créé en 1957. Et maintenant votre intelligence, votre chat GPT, il fonctionne avec ce ce ce perceptron, c'est-à-dire avec des des neurones. Le principe en tout cas c'est donc c'est un perceptant, c'est quoi ?
Speaker A
C'est un classifiur binaire. C'est un classifiur binaire tout simplement. Qu'est-ce qu'il fait ? Il prend un ensemble un ensemble d'input, il fait la somme des inputs de manière pondérée avec les poids et puis il utilise une fonction d'activation et
Speaker A
cette fonction d'activation, il va me donner un output. Bon, la fonction d'activation, comme je disais, on peut utiliser une sigmoïde ha tangente hyperbolique ou bien rilo. Et bien tout simplement, c'est exactement ce que je viens de vous raconter, il fait la somme
Speaker A
et après il y a un seage en utilisant une fonction d'activation et et pris maintenant l'entraînement. Comment il fait l'entraînement ? Et ben l'entraîner, on va donner on va donner le le input. Voyz donc les input dans notre les input, il y a combien
Speaker A
d'entrées ? On a quatre variables d'entrée. C'est pas lente, c'est pas le 8, c'est pas le height. Donc on va donner x1, x2, x3, x4. Les valeurs au début les points on les connaît pas.
Speaker A
Donc on va prendre une valeur aléatoire. On va dire 0 n'importe quoi. On fait la somme et on applique la fonction d'activation. On va avoir output.
Speaker A
Maintenant, on va comparer le output qu'il a donné avec le output réel. la différence le output et celui qui l'a donné, ça va nous donner les l'erreur. Et maintenant paramètres les poids, les valeurs, je je change les poids et je
Speaker A
fais encore le travail, ça me donne le output. Je refais je refais je refais.
Speaker A
Imaginez, c'est comme si vous avez une boîte dans laquelle vous avez trois boutons, la quatre boutons, vous réglez, vous donnez input et vous regardez la sortie. Vous dites "Là c'est pas bon. Je je change le le réglage. Je je fais je
Speaker A
fais ça, je fais ça, je fais jusqu'à ce que trouve le les bonnes valeurs des poids, les connexions. Et quand je trouve les bonnes valeurs qui me donnent pour tous les exemples que j'ai, ça donne des des à peu près une sortie qui
Speaker A
est proche, ben je peux dire ça y est le le perceptron il a il est entraîné. Donc je lui donne le input, il me donne le output. Alors, sauf que on va pas changer Hashi de manière al parce que si
Speaker A
vous vous allez changer de manière aléatoire, vous allez rester là toute la vie. Donc a des algorithmes euh ce qu'on appelle euh les les algorithmes qui permettent de minimiser avec l'erreur.
Speaker A
Et parmi les les algorithmes, il y a euh ce qu'on appelle la descente du gradient. AC l'algorithme stocastique gradient descent la descente du gradient c'est l'un des algorithmes qui sont très populaires et qui permettent justement grâce à ces algorithmes de trouver
Speaker A
rapidement de trouver rapidement HC les poids qui vont minimiser les l'erreur c'est un algorithme qui est assez connu il est pas compliqué mais c'est un algorithme qui est utilisé par les réseaux neurones mais il y a pas que stoicque gradient
Speaker A
descente il y a d'autres algorithmes d'optimisation Adam. Euh, il y en a d'autres modèles qui sont très connus, qui sont utilisés. Les l'idée principale, c'est quoi ? On fait ce qu'on appelle euh le euh on fait on fait ce qu'on appelle
Speaker A
euh feed euh la plutôt rétro propagation propagation rétro. Voilà, c'est exactement ça. C'est la la propagation et la rétroagation. C'està-dire l'idée principale c'est que input ou qu ch la sortie, une fois que j'ai la sortie, j'ai l'erreur l'opération
Speaker A
inverse SGD, qu'est-ce qu'il fait ? l'erreur, il commence à revenir comme ça je et après il essaie de de corriger les poids et quand on arrive à on fait euh forward backward forward backwards jusqu'à ce qu'on trouve le le principe.
Speaker A
Bon, sans rentrer dans les détails, si vous voulez faire une implémentation from scratch de ça, pour les gens, c'est c'est bien de regarder mais ça sert à rien parce que les les librairies ont déjà il y a en fait ont implémenté ces
Speaker A
modèles. Mais ça c'est pour un un neurone H c'est quel neurone ça ? Ça c'est le percepton.
Speaker A
Mais pour modéliser un problème, ben un neuron n'est pas suffisant parce que si vous voulez euh avec un neurone, vous pouvez pas représenter des modèles complexes. Si vous avez un modèle linéaire simple, on peut le représenter par un perceptant. Mais par exemple,
Speaker A
dans notre cas, nous avons plusieurs variables avec un un classifieur. Bah, on va utiliser ce qu'on appelle un réseau de neurone. Et c'est quoi un réseau de neurone ? Bah, un réseau de neurone se compose de plusieurs couches.
Speaker A
Plusieurs couches de neurones. La première couche, c'est ce qu'on appelle la couche d'entrée. Donc c'est la couche qui va recevoir les inputs. Donc vous voyez donc ici chaque nor reçoit input.
Speaker A
Et les couches intermédiaires c'est ce qu'on appelle les couches cachées. Et la dernière couche c'est ce qu'on appelle la couche output. C'est la couche de sortie. Et comment ça se passe ? c'est que tous les neurones de chaque
Speaker A
couche sont connectés au neurones des couches suivantes. Par exemple, la sortie de ce neurone, il va vers les les input de tous les autres neurones et la sortie de ce neurone, il va vers les inputs de des autres des des couches
Speaker A
suivantes. Et la même chose ici, la sortie de ce neurone, il va vers les inputs de tous les autres neurones.
Speaker A
Et ben c'est à peu près on est en train de se rapprocher de ce qui se passe au niveau du cerveau. C'est une approximation. Et quand vous faites ça, c'est ce qu'on appelle vous êtes en train de de créer un modèle ce qu'on
Speaker A
appelle fly connected. Fly connecté, c'est-à-dire connecté entièrement. Ça veut dire quoi connecter entièrement ?
Speaker A
Chaque neurone de la couche est connecté à tous les neurones de la couche suivante. Ici, vous pouvez maintenant imaginer le calcul qui se fait.
Speaker A
Regardez, je donne ça les input, il fait ce point multiplie par ce poids plus euh la valeur euh plutôt plus ce x poids. Et vous voyez donc tous ces ces points là multipliés par les poids de ces connexions, le celui-là, il va faire la
Speaker A
somme et il fait l'activation. La même chose, la sortie, il va vers l'autre neurone et c'est tellement c'est tellement compliqué mais si vous cherchez à résoudre ce problème là, vous allez finalement c'est c'est la la solution, c'est un calcul
Speaker A
matriciel, c'est-à-dire pour trouver les poids de neuron, les poids. D'abord, si vous voulez entraîner ce modèle, il y a combien de il y a combien de paramètres combien combien de poids chaque connexion c'est un c'est un poids. C'est
Speaker A
pour GP modè généram 17 paramètres 17 bilions de connexion entre les normes vous imaginez plus le réseau est très grand plus le nombre de connexions devient très important plus vous allez avoir des matrices qui sont très gigantesqu et
Speaker A
plus vous aurez besoin d'utiliser des calculateurs qui ultra rapide. Donc pour faire et dans ce cas-là, on aura besoin d'utiliser les GPO. Les GPU, c'est des cartes graphiques euh qui contiennent des milliers de petits microprocesseurs et qui sont faites pour
Speaker A
accélérer le calcul matriciel. Faire parce que ADC SGD si vous voulez chercher les poids, il s'agit juste d'inverser des matrices, de calculer les déterminants de faire de l'algèbre linéaire et c'est comme ça qu'on peut trouver le les poids au moment de
Speaker A
l'entraînement. Et bien sûr, si vous avez beaucoup de input, beaucoup de neurones, le travail se se fait de manière itérative et ça ça prend un peu de temps. Voilà, ça c'est en résumé les réseaux neurones. Alors maintenant, si
Speaker A
vous voulez utiliser un un multilayer perceptron comme celui-là, ben on va le faire et on va regarder ce que ça va donner.
Speaker A
Alors la même chose vous allez faire from cycle learn neural network import mlp mlp multilayer perceptron. Alors bon si vous avez vu l'explication que je vous ai donné vous allez comprendre c'est quoi un c'est quoi un perceptron et c'est quoi
Speaker A
multilayer perceptant. Multilayer perceptran, c'est ça ? C'est-à-dire un perceptrant qui contient plusieurs couches et chaque couche, il faut choisir le nombre de neurones que vous voulez mettre. Bah du coup, donc c'est pour créer ce modèle, notre modèle ça va s'écrire
Speaker A
comme ça. Modèle est égal MLP classifier. Et après vous allez choisir maintenant. Voilà. Alors donc quand on crée un multilayer perceptant classifier, vous allez spécifier à paramètre, c'est euh voyez donc ici les les couches cachées. Alors déjà le
Speaker A
nombre de la couche d'entrée alors la couche la couche input la couche input on a combien les neurones parce qu'on a quatre variables quatre quatre quatre variables indépendantes n'est-ce pasoutput on a combien de neurones 3 parce que output la probabilité à la
Speaker A
fin output le premier par exemple c'estàdire la probabilité la classe la classe une le deuxème neurone il va me donner la la probabilité de la classe 2 et l'autre neurone il va me donner la probabilité de la classe 3 et je vais
Speaker A
prendre normalement si vous faites la somme des probabilités ça va vous donner 1. Et si vous utilisez la sortie comme ça, on utilise une fonction à la fin la sortie, on utilise W la fonction d'activation qui s'appelle soft max. Bah
Speaker A
soft max il vous donne des probabilités distribuées par rapport à différentes classes. Si vous faites la somme des probabilités, vous allez trouver. Donc c'est-à-dire dans notre cas, nous allons avoir la couche de sortie, c'est il y a trois classes. Il y
Speaker A
a trois classes, ça veut dire il y a trois neurones. Mais maintenant les couches cachées, c'est des hyper paramètres. Alors c'est à vous de mettre ce que vous voulez. Alors justement c'est ce qu'on va mettre ici.
Speaker A
On va dire par exemple je vais utiliser une couche input. La première je vais mettre par exemple 15 neurones. Je vais mettre 30 neurones. La deè je vais mettre par exemple 10 neurones et la trè je vais mettre par exemple 6.
Speaker A
Donc ici il y a mon réseau mon réseau maintenant il a fait les couches fait 5 input il y a trois couches caché plus output.
Speaker A
Alors maintenant après bon pour le moment ça c'est je vais le créer le modèle et vous faites la même chose ici.
Speaker A
Alors pour le reste fit. Alors ici donc vous avez pour ce ce réglage là vous avez 97 % et là c'est 93 %.
Speaker A
Alors ici vous avez un paramètre qui s'appelle le vous avez maintenant d'autres paramètres max iteration ça c'est important max alors ici normalement quand il fait l'apprentissage pour trouver les paramètres il cherche il cherche cherche mais dès qu'il atteint le par défaut il
Speaker A
va quitter alors ici donc vous allez vous allez mettre vous dites max il peut aller jusqu'à 3000 Vous voyez déjà vous avez euh amélioré, vous dites "Tu peux encore chercher à faire mieux, à trouver le le réglage par
Speaker A
exemple 10000 10000 alors je suis à une une performance de 98 % et après je vais lui dire je vais augmenter le nombre de Noron." Je vais mettre ici que peut-être pas toujours augmenté. Je vais mettre ici 22. Je vais mettre ici winon, je
Speaker A
vais mettre que deux couches. Et pour un problème plus simple, généralement comme ça, vous voyez donc pour un problème plus simple, vous n'avez pas besoin de mettre beaucoup de couches cachées. Mais pour des problèmes complexes, on va mettre
Speaker A
beaucoup de couches cachées avec beaucoup de neurones et après on détermine si vous voulez le le modèle le plus le plus approprié.
Speaker A
Il y a également le après maintenant il y a beaucoup de paramètres si vous voulez voir si vous voulez voir les paramètres de d'un modèle. Alors ici donc si je fais contrôle et je clique sur euh la classe
Speaker A
ben je trouve ici les paramètres. Tout ça c'est des commentaires. Tout ce qui est en rouge c'est des explications. Chaque paramètre ce qu'il contient. Alors si vous regardez par exemple, regardez c'est quoi la valeur par défaut de nombre
Speaker A
de les les couches. Si vous mettez rien par défaut, il va utiliser une seule couche avec combien de neurones ? 100.
Speaker A
L'activation, la fonction d'activation par défaut, c'est quoi ? Relio peut-être ici Relio ne ne n'est pas n'est pas bonne ben je vais utiliser ici activation égal par exemple sigmid il y a identité logistique rot tangent hyperbolique. Vous voyez,
Speaker A
donc vous changez le les fonctions d'activation sigmoï et vous cherchez euh ici le les ça c'est des hyperparamètres.
Speaker A
Maintenant, les réseaux neurones, ça résolve vraiment des problèmes complexes, mais à un moment donné, il faut il faut trouver les les bon les les épirp paramètres qu'il faut pour avoir ça. Il y a le kernel, il y a bon. En
Speaker A
tout cas, bon, pour ce genre de problème simple, généralement c'est déjà très bon. Vous voyez, on est déjà à 98 %. Euh on va pas mettre beaucoup de temps à trouver le bon réglage. Euh mais vous pouvez toujours vous vous amuser à
Speaker A
chercher jusqu'à ce que vous trouvez le le bon réglage. Et le le l'avant-dernier parce que quand même on a pris du temps. Quel les arbres de décision ? Alors les arbres de décision descision c'est également ils sont très utiles très
Speaker A
utilisés dans plusieurs domaines. Alors le principe des arbres de décision c'est quoi ? Regardez ici dans le les slides, vous allez trouver supposons supposons par exemple, je voudrais savoir est-ce que je vais est-ce que je vais porter avec
Speaker A
moi le le parapluie ou non ? La première des choses que je veux dire, je vais dire c'est le temps. Est-ce qu'il est plus vieux ? Est-ce qu'il est nuageux ou bien est-ce qu'il est ensoleillé ? Alors, je
Speaker A
fais d'abord un test pour moi. Donc, je vais voir le le c'est-à-dire le le temps. Alors, c'est les plus vieux, ça y est, j'ai déjà décidé. S'il pleut, ça y est, ça y est, j'ai donc je dois prendre le parapluie. S'il n si s' est
Speaker A
s'il n'est sinon s'il n'est pas s'il est ensoleillé. Donc c'est c'est vous voyez donc le le les les les arbres de décision la variable il va pas regarder toutes les variables qui la variable la plus importante et après il va dire s'il est
Speaker A
supérieur à cette valeur là ça y est donc c'est cette classe. Donc je n'ai pas besoin même parfois de regarder le c'està-dire il il arrive à décider assez assez facilement sur des caractéristiques mais par contre c'est sinon c'est nuageux alors si est nuageux
Speaker A
je dois encore voir est-ce qu'il est humide ou non s' est s'il est nuageux et humide je vais donc je vais prendre avec moi le le parapluie sinon je fais ça par exemple c'est pour attribuer les les motions les mentions par
Speaker A
exemple les motions par exemple pour des notes vous Vous allez dire si la note est inférieure à 10 point d'interrogation. Alors si la note est inférieure à 10 oui ou non ? Oui. Dans ce cas-là, est-ce que la note encore est-ce qu'elle
Speaker A
est inférieure à 7 ? Oui. Alors si c'est oui, c'est pas de rattrapage. Il y a plutôt euh Oui, c'est ça. Pas de rattrapage. Et s'il est supérieur, non, s'il est inférieur à 7, c'est rattrapage. Sinon, pas de
Speaker A
rattrapage. Alors, si s'il n'est pas c'est inférieur à 10, est-ce qu'il est maintenant inférieur à 12 ? Il est inférieur à 12. Donc pas de mention.
Speaker A
Sinon, est-ce qu'il est inférieur à 14 ? Dans ce cas-là, s'il est inférieur à 14, c'est mention bien. Si oui, est-ce qu'il est inférieur à 16 ? S'il est inférieur à 16, c'est c'est mentionne bien. Sinon, c'est mention très bien. Alors, ça c'est
Speaker A
vraiment un bon exemple pour expliquer l'algorithme des c'est comme ça qu'il fonctionne. Si oui, non, donc il crée ce qu'on appelle un arbre de décision.
Speaker A
Et donc si vous voulez utiliser donc le les arbres de décision, bah vous on fait la même chose.
Speaker A
From cycit learn point euh 3 import decision 3 classifier et puis vous faites la même chose. Donc vous fait vous créez le modèle.
Speaker A
Alors, decision 3 classifier et alors regardez une chose qui est sûre c'est que ces decision 3 dans la majorité des cas les données d'entraînement il va vous donner presque un. C'est-à-dire quoi ? Les données d'entraînement presque un.
Speaker A
C'est-à-dire c'est-à-dire pour les données d'entraînement c'est excellent. Mais les données de test parfois il vous donnent des des c'est-à-dire une prédiction qui est faible. Et si vous avez les données d'entraînement ça donne 1 et par exemple les données de test ça
Speaker A
veut 0,8 ça veut dire que vous avez overfitting. C'est-à-dire il s'est focalisé sur les données d'entraînement, il n'a pas cherché à généraliser. Bon pour lui les données, il cherche à trouver la courve qui va passer sur ces points-là et après bon ça c'est pas bon.
Speaker A
Donc si vous utilisez des signat, faites attention, il faut voir les pour les données d'entraînement et pour les données de test. Alors ici c'est bon parce que c'est un cas très simple parce que même pour les données de test on est
Speaker A
à 97 % et 97 % c'est c'est bon. Alors si vous cherchez à changer le le kernel, vous cherchez vous pouvez encore améliorer. Mais les les arbres de décision sont réputés sont réputés d'être de de tomber dans le overfitting,
Speaker A
le surapprentissage et dans le en fait dans le alors je vous ai donné le notebook ici.
Speaker A
classification. Alors ça c'est c'est des je pense. Ça c'est random forest et ça c'est ça c'est KNN MLP. Bon t tous ces exemples là vous les avez.
Speaker A
Alors ça c'est decision 3. Alors ce qui avec décision donc vous avez un paramètre qui s'appelle et plutôt c'est feature importance. Donc c'est-à-dire si vous voulez déterminer parmi les features quels sont les features qui ont plus de d'importance.
Speaker A
Alors, vous pouvez vous pouvez le vous pouvez le faire. Alors, ici donc ça devient un data frame si vous voulez. Je fais copiercoller parce que là c'est on est un peu Alors, vous allez juste prendre votre modèle contrôle X. Ah bon ça je laisse
Speaker A
je sépare. Alors vous prenez votre modèle et vous mettez feature importance et vous vous prenez les les noms des colonnes de X. Donc parce qu'on a on a notre X nom des colonnes et je vais créer un data frame dans lequel je vais
Speaker A
mettre bon pour ne pas compliquer la vie. Regardez d'abord si on affiche importance qu'est-ce que ça vous donne ?
Speaker A
Regardez donc la première fichure, la deuxè, la 3è et la 4e. Regardez ici quel est quelle est le la caractéristique qui qui est plus décisive pour pour décider est-ce que est-ce que c'est le c'estpâ ou bien euh ou
Speaker A
bien je me rappelle pas. Est-ce que c'est vergicolore ou je sais pas quoi. Et ben ici vous voyez c'est ça c'est la troisème. Et c'est quoi la la troisème ?
Speaker A
Alors ici donc c'est pour cela que je fais ici je fais les les noms des colonnes.
Speaker A
Je crée un data frame qui contient importance et les noms des colonnes, c'est les colonnes et je vais les classer. Je fais sort value c'est-à-dire je vais les classer par ordre d'importance. Alors donc voilà. Donc si j'affiche les les
Speaker A
importances, vous je vais avoir ici euh ça c'est df data frame, c'est mieux comme ça. Alors qu'est-ce que je vois ici ?
Speaker A
Donc je vois euh ici pétale lente centimè il est décisive à hauteur de 89 %. Ça c'est 0,08 et cetera. Donc finalement, si je vois bien, rappelez-vous, on avait parlé de PCA, donc PCA, c'est l'analyse composante principal.
Speaker A
Si on cherche parce qu'on a on a remarqué déjà qu'il y a une forte corrélation, il y a des corrélations entre les variables mais on voit déjà que il y a une variable rien qu'une variable toute seule il apporte à peu
Speaker A
près 90 % les informations. C'est-à-dire c'est déjà un signe comme quoi en réalité avec deux variables, on peut on peut régler le on n' pas besoin des quatre caractéristiques finalement peut-être on a besoin que de caractéristiques. Et si vous voulez
Speaker A
représenter ça, vous le représentez forme de de d'un graphique. Ça vous donne quelque chose comme ça. Alors, je vais initialiser ici l'index de du data frame. Ça me donne à peu près, il va ajouter une colonne qui s'appelle index qui représente qui
Speaker A
représente le nom des colonnes et la colonne importance qui qui montre l'importance. Et ça me permet de de représenter ça se forme de d'un graphique comme ça. J'utilise PLT plot.
Speaker A
Voilà. Donc ça me donne donc je fais un plot des c'est-à-dire l'importance de chaque caractéristique euh orientée horizontalement et ça me donne ça. Donc je vois déjà ici que pétale pétale lente en centimèt ça donne il a plus
Speaker A
d'importance le le dataset. Et enfin euh le dernier c'est les random forest parce qu'il faut pas rester là-dessus. Donc ici vous voyez donc ça c'est les arbres de décision. Autre chose, si vous voulez afficher l'arbre, l'arbre lui-même l'arbre, vous faites
Speaker A
ça. Alors ici, vous mettez votre modèle, faites une boucle plutôt ici euh tre point plot.
Speaker A
note c'est ça. Vous importez la fonction et vous faites plot tree. Vous lui donnez le modèle et vous me donnez la profondeur que vous voulez afficher, les noms des colonnes et la taille et cetera. Vous faites ça.
Speaker A
Alors si vous rappelez HC merci. Ah vous avez aussi le monsieur. Alors maintenant si vous voulez voir que votre modèle d comment il il décide lui il a il a il a créé son son arbre.
Speaker A
Alors si vous remarquez ici donc lui quand il a il a fait le l'apprentissage vous avez votre arbre ici c'est quoi de qu'est-ce qu'il fait la première des choses qu'il fait quand vous faites la prédiction il va regarder est-ce que
Speaker A
pétal laine centimè est-ce qu'il est inférieur à 2,35 est-ce qu'il est inférieur s'il est inférieur citrou bah il sait déjà quelle quelle classe c'est c'est même pas la peine de sinon il va tester par rapport à quoi est-ce que pétal est inférieur ou égal à
Speaker A
4,95. Donc avec fit, avec fit, c'est c'est avec fit, il il é cherche il essaie de trouver l'arbre qui permet de de décider. C'est à peu près ça. Donc je pense ça vous donne une idée. Et pour terminer donc vous avez le random
Speaker A
forest. Alors les forêts aléatoires. Alors c'est quoi le principe des forêts aléatoires ? Regardez ça c'est voilà. Alors, les forêts aléatoire, l'idée principale c'est quoi ? Vous savez que les les arbres de décision le problème c'est que vous avez un dataset
Speaker A
qui est très grand. Donc là, il s'agit de trouver un arbre qui est très qui est énorme, n'est-ce pas ? Un arbre de décision qui est énorme. Alors, avec les forêts à qu'est-ce qu'on va faire ? On va prendre un
Speaker A
dataset et bien on va faire des des sous échantillons. Je prends une partie d'un dataset le premier échantillon, le premier groupe, le deuxè, le 3è et chaque chaque échantillon, je vais prendre par exemple si un dataset qui contient 3000, n'est-ce pas ? Je vais
Speaker A
prendre le premier échantillon de 2000, le 2è, le 3è et pour chaque sous-échantillon, je vais créer un arre de décision.
Speaker A
C'estàd au lieu de de créer un arbre de décision qui est très grand, je vais créer trois arbres de de décision les forêt parce que un arbre bon c'est des forêts aléatoires mais sauf que ce que je viens de dire c'est
Speaker A
pas vrai parce que par exemple l'échantillon je peux sélectionner des données qui vont se retrouver dans les deux les deux ensembles. C'est-à-dire on se permet de répéter les mêmes les mêmes les mêmes lignes dans plusieurs arbres. On crée
Speaker A
plusieurs arbres de décision. On va entraîner chaque arbre de décision. Et quand on veut faire la prédiction, qu'est-ce qu'on va faire quand on fait la prédiction ? On va don demander à l'arbre 1 est-ce qu'il s'agit de la
Speaker A
classe A ou la B ou la C ? Il va me dire que ça c'est la classe A. Le deuxème arbre, il va me dire ça appartient à la classe B, à la classe A. Et le troisème, il va me dire ça appartient à la classe
Speaker A
B. Et qu'est-ce que je vais prendre ? Je vais faire ce qu'on appelle un vote soit le vote il il a qu'un deux arbres qui vont me dire que c'est la classe A, je vais prendre la classe A. Ben ça c'est
Speaker A
le principe de random forest. Random forest. Alors bon sans rentrer dans les détails, les algorithmes de random forest des algorithmes ce qu'on appelle de bagin.
Speaker A
C'est des ensembles. C'est-à-dire Ouais. Donc les sous échantillon il il dépend de quoi exactement de data. Non, je prends par exemple, regardez dans notre cas, nous avons 150 lignes, n'est-ce pas ? J'ai 150 lignes. Qu'est-ce qu'il va faire Rand dans Forest ? Il va prendre
Speaker A
par exemple 15 lignes, n'est-ce pas ? Les les 15 lignes, il crée un un un un S dataset. Les 15 lignes suivantes, c'est un autre sous dataset et cetera. Donc il va créer plusieurs sousdataset et pour ces 15 lignes il crée un arbre de
Speaker A
décision, n'est-ce pas ? Pour ces 15 lignes, il crée un autre arbre de décision et et il va faire ça pour créer plusieurs. On il va pas créer trois ou quatre, il va créer plusieurs. Et il se trouve que parfois il y a des lignes qui
Speaker A
se trouvent dans cette cet arbre. il y a des des qui vont se répéter dans plusieurs lignes. Donc c'est-à-dire les chantiers, il peut être répété dans plusieurs ceux ensembles. Et après des moments parce que c'est quoi le problème
Speaker A
des arbres de décision ? C'est quand vous avez beaucoup de lignes, il y a overfitting. Parce que les arbres de décision, si vous avez beaucoup de beaucoup de de d'exemples on va tomber dans le problème de le surapprentissage.
Speaker A
Donc au lieu de créer un arbre de décision qui avec beaucoup de d'échantillons, on va découper notre ensemble. On a un ensemble deéchantillons. Pour chaqueéchantillon, on va créer un arbre de décision. Et comme c'est un euh c'est un arbre de
Speaker A
décision qui contient pas beaucoup de d'échantillons, on va pas tomber dans ce problème de surapprentissage. Mais comment comment ça va ? Est-ce qu'on va faire confiance ? Et bien, on va faire un vote. J'ai par exemple 20 sous 20 arbres de décision.
Speaker A
Si par exemple 15 me dit me disent que c'est c'est bon, c'est c'est 1, bah je veux dire c'est 1. Donc c'est à peu près ça. C'est c'est pas aussi compliqué que ça mais c'est un algorithme qui marche
Speaker A
bien aussi. Alors on va l'appliquer et comme ça on aurait fait le tour de des algorithmes les plus le plus courant.
Speaker A
Pour le nombre d'arbres, le nombre d'arbres c'est c'est c'est un hper paramètre. C'est un paramètre. la même chose. Vous pouvez dire le maximum d'arbres que vous voulez faire, vous pouvez le fixer. Sinon, il le fait de manière euh vous lui laissez, il va
Speaker A
trouver un peu le la config qu'il qu'il faut. Alors ici donc je on va utiliser from cyc learn. Alors euh je sais pas si c'est random forest.
Speaker A
C'est c'est non c'est bagin. C'est c'est ensemble. Ensemble ensemble. Importe random forest classifier. Et vous savez maintenant on fait la même chose. Donc je prends ici ça prendre C. Donc ici donc je fais random forest classifier.
Speaker A
Oui oui bien sûr. Alors vous voyez ici donc j'ai quelque chose 100 % pour les données d'entraînement et 9 à peu près 98 % pour les les données de test et après vous faites vos vos conclusions.
Speaker A
Donc euh si vous voulez en en résumé euh donc ici vous allez nous sommes dans un cas relativement plus simple. C'est le dataset que nous avons fait nous avons quasiment un cas qui est linéaire. Donc on a vu que la majorité des modèles ont
Speaker A
donné des des résultats qui sont relativement très bons. Euh mais réellement vous voyez donc tout ce que je viens de vous faire copiercoller copier coller copiercoller, c'est la même chose. Mais au lieu de faire au lieu de faire copiercoller copie coller
Speaker A
copie coller, ce qu'on fait généralement on crée une seule fonction qui fait les opérations et on va faire une boucle. On va dire pour les modèles ça et ça et ça et ça. Fais-moi le travail.
Speaker A
Bah du coup donc vous allez avoir pour chaque modèle quelles sont les performances de chaque de chaque modèle et à la fin vous allez dire bah vous allez dire tout simplement quel est le modèle qui donne le meilleur résultat.
Speaker A
vous allez dire pour moi, je vais opter pour KNN ou là pour et cetera.
Speaker A
Et puis après par la suite si vous voulez améliorer euh il y a des il y a des algorithmes qui permettent de chercher les hyperparamètres.
Speaker A
C'est-à-dire parce que les hyperparamètres, comme je dis, c'est quelque chose de euh de empirique.
Speaker A
Empiriérique, c'est-à-dire je change, j'exécute et je regarde jusqu'à ce que je trouve le bon réglage. Mais il y a il y a des algorithmes euh qui vont vous permettre de dire supposant je voudrais faire varier le le cas de Kn jusqu'à 20.
Speaker A
Ouais, il il va faire des boucles, des boucles, des boucles jusqu'à ce qu'il trouve le la valeur du de l'hppire paramètre qui qui vous donne le meilleur résultat. Ah, parmi ces algorithmes, il y a ce qu'on appelle grid search, c'est
Speaker A
très connu. Alors, ça c'est on aura l'occasion dans des des exemples par la suite de l'appliquer, mais je pense euh que ce cet exemple là, ça résume un peu ce que ce que nous nous avons fait sur la
Speaker A
classification. Alors juste un dernier point peut-être que vous allez ajouter supposons vous voulez réduire la dimensionnalité di le le modèle. Donc on a déjà vu que pour réduire la dimensionnalité de de du dataset on va utiliser quoi ? PCA.
Speaker A
Alors PCA donc vous avez euh le clasurine, ben le principe le principe il est il est il est simple. Ben je fais tout simplement je vais importer d'abord PCA.
Speaker A
Alors, from it learn. Alors, dans quelle catégorie, vous me rappelez PCA, c'est dans quelle catégorie euh décomposition. Import PCA. Alors, on va dire PCA. Je voudrais par exemple euh créer PCA. Donc, je voudrais représenter Oui, allez-y. Il y a pas de
Speaker A
souci. Prenez votre temp. Alors donc le nombre de composantes ici, je vais dire je veux représenter mon dataset uniquement avec de composantes principales. Alors ici donc il va il va vous donner les composantes principales et puis donc pour afficher les
Speaker A
composantes donc on va Oui. Allez-y. Alors avec deux composantes principales, je vais avoir expé de variance ratio et je vois par exemple la première composante elle elle seule c'est 92 % c'est-à-dire déjà h la composante principale au lieu de représenter mon
Speaker A
dataset avec quatre variables, je vais le représenter avec deux variables. Alors si je fais la somme 92 plus ça, ça va me donner à peu près 93 %.
Speaker A
C'est-à-dire avec deux variables, je vais capter 93 % des informations qui se trouvent dans les les l'ensemble des features. Et si je fais encore fit avec ces ces ces ces caractéristiques ces composantes principales. Si je fais encore, je crée le modèle, je l'entraîne
Speaker A
et si je vois que le modèle il me donne il me donne toujours 0,98 ou bien 0,99 %, ben je vais dire que avec deux composantes principales, c'est c'est suffisant. Mais dans cet exemple là, est-ce que nous avons besoin de de faire
Speaker A
PC ? Non, parce que vous avez que quatre caractéristiques, il y a pas de il y a pas de il y a pas de problème. Mais dans le deuxème exercice et ça je pense je vais le commencer parce que là dans le
Speaker A
deuxème exercice nous avons un dataset un peu euh je pense qu'il est très intéressant W le dataset que vous voyez là.
Speaker A
Euh alors ce dataset euh je vais vous le partager et je reviens directement vers le ici. Je l'ai appelé d'ailleurs, j'ai fait quelques investigations sur ça.
Speaker A
Voilà, c'est celui-là. Alors, je vais pas tarder donc je vais vous donner après. Bon, regardez donc je prends le dataset. Le dataset c'est un CSV comme je disais. Donc ce dataset il il permet de décrire c'est la caractérisation la
Speaker A
caractérisation euh di les les génétiques di le cancer du cerveau. Il y a trois types de il y a trois types de cancer.
Speaker A
Alors, si vous chargez ce dataset là, si vous faites ça, vous allez trouver quoi ? Regardez, vous allez trouver d'abord le le type le type le le concert. Vous allez trouver il y a combien regardez chip. Regarde, il y a combien de lignes
Speaker A
? 130 il y a combien de colonnes ? Regardez 5467 les les les ce qu'on appelle les marqueurs, c'est parce que les biologistes, il y a des biologistes ici parce que généralement quand alors quand vous vous essayez de
Speaker A
faire les analyses donc vous captez des des marqueurs. Donc ici donc les les toutes ces caractéristiques là c'est des c'est des gênes. Et donc et finalement il y a des analyses qu'ils font qui permettent de de relever jusqu'à voyez donc le dataset
Speaker A
54 467 gènes. C'est-à-dire vous avez beaucoup de de colonnes. Alors si vous faites info, vous allez trouver euh que ici vous allez trouver il y a une colonne qui est de type object, c'est-à-dire qui contient du texte. Il y a des types mais les autres
Speaker A
c'est des valeurs numériques. Alors si vous cherchez le nombre de valeurs unique la colonne simple, vous voyez ici simple, je sais pas ce que c'est. Est-ce que c'est juste un identifiant à ID ou bien c'est une valeur vraiment qui a un
Speaker A
sens ? Donc je vois ici 834 835. A priori c'est juste un numéro. Échantillon. Ouais. Non c'est pas les échantillons, c'est juste un numéro. Num de l'échantillon. C'estel les numéros de la ligne, c'est un un identifiant qui ne
Speaker A
sert à rien. Mais pour savoir est-ce que c'est est-ce que c'est ça, ben je vais utiliser une unique. C'est-à-dire sur simple, il y a combien de valeurs unique ? Il y a 130. 130 il y a combien de
Speaker A
lignes ? 130. Il y a combien de valeurs différentes di la valeur ? C'est 130.
Speaker A
C'est-à-dire finalement si vous regardez les valeurs, vous allez trouver juste 1 2 3 4 c'est un numéro. Donc c'est une façon de dire que cette colonne là bon il sert à rien. Alors on va on va regarder la colon
Speaker A
type. Donc la colon type si vous faites value count vous allez trouver que il y a ici le type di le concert qu' alors maintenant il y a épine diamoma il y a 46k il a 46k j'ai glioblasma blastona et
Speaker A
cetera 34 cas j'ai le trè c'est médyoblastoma 22 il y a pyocyque astro Alors maintenant bien sûr qu'on fait un data donc il va te dire ça c'est un type de concert. Bon en tout cas c'est le métier mais regardez il y a normal
Speaker A
normal c'est-à-dire c'est les tissus sains, c'est-à-dire qu'ils ne sont pas malades. Il y en a 13. Donc ça c'est un bon exemple de classification. Je l'ai juste tout à l'heure che téléchargé le matin. J'ai fait des investigations mais
Speaker A
j'ai trouvé c'est intéressant. Regardez, je je vais représenter euh ici. Donc je vois ici pour chaque Hicue count dont je vous ai parlé tout à l'heure. Je vois par exemple pour cette catégorie, j'en ai 46.
Speaker A
Là, j'ai 34, je vois déjà que le dataset n'est pas équilibré, n'est-ce pas ?
Speaker A
Parce que il y a combien de cas normal ? C'est 13. Euh, il y a 15 ici, 22. Pour un un datas 7et qui n'est pas équilibré.
Speaker A
Alors, on va faire la même chose. C'est du text, on va faire label encoder. Donc c'est ce que je vais faire ici. Donc je fais label encoder encoder fit la colon type. Je vais créer une autre colon que
Speaker A
je vais appeler outcome. J'applique exactement ce que je viens de faire tout à l'heure. Donc si je regarde le outcome, alors si je regarde donc la colonne outcome pour les cas qui sont normals, je vois par exemple le label
Speaker A
qu'il a attribué, c'est c'est 3. OK ? Bon, c'est juste pour voir par exemple le le 0, ça représente quoi ? Le 1 représente quoi ? Et le et cetera.
Speaker A
s'il vous plaît. Oui. Comment on peut savoir qu'un datet équilibré ? C'est le nombre de classes. Regarde le dataset.
Speaker A
J'ai combien de classes ? J'ai il y a combien de de de types de concert ? 1 2 3 4 et il y a combien de cas normal ?
Speaker A
Alors dat les échantillons, les personnes qui sont qui ne sont pas malades, il y en a 13. Combien qui ont le concert ? Ce type de concert c'est 15 ou combien qui ont ce type de cancer ? C'est 22. Alors le
Speaker A
le le dataset n'est pas équilibré. Pourquoi ? Parce que le nombre de malades normalement équilibré ça veut dire quoi ? Le nombre de normal le et le nombre de chaque le nombre de d'échantillons doit être égal.
Speaker A
C'est-à-dire ici si j'ai 46 devrais chercher encore cas de de ce cas-là. OK. les mêmes les mêmes valeurs équilibré ça veut dire c'est les mêmes valeurs chez différence non c'est la même c'est équilibré c'est presque la même chose à vrai dire mais est-ce que
Speaker A
la médecine mais on peut pas avoir un dataset équilibré je peux pas je peux pas trouver parce que pour trouver des malades si si vous trouvez déjà 15 cas comme ça c'est les médecins c'est c'est pour eux c'est une étude très large.
Speaker A
Souvent dans le dans les études médicales, vous avez par exemple le cancer, tu vas pas chercher tu as un dataset généralement qui n'est pas équilibré, c'est-à-dire le nombre de personnes qui sont cancéreuses et qui ne sont pas cancéreuses, peu
Speaker A
importe parce que c'est pas comme dans le cas de l'électronique, je fais des échantillons, je change et cetera mais là dans la médecine c'est des personnes, bah il faut il faut les chercher hein, il faut il te faut des des vrais
Speaker A
patients. Donc tu as un dataset ici qui n'est pas équilibré, c'est pas un problème. C'est juste dire pe si quand vous allez faire le la métrique, vous n'allez pas utiliser écurcur ne peut pas ne vous donne pas il
Speaker A
faut choisir soit rcole soit précision. Bon après ce que j'ai fait, j'ai fait donc stand plutôt les label encoder et puis j'ai créé le le Y outcome et le X. Qu'est-ce que j'ai supprimé ? J'ai supprimé la colonne
Speaker A
simple et j'ai supprimé la colonne type. J'ai fait les statistiques avec des scries, ça vous donne des valeurs. Ici, il y a pas de valeur mon compte.
Speaker A
Alors, je représente les caractéristiques ici. Bon, je fais une boucle comme tout à l'heure. Je vois que la majorité des caractéristiques, c'est à peu près c'est de des distributions normales. Là, je représente ici X une une feature en fonction de Y. Je fais
Speaker A
scatter plot. Je vois par exemple 3, c'est normal. Je vois par exemple pour cette caractéristique là ce gène, je vois par exemple normal c'est ici 3. Je vois que par exemple pour ce gène, les valeurs des gens qui sont
Speaker A
normaux sont comprises entre cette valeur et cette et cette valeur. Donc ça me donne à peu près une idée sur peut-être déjà parce qu'en fait les dans les statistiques, il faut toujours faire ces investigations. Cherchez peut-être qu'il est quel est le jeûne qui peut
Speaker A
vous donner plus d'indications est-ce que déjà il y a une maladie ou pas ?
Speaker A
Parce qu'il y a quand même 57000 gènes. Donc bon, si vous cherchez, vous allez trouver. C'est pas évident. La même chose, je fais ça par rapport à une autre caractéristique. Et après je vais faire logistique. Je vois que statistiquement je peux pas trouver,
Speaker A
c'est compliqué mais c'est quoi la solution ? machine, c'est l'apprentissage automatique. Donc j'ai je vais créer logistique regression euh et ben je fais la même chose.
Speaker A
Split, je fais split mais là bon, je suis déjà passé à KNN mais j'ai testé les tous les les autres. Je fais fit et par exemple KNN ça donne un taux de performance de 92 %.
Speaker A
Mais j'étais étonné que Logistic Regrtion et les autres donnent des performances dès le départ presque de 1 % 99 %. C'est-à-dire que euh ici donc ça c'est un cas normalement vous avez plusieurs features mais euh j'ai testé euh vous faites le même travail avec
Speaker A
KNN, avec par exemple Multilayer Perceptron, avec euh SVM et ça va vous donner une idée. Et en fait, je n'ai pas terminé toute toute l'étude donc j'ai fait quelques investigations. Je vous laisse le début et je vous demande vous de le de le
Speaker A
compléter, de regarder. Peut-être vous allez faire sortir de des publications. Oui, pourquoi pas ? parce que y j'ai trouvé le dataset mais j'ai pas trouvé vraiment une étude qui qui machine learning sur ça. J'ai trouvé des études statistique mais je vois déjà que des
Speaker A
modèles de machine learning ça ça donne peut-être des résultats qui sont intéressants. Et après ce qui serait intéressant c'est d'ajouter maintenant euh PCA parce qu'il y a là oui nous avons beaucoup de features et on va utiliser PCA. On va on va regarder le
Speaker A
réduire la dimensionnalité euh avec par exemple euh de 50 % et on on réent le modèle et si on arrive à trouver un modèle qui est plus performant avec une dimensionnalité qui est réduite et ça c'est intéressant.
Speaker A
Je pense qu'on va s'arrêter à ce niveau-là parce que j'ai trop parlé et surtout je sais que c'est pas évident parce que même on n' pas pris la pause parce que le le vidéo projecteur nous a capturé un
Speaker A
peu le mais voilà. Bon, je pense que ça c'est une révision. C'est une bonne révision pour déjà la partie machine learning, les bases de machine learning.
Speaker A
Et la prochaine fois donc nous allons passer à autre chose parce que il faut qu'on arrive à la partie liée générative de avec le prompt engineering. C'est encore plus simple à faire mais ça donne encore beaucoup de de choses très
Speaker A
intéressantes. Donc nous allons essayer de de voir aussi le les I agents. Ça c'est des techniques qui sont très pratiquées maintenant dans des problèmes de de l'IA et tout ça c'est quelque chose qu'on va faire dans les prochaines
Speaker A
séances inchallah. Voilà. Alors, si vous n'avez pas de questions, on va s'arrêter à ce niveau-là.
Speaker A
Ah bah, je vois je vois les Alors, n'oubliez pas de marquer votre présence, s'il vous plaît et après vous pouvez partir dans la zone chat, vous mettez présent et après vous pouvez partir.
Speaker A
Merci monsieur. Alors, comme d'habitude, je je vous partagerai l'enregistrement. Il est là. Et je vous conseille de revoir cette révision là comme ça la prochaine fois on aura on par on parlera le même langage. plus important, c'est quand on
Speaker A
parle le même langage, c'est déjà
Topics:intelligence artificiellemachine learningapprentissage superviséclassificationdataset IrisKaggleexploration de donnéesréseaux de neuronesalgorithmes de classificationbiologie computationnelle











