Part 3 – Bases de l’Intelligence Artificielle – Cluster… — Transcript

Cours sur l'apprentissage non supervisé en IA, avec focus sur le clustering K-Means et la réduction de dimensionnalité par PCA.

Key Takeaways

  • Le clustering permet de segmenter des données non étiquetées en groupes homogènes.
  • K-Means est un algorithme populaire nécessitant de connaître le nombre de clusters à l'avance.
  • La normalisation des données est cruciale pour obtenir de bons résultats en clustering.
  • La réduction de dimensionnalité avec PCA facilite l'analyse et améliore la performance des modèles.
  • L'apprentissage non supervisé complète l'apprentissage supervisé dans les applications d'IA.

Summary

  • Rappel des notions précédentes sur l'intelligence artificielle et l'apprentissage supervisé.
  • Introduction à l'apprentissage non supervisé et définition du clustering.
  • Présentation de l'algorithme K-Means, ses principes et son fonctionnement.
  • Importance du choix du nombre de clusters K dans K-Means.
  • Applications industrielles variées de K-Means, notamment en marketing et imagerie médicale.
  • Explication des étapes techniques de l'algorithme, notamment le calcul des distances et la mise à jour des centres.
  • Nécessité de normaliser et standardiser les données avant clustering.
  • Présentation de la réduction de dimensionnalité via PCA pour optimiser les performances.
  • Lien entre apprentissage non supervisé, clustering, et applications pratiques en machine learning.
  • Annonce des prochaines parties sur le deep learning, IA générative et apprentissage par renforcement.

Full Transcript — Download SRT & Markdown

00:06
Speaker A
Bien, alors bonjour tout le monde. Euh, donc le voilà, on va reprendre notre cours concernant l'intelligence artificielle. Et donc je rappelle rapidement d'abord les choses que nous avons traitées jusqu'à présent. Donc dans la première séance, on avait parlé des
00:25
Speaker A
concepts de base de l'intelligence artificielle. Ben, le principe de l'IA et de l'IA distribuée. Et puis donc nous avons vu en fait les concepts de base du machine learning, notamment avec les différentes techniques d'apprentissage. Nous avons traité le
00:41
Speaker A
cas de l'apprentissage supervisé, euh, donc avec la partie concernant la régression. Donc on avait une activité pratique là-dessus. La dernière fois, nous avons vu l'apprentissage supervisé, euh, c'est-à-dire la partie classification.
01:00
Speaker A
Donc dans cette partie classification, nous avons vu les concepts de base, euh, c'est-à-dire quelles sont les métriques qui sont utilisées pour évaluer les algorithmes de classification. Euh, et donc avec la matrice de confusion, c'est-à-dire les métriques euh,
01:18
Speaker A
precision, recall et score. Donc tout ça, c'est quelque chose que qu'on avait travaillé. Et dans l'exemple, nous avons vu le cas de la régression logistique, c'est-à-dire la régression logistique qui est un classificateur binaire. Donc c'est
01:33
Speaker A
c'est donc c'est un, c'est un, il y avait une étude de cas et un notebook que je vous avais donné à travers lequel nous avons vu comment, euh, donc à partir d'un exemple d'application, comment faire
01:45
Speaker A
la partie data analysis, comment créer le modèle, comment entraîner le modèle, comment tester, comment évaluer avec les différentes métriques, euh, d'évaluation. Bon, dans cette partie-là, il reste encore d'autres use cases. Donc on aura l'occasion de travailler d'autres cas d'utilisation, euh, à
02:02
Speaker A
travers lesquels, euh, donc on va, euh, s'intéresser aux autres algorithmes dont je n'ai pas parlé, notamment SVM, Random Forest et, euh, euh, KNN, le forêt aléatoire, etc., c'est-à-dire, euh, euh, plutôt decision tree, random forest. Et donc, euh, alors tous ces algorithmes-là, donc
02:24
Speaker A
euh, du moment que vous avez travaillé le cas de la régression logistique, bon, euh, en termes d'application pratique, c'est la même chose pour les autres, sauf que nous avons besoin de savoir chaque algorithme, comment il fonctionne, c'est quoi son principe de
02:37
Speaker A
fonctionnement et surtout, euh, les circonstances d'application. Alors donc aujourd'hui, donc je vais passer directement à la partie apprentissage non supervisé.
02:50
Speaker A
Et donc comme ça, euh, bon, ça nous permet d'avancer un peu pour voir donc le cas de clustering, donc quels sont les concepts de base et comment, euh, implémenter ces algorithmes. Et donc avec tous les détails, avec un exemple
03:04
Speaker A
d'application, une démonstration. Euh, donc ça c'est l'objectif d'aujourd'hui. Donc après, par la suite, on aura l'occasion de traiter la partie deep learning et de l'IA générative. Donc ça, c'est ces deux parties importantes qui nous restent et en même temps, en
03:19
Speaker A
fonction du temps, donc je reviendrai après sur l'apprentissage par renforcement. Alors bien sûr, dans la partie IA générative, automatiquement ça va nous pousser à parler de l'apprentissage autosupervisé parce que ça, c'est, c'est une partie qui concerne forcément la
03:36
Speaker A
partie de natural language processing, c'est-à-dire NLP. Donc voilà. Alors voilà, donc aujourd'hui l'objectif c'est de s'arrêter sur l'apprentissage non supervisé. Donc je rappelle d'abord la définition, on en a déjà parlé. En fait, l'apprentissage supervisé, euh, consiste, non supervisé, pardon, consiste
03:56
Speaker A
à utiliser un ensemble de données non étiquetées, c'est-à-dire nous avons un dataset, euh, pour lequel on ne connaît pas les outputs. Et par la suite, on va utiliser un algorithme de clustering qui va se charger de fouiller, de chercher dans
04:13
Speaker A
les données, euh, pour pouvoir les segmenter en un ensemble de groupes homogènes, en se basant bien sûr sur des mesures de similarité. Alors ici, donc j'aime beaucoup cette image-là. Par exemple, ici, donc vous avez des dates et
04:31
Speaker A
après, donc on voudrait, euh, à partir de ces dates, on voudrait les classer en trois groupes. Par exemple, les dates qui ne sont pas encore cuites, celles qui sont cuites, et après donc on peut définir deux, trois classes,
04:45
Speaker A
ou trois ou quatre en fonction de ces classes. Donc on va essayer de faire donc cette opération de segmentation. C'est ce qu'on appelle le clustering. Alors en fait, j'aime beaucoup cette image-là parce que ça me
04:58
Speaker A
rappelle quand j'étais enfant et donc mon père me demandait de l'aider pour faire ce travail-là et à partir de ces dates, on essaie donc de les, les, on va dire, les, les faire, on essaie de former des
05:19
Speaker A
groupes pour ne pas dire classifier parce que c'est un terme qui signifie autre chose. On va les segmenter en un ensemble de clusters. Et quand on faisait ça, c'est que tout simplement, ça, c'est, on utilisait déjà l'algorithme de
05:33
Speaker A
clustering, c'est que une fois que je commençais à utiliser ces algorithmes de chemin, par exemple au niveau de la recherche, ben j'ai fait, je me suis rendu compte que finalement on faisait ça déjà depuis très longtemps dans
05:47
Speaker A
notre vie quotidienne. Et d'ailleurs, c'est ça le machine learning, c'est que dans la majorité des cas, tous les algorithmes que vous utilisez, eh bien finalement, quand vous regardez bien l'algorithme, quand vous regardez les étapes, bah vous allez voir que
05:59
Speaker A
finalement, c'est que nous sommes en train d'imiter, on va dire, le comportement humain. Donc c'est des choses que vous avez peut-être vécues dans la vraie vie. Et donc c'est plus simple de comprendre à quoi ça va servir et comment ça, ça
06:15
Speaker A
fonctionne. Alors sauf que bien sûr, techniquement parlant, il vous faut pour les implémenter, donc c'est des algorithmes. Donc il y a des détails techniques qu'il faut connaître.
06:25
Speaker A
Alors en tout cas, donc ça c'est l'idée principale. Nous avons un ensemble de données non étiquetées et à partir de ces données-là, on va essayer donc de créer des clusters, c'est-à-dire des groupes homogènes. Euh, parmi les algorithmes les plus populaires qui sont
06:38
Speaker A
très connus, il y a K-means. Alors K-means, donc c'est un algorithme qui est très connu, qui est très utilisé. Alors on va essayer donc de voir comment ça marche. Donc l'algorithme K-means ou bien K moyenne si vous voulez.
06:51
Speaker A
Euh, donc c'est un algorithme d'apprentissage non supervisé, euh, qui permet d'analyser un jeu de données qui n'est pas étiqueté et, euh, afin de regrouper ces données similaires en un ensemble de groupes homogènes que ce qu'on appelle les clusters.
07:08
Speaker A
Alors donc c'est un algorithme qui est très présent dans les différents domaines de l'industrie. On l'utilise dans le domaine du marketing, dans le domaine de la segmentation des clients, notamment l'analyse des réseaux sociaux, la segmentation des images médicales. Donc
07:24
Speaker A
c'est-à-dire quasiment dans tous les domaines. Euh, là on fait de globalement, on travaille avec des données. Euh, donc souvent on a besoin d'utiliser cet algorithme de clustering. Alors, c'est quoi le principe de fonctionnement ? Bon, le principe de fonctionnement,
07:40
Speaker A
c'est qu'il y a des étapes très simples. Donc, la première des choses, c'est que on va d'abord commencer par choisir un nombre, le nombre de clusters K. Alors K, donc c'est le nombre de, le nombre de groupes ou bien le nombre de
07:54
Speaker A
clusters qui existent dans les données. Donc ça c'est la particularité de K-means, c'est qu'on est obligé de connaître préalablement le nombre de clusters qui existent dans les données.
08:04
Speaker A
Alors bien sûr, euh, parfois il y a des cas où pratiquement on connaît déjà à peu près le nombre de clusters. Par exemple dans le domaine médical, dans l'imagerie médicale, par exemple, euh, par exemple les IRM cérébrales, euh, les
08:18
Speaker A
médecins, ils savent très bien que par exemple dans l'IRM cérébral, il y a, euh, il y a des classes comme par exemple la matière blanche, la matière grise, le liquide céphalo-rachidien.
08:32
Speaker A
Euh, donc c'est-à-dire on connaît déjà à peu près, euh, dans un...
08:47
Speaker A
on connaît on connaît le nombre de class à priori euh mais euh il y a des cas où on peut pas savoir le nombre de clusters qui existe dans les données. Donc ce qui fait queil nous faut une méthode qui va
08:57
Speaker A
nous permettre de chercher quel est le nombre de clusters optimum pour ce type de de dataset. Alors, je vais vous montrer tout à l'heure une technique qui s'appelle elbo euh qui est utilisé souvent pour déterminer le nombre de
09:11
Speaker A
clusters qui sont le nombre de optimum de clusters qu'on va généralement chercher à former dans dans un dataset qui n'est pas étiqueté. Donc bref, donc on définit le nombre de classeurs. Par exemple cas par exemple ici, dans notre
09:26
Speaker A
cas ici euh cet exemple là, nous avons euh euh des données dans lesquelles on va représenter de de deux caractéristiques. Il y a l'âge et le salaire. Donc il y a l'âge des personnes et après ici donc vous avez leur
09:41
Speaker A
salaire. Euh ici donc je représente d'abord ce nuage de de point, c'est-à-dire ces ces données là. Euh alors ici, visiblement, je vois déjà à peu près que il y a trois classeurs dans ces ces données-là visuellement. Donc je
09:54
Speaker A
vois que il y a trois groupes euh homogènes. Mais comment on va déterminer donc ces ces groupes homogènes ? Bon, la technique c'est quoi ? C'est d'abord de choisir K. Dans notre cas ici K = 3. Et puis qu'est-ce qu'on va faire ? On
10:09
Speaker A
va choisir, on va d'abord initialiser ce qu'on appelle les centroïd, c'est-à-dire, on va d'abord supposer que créer plutôt, on va chercher ce qu'on appelle les centre de classe. Alors, je par hasard donc je vais dire que ça pour
10:20
Speaker A
moi ça c'est C1. Par exemple, aléatoirement ça c'est C2 et ça c'est C3, c'est-à-dire trois centres de classe. Ça, on le fait aléatoirement au départ. Et puis qu'est-ce qu'on va faire ? Pour chaque centre de classe, on va
10:34
Speaker A
calculer la distance. Chaque point, on va calculer la distance par rapport à C1. On calcule la distance par rapport à C2 et la distance par rapport à C3. Donc ici, vous allez avoir D1, D2 et D3. Alors ici donc je parle la distance.
10:51
Speaker A
Bon la notion de distance, on peut utiliser différents types de distances. La la la distance euclidienne, la distance de Manhattan. Donc il existe plusieurs façons de ici dans en géométrie la distance donc c'est la distance entre deux points mais la
11:05
Speaker A
notion de distance par exemple pour une image la distance entre de la distance ça va c'est la différence des couleurs.
11:12
Speaker A
C'est-à-dire parce qu'en fait un pixel c'est il a une couleur. Donc pour savoir la distance entre deux pixels donc forcément c'est pas le ce qui nous intéresse peut-être c'est c'est c'est sa couleur. Donc on peut faire la distance
11:24
Speaker A
entre deux couleurs. Mais dans le cas général, c'est que chaque caractéristique, c'est un vecteur multidimensionnel et du coup que donc à un moment donné, on aura besoin de de calculer la distance entre entre deux vecteurs. Donc ça c'est quelque chose
11:37
Speaker A
que qu'on va utiliser. En tout cas, bref, on calcule la distance de chaque point par rapport à ces centres de classe et vous faites la même chose pour tous les points. Chaque point, vous calculez la distance par rapport à C1,
11:49
Speaker A
la distance par rapport à C2 et la distance par rapport à C3 et vous le faites pour les autres et cetera. Donc globalement euh vous allez faire tout ça. Donc vous allez chercher pour tous les points euh calculer la distance par
12:02
Speaker A
rapport à ces centre de classe. Et quand euh on fait cette opérationlà, on va essayer d'attribuer la classe d'appartenance. C'est-à-dire comment ?
12:11
Speaker A
Bah par exemple, j'ai ici ce ce pointlà, je vais calculer la distance D1, je vais calculer la distance D2, elle est là. Et je vais calculer D3. Et après on va décider ce ce point-là, il est proche à
12:26
Speaker A
quel centre de classe. Alors si je vois par exemple, je vais calculer, je vais comparer cette distance là D2, D1, D3 et je vais prendre la distance minimale. Et la distance minimale, c'est elle qui va m'indiquer ce point et les est plus
12:39
Speaker A
proche de ce centre. Dans ce cas-là, je vais dire par exemple que ce point-là appartient au cluster C1. Ce pointlà quand on va calculer, on va dire il appartient au il est plus proche à C3.
12:53
Speaker A
et cetera. Donc c'est-à-dire on va attribuer à chaque point de donner le la Sandroïde la plus proche. Donc ce qui fait que à la fin je vais avoir ce scénario là, je vais avoir euh les chaque les les centres C1, C2 et
13:11
Speaker A
C3. Et après par la suite chaque point on sait qu'il est le centre le plus proche.
13:19
Speaker A
Donc par exemple tous ces points là qui sont là ils vont à ils vont ils sont proches de de C1 ces points là ils sont proches de C3 et cetera mais sauf que au début on peut pas savoir vraiment où se trouvent les
13:32
Speaker A
centres de classe. Donc on fait ça aléatoire. Donc ce qui fait ce qu'on va faire c'est que on va juste se baser sur les les distances.
13:39
Speaker A
Donc les les plutôt on va se baser sur les distances pour décider quel est le le centre de classe le plus le plus proche. Donc une fois qu'on fait cette opération, ben on va prendre on va former les clusters. On va dire voilà
13:52
Speaker A
par exemple ça c'est le premier groupe, ça c'est le deuxème groupe et ça c'est le le trè groupe. Et puis on va calculer la moyenne. Donc c'est-à-dire on va définir le nouveau centre de classe.
14:03
Speaker A
Comment ? Bah il suffit de prendre le la moyenne de ces ces points. Par exemple, si posant chaque point ça représente l'âge et ben plutôt le le salaire. Donc on va calculer la moyenne des salaires de tous ces points qui appartient à C1.
14:18
Speaker A
Ici, quand on va calculer ici la moyenne du cluster, ben on va tout simplement dire cette fois-ci que supposons que la moyenne elle est là, et ben on va dire tout simplement que le nouveau C1, c'est ici. C'est-à-dire notre centre de
14:32
Speaker A
classe, il va se déplacer à ce point-là. C'est pour représenter les moyens de du de l'ensemble du point des classeur. C2 par exemple, il va se déplacer C3, il va se déplacer ici. Le C2, il va se déplacer là par exemple et cetera. Donc
14:46
Speaker A
une fois qu'on calcule donc la moyenne du classeur, on va définir le n le nouveau centre de classe et après on reprend le travail. On va encore calculer les distances par rapport à à l'ensemble des centres de classe. On et
14:59
Speaker A
on décide vers quel classeur euh le point appartient et à la fin on va encore former des groupes. Donc chaque itiration ça va nous permettre euh de définir le nouveau centre de classe. Et si vous répétez cette cette ces étapes,
15:13
Speaker A
les étapes 3 4 et 5, donc 3 4 et 5, on va les répéter dans une boucle jusqu'à ce que on trouve le centre de classe qui ne change pas.
15:24
Speaker A
C'est-à-dire quand on calcule le nouveau centre de classe, quand on fait la moyenne de des données de du même cluster, bah on trouve c'est-à-dire leur moyenne égale le centre de classe lui-même. Dans ce cas-là, on va décider, on va dire t donc
15:38
Speaker A
maintenant définitivement ça c'est notre centre de classe et donc on peut savoir euh on peut définir quels sont les class qui les différents classeurs qui existent dans ces donnéeslà. Bon, ça c'est le principe de base, mais j'ai ici
15:51
Speaker A
vous avez un exemple très simple euh que vous pouvez utiliser pour comprendre. Donc ici, j'ai pris un dataset qui contient une seule caractéristique, c'est l'âge. Donc j'ai par exemple 10 personnes avec des âges différents, 12, 25, euh 30 et cetera, jusqu'à
16:10
Speaker A
52. Et puis euh donc on voudrait par exemple ici euh créer chercher deux clusters à partir de ces personnes-là.
16:19
Speaker A
Et comment on va faire ? On va supposer que vous avez de deux centres de classe C1 et C2. Alors, je vais supposer aléatoirement au début. Donc, je vais dire que pour moi, le premier centre de classe, c'est 18 ans. Le deuxème centre
16:30
Speaker A
de classe, c'est 30 ans. Et donc ce cas-là, qu'est-ce que je vais faire ? Je vais parcourir mes données. Et pour chaque donnée, je vais calculer la distance. Par exemple, la distance entre 12 et 18. Bon, si je fais 18 - 12, ça va
16:43
Speaker A
me donner 6. C'est-à-dire que la distance entre cette personne et le centre de classe est égale à 6. La distance entre 12, l'âge 12 et C2, c'est 30 - 12, ça va faire 18.
16:58
Speaker A
Alors maintenant, j'ai quel est après euh je fais la même chose pour les autres, c'est-à-dire 25 la distance par rapport à 18, la distance par rapport à 30, ça me donne 7 et 5. Ainsi de suite, je fais pour tous les les points et une
17:16
Speaker A
fois que j'aurais calculé la distance la distance de chaque individu par rapport au centre de classe, ben je vais passer à l'étape suivante. C'est la décision. c'est que chaque chaque individu, il appartient à quel classeur ? Par exemple, ici je vois
17:32
Speaker A
12, il est plus il est plus proche de euh alors il est ici plus proche de de 6 que de euh que 30. Plutôt 12, il est plus proche de 18 que 30. Parquoi ? Parce que ici donc 6 la
17:49
Speaker A
distance avec 18 c'est 6 et là c'est 18. Donc le minimum c'est 6. Dans ce cas-là donc cet individu, il appartient au clust C1. Voilà, je vais l'étiqueter.
17:58
Speaker A
Donc, c'est-à-dire pour le moment euh vu les centres de classe que j'ai précisé ici, pour le moment, c'est cet individu appartient en cluster C1. Celui-là, c'est C2 parce qu'il est 25, il est plus proche à 30. Celui-là, c'est C2, C1, C2
18:14
Speaker A
et cetera. Donc ici, c'est c'est la première itération. Une fois que je fais cette première itération, je vais maintenant créer mes clusters. Donc le cluster 1 par exemple pour le cluster C1, quels sont les les individus qui appartient au cluster C1 ? Ben je vois
18:29
Speaker A
le 1, le 4 et le 9. Donc le 1, le 4 et le 9. Donc et ils appartiennent au cluster C1.
18:39
Speaker A
Ici le cluster C2 c'est le 2 3 5 6 7 8 et 10. Bon les autres, ils appartiennent au cluster C2.
18:50
Speaker A
Là c'est C2 C2 C2. Donc ici donc j'ai mes deux clasters. Ça c'est la première itération. Et là maintenant une fois que j'ai mes deux class, maintenant qu'est-ce que je vais faire ? Je vais calculer la moyenne. Par exemple sur le
19:03
Speaker A
cluster C1, je vais calculer la moyenne des âges. Ici 12 + 18 la moyenne de 12 18 et 18 et ben la moyenne ça me donne 16. Donc ça veut dire quoi ? Ça veut dire que maintenant en réalité
19:16
Speaker A
maintenant notre centre de classe C1 euh on va lui affecter la valeur 16. La même chose pour le cluster C2. On va calculer la moyenne des âges de tous les individus qui appartient à C2. On va trouver que c'est la moyenne
19:31
Speaker A
c'est 36. Donc ça veut dire que pour la deuxième itération, on va supposer que C1 é= à 16. C'est cette valeur là. Et C2 é= à 36. Voilà.
19:45
Speaker A
Donc on reprend le travail. On va encore recalculer pour chaque point. On calcule la distance. Par exemple 12 par rapport à 16, ça fait 4. 12 la distance de de 12 vers c'est 2, c'est-à-dire 36, c'est 24 et cetera. Donc je on calcule encore les
20:00
Speaker A
distances par rapport à chaque centre de classe et puis on décide. Par exemple, celui-là il est plus proche à C1. Ça c'est proche à C1. Ça c'est C1 et ça c'est C1. Alors que les autres c'est C2.
20:13
Speaker A
ce qui va nous permettre de former encore les clasters. Donc ça c'est le cluster qui a les points qui appartient à C1 et ça c'est les points qui appartient au cluster C2. Et on reprend, on calcule maintenant encore la moyenne.
20:25
Speaker A
Si je fais la moyenne des âges, je vais trouver c'est 18 25. Ici la moyenne c'est 37 83. Bah du coup donc je vais encore définir c'est quoi le le nouveau C1, c'est 18 25, c'est celui-là.
20:40
Speaker A
et le nouveau euh C2 c'est euh c'est 37 83. Et on calcule encore c'est quoi les distance donc ici la distance de chaque point par rapport à au niveau C1 au C2 et on on reprend les opérations. Une fois que je je calcule
20:58
Speaker A
encore les distances, je décide ce point là il il est plus proche à C1 celui proche à C1 C1 et cetera et les autres appartient à C2. Donc là, j'ai le cluster C1 et le nouveau cluster C2.
21:13
Speaker A
Mais si vous le remarquez ici, le cluster C1 et C2 ici, ça change pas.
21:17
Speaker A
C'est-à-dire euh si on calcule maintenant la moyenne des âges, on va trouver la même moyenne. Alors, comme c'est-à-dire on va trouver le même centre de classe et comme le nouveau centre de classe qu'on qu'on vient de calculer, il est le même que celui euh
21:32
Speaker A
du précédent, bon c'est-à-dire que ça y est, donc notre algorithme a convergé, on va s'arrêter B et on va dire que définitivement voilà N de cluster c'est-à-dire voilà les centres de classe qu'on va utiliser et les clusters, c'est
21:45
Speaker A
ça. Donc ça c'est l'idée principale je pense. Ça c'est un exemple très simple que j'ai j'ai voilà j'ai essayer de de dessiner comme ça manuellement. Ça permet donc de de comprendre comment ça se passe. Vous pouvez prendre un exemple dans un fichier
22:03
Speaker A
Excel. Vous faites vous-même ces petits calculs euh vous les faites plusieurs fois et ça va vous donner une idée comment l'algorithme fonctionne. Ça c'est très important. Euh tous les algorithmes généralement, vous pouvez toujours faire une petite simulation avec des petit des données, une petite
22:19
Speaker A
quantité de de données. Ça vous permet de comprendre le principe de base. Bon, une fois que vous aurez compris le principe de base par la suite pour pouvoir l'appliquer à des datasets qui sont très grands, dans lequel vous avez
22:31
Speaker A
beaucoup de colonnes et beaucoup de et beaucoup de lignes. Alors, dans ce cas-là, ça, on peut pas le faire bien sûr de cette façon-là. Donc, il faudrait utiliser des algorithmes qui permettent de faire ce travail. Et justement parmi
22:43
Speaker A
ces algorithmes, il y a Camins. Donc Camin donc vous voyez donc c'est lui qui va faire ce c'est-à-dire ce travail là, ses itération, il va essayer de faire et Camise, il va le faire pour des dataset avec beaucoup de avec des vecteurs qui
22:57
Speaker A
sont très grands, c'est-à-dire beaucoup de colonnes avec beaucoup de lignes. Et donc c'est justement c'est ce que nous allons voir euh donc comment euh nous allons voir comment euh bien sûr implémenter CAMIS et comment donc le comment le le pratiquer à travers un
23:14
Speaker A
exemple d'application. Euh mais avant ça, il faut d'abord qu'on voit un peu les métriques aussi d'évaluation parce que nous avons besoin de savoir quand on on fait un clasterine, nous avons besoin d'avoir de quelques mesures ou bien des
23:26
Speaker A
métriques qui vont nous indiquer c'est à quel à quel point notre clasterine il est bon. Donc ça c'est ce que nous allons ici donc devoir avant de voir le l'implémentation même. Est-ce que c'est clair pour le moment ? Alors maintenant, bon ça ça
23:44
Speaker A
c'est le principe de base. Donc le principe de base de de l'algorithme. Donc c'est ça. Alors maintenant la même chose, il nous faut des des métriques, c'est-à-dire quelles sont les les mesures qui vont nous permettre de savoir est-ce que le
24:00
Speaker A
clasine est bon ou est-ce qu'il n'est pas bon. Alors dans la littérature donc généralement vous avez deux mesures principales. Il a ce qu'on appelle la distorsion et l'inertie.
24:13
Speaker A
Al en fait la distorsion c'est une valeur en fait bon la distorsion et l'inertie c'est presque ils sont très très proches. Donc la distorsion comment on le fait ? Ben tout simplement c'est la somme c'est la somme des distances
24:26
Speaker A
entre les les les x i par rapport à leur centre de de classe. Donc c'est-à-dire on va calculer la c'est-à-dire on va calculer la somme la somme de des distances de tous les points du classable par rapport à son centre de
24:42
Speaker A
classe et après on va diviser par le nombre de de points. C'est-à-dire c'est une moyenne. Alors cette cette valeur là permet de de mesurer ce qu'on appelle la distorsion. Alors, généralement euh alors bien sûr ici donc quand je parle
24:57
Speaker A
de la distance euh en fait, il y a ce qu'on appelle la distance euclidienne mais également il y a ce qu'on appelle la distance de Manhattan. Donc ça c'est euh c'est c'est c'est en fait c'est des choses sur lesquelles on va s'arrêter.
25:10
Speaker A
Et donc le site distorsion plus il est faible euh plus c'est en fait le le cluster est meilleur. Donc c'estàd on essaie d'avoir une distorsion qui est relativement faible. Donc c'est elle qui va nous indiquer à peu près c'est-à-dire
25:25
Speaker A
le le niveau de performance de de notre classeurine. Bon la même chose l'inertie ce qui est très utilisé. L'inertie, c'est la même chose, c'est la somme des carrés des distances des des clasters.
25:37
Speaker A
Euh sauf que il y a pas on va pas diviser par n. Donc c'est ça la différence. C'est-à-dire si vous voulez la la distorsion, c'est l'inertie divisée par divisé par n tout simplement. Donc ces ces mesures là, ils
25:49
Speaker A
vont être très utiles, hein. En fait, c'est c'est juste le c'est-à-dire le la distance entre entre le point XI et son centre de de de classe. C'est-à-dire c'est-à-dire qu'en fait on fait le le premier classeur, on calcule chaque cluster va calculer sa
26:09
Speaker A
distance par rapport au la somme des distances par rapport au centre de classe mais après on va faire la le total c'est-à-dire c'est la somme des des sommes. Donc globalement c'est ce qu'on fait.
26:19
Speaker A
Ouais. Le le n c'est le nombre de points. C'est le nombre de points. Par exemple, si posons ici, par exemple ici, je j'ai en fait c'est le nombre de points par rapport au cluster. Par exemple, ici j'ai pour le cluster C1, il y a combien
26:34
Speaker A
? Le N égal à combien ? 1 2 3 4. Pour le cluster C2, j'ai le nombre.
26:41
Speaker A
Donc c'estàdire, on calcule la somme des distances par rapport à C1, la somme des distances par rapport à C2 pour chaque claster.
26:47
Speaker A
Mais après, on va faire la somme, la somme des sommes pour que pour que ça nous donne une idée sur la distorsion totale sur le sur le au niveau du groupe. Est-ce que c'est clair ?
27:01
Speaker A
Alors maintenant euh donc si si vous rappelez, j'avais parlé de de en fait dans l'algorithme de Camins notamment.
27:11
Speaker A
Donc la première étape qui embête, qui est vraiment qui dérange, c'est ça. C'est-à-dire il faut choisir, il faut connaître le nombre de cluster. Alors parfois on les connaît par exemple quand je dans le le domaine de l'imagerie médicale euh c'est-à-dire
27:25
Speaker A
avec les les experts, ils savent très bien par exemple dans dans un cerveau euh il y a ce qu'on appelle la matière blanche, il y a le le liquide cphaloragidien, il y a il y a la matière grise. OK, il y a trois donc ça c'est le
27:39
Speaker A
c'est l'expérience qui le montre mais parfois parfois on le sait pas. Alors il dit que donc comment on va savoir quel est le nombre de de cluster optimum ?
27:49
Speaker A
Alors pour cela, on va utiliser, il y a des algorithmes, il y a des techniques qui sont utilisées. Et parmi ces techniques là qui sont très populaires, il y a elbo, ça al fait et ben vous savez ilBB en anglais c'est ça, c'est le
28:02
Speaker A
coude. Ça c'est le le petit coude. Alors comment le principe il est très simple, c'est qu'est-ce qu'on va faire ? Je vais tout simplement euh on va on va faire varier le le nombre cas d'un nombre de 1 par
28:16
Speaker A
exemple jusqu'à un un nombre maximum. Par exemple, je vais faire varier le nombre de clust de 1 jusqu'à 20. Donc c'est-à-dire entre 1 et 20, je vais choisir quel est le nombre de clusters optimum. OK ? Alors pour chaque pour
28:30
Speaker A
chaque valeur de cas qui varie de 1 jusqu'à une plage requise, ben qu'est-ce qu'on va faire ? Et bien pour chaque valeur de cas, on va on va faire le clastering. Pour chaque valeur de cas, on va appliquer l'algorithme Kamins pour
28:43
Speaker A
faire le clastering. Une fois qu'on va faire le clustering, ça veut dire nous avons le centre de classe C1 par exemple et le centre de classe C2. On a déterminé les centres de classe pour par exemple de pour k ici pour k ég à 2. Par
28:56
Speaker A
exemple pour k ég à 2. Je suis dans cette situation. Bah qu'est-ce qu'on va faire ? Bah on va calculer l'inertie.
29:02
Speaker A
Voyez ? Donc l'inertie, c'est ce qu'on appelle également sum of squared error, c'est-à-dire en quelque sorte, c'est la somme des distances de x i c'est c'est c au carré. Donc on va calculer l'inertie de ce cluster. Par exemple SSE1, on va
29:18
Speaker A
calculer l'inertie pour ce cluster S2. C'est la somme des distances par rapport au centre de classe. Et puis à quoi est égal SE ? C'est S1 + SE2. Donc c'està-dire je fais la somme des des et donc dans ce cas-là,
29:33
Speaker A
j'obtiens cette valeur là, c'est ce qu'on appelle l'inertie. VO c'est c'est ça cette valeur qui va nous indiquer la dispersion, c'est-à-dire le la qualité de du classeing. Donc ça, on va le faire pour k = 2. On va le faire, vous voyez
29:48
Speaker A
donc pour k = 1 à quoi est égale l'inertie ? Vous allez trouver une valeur pour k = 2. Vous allez trouver l'inertie égale une autre valeur. Pour k = 3, vous allez trouver une valeur 4 5 6 7 8 9. Par
30:06
Speaker A
exemple, ici c'est une boucle de 1 jusqu'à jusqu'à 9. Alors maintenant rien que avec ce avec cette cette courbe et vous allez avoir une corbe se forme du coude comme ça et vous allez chercher ce point là ça et c'est ça le le nombre de
30:23
Speaker A
classeurs optimum. Alors si vous utilisez cette technique là et ben c'est que vous vous ça c'est ce qu'on appelle elbo. Donc c'est c'est la technique qui qui est assez connue. Et dans notre cas ici le nombre de classeur optimum c'est combien
30:35
Speaker A
? c'est 3 pour cette situation là. Donc ça c'est la technique qu'on va utiliser. Alors il c'est une technique mais une autre technique que je vais vous montrer tout à l'heure dans la la en démonstration notamment une technique
30:53
Speaker A
qui s'appelle la silhouette parce que parfois il se peut que dans quand vous tracez cette courbe là il se peut que ce point là n'est pas très très apparent. dans la majorité des cas, vous allez avoir ce ce qui vient. Mais parfois on ne voit
31:07
Speaker A
pas trop. Et quand on voit pas trop visuellement donc ce ce pointlà et ben on utilise il y a d'autres techniques comme par exemple la silhouette euh qui elle et il permet de de vous montrer clairement aussi le le cluster le nombre
31:20
Speaker A
de cluster optimum. Est-ce que c'est clair ? Alors maintenant, je vais passer directement à la démo. Euh donc euh je vais euh prendre un exemple simple d'abord.
31:35
Speaker A
Alors en fait le le en fait je vous ai partagé un notebook euh dans lequel vous allez trouver en fait toute la toute la la démo avec la la description et tout tout ça. Bon ça c'est ce que je vais vous
31:48
Speaker A
montrer. Alors ici donc ce que je vais faire donc ce notebook là donc je le garde de côté et je vais créer un un nouveau fichier dans à travers lequel on va essayer de on va essayer de de
31:58
Speaker A
travailler au fur et à mesure les les explications. Donc je vais créer un fichier, un nouveau fichier que je vais appeler par exemple cluster N7 par exemple. Alors l'extension c'est IP NB, c'est un fichier notebook comme ça. Bon,
32:19
Speaker A
c'est un nouveau fichier. Alors bien sûr ce fichier là donc je vais juste sélectionner euh le le c'est-à-dire l'environnement que je vais utiliser ces ces payant cet environnement là. Alors ça, je vous ai jamais montré comment créer un environnement et cetera, mais
32:34
Speaker A
je vais pas mélanger un peu les choses, je le laisse dans une partie à part.
32:38
Speaker A
Donc si vous voulez, mais si vous travaillez avec collab donc forcément problème ne se pose pas parce que vous avez forcément un environnement mais il est très important à un moment donné de savoir créer l'environnement, de savoir le gérer et il faut à un moment donné si
32:55
Speaker A
vous êtes habitué à à écrire des applications d'utiliser des IDE comme comme VS Code parce que à la fin je vais vous montrer comment comment déployer le modèle parce que souvent ça c'est la la grande la grande partie que qu'on montre
33:10
Speaker A
pas dans les formations, c'est que les data scientistes, il te fait tout mais après j'ai un modèle qui est très bon mais qui donc à un moment donné on a besoin d'un ingénieur qui fait de l'ingénierie logiciel, qui va prendre le modèle, qui
33:25
Speaker A
va le déployer et cetera et pourtant c'est pas compliqué. Donc c'est pour cela nous à la fin de la formation, on va essayer de voir comment euh à la fin euh comment on va enregistrer le modèle entraîné, comment on va le lire, comment
33:37
Speaker A
on va le déployer dans des applications avec un backend, un front-end. Et ça c'est quelque chose qui est très utile.
33:43
Speaker A
En tout cas, ici, je vais choisir donc l'environnement que j'ai ici et je vais commencer à à écrire mon table. Alors déjà, bon, j'aurais besoin de lire un dataset. Alors, le dataset, c'est celui-là, c'est un fichier CSV que
33:57
Speaker A
j'ai écrit manuellement. Alors, comme je disais, donc c'est toujours bien de commencer avec un un dataset que vous comprenez bien. Donc, ici, donc j'ai euh name, c'est mieux comme ça. Ouais. Alors, j'ai le nom name, la colonne âge et salaire. Et après donc
34:19
Speaker A
j'ai plusieurs personnes avec des avec des valeurs quelconques. Bon ça c'est des valeurs que j'ai tapé manuellement euh mais on va essayer donc de prendre ça mais après on va on va l'appliquer un un dataset quelconque. Alors pour cela
34:32
Speaker A
donc j'ai besoin d'importer euh pondas. Bon c'est pas grave. Alors importe donc pondas as alors pondas as pondas.
34:48
Speaker A
Donc ça c'est des librairies que que nous aurons besoin de d'importer. Ça on a l'habitude de l'utiliser. Donc je vous rappelle juste que c'est pour installer Pondas. Donc si on travaille sur un environnement Python, donc on va utiliser pip euh install
35:08
Speaker A
Pandas. Voilà. Alors ici donc c'est déjà installé parce que je suis dans un projet là où j'ai déjà installé tout ça. Donc euh et après par la suite donc je vais lire mon dataset donc mon data frame donc c'est
35:24
Speaker A
pondas read csv. Alors le fichier c'est celui-là c'est salaire csv. Bon j'exécute. Je vous rappelle que pour exécuter, j'utilise shift entrée mais sinon vous je clique sur ce ce petit point là.
35:39
Speaker A
Donc euh et après DF donc c'est-à-dire le mon frame. Voilà ce qu'il contient comme donnée. Donc j'ai trois colonnes.
35:46
Speaker A
J'ai la colonne name âge et salaire. Alors la première des choses que je vais faire, je vais d'abord faire un un scatter plot pour voir déjà ces données là. Alors dis-moi que j'ai deux dimensions, c'est plus simple les
35:59
Speaker A
représenter et pour cela, donc j'ai besoin d'importer donc ici mat plot [Applaudissements] libt et comme ça je vais utiliser PLT scatter scatter plot.
36:23
Speaker A
Alors ici donc le x ça va être c'est df je vais représenter en x l'âge et en y je vais mettre salaire. Voilà. Alors ici donc je représente j'ai un le nuage de point.
36:39
Speaker A
Alors ici donc c'est un dataset clairement on voit déjà qu'il y a trois clusters. Bon, ça donne une idée parce que quand vous quand vous faites faites le scatter plot, ça vous donne une idée déjà sur et aux yeux, c'est-à-dire
36:53
Speaker A
combien de classe ? Alors ici, on va commencer par faire les trois clusters, chercher les les trois clusters. On va faire on va supposer que K é= 3, mais après on va utiliser pour confirmer est-ce que va confirmer qu'il s'agit
37:06
Speaker A
bien de de TR clust. OK. Alors pour cela euh donc ce qu'on va faire alors je vais d'abord importer donc Camin qui est le l'algorithme qu'on va utiliser.
37:24
Speaker A
from cycetler cluster import camins. Alors la même chose donc ça suppose que en fait c'est installé. Donc pour installer, je vous rappelle que pour installer cycet learn, donc fais ça c'est aussi beaucoup peut-être mais pas grave. C'est euh pip
38:00
Speaker A
install c pych learn, ça s'écrit comme ça 6 learn. Voilà. Alors ça c'est pour installer cet donc ça suppose que vous le connaissez.
38:12
Speaker A
Alors donc maintenant ce qu'on va faire c'est que je vais prendre d'abord le les points en fait les colons qui m'intéressent. Alors ici donc la colonne name ne m'intéresse pas parce qu'en fait dans le clustering ce qui m'intéresse,
38:24
Speaker A
je vais faire le clustering en fonction de l'âge et le salaire. Donc c'est-à-dire que pour moi à quoi est égal le x ? Donc les caractéristiques qui nous intéressent x égal à quoi ?
38:35
Speaker A
C'est DF. Et dans DF, je vais supprimer drop les colonnes. Alors, quelles sont les colonnes que je vais supprimer ?
38:43
Speaker A
Donc, c'est euh le nom tout simplement. Donc, ici, name peut-être. Oui colonne name. Donc, c'est-à-dire je vais supprimer la la colonne name et je vais garder le reste des des colons, c'est-à-dire c'est-à-dire les deux colons qui restent. Voilà.
39:03
Speaker A
Alors donc pour créer donc le on va instancier donc le KAMIN donc ici euh KM é= Kamins. Bon on va créer un objet de camise. Et là on va spécifier le nombre de clusters. Alors ici donc on suppose
39:18
Speaker A
que le nombre de cluster égal égal à 3. Alors il n'est pas défini parce que je n'ai pas exécuté le l'importation ici. Alors donc j'ai ça et une fois que j'ai créé donc le alors la même chose donc vous savez
39:40
Speaker A
random state vous mettez une valeur quelconque. Ça c'est pour je rappelle toujours que random state ça fait partie toujours de des caractéristiques parce qu'il faut fixer une valeur parce que tous les algorithmes utilisent le choix des de parfois des choix aléatoires et
39:53
Speaker A
si vous voulez que l'algorithme vous donne toujours les mêmes résultats, quel que soit le le nombre d'exécution, il vous fait il vous faut fixer le le random state. Vous pouvez mette par exemple si je mets une valeur 1 2 3, bon
40:04
Speaker A
peu importe l'essentiel, vous mettez une valeur pour fixer le le random state. Comme ça, je suis sûr d'avoir toujours le même le même en fait les les les mêmes résultats. Et puis qu'est-ce qu'on va faire ? On va utiliser
40:16
Speaker A
km et on va utiliser fit. Al, qu'est-ce qu'on va lui donner ? On va lui donner X tout simplement.
40:25
Speaker A
J'exécute. Alors, ici donc c'est-à-dire qu'est-ce qu'il vient de faire ? on vient de faire ce que ce que nous avons montré tout à l'heure comme ça, c'est-à-dire c'est cette histoire là, c'est-à-dire il calcule les distance, il il fait le le truc. L'essentiel, c'est
40:39
Speaker A
qu'il a trouvé le le les c'est-à-dire les clusters. Alors, si vous voulez voir ces clusters, vous utilisez Camins et vous pouvez chercher euh donc labels. Alors, vous voyez donc comme vous voyez les les étiquettes maintenant, c'est-à-dire de donature,
40:55
Speaker A
nous avons un classeur qui n'est pas étiqueté, plutôt un dataset qui n'est pas étiqueté.
40:59
Speaker A
Mais là, je vois bien que maintenant par exemple le premier, il appartient au cluster 0. Le deuxème la deuxième personne appartient au classe 00 0 2 2 et cetera. Vous avez les trois clusters.
41:09
Speaker A
Donc ça c'est les étiquettes. Bon, on peut le on peut faire la même chose si vous voulez en utilisant predict. Par exemple, je vais je vais écrire une variable que je vais appeler clust km predict. Alors fait pr c'est je vais
41:26
Speaker A
prédicté. X et il va déterminer les les les étiquettes, c'est-à-dire à quel classeur ils appartiennent. Bah, j'exécute mais si vous affichez cluster que vous voyez là, vous allez avoir le même résultat ici.
41:42
Speaker A
C'estàdire soit vous mettez labels, vous avez ça, clas, vous avez la même la même chose. Alors maintenant, ce que je vais faire c'est dans mon data frame, je vais ajouter une colonne que je vais appeler cluster à quoi est égal ? Ég la variable
41:57
Speaker A
clust. J'exécute, je regarde mon datafame et là je je vois bien ici donc je vois les personnes mais je vois le ici quel classeur par exemple je vois chaque chaque personne il appartient à quel classeur alors pour le moment j'ai trois
42:11
Speaker A
classeurs mais ça veut pas dire que c'est bon on va on va on va essayer de vérifier on va faire un scatter plot regardez c'est ce que je vais faire donc je vais d'abord déterminer le le le classe les c'est-à-dire je vais faire ça
42:24
Speaker A
je vais déterminer les données du cluster 1 les données du cluster 2 il est donné du cluster 3. Alors pour le faire donc je vais créer une variable que je vais appeler claster 1 à quoi est égal ?
42:36
Speaker A
DF DF entre crochet la condition c'est quoi la condition c'est DF encore de cluster égal à 1 égal à 0.
42:48
Speaker A
Alors si vous faites ça donc vous vous allez filtrer, vous allez dans votre data frame, vous allez chercher que les les lignes qui appartiennent au cluster zé. Ben, je fais la même chose pour 1 et 2. Voilà, ici 2 3 euh 3. Donc ici le
43:04
Speaker A
cluster 1 et ça c'est le cluster 2. Alors maintenant, si vous voulez, vous pouvez regarder le chaque cluster.
43:13
Speaker A
Bon, par exemple cluster cluster 1, bah il contient c'est-à-dire c'est toutes les personnes qui appartient au cluster zéro. La même chose pour cluster 2 et cetera. Alors maintenant, ce que je vais faire, c'est que je vais faire un plot.
43:27
Speaker A
Je vais utiliser plt alors point scatter plot. Alors, je vais prendre cluster 1. En x, je vais mettre l'âge en Y, je vais prendre cluster 1 salaire.
43:50
Speaker A
Je vais mettre une couleur couleur par exemple le rouge et je fais la même chose pour les autres.
44:02
Speaker A
Je vais plotter chaque classeur avec une couleur différente. Ici donc c'est classeur 2. Ça c'est par exemple le bleu. Cluster 3. Le clou c'est alors ici claster 3. Voilà. Et j'ai ça. C'est pas bon. Mais c'est pas bon.
44:36
Speaker A
C'est que c'est pas bon. C'est c'est pas sûr hein. Je mets je vais mettre green.
44:42
Speaker A
Regardez, il y a quelque chose qui cloche. C'est-à-dire on a par exemple le cluster 1. Ça c'est bien, ça c'est à peu près bien mais je vois des points qui qui sautent. Ça veut dire il y a un un
44:54
Speaker A
problème. Alors d'après vous c'est quoi le problème ? Est-ce qu'il y a quelqu'un qui peut deviner c'est quoi le problème ? Problème c'est les variables. Je pense. Quels sont les qu'est-ce qu'ils ont les variables ? Pr sur la forme seulement de salaire
45:25
Speaker A
a classé selon le salaire. Non mais c'est pas ça le c'est c'est pas ça le problème. Regardez. Oui.
45:33
Speaker A
C'est pas la densité, c'est la standardisation. Alors regardez regardez l'âge et l'âge et le salaire, ils n'ont pas la même échelle. Et ça c'est l'un des problèmes surtout à nos paratail parce que si vous faites le clastering en se basant sur ça
45:47
Speaker A
et Camise lui calcule les distances c'est-à-dire la différence entre les pour lui la différence entre ça et il considère c'est la même chose mais ça n'a rien à voir. Donc on a besoin de faire la standardisation c'est-à-dire il
46:00
Speaker A
faudrait ramener toutes les données à la même échelle. Et justement euh j'en ai parlé en partie la dernière fois. Donc cette standardisation donc bon ça c'est il y a un slide je pense ici.
46:14
Speaker A
Voilà. Donc le la la normalisation et la standardisation des données. Donc c'est une étape qui est extrêmement importante. Notamment si vous faites le clustering. Il faut s'assurer que toutes les colons que vous avez, ils ont les mêmes unutés. Alors c'est-à-dire il faut
46:27
Speaker A
le il faut les c'est-à-dire les ramener dans la même échelle. Alors, quelles sont les techniques de normal ? Par exemple, dans le il y a une technique de normalisation. Il y a trois types en fait de on va dire de normalisation. Il
46:41
Speaker A
y a min max scaler. Alors, faites min max scaler, ça permet de faire quoi ? Ça permet de calculer le x minimum divisé par X max - x min. Bon, ça c'est ça. Ça permet de vous ramener des données entre entre 0
46:56
Speaker A
et 1 et donc plutôt entre -1 et 1 parce qu'il y a pas de valeur absolue. Alors, il y a la standardisation, on a déjà montré la dernière fois. Alors la standardisation ça permet de calculer le les valeurs de
47:11
Speaker A
x moins la moyenne divisée par standard deviation c'est-à-dire l'écart-type. Et puis alors euh min max scaler et standard euh standard scaler et ils sont très pratiques mais euh ils sont ce qu'on ils sont sensibles à ce qu'on appelle aux valeurs aberrentes,
47:31
Speaker A
c'est-à-dire aux outliers. C'est-à-dire si vous avez un dataset dans lequel vous avez des outliers, c'est-à-dire les les valeurs aburrentes, et ben ces valeurs aburrent, ils vont influencer ce ce ce ce ce c'est-à-dire le la standardisation. Donc ce qui fait si
47:47
Speaker A
vous avez des valeurs aburrentes et ben tout simplement il voudrait mieux utiliser la technique qui s'appelle robuste. Alors robuste donc c'est une technique de également de de normalisation qui utilise cette formule.
48:03
Speaker A
Donc c'est X mo la médiane divisé par IQR. C'est quoi en fait ? le ce qu'on appelle l'interquartile, c'est la différence entre le quartile 3 et le quartil 1. Je m'explique. Regardez, je promis dans les de tout à
48:21
Speaker A
l'heure le mon dataset. Si je prends DF, je fais describe. Vous avez des statistiques, je fais transposer. Alors regardez par exemple pour l'âge. Alors, quel est le premier quartil ? Le 25 % vous avez le premier quartil c'est la valeur c'est 29 et le
48:43
Speaker A
3è quartil c'est 75 % donc le le IQ R c'est quoi c'est 39 moins moins celui de 25 c'est-à-dire c'est si c'est si en en en quelque sorte d'ailleurs si vous voulez voir cette cette plage de donné vous euh l'une des
49:00
Speaker A
façons c'est de d'utiliser le boxplot. Je vous je vous en avais parlé euh pour utiliser le box plot, j'ai besoin d'importer cyborn. C'est plus simple comme ça. Az SNS et vous utilisez donc euh SNS.bxplot.
49:18
Speaker A
Par exemple, je vais présenter l'âge. Alors, c'est df entre crochets de l'âge. Alors, je vais mettre X comme ça.
49:32
Speaker A
Il va le mettre en X. X = X minuscule. Voilà. Regardez ça. C'est le box plot. Le box. Vous voyez ici donc vous voyez ce que vous avez là, c'est ça. C'est c'est quoi ? Ça c'est le le premier quartil, les 25 %. Et
49:52
Speaker A
d'ailleurs ça confirme ce que nous avons ici. C'est là vous avez 29. Là ça représente c'est le c'est le la la médiane. La médiane ou ou la moyenne. Alors ici c'est quoi la moyenne ? C'est 34, c'est ça ? Non, c'est c'est la
50:16
Speaker A
médiane, c'est pas la moyenne. Il y a la médiane. Et là, vous avez le le qu le le 3è quartil, c'est-à-dire ça, c'est la valeur. Donc finalement le IQR, c'est ce que vous voyez là, ce qui est coloré. Mais tout
50:29
Speaker A
ce qui est en dehors euh parfois ça peut être considéré comme des des des c'est il donne pas beaucoup d'importance à ce qui est en dehors de ce ce-à-dire ce cet espace. Donc bon, ça c'est juste pour vous expliquer le principe. Donc euh euh
50:46
Speaker A
plutôt le rob donc c'est une technique de normalisation euh qui permet donc qui se qui s'appuie sur le IPR. Et cette technique là de standardisation, il n'est pas sensible aux outliers. C'est-à-dire que même si vous avez des outliers, ils ils vont pas
51:03
Speaker A
influencer le le c'est-à-dire le facteur de standardisation. Mais dans la majorité des cas, vous allez trouver Minx Scaler et Standard Scaler. Alors justement, nous nous allons utiliser par exemple Minx Scaler par exemple. Alors vous voyez ici donc nous
51:21
Speaker A
avons constaté que il y a quelque chose qui qui n'a pas bien marché. Alors pour cela donc je vais importer.
51:34
Speaker A
Alors, je vais importer from cycit learn. Alors, ça c'est le pressing. Je vais importer. Vous avez max, vous avez standard scaler, vous avez tout ce que vous voulez en tout cas.
51:52
Speaker A
Alors donc ici donc je vais créer le scaler, c'est min max scaler. Et après donc pour faire le le scaling donc je vais créer une variable que je vais appeler X scalet par exemple égal à quoi ? C'est scaler fit un
52:13
Speaker A
transform transform X. Bon, c'est-à-dire mon X là, donc je vais le faire le avec le min max scaler. Si vous regardez X skelet, vous allez trouver maintenant ça c'est les âges euh plutôt ça c'est vous voyez donc les
52:28
Speaker A
valeurs ils sont ils sont comprises entre 0 et et 1. Ça c'est des 0 et des 1. Donc ça veut dire que maintenant j'ai ramené l'âge et le salaire à la même échelle. Et là vous pouvez faire le le
52:43
Speaker A
vous pouvez faire le clustering comme il faut. Alors justement c'est ce que je vais faire. Je vais encore reprendre l'opération de Donc je je vais créer maintenant, regardez, je vais créer un modèle dans lequel j'ai de de c'est-à-dire je vais
53:00
Speaker A
créer un pipeline dans lequel j'ai de de modèles. Il y a d'abord un un preprocessing qui est le min max scaler et ensuite c'est coming. Alors pour cela euh ce qu'on va faire c'est que on va importer from it
53:18
Speaker A
learn pipeline cyit learn pipeline. Je vais importer pipeline. Et ça c'est très c'est très utile parce que normalement quand je vais faire la prédiction à chaque fois que je prends une personne avec son âge, il faut d'abord que je la
53:42
Speaker A
fais passer le scaler parce qu'il va d'abord la la transformer et ensuite je vais donner à Camise pour faire la prédiction. Alors pour cela, je vais importer donc ce ce pipeline et pour cela donc je vais créer donc mon
53:57
Speaker A
estimateur. Le modèle que je vais créer c'est un pipeline dans lequel je vais trouver euh un tableau de modèle. Alors le premier élément c'est min max scaler.
54:10
Speaker A
Ben je vais lui donner un nom. Je vais l'appeler scaler virgule min max scaler. Et le deuxième élément c'est camins, c'est-à-dire clasterine, je vais l'appeler clasterine et la valeur c'est camins. Alors ici le nombre de clusters c'est combien ?
54:34
Speaker A
3. Alors la même chose donc je peux ajouter donc comment random state random state 1 2 3 peu importe. Alors ça c'est regardez ça c'est un modèle si je crée ce modèle là euh c'est un modèle dans lequel
54:51
Speaker A
maintenant avec lequel je peux faire le fit. Bah qu'est-ce que je vais faire ?
54:55
Speaker A
Je vais utiliser estimator point fit. Fit quoi ? X. Regardez qu'est-ce que je lui donne en entrée X. Mais qu'est-ce qu'il va faire fit ? Il va d'abord faire le min max scaler d'abord parce qu'il va le transformer et ensuite il va utiliser
55:15
Speaker A
camise. Ça ça va nous éviter de de faire les choses en deux en deux étapes. Sinon vous allez le faire vous-même. Vous faites le scaling d'abord et après vous utilisez camise. Mais ça c'est c'est beaucoup plus pratique comme ça. Alors
55:27
Speaker A
ici donc si vous faites fit on va exécuter. Alors ici il y a quelque chose la valeur quelque chose que j'ai raté.
55:38
Speaker A
Alors ici pipeline min max skiller. OK des parenthèses. Oui tout à fait. et une autre parenthèse ici parce que euh alors attendez donc j'ai je fais ça.
55:57
Speaker A
Regardez je j'ouvre la parenthèse, ça c'est un tableau, un crochet le début du tableau. Et chaque élément c'est un c'est un taple, c'est-à-dire c'est un ensemble dans lequel j'ai le nom du modèle le modèle lui-même. Et ici la
56:10
Speaker A
même chose. Donc ça c'est le nom du modèle le modèle. Il nous faut une dernière il faut fermer le voilà, il faut il faut la parenthèse d'abord. Tout à fait.
56:22
Speaker A
Je ferme le crochet et la dernière parenthèse. Voilà, vous pouvez faire quelque chose que comme ça comme ça. Chose comme ça. Ça vous donne quelque chose comme ça.
56:36
Speaker A
C'est à peu près ça. Alors ici donc voilà. Donc c'est juste la syntaxe. Alors j'exécute.
56:46
Speaker A
Alors je fais fit. Alors d'ailleurs vous allez voir, il vous donne un petit joli dessin qui vous montre le pipeline dans lequel j'ai le min max scaler et j'ai euh camise.
56:57
Speaker A
Alors pour ça, il y a les paramètres qui sont là. Donc je peux voir à peu près ce que ce qui se passe. Alors maintenant, j'ai j'ai fait donc le ça. Alors euh si je veux les je veux faire prédict
57:10
Speaker A
maintenant, je voudrais par exemple avoir les clusters, je vais l'appeler clusters clusters euh 2 comme çait cluster cluster 2 à quoi est égal ? Et ben claster 2 égal tout simplement c'est c'est camin point predict n'est-ce pas ? Oui mais
57:39
Speaker A
moi qu'est-ce que j'ai ici ? J'ai pipeline l'estimateur. Donc l'estimateur donc si je veux camise donc je dois utiliser estimator entre crochet de 1 parce que si vous mettez de zé de zé ça veut dire quoi ?
57:53
Speaker A
1000 max scaler et si vous mettez de 1, c'est-à-dire c'est camins. Mais parfois si vous voulez le dernier parce que parfois dans votre pipeline, il y a 5 pour ne pas compter pour si vous voulez avec Python, si vous
58:07
Speaker A
voulez le dernier, vous mettez -1. Alors que quand vous mettez l'indice -1, c'est-à-dire le dernier élément du tableau, vous commencez de l'autre côté.
58:15
Speaker A
C'est beaucoup plus pratique comme ça. Donc moin 1, c'est-à-dire je pointe vers le le dernier élément du pipeline ici.
58:21
Speaker A
Donc je vais utiliser predict. Bon si vous voulez vous mais attendez, je fais d'abord predict avec l'estimateur point predict. C'est normal. Prédict quoi c'est X. C'est normal, je fais prédict parce qu'il doit passer d'abord X. Il doit faire min max
58:37
Speaker A
killer et après il va faire la prédiction. OK. Alors maintenant, je peux ajouter ça dans mon data frame. Je vais ajouter une colonne, une colonne que je vais appeler donc ça c'est cluster und 2 égal à quoi ?
59:00
Speaker A
égal je vais l'appeler predicted. C'est les cluster predicted. Voilà. Alors, regardons maintenant notre data frame. Notre Alors, au début, nous avons fait ce clastering, on a vu que c'est pas très C'est pas très bon. Maintenant, on vient de faire un nouveau classe,
59:25
Speaker A
mais on voit bien, regardez, avant c'était z é maintenant c'est c'est 1. Alors maintenant, ce qu'on va faire, c'est qu'on va visualiser encore ce ces ces données du cluster comme on a fait ici. Exactement. Je reprends ça. Sauf que ici donc je vais
59:48
Speaker A
utiliser Ah, je je dois d'abord voilà, je dois d'abord calculer les trois clusters comme je l'ai fait ici.
60:05
Speaker A
Voilà. Donc ici, je vais l'appeler claster 11. Ça c'est 22 33. Alors ici c'est quoi la colonne sur laquelle je vais filtrer cette fois-ci ? C'est clas c'est c'estàd c'est claster 2.
60:20
Speaker A
C'estàdire je vais chercher tous les éléments. Donc classe la colonne claster 2 é= 0 donc claster 2 é= 1 donc claster 2 égal é 2. Alors donc j'ai mis nouveau claster. Alors maintenant je vais représenter le cluster 11.
60:39
Speaker A
Cluster 22 cluster 33 et ça marche. Alors ici donc je vois bien que le c'est-à-dire visuellement parce que ça c'est c'est comme si je suis en train d'expérimenter l'algorithme sur quelque chose dont presque je connais le la solution. Donc
61:06
Speaker A
c'est juste pour vous dire, regardez ça c'est un un point qui est très important, c'est quand vous faites le clasterine avec le claster d'une manière général, il est obligatoire si vous n'avez pas les mêmes unités parce que si vous avez toutes les
61:20
Speaker A
collan les mêmes unités, il y a pas de problème. Mais si c'est pas les mêmes unités, donc il vous faut utiliser un une standardisation.
61:28
Speaker A
Si vous le faites pas, vous n'allez pas avoir des bons résultats. Alors maintenant, je voudrais représenter également les centres de classe, c'est-à-dire voilà les classe mais le le il est le le centre de classe. Alors si vous voulez connaître le centre de
61:42
Speaker A
classe, vous pouvez utiliser par exemple, je vais l'appeler classe, c'est ce qu'on appelle les centroid. Centruid. Centruï, c'est quoi ? Et ben c'est tout simplement c'est le pipeline, c'est-à-dire le notre estimateur estimateur de moins1 cette fois-ci, c'est-à-dire ce qui m'intéresse c'est
62:06
Speaker A
CAMIL. Et je vais chercher un attribut qui s'appelle class cluster centers cluster undersore centers comme ça avec je pense un underscore à la fin. Voilà.
62:23
Speaker A
Et ben c'est ça. Regardez maintenant si vous voulez les centres de classe de camé c'est ça. Mais regardez c'est des valeurs qui sont petite. Normalement cette valeur là ça représente quoi ? Ça représente l'âge et c là ça représente
62:36
Speaker A
le le salaire. Mais si je veux les représenter ici, je peux pas le faire parce que je dois faire l'opération inverse. Et si vous voulez faire l'opération inverse, donc je vais utilised si vous voulez. C'est bon. Alors ce que je vais
63:00
Speaker A
faire donc c'est saintid égal à quoi ? C'est l'estimateur cette fois-ci de zé. Alors de zé c'est c'est c'està-dire quoi ?
63:14
Speaker A
C'est-à-dire celui-là min max scaler et je fais j'appelle une opération qui s'appelle inverse inverse. Alors inverse inverse euh bon inverse. Alors en tout cas vous avez tout ici. Alors ça c'est le cluster version 2 transform inverse transform. Voilà c'est
63:54
Speaker A
ça f transform alors ici. Donc ça c'est ça c'est ça c'est centy ici c'est inverse transform. Tout à fait. Alors ici donc je vais chercher le mon fichier s'appelle insert voilà cluster insert donc c'est inverse transform c'est une
64:18
Speaker A
méthode non c'est un h ah inverse transforme quoi c'est scalet donc c'estàd inverse je lui donne le le c'est-à-dire scalet et après il me donne la l'inverse transforme c'est c'est standardisation invers Inverse transform, c'est la déstandardisation.
64:42
Speaker A
Je sais pas ça ça se dit comme ça. C'est la déstandardisation, c'est-à-dire la normalisation. Enfin, c'est pas de la normalisation.
64:49
Speaker A
Oui, c'est l'opération inverse. Alors ici, donc je vois bien ici les les âges et là je peux les représenter maintenant dans euh voilà dans mon graphique ici. Donc plt scat plot.
65:09
Speaker A
Ben, je vais prendre Sindruïd. Alors, comme ici c'est un tableau c'est un tableau en fait NPA.
65:17
Speaker A
Alors, ici donc je vais dire syndroid entre crochet euh pour les les lignes toutes les lignes. Alors, toutes les lignes, c'est-à-dire vous mettez deux points de Si vous mettez deux points, c'est-à-dire l'abscisse, c'est toutes les lignes. Et euh qu'est-ce qui m'intéresse ? C'est la
65:33
Speaker A
colonne zéro. Donc c'est la colonne zéro, c'est le c'est l'âge, n'est-ce pas ? c'est-à-dire toutes les lignes et la colonne zéro. Mais si je veux le salaire, je fais la même chose, c'est-à-dire je prends le tableau, je prends toutes les lignes
65:49
Speaker A
ici. Vous savez parce qu'avec Python, on peut mettre par exemple 2 jusqu'à 8. Ça veut dire quoi ça ? Ça veut dire que je vais prendre les lignes de 3 jusqu'à 8 et quel colon c'est zé. Mais si vous
66:02
Speaker A
mettez rien à gauche et à droite, ça veut dire c'est toutes les toutes les lignes. Voilà. Alors 0 si c'est 1. Voilà, c'est la la deuxième colonne. Alors je vais prendre la couleur par exemple, je vais mettre black, je vais mettre euh marker. Voilà
66:24
Speaker A
le marqueur, je vais mettre une étoile et la taille size par exemple 100. Alors, il y a une quelque chose que je n'ai pas complété.
66:39
Speaker A
Alors marker c'est virgule. Oui, tout à fait. Voilà. Donc, j'ai ici le classeur. Alors, ce que vous voyez là, donc c'est ce que vous voyez des étoiles, c'est des centres de classe. Donc ici, donc j'ai C1, C2 et C3.
66:57
Speaker A
Alors, je pense que cet exemple là, ça résume un peu vraiment ce qu'il faut savoir. Alors, maintenant, ce qui reste, on va utiliser elbo pour voir est-ce que réellement c'est ces trois classes.
67:06
Speaker A
Alors, pour cela, pour faire pour utiliser elbo, on va d'abord calculer, on va définir un tableau, c'est sum of squared errors, c'est un tableau. Et puis je vais faire ici donc le je vais utiliser euh K range. Donc K il va varier entre 1
67:28
Speaker A
jusqu'à par exemple 10. Donc je voudrais faire varier le le cas de de 1 jusqu'à 10. Et après je vais faire une boucle for k in k range de point. C'est-à-dire K il varie de 1 jusqu'à jusqu'à 10. Et à chaque
67:48
Speaker A
fois qu'est-ce que je vais faire ? Et ben, je vais créer le le modèle exactement comme je l'ai fait ici. Je vais faire ce copier-coller ce modèle estimateur. Alors maintenant, je peux arranger ça dans la même ligne. Voilà. Donc je crée les les
68:16
Speaker A
l'estim l'estimateur. Sauf que ici au lieu de mettre 3, qu'est-ce qu'on va mettre ?
68:26
Speaker A
Bah on va mettre K, n'est-ce pas ? Parce que ici, je vais faire le classeurine d'abord en utilisant K é= à 1, ensuite K = 2, K = 3 et cetera. Donc à chaque fois que je fais le je fais le le clustering,
68:41
Speaker A
ben je vais calculer je vais euh déterminer donc le le l'inertie. Et ben pour avoir l'inertie, c'est un score et ben il suffit d'utiliser donc l'estimateur. Maintenant l'inertie on va la chercher dans Camins, c'est-à-dire je vais mettre encore -1, c'est-à-dire je
68:59
Speaker A
vais chercher dans l'estimateur Camins. Et on va tout simplement faire appel à inertia. Inertia entre avec la fin inertia. Voilà, c'est l'inertie.
69:14
Speaker A
Inertia. Oui, tout à fait. Donc j'ai l'inertie, j'ai je calcule l'inertie et cette inertie je vais l'ajouter à voilà s appent, c'est un tableau. Je vais ajouter ce score. Voilà. Alors regardez si vous exécutez ça, c'est que vous avez fait
69:36
Speaker A
j'ai pas fait fit parce que il faut utiliser estimate point fit. Fit quoi ?
69:46
Speaker A
X. Voilà, regardez, j'ai fait le classe mais j'ai fait le classe combien de fois ?
69:54
Speaker A
De 1 égal à de 1 jusqu'à 9 parce qu'en fait le le dernier n'est pas prise en considération. Donc j'ai fait le class pour une classe. Bon, ça sert à rien de faire le class pour une classe.
70:04
Speaker A
Normalement, on peut commencer par par deux et cetera et cetera. Donc vous faites ça, vous faites le clasterine, vous faites le voilà fit c'est le clasterine, je prends l'inertie. Donc je vous rappelle que l'inertie c'est quoi ?
70:17
Speaker A
L'inertie c'est ça c'est la somme la somme des distances au carré. Ce qu'on appelle la somme intra intraclaster euh des distances au carré.
70:35
Speaker A
Et ben je l'ajoute ici. Donc voilà, j'exécute, il y a pas de problème. Si vous voulez regarder ce qu'il y a dans SSE, c'est un tableau.
70:43
Speaker A
Regardez, ça c'est pas bon parce que normalement je devrais aller jusqu'à je devrais avoir 10. Mais pourquoi j'ai que ça ?
70:54
Speaker A
Attendez. Alors SSE estimateur fit. Eneria range. Voilà, c'est ce que j'ai oublié. Ça c'est le c'est le c'est l'intervalle, n'est-ce pas ? Parce que là, c'est comme si je fais varier le cas de uniquement 1 et et 10. Mais Rin,
71:35
Speaker A
c'est-à-dire entre 1 et et 10. Alors maintenant, j'exécute et là je vois ici, regardez, ça c'est le c'est le notre c on va on va tracer cette courbe là. On va utiliser PLT.plot. On va faire plot sse.
71:54
Speaker A
Regardez. Alors, ça c'est c'est notre elbow. Et ici donc parce que ça commence de zéro, je vais utiliser ici car en X et SSE en Y. Et vous allez avoir ça. Là on voit clairement, regardez notre elbo, c'est il est sur combien ?
72:17
Speaker A
sur 3. Donc c'est ça signifie euh que euh ici notre est à 3, c'est-à-dire effectivement il y a trois trois classes. Il y a trois clasters.
72:31
Speaker A
Oui. Comment je vais visualiser le si j'ai commencé mon ringe par 3 de j'ai prévu que ça va être entre 3 et 10 par là généralement vous avez si vous utilisez elbo, vous avez intérêt à commencer m de je sais pas pourquoi j'ai
72:48
Speaker A
fait ça oui il se peut qu'il y a que deux classeur ouais parce que vous allez il faut il faut survoler tous les donc c'est pour cela ici on a commencé de 1 nous m 1 men 1 on cherche le le cas
73:02
Speaker A
optimum. Alors ici donc ilbo nous dit que voilà il y a il y a trois c'est clair alors si parfois comme je disais donc si parfois vous voyez que ici elbo il donne pas vraiment c'est-à-dire ce pointl n'est pas visible
73:17
Speaker A
on va calculer ce qu'on appelle la silhouette silhouette égale et ça c'est encore plus intéressant alors pour calculer la silhouette on va utiliser silhouette égale Il nous faut une il y a une métrique qui s'appelle silhouette score. Je vais
73:42
Speaker A
l'importer. Alors from cycit learn, vous imaginez cycit learn, il vous donne toute la vie de du mach. Alors ici donc matrix et dans les matrix je vais importer silhouette scorve.
74:00
Speaker A
Et ici, qu'est-ce que je vais faire ? Je vais appeler silhouette score. Et qu'est-ce que je vais lui donner ? Alors, je vais lui donner le X et les labels. Le X et les labels. Alors, c'est quoi les
74:15
Speaker A
label ? C'està-dire ce X là qui sont les les clusters ? Alors, dans notre cas, les clusters, ça va être quoi ? Ça va être c'est pipe encore c'est l'estimateur de -1 labels labels. Voilà undersore je pense ici. Alors si vous faites ça alors
74:37
Speaker A
maintenant on va utiliser silhouette pointappend. Je vais ajouter la valeur de silhouette. Alors, il y a une erreur. Alors, ici label c'est mal écrit les je pense pas ça. Ouais, c'est ça. Il y a pas de underscore ici.
75:02
Speaker A
aussi et pourtant l'a déjà utilisé là c'est ça ? Ouais. Non undore mais l'erreur c'est pas ça. Regardez.
75:21
Speaker A
Alors, labels, c'est underscore. Donc ça, je confirme ici. Mais regardez le message d'erreur. Le message d'erreur, il vous dit que il silhouette score, ça exige de commencer par deux. C'est-à-dire pour calculer s de score, il faudrait que euh
75:41
Speaker A
il faudrait avoir minimum 2. C'est-à-dire que euh c'est-à-dire ici le 1 là, si vous voulez garder le 1, il faut faire ici un test. Si si si c'est 1, vous ajoutez 0 et vous vous le sautez. Mais dans notre cas, on va faire
75:55
Speaker A
plus simple, on va mettre par de parce que de toute façon euh chercher pour la valeur 1, ça n'a aucun aucun intérêt. Donc il calcule alors ici donc vous voyez ce et vous pouvez voir de la même manière, vous pouvez
76:11
Speaker A
voir silhouette. Alors silhouette vo les valeurs, on va les tracer. On va tracer la silhouette.
76:25
Speaker A
Regardez. Et ça c'est intéressant ça. Regardez. Alors la silhouette ça vous donne vous cherchez le maximum c'est-à-dire la silhouette si dans votre corps, vous cherchez le le point le point le plus haut. Alors si vous cherchez le point le plus haut,
76:41
Speaker A
vous voyez bien que ici donc c'est quoi ? C'est c'est 3. Alors normalement ça devrait me donner quelque chose de différent. Attendez. Je juste m'assurer. Ça c'est SSE et ça c'est silhouette.
77:04
Speaker A
Ouais. Voilà. Donc c'est-à-dire que vous avez deux techniques. Donc soit vous utilisez elbow. Donc vous voyez donc elbow c'est ça. La deuxième technique c'est d'utiliser silhouette et dans ce cas-là vous cherchez le point le plus le plus haut et ça vous donne le le nombre
77:18
Speaker A
de de clasters optimum. Est-ce que c'est clair mon ? Oui. Monsieur, j'ai une question à propos de la méthode Elbow. Oui. Euh au début, avant d'ajouter le calje, on a trouvé que c'est deux, c'est pas trois là. Mais
77:37
Speaker A
après euh Non, en fait c'est juste la représentation ici. Euh quand j'ai représenté, j'ai j'ai pas mis le j'ai représenté plot. Regardez euh j'ai représenté plot et je n'ai pas mis le X.
77:50
Speaker A
Donc ça commence de zéro. Donc pour normalement ici 0 ça représente pour nous c'est 1 plutôt. C'est le 0 c'est 1 et le 1 c'est bon. Déjà ici c'est pas bon. C'est pas le cas parce que maintenant on a
78:02
Speaker A
commencé à partir de 2 n'est-ce pas ? Donc ça veut dire que ici le 0 ça représente 2 et le 1 représente 3. Donc c'est pour cela il faut pas oublier de de mettre euh voilà de mettre ringe et
78:16
Speaker A
ça ça vous donne la la valeur. Est-ce que c'est ça ? ta question. Oui oui, merci.
78:24
Speaker A
Parfait. Voilà. Alors bref, donc euh ça c'est le c'est ce qu'il faut savoir sur Camis.
78:30
Speaker A
Donc je pense que vous avez les les explications, le principe de base. Vous avez les métriques qu'on utilise pour mesurer. Vous avez la technique elbo, vous avez un peu le code, vous avez les slides pour pour voir un peu ce qu'on
78:43
Speaker A
vient de faire ici. La standardisation, la normalisation plutôt. Vous avez ça, on a fait ça, on a fait ça. Voilà. Normalement, normalement, je devrais avoir quelque chose comme ça au niveau de la silhouette. Mais pourquoi je n'ai pas ça
79:08
Speaker A
? Ah bon, ici donc j'ai fait un peu truc euh parce que j'ai commencé de 1 à 10 et après j'ai fait un test. If k = 1, je vais ajouter 0 sinon je vais ajouter euh voilà labels X.
79:24
Speaker A
Mais en tout cas, donc ça c'est le le le principe principe de base. Alors maintenant juste le la dernière partie de de ce cours donc c'est le le ce qu'on appelle c'est le on va étudier principal que c'est l'analyse
79:44
Speaker A
de composantes principale. Alors alors pourquoi pourquoi donc c'est-à-dire le la la réduction de dimensionnalité ? Parce qu'il se trouve que parfois vous avez un dataset dans lequel vous avez beaucoup de colonnes. Vous avez un dataset dans lequel vous avez des centaines de
80:04
Speaker A
colonnes ou la 180 colonnes et donc c'est beaucoup, c'est un grand dataset. Mais en réalité, si vous cherchez toutes les colonnes, vous allez sûrement trouver il y a beaucoup de colonnes euh qui sont linéairement dépendantes. Et et du coup, donc si vous
80:20
Speaker A
cherchez, vous allez euh utilises, vous pouvez représenter euh au lieu de représenter avec 80 fiches, vous pouvez le faire avec 20 et vous allez préserver une bonne partie des informations. C'est ce qu'on appelle la variance.
80:36
Speaker A
Alors pour cela, il y a des algorithmes. L'un des algorithmes les plus populaires, c'est c'est PCA. Alors PCA, c'est principal component analysis. Donc c'est un algorithme, c'est une méthode qui est largement utilisée en statistique. Quasiment tous les gens qui
80:51
Speaker A
font des statistiques utilisent donc cette réduction de dimensionnalité. Donc il est utilisé en apprentissage automatique pour la réduction de de la dimensionnalité des dataset.
81:04
Speaker A
Alors en fait le PCA vise à réduire le nombre de variables d'un ensemble de données. Regardez, tout en préservant la variance.
81:14
Speaker A
C'est-à-dire, on va perdre quelques informations, mais on va essayer de de garder les informations les plus importantes, c'est-à-dire les ce qu'on appelle les les les patterns les plus importants, c'est-à-dire le le plus important machine learning, c'est pas toutes les
81:31
Speaker A
données. Ce qui est important, qu'est-ce qui décide ? les patterns, c'est-à-dire les patterns, c'est le les motifs qui se trouvent dans les données qui font que votre algorithme, il décide que ça soit comme ça ou bien comme ça. Et bien bon
81:46
Speaker A
euh donc les nouvelles variables généralement, c'est-à-dire vous avez un dataset qui contient euh des des features de F1 jusqu'à 8 et à partir de là, on va obtenir un autre dataset dans lequel j'ai la composante C1, C2 et C3.
82:02
Speaker A
Dans ce caslà, C1, c'est-à-dire que mon dataset maintenant, je le représente avec trois caractéristiques, C1, C2 et C3. Et si C1, C2, C3, ça peut remplacer toutes ces ces colonnes. Donc, je suis en train de réduire la dimension de la
82:17
Speaker A
dimensionnalité de mon dataset. En fait, c'est tout à fait possible. Je sais pas par exemple en géométrie euh je vais un peu dessiner un peu supposons vous avez vous avez par exemple euh en 3D en trois dimensions, regardez quelque chose comme ça. Vous
82:35
Speaker A
avez X, ça c'est Y et ça c'est Z. C'est-à-dire vous vous cherchez un point et puis vous avez vous avez par exemple euh vous avez par exemple une droite. D'accord ? Vous avez une droite une droite qui se trouve par
82:54
Speaker A
exemple ici comme ça. Mais si vous regardez bien cette droite là, il se trouve dans le plan YZ. Donc si vous représentez les points les points de cette droite là en X Y Z, bah vous allez à chaque fois pour chaque
83:12
Speaker A
point vous aurez besoin de savoir la coordonnée X vous projetez par rapport à Y et à par rapport à à x. Donc vous avez combien de coordonnées ?
83:21
Speaker A
Vous avez 3 mais comme la droite se trouve dans le plan X Y, si j'essaie de chercher un repère comme ça, hop, comme ça dans l'espace, c'est-à-dire si je change de repère, ben je vais trouver finalement cette droite là, je peux l'exprimer avec
83:38
Speaker A
une seule dimension. Mais est-ce que j'ai j'ai perdu des données ? Non, c'est juste parfois on change en en faisant un changement de de repère d'aller vers la bonne direction.
83:50
Speaker A
Et bien c'est ce qu'il fait PCA. Sauf qu'avec PCA, il fait quelque chose de plus complexe parce que vous avez des vecteurs de une dimension. Donc qu'est-ce qu'il fait ? il va chercher tout simplement euh il va chercher
84:05
Speaker A
euh à projeter cherche la bonne phrase ici. Donc déjà en terme de de corrélation PCA suppose que les variables sont linéa corrélées. Donc forcément, c'est quelque chose qu'on peut toujours déterminer parce que rappelez-vous quand on calcule la matrice de corrélation, on peut toujours
84:25
Speaker A
avoir la valeur de corrélation entre une colonne et une colonne. Et donc on prend cette matrice de corrélation qui est ND et on va essayer de la projeter dans un dans un espace qui est qui est de dimensionnalité réduite. C'est à peu
84:43
Speaker A
près ce que je suis en train de de vous montrer comme ça. C'est-à-dire, il va chercher, c'est-à-dire dans quel espace où les mêmes données peuvent être décrites avec moins de features en quelque sorte. Alors l'une des des techniques
84:57
Speaker A
qui sont couramment utilisées par PCA, c'est ce qu'on appelle la décomposition en valeur singulière SVD. Donc SVD, il est basé sur le calcul des vecteurs propres et des valeurs propres.
85:12
Speaker A
Alors voilà pourquoi l'algèbre linéaire, elle est très important dans les statistiques et le le machine learning.
85:18
Speaker A
Vous savez que si vous faites le calcul matriciel, les gens qui font du calcul matriciel, vous leur dites les valeurs propres, les V qui sont extrêmement importantes en machine learning. Vous voyez donc grâce aux valeurs propres et aux vecteurs propres, PCA permet
85:31
Speaker A
facilement de de déterminer donc le de chercher la dimensionnalité. Donc si vous regardez l'algorithme lui-même comment il utilise donc il est basé sur ça. Donc chaque composante principale représente une direction dans l'espace des variables d'origine. Donc voilà donc c'est à peu
85:51
Speaker A
près le fonctionnement de base. Alors maintenant comment utiliser PCA ? Donc je vais directement passer au lab.
85:59
Speaker A
Alors, pour vous montrer le le c'est-à-dire le le comment utiliser PCA, je vais utiliser un dataset from cycetler. Je vais importer dataset dataset. Et vous savez ici dans cet, il vous donne des datasets qui sont standard parmi les les dataset qui sont
86:25
Speaker A
assez connus. Par exemple ici, je vais créer je vais chercher dataset égal à quoi ?
86:32
Speaker A
Égalasets au pluriel. Euh ici donc je vais utiliser digits digits alors dataset load digits. Alors en fait data load digit qu'est-ce qu'il permet de donner ? Il va vous donner voyez ici donc vous chargez vous allez charger un dataset. Mais qu'est-ce
86:55
Speaker A
qu'il contient ce dataset ? Ben ce dataset il contient, attendez, je vais vous montrer il contient ça.
87:10
Speaker A
Ça, bah, il contient un ensemble de petites images. C'est des petites images mais dans laquelle vous avez euh des nombres manuscrits 0 1 2 et cetera. Donc c'est-à-dire chaque chaque ligne chaque ligne de ce dataset c'est une image mais
87:27
Speaker A
sauf que c'est une image de très petite de 8 x 8 8 pixels x 8 pixel c'est-à-dire il y a combien de valeurs ? 64 c'est-à-dire si vous prenez une matrice de de chaque chaque petite image de 8 x x 8 donc c'est-à-dire vous
87:47
Speaker A
allez avoir un dataset il y a combien de de colonnes ? 64 parce que chaque image c'est une c'est chaque image c'est une c'est un échantillon, n'est-ce pas ? Et l'image elle-même c'est combien de pixels ? C'est 8 x 8. Donc nous allons
88:04
Speaker A
avoir 64. Alors pour dans une image 64 pixels, c'est pas beaucoup mais pour nous ce qui nous intéresse, c'est de comprendre le principe. Mais en réalité c'est que vous avez des mégapixels. Et quand vous avez des mégapixels, c'est-à-dire vous avez 1 million de
88:17
Speaker A
pixels. Et si vous avez 1 million de pixels, ça veut dire vous avez un dataset de 1 million de colonnes. Ça veut dire que imaginez les calculs. Donc ce qui fait que parfois pour ça ça pèse en terme de de
88:30
Speaker A
ressources. Donc parfois donc PCA il va on va essayer de voir peut-être on n' pas besoin de garder tout toutes ces tous ces pixels là. On peut réduire sans toutefois perdre le modèle. Alors justement c'est ce que je
88:43
Speaker A
suis en train de faire ici. Donc je vais lire euh pas ici ici. Donc j'ai ce dataset que je viens de lire. Alors si vous faites appel à une méthode qui s'appelle case alors alors dat set c'est pas
89:03
Speaker A
pluriel ça case ce dataset je vais mettre DS pour ne pas avoir de confusion de DS DS point alors qu'est-ce qu'il y a dans ce dataset il y a d'abord dat c'est la c'est l'image elle-même il y a target
89:19
Speaker A
en fait target c'est le label c'est-à-dire normalement c'est un c'est un dataset qui est étiqueté c'est-à-dire chaque image on connaît Est-ce que c'est 0 ou bien 1 ou bien 2 jusqu'à 9, n'est-ce pas ? Vous avez une image dans
89:31
Speaker A
laquelle vous avez un chiffre et l'étiquette ça vous indique est-ce que ce c'est 0 ou bien 1 ou bien 2 ou bien donc et après vous avez les noms des features et vous avez d'autres caractéristiques les les Voilà. Alors
89:44
Speaker A
ici donc ce qui m'intéresse c'est data ici. Donc vous voyez donc notre notre data égal à quoi ? égal c'est euh ds point data. Et si vous voulez voir les les labels, si vous voulez les target une variable target égale quoi ?
90:07
Speaker A
C'est cds point target. Alors si vous affichez data, vous allez voir voyez donc déjà dat si vous faites chip chip c'est-à-dire c'est la dimension votre dataset il y a combien d'images ?
90:24
Speaker A
1797 petites images et chaque image il y a combien de colonnes ? 64 il y a combien de valeurs ? C'est 64.
90:33
Speaker A
C'est-à-dire vous avez une matrice de 1797 multipli par 64. Alors maintenant, si je veux par exemple la première si je fais dat de zé donc ça c'est la la première image.
90:48
Speaker A
Mais si vous voulez par ex supposant je voudrais afficher l'image, bah qu'est-ce que je vais faire ? Donc j'ai besoin de de transformer ça en en une matrice de 8 x 8. Alors pour cela, vous utilisez data de 0
91:04
Speaker A
rehip 8 x 8, c'est-à-dire vous avez un vecteur de combien de valeurs ? De 64.
91:10
Speaker A
Et si vous faites repe x 8, il va vous le rendre en une matrice 8 x 8. Bon, ça c'est impaille. Bah c'est euh le c'est c'est un peu le si vous voyez ça donc vous voyez donc euh ça c'est notre notre image. Alors
91:25
Speaker A
maintenant je vais représenter cette image là en utilisant PLT. Je vais l'imprimer comme ça.
91:32
Speaker A
PLT. Euh PLT image show M. Ben, je fais ça. Alors, ce que vous voyez là, c'est un zéro. Normalement, c'est une petite image de 8 x 8 mais quand je la représente, donc ça c'est un c'est un zéro, d'accord ? Mais c'est
92:00
Speaker A
un zéro, il crée à la main. Mais on voudrait que notre modèle, on voudrait qu'il sache est-ce que c'est un zéro ou bien c'est un 1. C'est des c'est des manuscrits. D'accord ? Alors si vous voulez le représenter en en au niveau de
92:13
Speaker A
gris, vous pouvez utiliser CPLT point gr level gray tout simplement ici. Bon ça c'est c'est notre zéro. Donc si vous mettez ici 1 ça va vous représ ça c'est un 1 mais comme vous ess une image une petite image c'est petite si
92:30
Speaker A
vous la zoomez il est déformé comme ça donc c'est normal mais tout ça c'est pour ça doit être un 1 et si vous voulez si vous savez pas ce que c'est et ben il si vous savez pas est-ce que c'est un 1
92:43
Speaker A
ou là c'est je sais pas quoi bah vous n'avez qu'à utiliser donc ici target alors ici donc c'est target de target de 1. Vous voyez donc target de 1 c'est quoi ? C'est c'est 1. Ici vous affichez target, vous voyez donc les les
93:04
Speaker A
étiquettes 0 1 et cetera. Je veux représenter que les 20 premières de 0 jusqu'à 20. Regardez comment ils sont le notre dataset il est organisé. La première image c'est un 0.
93:17
Speaker A
La deuxème c'est un 1 2 3 4 jusqu'à 9. Et encore ça se reprend. 0 1 2 3 Sauf que c'est des c'est des nombres qui sont écrits à chaque fois d'une manière différente. OK.
93:31
Speaker A
Bon, ça c'est les gens qui font généralement le le machine learning souvent ce c'est des dataset qui sont très connus que tout le monde utilise pour pour tester des des algorithmes parce que quasiment c'est dans la littérature c'est c'est assez
93:48
Speaker A
connu. Alors dans le de learning, il y a un dataset qui s'appelle emnist. Emist définit justement c'est des images cette fois-ci qui sont beaucoup plus grande mais dans lequel on trouve les nombres manuscrits et donc ça c'est bon. Bref, donc nous avons notre
94:06
Speaker A
dataset. Maintenant ce que je veux faire c'est que supposons je vais créer un modèle de classification d'abord pour voir déjà mon modèle de classification.
94:16
Speaker A
Si je n si je ne réduis pas de dimensionnalité, ça me donne quoi en terme de performance ? Et puis quand je je réduis la dimensionnalité, je vais voir ce que ça va me donner. Alors pour cela, donc je vais utiliser euh ce qu'on
94:29
Speaker A
a fait déjà la dernière fois euh la régression la régression logistique. Donc ici donc from cycet learn linear modèle, je vais importer euh logistique regression.
94:50
Speaker A
Alors la la logistique regression donc c'est l'un des algorithmes de classification donc qu'on peut utiliser pour faire la classification. Donc ça vous le savez, on peut bien utiliser SVM, on peut utiliser Forest et cetera.
95:03
Speaker A
Bon, j'aurai toujours l'occasion de on va revenir tout à l'heure pour tester. On reste sur ça. Alors maintenant, j'ai mon dataset. Je vais d'abord faire un standard scaler ici.
95:19
Speaker A
scaler. Je vais encore utiliser standard scaler et je vais prendre pour moi le notre dataset ici data ici on va créer data scaled à quoi est égal égal scaler fit transform je vais encore transformer ça mes valeurs sont comprises entre 0 et et
95:51
Speaker A
1 ou là entre moins et 1. Donc revenez tout à l'heure on a utilisé min max scalar c'est cette fois-ci c'est standard scaler alors fit transform data voilà alors maintenant une fois qu'on a fait ça maintenant on va utiliser split
96:13
Speaker A
parce qu'on va avoir les données d'entraînement et les données de de test. Alors pour cela donc je vais importer from cycit learn. Euh donc c'est [Musique] euh model selection cyc modèle selection importest split. Ça on l'a déjà utilisé la
96:41
Speaker A
dernière fois. Donc je vais définir pour moi à quoi est égal x trend x tr x test y tr égal égal trend test split on va découper notre dat notre datas setet donc ça c'est le le si vous voulez pour
97:13
Speaker A
être un peu plus clair pour moi à quoi est égal xc c'est data et quoi est égal y c'est ds point vous voyez donc notre y c'est quoi c'est les c'est les target c'est ça c'est target que nous avons
97:36
Speaker A
ici target donc ici on va transformer X Y la même chose random state c'est n'importe quoi 1 2 3 4 et après test size je vais découoper mon dataset avec 0,3 c'est-à-dire il y a 30 % des données, c'est du test et 70 % c'est
97:58
Speaker A
pour les données d'entraînement pour le que c'est d'alta scale euh scales ouai Tout à fait, vous avez raison parce qu'on a fait on a fait on a transformé les données. Donc je vais je vais garder le les données.
98:23
Speaker A
Voilà. Voilà. Donc je fais ça et après donc je vais créer donc mon modèle. Alors modèle c'est logistic regation. Alors ici donc je vais utiliser donc le le kernel c'est linéaire linéaire.
98:38
Speaker A
Bon, je je garde les valeurs par défaut et puis je vais utiliser donc modèle.
98:43
Speaker A
Fit. Je fais l'apprentissage et qu'est-ce que je vais euh je vais faire ? Bah je vais utiliser fit quoi. Je vais lui donner X Y. C'est X trend et Y trend. Alors ça c'est l'apprentissage supervisé. C'est ce qu'on a vu la dernière fois.
99:02
Speaker A
C'est-à-dire, j'ai les inputs et les outputs. Je vais lui donner les inputs et les outputs. Et lui, il va chercher de de trouver le la relation qui existe entre les entrées et les sorties. Et si vous voyez ça maintenant, je veux
99:17
Speaker A
supposons je veux connaître le score, bah il suffit d'utiliser modèle point score. Il va scorer quoi ? Il va il faut lui donner la valeur de x trend.
99:42
Speaker A
Regardez, c'est c'est un un modèle parce qu'en fait le c'est-à-dire généralement vous allez trouver quelque chose qui est proche de 1. Alors déjà, bon c'est-à-dire le modèle il est il est très bon. Alors, si vous faites pour les
99:56
Speaker A
tests, c'est-à-dire je vais euh ça c'est X test Y test pour ne pour voir s'il n'y a pas de surapprissage. Alors, voyez donc c'est le test c'est 082.
100:17
Speaker A
Ouais. Alors, ça c'est 1 et ça c'est 0,96. C'est-à-dire pour les données d'entraînement, c'est c'est 1 et pour les données de test, c'est 0,96. Donc déjà logistique régression, il est très bon pour ce modèle. Sauf queon va supposer que les données sont
100:35
Speaker A
très grandes. Donc c'est-à-dire ça nous consomme beaucoup de temps pour faire l'entraînement. Alors maintenant, ce qu'on va faire, c'est qu'on va on va faire réduire la dimensionnalité et on regarde notre modèle. Euh c'est-à-dire c'est qu'est-ce qui qu'est-ce que ça va
100:48
Speaker A
nous donner ? Alors bon, vous savez si vous voulez si vous voulez la utiliser la métrique que nous avons fait la dernière fois cycit learn euh matrix import euh alors vous avez les scor et cetera comment s'appelle déjà la la
101:18
Speaker A
métrique report classification report. Ça c'est très c'est très utile. Alors la même chose ici. Donc euh si vous si vous faites predicted predin égal modèle point predict xtrain, c'est-à-dire je vais lui donner trend, ça va nous donner plutôt il va prédire les données
101:48
Speaker A
d'entraînement. il va prédire pour les données de test. Alors, modèle selection plutôt classification report.
102:11
Speaker A
Alors, vous lui donnez la valeur actuelle, c'est tr et pred trend, c'est-à-dire je lui donne le les données prédit et les données réelles et ça va me donner le ça. Mais vous faites un print si vous voulez voir le petit tableau qu'on a
102:30
Speaker A
montré la dernière fois. Vous voyez ? Donc, il y a des il y a des un partout.
102:40
Speaker A
Alors en réalité si vous changez random state ici random state je vais mettre 0 il se peut le 1 ça va vous donner 0 0,87 c'est ce que je vais faire fit score voyez c'est parce que l'aléatoire quand il a fait le split il
103:01
Speaker A
est tombé dans de des données qui sont plus favorables pour le l'entraînement vous voyez donc c'est un peu le phénomène.
103:10
Speaker A
Alors ici donc vous voyez donc l'entraînement c'est 0,99 le test c'est alors on va le confirmer ici. Alors vous voyez donc les données de ici donc écurci c'est 1 et donc c'est presque on est dans la même logique.
103:28
Speaker A
C'est presque voyez ici pour vous allez voir là où il se trompe un petit peu.
103:33
Speaker A
Par exemple ici pour le 1, il n'arrive pas il c'est normal le 1 parce qu' il fait toujours la confusion entre 1 et 7 parce que si vous regardez les petites images le 1 et le 7 parfois il il se
103:45
Speaker A
trompe et la même chose pour le le 8 parce qu'en fait entre le mais c'est toujours les performances sont bonnes.
103:53
Speaker A
Alors, je rappelle si vous voulez, j'en profite pour rappeler aussi ce qu'on a fait la dernière fois. Si vous voulez représenter la la matrice de corrélation. OK. Alors, la matrice de de corrélation, il est très importante. La c'est pas de la
104:09
Speaker A
matrice de corrélation, c'est de confusion. Alors, ici, donc on va çait. Alors, ici, ça se trouve dans modèle selection. Je pense confusion matrix je pense donc c'est Matrix. MRI. Oui, confusion. Ouais, c'est ça. Alors donc si vous voulez voir la la
104:39
Speaker A
matrice de confusion, vous utilisez confusion CMKB à la confusion matrix et vous lui donnez tout simplement par exemple pour train et pred trend.
105:01
Speaker A
vous affichez CM. Donc vous voyez donc la matrice [Musique] Allahuakbar. Allahuakbar. [Musique] Donc alors ça c'est la la rappelé la dernière fois j'avais parlé de la matrice de confusion mais c'était pour la classification binaire c'est-à-dire vrai ou bien faux. Alors ça c'est un
106:52
Speaker A
classifieur, c'est pas binaire, c'est multicasse. C'est-à-dire ici, vous avez un un data qui va prédire il s'agit d'un zéro ou bien de 1 ou bien de 2. Donc vous voyez donc c'est c'est une classification multiclasse, c'est pas binaire, n'est-ce pas ? Donc du coup
107:08
Speaker A
donc vous avez ici la la matrice de confusion, ça se représente comme ça. Vous avez par exemple ici le zéro, il y a il y a combien de de zéos que vous avez réellement d'image zé qui sont détectés 0 ? C'est 133.
107:21
Speaker A
Mais regardez les lignes ici. Si vous voyez de zé, ça veut dire il s'est jamais trempé. C'est-à-dire pour c'est-à-dire pour le zéro, il il le détecte. Par exemple ici, pour le 1, pour le 1, il y a combien de valeurs
107:35
Speaker A
qui a détecté en tant que 1 130 ? Mais ils sont où les trois autres ?
107:44
Speaker A
Alors 0 1 2 3 ici. Donc je Oui oui, il est là. Voyez alors parce que ça c'est c'est predicted, il faut voir, il faut lire comme ça parce que ça c'est la colonne predicted et ça c'est actuel. Alors
108:01
Speaker A
regardez, ça c'est la matrice mais je vais la représenter avec Hitmap. C'est beaucoup mieux. C'est beaucoup mieux. Je vais utiliser SNS point hitmap. Alors je vais représenter CM.
108:15
Speaker A
Voyez, si vous faites ça, ça vous donne ça. Alors, sauf que si vous voulez afficher les valeurs, vous mettez un note annotation annotation c'est true true avec R minuscule, ça vous donne les valeurs annotation et le format c'est je vais
108:35
Speaker A
utiliser deux chiffres après la virgule, c'est-à-dire je vais utiliser de de de f comme ça. Et après je vais euh bah je vais utiliser une dimension plt euh figure de par exemple 10 x 10 figure entre parenthèses. Figure fix
109:08
Speaker A
size c'est 10 x 10. Il y a une parenthèse en plus. Voilà. Et voilà notre matrice de de confusion un peu plus plus lisible. Mais si vous voulez ici X normalement c'est prédicted donc prédicted et ça c'est actuel, ça c'est
109:29
Speaker A
les vrais et ça c'est les prédits. OK ? Alors si vous voulez les représenter, vous ajoutez X, Y et cetera. Bon bref, donc je vous ai déjà montré un peu comment euh comment afficher cette euh hitmap euh mais ça nous donne une idée
109:45
Speaker A
sur euh par exemple ici, je vois par exemple pour le le 1 euh par exemple pour le 1 ici donc 130 voilà 130 ça chaque chiffre Attendez. Alors, j'ai bien train prê tr c'est ça. J'ai j'ai bien les
110:22
Speaker A
valeurs. Ça c'est bon. Oui, ça c'est normal parce que la chose qu'on a pas vérifié c'està-dire il y a combien de 1 ? Il y a combien de 0 ? Il y a combien de 1 ? C'est c'est normal tout ça c'est
110:39
Speaker A
normal parce que si vous représentez votre datast se forme d' d'un data frame, regardez ça va nous donner une idée. Euh ici notre DF si vous voulez représenter notre datess se forme d'un data frame, on va utiliser c'est c'est
110:54
Speaker A
pandas data frame. Alors c'est quoi data ? Data c'est c'est data ça. C'est les données, n'est-ce pas ? Et c'est quoi les colonnes ?
111:04
Speaker A
Maintenant, les collons, on va leur donner un nom. Et ici, les collons ça ça va être c'est data set, notre data set. Et dans dataset, si vous rappelez dans le les colonnes que nous avons ici, les features, vous avez les noms des
111:24
Speaker A
colonnes datet qu'on avait chargé, c'est celui-là. Regarde, c'est feature names, c'est-à-dire c'est data DS, c'est DS ici feature names. Alors, si vous faites DF, regardez. Alors, ça c'est c'est-à-dire maintenant c'est il y a combien de colonnes ? Regardez les noms comment il
111:53
Speaker A
les appelle. Pixel 00, pixel 01. Maintenant, vous représentez votre votre dataset se forme d'un c'est cet exemple là, il est intéressant parce que ça vous fait le ça c'est une petite transition parce que après on diplon on va
112:06
Speaker A
travailler beaucoup avec les images mais là vous êtes à peu près ce qu'on faisait la dernière fois. C'est presque ce qu'on est en train de de faire ici. Et donc si vous voulez euh ce dataset, si vous voulez ajouter une colonne, par exemple,
112:19
Speaker A
vous utilisez DF DF de euh outcome ou la label la target. Alors, c'est quoi target ?
112:33
Speaker A
Également target. Ça va nous donner ça. Et si vous faites DF de target point value count value count. Regardez ce donne là. On retrouve nos valeurs. Par exemple pour 3, il y a combien de d'images de type 3 ? C'est
112:57
Speaker A
83. Il y a combien de type 1 ? Et c'est euh 182 et cetera, n'est-ce pas ? Ça c'est au total mais ce qu'on représente ici c'est que les données d'entraînement. Voyez c'est que les les données d'entraînement. Donc si vous voulez pour
113:15
Speaker A
les les données de testes la même chose ici la matrice de corrélation pour les données de test. Donc c'est-à-dire ça c'est confusion train et confusion pour test.
113:33
Speaker A
Ça c'est test et ça c'est c'est test. Ben donc si vous faites si vous vous représentez donc la la matrice pour les données de test, ça va nous donner ça. Ici c'est test. Ça c'est la matrice de confusion
113:59
Speaker A
pour les données de test. Et ça c'est la matrice de confusion pour les données de d'entraînement. Bon bref, le plus important pour nous c'est c'est un peu c'est pas parce que notre objectif c c'est PCA, n'est-ce pas ? On n'a pas
114:15
Speaker A
encore. Donc c'est juste j'ai pris un dataset. Bon, j'ai fait le logistique regression en résumé pour pour que vous soyez pas perdu un peu. Donc j'ai pris donc un un dataset, ben j'ai fait euh voilà donc j'ai fait standard
114:34
Speaker A
scaler et puis donc j'ai je l'ai découpé en données de test et d'entraînement. J'ai utilisé logistique regression, j'ai fait fit. J'ai donc le score, je vois bien le score, il est les données d'entraînement c'est 9 et pour les
114:49
Speaker A
données de test, il est à 96. Et puis donc si je veux utiliser classification report parce que ça je vais y revenir parce que il y a parce que là la dernière fois on avait parlé de un classifieur binaire mais ça cette
115:03
Speaker A
fois-ci c'est un un classifieur multiclasse. Alors ici ce que vous voyez là c'est un peu le classification report. Je vois recall moi euh c'est-à-dire le recall, je vois le if one score euh plutôt ça c'est écuré ici et je vois je vois également le la
115:19
Speaker A
précision. Donc vous avez toute mais ici tout est en ver c'est-à-dire le nom de les nombres de 1 je l'ai je l'ai monté le rapport tout à fait. Ah tout à fait, tout à fait. Oui, vous avez tout à
115:35
Speaker A
fait raison. Pour les données d'entraînement, je vois ici ou d'ailleurs si c'est c'est celle que nous avons ici a 100.
115:45
Speaker A
Mais ça c'est total mais les données d'entraînement effectivement tout à fait. Alors les données d'entraînement, j'ai ici 133, j'ai 130 et cetera.
115:55
Speaker A
Oui. Bon bref, bon ça c'est un petit rappel euh par rapport à ce que nous avons fait la la semaine dernière. Donc j'ai un modèle logistique regression, je l'ai appliqué un dataset. C'est un classifieur multiclasse ça marche. Alors maintenant
116:10
Speaker A
ce que je vais faire, je vais utiliser PCA. Alors pour utiliser la réduction de dimensionnalité, je vais utiliser scalor. Je me rappelle pas.
116:30
Speaker A
Ça m'échappe. Alors non, c'est pas ça. C'est le clustering dans quelle catégorie ? Bon ça si j'ai fait j'ai fait ça. J'ai fait ça, j'ai fait ça. Ça, on l'a fait. Nous avons quelque chose qui marche bien. Ça
116:46
Speaker A
on l'a fait. Bon, si vous voulez colorer votre matrice de confusion, vous ajoutez juste ces maps et les couleurs que vous voulez et cetera. Donc, vous avez des palettes un peu plus sympathiques. Voilà. Donc alors PCA c'est c'est dans c'est dans
117:07
Speaker A
dans voilà c'est dans décomposition cet décomposition alors des compositions import PC alors maintenant on va créer une instance de PCA égal c'est PCA 1. Et quand vous créez PCA, vous avez deux façons de faire. Soit vous utilisez le
117:32
Speaker A
le le pourcentage, par exemple, si vous mettez 0,95, ça veut dire je voudrais préserver je voudrais préserver 95 % de la variance. C'est-à-dire, c'est comme si vous exigez que euh de garder 95 % de la variance, c'est-à-dire le c'est presque
117:50
Speaker A
toutes les informations, c'est pas 100 %, c'est 95 %. Et si vous faites ça, ben on va utiliser PCA.fit transform profit. Alors transforme. Euh dans notre cas, qu'est-ce qu'on veut transformer ?
118:13
Speaker A
On veut transformer X. OK ? C'est-à-dire toutes les données. Et pour nous, le X c'est quoi ? Alors, X, c'est data, n'est-ce pas ?
118:24
Speaker A
la le l'ensemble des données, c'est ça X c'est scalet. Alors si vous faites donc transformes ça, regardez ça vous donne un un résultat. Donc ici donc je vais utiliser data PCA ég.
118:51
Speaker A
Alors si vous voyez data PCA point chip alors regardez nous avons maintenant combien de colonnes ?
119:02
Speaker A
40 c'estàd on est passé de 64 vers 40 fishers si on préserve 95 % de la variance.
119:13
Speaker A
Alors maintenant, on va vérifier notre modèle avec ces nouvelles données. Est-ce que ça nous donne le même niveau de performance ? Parce que si ça nous donne le même niveau de performance, bah ça veut dire qu'on va on va dans notre
119:25
Speaker A
pipeline, on va utiliser ce PCR. Il faut l'inclure dans le pipeline, c'està-dire vous avez les données, on passe via PCA, on obtient les données, on fait standard scaler et après on passe vers le le modèle.
119:42
Speaker A
C'est clair. Bon bref, donc j'ai ici les valeurs. Alors on va vérifier. Je reprends le le modèle. Je vais créer encore logistique regression. Je vais l'appeler modèle 2. Donc logistic logistic regulation modèle de point fit. Cette fois-ci je vais prendre
120:05
Speaker A
quelle donné ? C'est data PCA. Mais il faut le Y, n'est-ce pas ? C'est Y tout court. Voilà, j'ai les données. Mais là, j'ai cette fois-ci non, il faut que je fais split. Il faut que je fasse split.
120:23
Speaker A
OK. Donc c'est-à-dire je dois reprendre le split comme ça pour qu'on soit dans les mêmes conditions.
120:33
Speaker A
Oui, je fais ça. Donc je fais extend test et cetera. Mais cette fois-ci, on va faire le split de quoi ? De de data PCA.
120:54
Speaker A
Mais le y il reste le même. OK. Alors donc j'ai les nouvelles données, je crée j'ai logistique regression et je fais le voilà modèle 2.
121:09
Speaker A
Fit. Je fais l'apprentissage en utilisant X X trend et Y de la même manière.
121:21
Speaker A
Et je vais voir maintenant le score. Donc modèle de points score directement et le score pour les données d'entraînement Y trend et non c'estàd le X Y X Y alors regardez vous avez un taux de performance de 99 %, c'est-à-dire avec
121:56
Speaker A
une réduction de dimensionnalité euh c'est-à-dire de 64 fit jusqu'à 40, je reste pour les données d'entraînement à 99. Et je vais faire la même chose pour les tests. 96.
122:22
Speaker A
Alors si vous faites modèle selection et cetera donc pred égal c'est modèle 2. J'espère que je me suis pas trompé ici. Donc c'est modèle 2. C'est bien ça. C'est ça. Point predict. Donc ça c'est X.
122:51
Speaker A
Je vais faire la prédiction sur la base des données de test. Test et je fais donc print. Donc c'est classification report. Bah ici donc je vais donner le l'actuel c'est in et le le prit c'est prête.
123:19
Speaker A
TR. Donc ça c'est le classification report pour les données de d'entraînement et pour les les données de test. Ça ça a l'air d'être très bon. Et donc hit map donc si vous voulez le représenter et après comme ça vous aurez
123:41
Speaker A
quelque chose d'assez complet. ça. Alors, ça c'est euh il faut calculer la la matrice de confusion. Alors, c'est M par exemple pour les tests. C'est quoi ? C'est confusion matrix.
124:06
Speaker A
C'est test PCA. PCA. Oui. Alors, dans votre dans le notebook que je vous ai laissé, j'ai gardé tout ça mais là je suis un peu euh Alors, c'est MPCA test config matrix. Donc, qu'est-ce qu'on va donner ? Donc, ici, on va donner le
124:25
Speaker A
Y euh Y test et euh pred test. On va voir ça. Non, j'ai sauté quelque chose. J'ai ajouté ça. Voilà. Alors, ça c'est la matrice de confusion. Il est un peu plus grande. Je vais mettre c'est 8 x
124:51
Speaker A
8. 8 x 8. Je vais changer la couleur ici. Donc je vais utiliser ces maps. Je va faire quelque chose une palette de red en rouge. Ça quelque chose comme ça.
125:06
Speaker A
C'est plus lisible je pense. Alors la hauteur c'est 8 c'est beaucoup. Donc on va mettre 6 comme ça.
125:15
Speaker A
Voilà. Alors ça c'est la la matrice de confusion. Vous avez toutes les les métriques. Alors, mais regardez euh juste le dernier point, c'est que ici on a utilisé PC sur la base d'un taux de réduction de dimensionnalité. Alors, on voit bien ici
125:31
Speaker A
donc nous avons utilisé combien ? 95 % mais je peux faire autrement. Je peux utiliser le nombre de composantes.
125:39
Speaker A
Regardez, supposant je voudrais le réduire à deux composantes. C'est comme si vous voulez représenter une image 8 x 8 avec une image avec deux points, avec deux valeurs et on va voir bien sûr, il va perdre les données mais on va voir ce
125:56
Speaker A
qui va se passer. Alors ici, je fais ça, j'exécute, ça marche. Je vois ici transform shape. Vous voyez bien il y a combien de colonnes de Je fais fit le modèle, je découpe, j'exécute ça. J'ai je regarde le score. Regardez, le score,
126:15
Speaker A
il est à combien ? 56 % c'est-à-dire de c'est trop. Et après, vous pouvez tester avec 10. Ouais. Mais si vous arrivez avec 109 et vous voyez que c'est largement suffisant, vous êtes sur 95 % c'est beaucoup mieux parce que le les les
126:34
Speaker A
parfois il y a des il y a parfois le la taille des données, elle est tellement grande que ça ne coûte trop cher parce qu'il faut voir dans le l' générative ben il vous faut les GPU, il vous faut
126:44
Speaker A
que que payer pour pour faire les les calculs. Donc ce qui fait la la réduction de dimensionnalité, c'est important. Une autre chose, c'est que quand vous avez 64 colonnes, d'accord ?
126:57
Speaker A
Euh, regardez, c'est quelque chose que je n'ai pas euh montrer, c'est c'est quand je fais PCA regardez PCA, le nombre de composantes ici, fit et cetera. Je vais regarder les la variance, c'est-à-dire peut-être je vais revenir à à ce que j'ai fait au début. 0,95 %.
127:22
Speaker A
Ah si c'est jeève ça. Je fais ça et vous utilisez PCA point. Vous voulez savoir chaque ici il y a combien de de data PCA. Ici il y en a combien ? Il y a 40. Mais on voudrait ces 40 là.
127:44
Speaker A
Chaque colonne, il capte combien de de pourcentage en terme de variance ? Dans ce cas-là, vous allez utiliser ces PCA point et vous cherchez euh explain variant. Voilà, ça c'est important.
127:57
Speaker A
Regardez. Alors ici par exemple la première il va capter combien ? C'est 7,34 %. La deè caractère la deuxème composante il va il a capté 5,8 % de la variance et cetera. Donc si vous faites la somme, le total
128:17
Speaker A
ici, si vous faites euh si vous faites point 5, regardez, ça va vous donner Non, c'est pas possible.
128:35
Speaker A
Alors ça c'est la la explain non, il y a quelque chose qui cloche parce que ça devrait me donner le total c'est 0 95 %.
128:48
Speaker A
Alors je reprends, j'exécute, je fais il y a quelque chose que je n'ai pas exécuté.
129:05
Speaker A
Alors explain de valoris un peu alors aller trop vite voilà alors je reviens au notebook que vous avez vous avez ça. Alors bref, donc vous avez ici ça c'est les composantes principales.
129:24
Speaker A
Malo, c'est bien ça ? Et puis vous avez explain vari parce que là j'ai j'ai deux composantes. Ça c'est deux composantes.
129:33
Speaker A
Alors je reviens vers l'autre c'est 95 %. et les voyez donc ici donc si je regarde ratio, c'est tout à fait c'est ce que j'ai rato, c'est ce que j'ai oublié effectivement, c'est le ratio, c'est le c'est-à-dire le pourcentage.
129:53
Speaker A
Donc tout à fait variance ratio ratio. Alors ici donc vous avez le pourcentage. Donc c'est-à-dire vous avez chaque composante il il a capté combien de le taux de de les les patterns les composantes principales mo les patterns parce qu'en réalité l'idéal
130:15
Speaker A
il se peut que dans votre un dataset de je sais pas combien de d'une centaine de colonnes, il se peut en réalité que vous avez que cinq patterns qui sont décisifs pour la la prédiction. les composantes principales en réalité. Donc si on voit
130:28
Speaker A
ici donc ça c'est 12 % et si vous faites la 100, vous allez trouver le le total que vous avez ici euh le total de ratio. Voilà, vous voyez c'est 95 % c'est normal si vous faites le total
130:45
Speaker A
c'est-à-dire chaque composante il capte le pourcentage de la variance de total. Et ça c'est ça ça nous donne à peu près une idée, mais je pense ça c'est un très bon exemple qui explique un peu comment euh comment utiliser PCA pour la la
131:01
Speaker A
réduction de dimensionnalité. Et donc voilà, je pense que je n'ai rien oublié. Donc j'ai on a vu tout ça.
131:16
Speaker A
Voilà votre exemple d'application. Alors bon la fin du slide à chaque fois de temps en temps, j'ajoute j'ajoute des rappels de statistiques parce que c'est comme je disais les statistiques de c'est le euh vous voyez donc c'est quoi
131:32
Speaker A
la moyen c'est quoi la variance, c'est quoi le standard division et cetera. Vous avez quelques à chaque fois que je trouve il y a un prérequis donc je vous l'ajoute à la fin du slide et comme ça donc vous pouvez toujours vous référer
131:43
Speaker A
pour les gens qui connaissent pas les bases de des statistiques. Est-ce que c'est clair ?
131:49
Speaker A
Oui, pour les gens qui sont à distance aujourd'hui sont pas trop bavards. Donc j'espère que bah je vois beaucoup de pouces. Donc tout ça c'est c'est bon. Ça veut dire tout tout le monde est en vie.
132:07
Speaker A
On est là monsieur. Ah c'est parfait. Alors logiquement il est il est 16h34. Donc normalement parce qu'on a oublié, il fallait que qu'on prenne une pause une pause et après et après on termine de Mais à mon avis, bon ça sert à rien de prendre la
132:31
Speaker A
pause maintenant. Euh c'est juste euh peut-être parce qu'il y a quand même quelque chose que que je n'ai pas euh que je vous ai promis de de d'y revenir c'est le c'est les autres les autres algorithmes parce que la dernière fois
132:48
Speaker A
je vous ai parlé de de logistique regression, n'est-ce pas ? Mais euh voilà, les autres les autres algorithmes notamment euh SVM et les autres. Donc il faudrait que je je vous parle de ça et comme ça donc je vous
133:05
Speaker A
libère après vous partez. Donc je pense sinon on laisse cette partie-là pour euh un une utile de cas de la semaine dernière. Comment comment ? Parce que je sais que parfois quand la tête est pleine, il vaudrait mieux rester
133:23
Speaker A
là parce que sinon donc moi pourquoi c'est exprès je je reste sur logistique regression l'essentiel parce que après tout ce que vous faites ça bah vous faites la même chose pour n'importe quel algorithme. Donc je pense la prochaine
133:39
Speaker A
fois la prochaine fois on je vais travailler sur une étude de cas dans laquelle on va faire tout ça.
133:46
Speaker A
C'est-à-dire on fait encore le je reprends une petite sur les alg les différents algor de classification. On fait le clasterine, on fait le PCA et comme ça ça nous donne à peu près une récapitulation sur la première partie
134:00
Speaker A
parce que juste après il y a la partie de deep learning notamment et donc forcément après par la suite il y aura la partie de l générative donc mais cette partie làà c'est je pense que on est proche de
134:15
Speaker A
l'objectif. Alors qu'est-ce que vous pensez ? Il y avait une question. Oui, monsieur, s'il vous plaît, si vous pouvez soit le laisser, s'il vous plaît, le laisser pour la semaine prochaine ou bien nous donner 5 minutes de pause.
134:27
Speaker A
Euh alors 5, c'est pas suffisant. Si vous voulez euh 20 de 15 20 minutes, alors qu'est-ce que vous en pensez ? On prend sinon pour la semaine prochaine, c'est mieux de de la laisser pour une étude de cas comme vous avez.
134:41
Speaker A
Ouais, c'est bon. Ouais, la séance était était bien chargée pour la semaine prochaine. OK. OK, c'est bon. Alors donc la semaine prochaine donc ça va être une une séance de révision euh donc sur ce que nous avons fait à travers une étude de cas.
135:07
Speaker A
Et la semaine prochaine, je vous demande de en fait de en parallèle si vous pouvez venir avec vos machines installées et cetera et comme ça vous 14h30 prochain si vous voulez on fixe 14h30 parce que ah l'heure va changer. Ah c'est ça c'est
135:25
Speaker A
ça c'est vrai. Vous avez raison. Donc la semaine prochaine c'est 14h30. Alors s'il vous plaît, la règle générale c'est que si je vous dis rien, ça veut dire il y a cour parce que parce que j'ai j'ai vu qu'il y en a
135:38
Speaker A
beaucoup qui venaient chercher est-ce qu'il y a cours ou pas. Bon, par défaut là, vous avez cours le vendredi, mais si jamais il y a pas cours donc vous allez le recevoir l'information. Donc par défaut, il y a
135:49
Speaker A
cours ça fait bon pas de question pour les autres. Voilà. Alors donc sur l'enregistrement, il y avait une première partie que j'avais pas enregistré. Donc je vais l'ajouter encore et après je vais je vais vous laisser l'enregistrement. Voilà.
136:12
Speaker A
Alors, vous marquez votre présence s'il vous plaît dans la zone chat comme toujours. Juste Oui, la séance prochaine c'est encore hybride.
136:27
Speaker A
[Rires] [Musique] Ben toutes les les sciences hybrides, c'est-à-dire que j'aimerais bien avoir le l'enfit plein bah une moitié et les autres ils peuvent suivre. Mais si vous avez suivi des sciences à distance, de temps en temps, vous vous venez vous
136:44
Speaker A
venez comme ça, on vous voit en réel. C'est c'est ça serait ça serait bien.
136:49
Speaker A
D'accord. Alors même si on fait une une étude de cas, c'est en hybride donc il y a pas de problème. Mais donc juste après que quand il faut vraiment que que vous venez vraiment, on va vous le dire.
Topics:intelligence artificielleapprentissage non superviséclusteringK-MeansPCAréduction de dimensionnalitémachine learningsegmentationnormalisation des donnéesalgorithmes de clustering

Frequently Asked Questions

Qu'est-ce que l'apprentissage non supervisé ?

L'apprentissage non supervisé consiste à analyser des données non étiquetées pour identifier des structures ou groupes naturels, comme avec le clustering.

Comment fonctionne l'algorithme K-Means ?

K-Means regroupe les données en un nombre fixe de clusters en minimisant la distance intra-cluster et en recalculant les centres jusqu'à convergence.

Pourquoi est-il important de normaliser les données avant le clustering ?

La normalisation garantit que toutes les variables ont la même échelle, évitant qu'une variable domine les calculs de distance et fausse les résultats du clustering.

Get More with the Söz AI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries, speaker detection, and unlimited transcriptions.

Or transcribe another YouTube video here →