1. Salut les copains

Aujourd'hui on va parler d'un modèle tellement important dans le Machine Learning - Les arbres binaires !

On va voir comment ils sont construits et on va voir également une interprétation géométrique

#datascience #ia #MachineLearning
2. Pour commencer, les arbres binaires sont vieux comme le Machine Learning

C'est un type de modèle qui a constamment évolué, et qui est à la base de modèles phare du moment

Comme les #RandomForest, les #GradientBoosting comme #AdaBoost, #CatBoost, #XGBoost, ...
3. Promis, on verra chacun de ces modèles dans le détail dans des messages dédiés
4. Ce sont des modèles largement utilisés, et c'est pour cela qu'il faut comprendre précisément comment ils fonctionnent et comment ils sont construits
5. J'en profite pour rappeler également qu'ils peuvent être utilisés

> soit dans un mode classification (on affecte une classe à chaque point)

> soit dans un mode de régression (on prédit une valeur)
6. Bon commençons par un exemple d'arbre déjà construit.

Prenons par exemple ce cas très simple d'arbre pour la classification à deux variables, issu du jeu de données archi connu IRIS
7. Le dataset IRIS est un dataset permettant de classifier des types d'Iris en 3 groupes (Setosa, Versicolor et Virginica) en fonction de la taille de leur pétale par exemple
8. Voilà ce que pourrait donner un arbre déjà construit
9. On remarque que cet arbre commence par la question suivante :

est ce que la longueur du pétale est inférieure à 2.45 ?

Si oui, alors c'est une Sétosa et sinon, on repose une autre question derrière
10. On a donc une série de questions binaires (Oui ou non) qui débouchent chacune à

> soit un résultat (et dans ce cas, on a la classification)

> soit à une autre question
11. En langage datascientist

les questions sont des noeuds (Node)

les réponses sont des feuilles (Leafs)

Les noeuds et les feuilles sont reliés par des branches, c'est à dire par les décisions prises suite à la question posée
12. Ce qui est confortable avec ce modèle, c'est qu'il est parfaitement interprétable par un humain, qui peut tout de suite voir si le modèle est cohérent (pour peu que l'humain soit expert du domaine ...)
13. On parle alors de modèle d'algorithme "White Box", car ces résultats sont visibles et interprétables.

Les modèles "Black Box" sont les réseaux de neurones ou les random Forest par exemple, qui sont beaucoup moins facilement interprétables
14. La première chose que je voulais vous montrer concernant ce modèle, c'est qu'il est interprétable géométriquement.
15. Par exemple dans le cas donné, on peut représenter chaque noeud comme une portion du plan dans lequel on a placé nos échantillons de plantes.

Cela donnerait ce graphique
16. Les arbres binaires peuvent donc avoir une double interprétation

> sous forme d'arbre binaire

> sous forme géométrique, avec des régions spatiales définies pour chacune des catégories
17. Maintenant se pose LA question fondamentale

Comment l'algorithme fait pour déterminer à chaque noeud, quelle variable et quelle valeur prendre pour faire la séparation ?

La question ...
18. Dans notre cas, pour la première séparation, comment il sait que c'est le Petal Length et la valeur 2.45 qu'il faut utiliser ?
19. Ce qu'il faut bien saisir, c'est qu'à chaque question, le modèle va choisir la variable et sa valeur associée qui vont séparer le mieux possible les points dans chacune des catégories
20. Pour mesurer le résultat de la séparation, il faut voir comment se répartissent les catégories dans les 2 feuilles qui sont créées

Et déterminer si cette répartition est suffisamment discriminante
21. Pour cela on définit un indice de "pureté", qu'on appelle Gini, et qui dépend de la répartition des classes dans la feuille.

En gros, plus une classe sera prépondérante, meilleur sera l'indice Gini
22. Instant Math

Le Gini sera égal à

1 - la somme des proportions (pourcentage) au carré

Pas de panique, on va prendre des exemples
23. Premier exemple, en prenant une répartition de 100, 15 et 20 pour chacune des 3 catégories.

On trouve un Gini égal à 0,41
24. Deuxième exemple, en prenant une répartition de 40, 50 et 45, on trouve un Gini égal à 0,66
25. L'indice Gini du premier exemple étant inférieur au deuxième exemple, la première répartition est plus discriminante.

Ce qui évident quand on les regarde de près
26. Or, quand on fait une séparation, on a deux groupes, qui à chacun son indice.

Pour mesurer l'indice total, il faut faire la somme pondéré des indices

Plus il y a de cas, et plus l'indice comptera dans le résultat
27. Pour illustrer cette pondération, prenons deux exemples
28.
29. La deuxième répartition est plus discriminante car la feuille qui a le plus d'éléments est celle qui a un meilleur Gini
30. Maintenant que nous savons comparer le caractère discriminant d'une séparation, revenons à notre question initiale.

Comment l'algorithme fait pour déterminer à chaque noeud, quelle variable et quelle valeur prendre pour faire la séparation ?
31. Et bien, c'est tout simple, il va TESTER TOUTES LES VALEURS DE TOUTES LES VARIABLES et choisir la meilleure séparation, celle qui fait la meilleure discrimination.

En langage formel, on dit que l'algorithme est "Greedy", en langage courant, on dit qu'il est bourrin !
32. Se pose ensuite une question, jusqu'où continuer ?

Car a priori, on peut continuer jusqu'à ce que chacune des feuilles ne contiennent plus qu'un élément.
33. Chacune des feuilles sera "parfaite", mais l'arbre sera long à construire et surtout, on sera dans un cas classique d'overfitting !

L'arbre aura appris "par coeur" ses données d'entraînement et ce n'est pas certain qu'il pourra bien généraliser
34. Dans les implémentations classiques, on peut dire à l'algo de s'arrêter si on a atteint une certaine profondeur de l'arbre, où si chacune des feuilles ne contiennent plus qu'un nombre déterminé d'éléments
35. Une dernière petite chose

A la place de l'indice Gini, on peut utiliser également l'entropie H = -p*log(p) pour mesurer le caractère discriminant d'une séparation

Par contre les temps de calcul seront plus longs (à cause de la fonction logarithme)
36. Je vous ferai un tweet très prochainement pour vous parler ce cette mystérieuse formule de l'Entropie.

Il y a beaucoup de chose à dire sur elle.
37. A très vite !

Et n'hésitez pas à liker ou partager si cela vous a plu !

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Objectif Data Science - avec Vincent

Objectif Data Science - avec Vincent Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @ObjectifDataSci

21 Apr
1. Hello les copains.

Aujourd'hui on va parler de réseaux de neurones, et en particulier de réseaux de neurones à convolutions.

On va se concentrer surtout sur les filtres à convolutions qui constituent les paramètres d'un #CNN

🔽🔽Thread

#datascience #machinelearning #ia
2. Ce tweet sera l'occasion de revoir les grands principes qu'il y a derrière un tel réseau de neurones.

C'est important de comprendre les rouages qu'il y a derrière tout cela.
3. Pour commencer, on peut dire que "l'hiver de l'IA" s'est terminé grâce aux progrès spectaculaires de cette dernière décennie permis grâce aux CNN.

C'est grâce à leur performance que le monde s'est de nouveau intéressé à ces technologies
Read 39 tweets
20 Apr
Hello,

pour vous y retrouver plus facilement, j'ai rangé ici les Tweets qui donnent accès aux différents threads publiés.

Au programme : tout plein de choses sur le #MachineLearning, la #data, la #datascience, l'#IA et la programmation #Python.

Merci pour vos Like ou vos RT !
La régression Logistique : une autre façon de bien comprendre comment cela fonctionne.

Read 6 tweets
20 Apr
Salut les copains.

Aujourd'hui, on va parler de régression logistique. Un modèle de ML que tout le monde connait.

Mais je vais faire une approche assez originale.

Ready?

🔽🔽Thread

#datascience #ia #MachineLearning
1/ Petit rappel : la régression logistique permet de faire de la classification entre 2 catégories.

C'est un modèle performant et TRES TRES utilisé à travers le monde.
2/ Exemple de cas d'usage :

> une banque donne un prêt (ou pas)

> le médecin détecte cette maladie (ou pas)

> le site ecommerce propose ce produit au client (ou pas)

> le client se désabonne du service (ou pas)
Read 41 tweets
19 Apr
Salut les copains

Je suis tout nouveau sur Twitter, et j'ai créé ce compte pour vous raconter un peu mes découvertes sur la Data Science.

Ca fait tout drôle ...

🔽🔽 Thread

#datascience #machinelearning #ia
1/ J'ai la quarantaine bien passée et j'ai une longue expérience dans l'IT.

Mon parcours en quelques mots : développeurs d'application d'Entreprises, chef de projet, DSI, puis ensuite une longue expérience de conseil en management ou j'ai aidé mes clients à gérer leurs projets.
2/ Dans cette expérience, pas trop de sujets concernant la Data Science.

Et puis voilà que dans ma boîte, il y a maintenant 5 ans, un petit pôle de data scientistes s'est créé.
Read 20 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!