• Aucun résultat trouvé

Partie III. Classification et caractérisation de chirotopes

5.3 Méthodes de classification supervisée

5.3.1 Arbres de décision

Un arbre de décision est une façon de représenter une classification à l’aide d’un arbre. Le prin- cipe de cette méthode est de séparer les données en sous-ensembles d’échantillons de façon récur- sive afin que chaque sous-ensemble ne soit constitué presque uniquement d’échantillons d’une même classe. A chaque étape la séparation se fait en posant des conditions sur les valeurs d’une seule variable. Lors du processus d’apprentissage, l’algorithme détermine donc les variables qui permettent de séparer au mieux les classes prédéfinies. Ces variables correspondront aux nœuds internes de l’arbre de décision. Si un nœud interne vicorrespond à une variable yjalors les arêtes

entre le nœud viet ses fils correspondent aux différentes valeurs prises par la variable yj. Ainsi une

arête peut correspondre à une valeur ou un sous ensemble de valeurs (variables discrètes) ou à un intervalle (variables continues). Les feuilles de l’arbre correspondent aux classes : une feuille cor- respond à une seule classe mais plusieurs feuilles peuvent correspondre à une même classe. Ainsi dans l’arbre de décision de la Figure 5.8, deux feuilles correspondent à la classeC1et deux feuilles correspondent à la classeC2.

Un arbre de décision peut s’utiliser de deux façons. La première utilisation nous permet de classer un nouvel échantillon e. On part alors de la racine de l’arbre qui correspond à une variable (que l’on note yr). On parcourt l’arête correspondant à la valeur e(r ) pour arriver sur un nouveau

nœud. Tant que ce nœud n’est pas une feuille, on continue de la même façon. Lorsque l’on arrive à une feuille, elle nous indique comment classer l’échantillon e.

La deuxième utilisation consiste à trouver une discrimination des différentes classes. Lorsque l’on cherche à caractériser une classe, on remonte l’arbre depuis les feuilles correspondant à cette classe vers la racine de l’arbre. Par exemple l’arbre de décision de la Figure 5.8 caractérise la classe C1de la façon suivante :

y1 y2 α1 α2 α3 C2 C2 < α1 ≥ α1 y2 ≥ α3 < α3 C1 y1 C1 < α2 ≥ α2 y1

FIGURE5.8 – Exemple d’un arbre de décision (à droite) créé à partir de points en 2 dimensions (à

gauche) répartis en deux classes. La classeC1correspond aux ronds et la classeC2correspond aux triangles.

Un “bon” arbre de décision doit donc satisfaire deux critères : permettre de classer les échan- tillons avec un minimum d’erreur et proposer une caractérisation des classes qui ne soit pas trop compliquée. Le problème est donc de déterminer la hauteur de l’arbre car plus un arbre sera petit et plus la caractérisation sera simple mais moins la classification risque d’être précise.

La création d’un arbre de décision nécessite l’utilisation de trois opérateurs. Le premier opéra- teur permet de décider si un nœud correspond ou non à une feuille, c’est-à-dire si le sous-ensemble d’échantillons correspondant à ce nœud doit encore être divisé ou si la quasi-totalité de ces échan- tillons font partie d’une même classe. Si le nœud est un nœud interne de l’arbre, le deuxième opéra- teur permet de déterminer quelle variable doit être utilisée pour séparer le sous-ensemble d’échan- tillon correspondant à ce nœud. Si le nœud est une feuille, le troisième opérateur est utilisé pour affecter une classe à une feuille.

Pour le premier opérateur, il existe plusieurs fonctions permettant de calculer si un sous- ensemble d’échantillons correspondant à un nœud doit encore être divisé ou non. En notant S le sous-ensemble d’échantillon associé à un nœud et nile nombre d’échantillons de S appartenant

à la classeCi, les deux fonctions les plus utilisées pour calculer cela sont les suivantes :

• Coefficient de Gini : G(S) = 1 −P

1≤i ≤k(ni/|S|)2

• Indice d’entropie de Shannon : H(S) = −P

1≤i ≤k(ni/|S|) × ln(ni/|S|)

Plus la valeur de ces fonctions est grande et plus les échantillons de S sont répartis entre plusieurs classes et ces fonctions atteignent leur minimum lorsque tous les échantillons de S appartiennent à une seule classe. Ainsi, avant de construire l’arbre il faut faire un choix sur la fonction qui sera utilisée pour le premier opérateur.

Ensuite, sachant qu’il n’existe peut-être pas d’arbres de décision permettant de classer les don- nées sans erreurs, il faut alors déterminer un seuilσ0sur la valeur de la fonction. Si la valeur est su- périeure au seuil on devra séparer le sous-ensemble d’échantillons et le nœud sera alors un nœud

5.3. MÉTHODES DE CLASSIFICATION SUPERVISÉE 105

interne ; sinon le nœud sera une feuille. Le seuil déterminera donc la hauteur de l’arbre de décision. Généralement, pour limiter la hauteur de l’arbre, on décide également qu’un nœud sera une feuille si la taille de l’ensemble d’échantillons S est plus petit qu’une certaine taille t0. Ainsi le premier opérateur nécessite deux paramètres, le seuilσ0et la taille t0. Ces deux paramètres jouent un rôle important sur la taille de l’arbre et donc sur le résultat.

Le troisième opérateur est le plus simple. On affecte à une feuille la classe qui est majoritaire parmi tous les échantillons du sous-ensemble d’échantillons correspondant à la feuille. Par contre le deuxième opérateur dépend de l’algorithme utilisé pour construire l’arbre de décision.

Il existe de nombreux algorithmes pour construire un arbre de décision. Parmi ces algorithmes, on peut citer l’algorithme CART [9] (pour “Classification And Regression Trees”) qui utilise le co- efficient de Gini pour créer un arbre de décision binaire (c’est-à-dire dont tous les nœuds in- ternes ont exactement deux fils). Dans cet algorithme, le deuxième opérateur servant à déterminer quelle variable va être utilisée pour séparer un nœud interne repose sur la fonction∆(S,v) définie comme ceci : notons S le sous-ensemble d’échantillons correspondant au nœud interne et S1(v) et S2(v) les deux sous-ensembles de S formés en utilisant la variable v pour séparer S, on a alors ∆(S,v) = G(S) − (G(S1(v)) × |S1|/|S|) + G(S2(v)) × |S2|/|S|). Le deuxième opérateur consiste alors à choisir la variable qui maximise∆(S,v).

Deux autres algorithmes très souvent utilisés sont l’algorithme ID3 [64] et son amélioration C4.5 [65], tous les deux proposés par Quinlan. Les principales améliorations apportées dans C4.5 sont le traitement des variables continues en créant une valeur de séparation, la gestion des don- nées manquantes (ces valeurs ne sont alors pas prises en compte) et l’élagage de l’arbre (nous ex- pliquerons ce qu’est l’élagage dans la suite).

Nous allons voir comment est défini le deuxième opérateur dans l’algorithme C4.5. Pour dé- terminer quelle variable va être utilisée pour séparer un ensemble d’échantillon S correspondant à un nœud interne en r sous-ensembles de S, on calcule la fonction ∆(S,v,r ) définie comme ceci : notons S1(v), ··· ,Sr(v) les r sous-ensembles de S formés en utilisant la variable v pour sé-

parer S, on a alors∆(S,v,r ) = Gain(S,v,r )/(P1≤i ≤r(|Si(v)|/|S|) × ln(|Si(v)|/|S|) où G ai n(S, v,r ) =

H (S) −P

1≤i ≤rG(Si(v)). Le deuxième opérateur consiste alors à choisir la variable qui maximise

∆(S,v,r ). Dans l’algorithme ID3, le deuxième opérateur consiste à choisir la variable qui maximise

G ai n(S, v, r ). Or plus r est grand, plus la valeur de la fonction G ai n(S, v, r ) a tendance à être grande.

La division dans le calcul de∆(S,v,r ) corrige ce problème.

Quelle que soit la méthode employée, après la construction de l’arbre de décision il y a une phase d’élagage de l’arbre. Le principe de l’élagage est de diminuer la hauteur de l’arbre en suppri- mant des sous-arbres issus de nœuds internes ; ces nœuds deviennent alors des feuilles. Cette étape est nécessaire car les feuilles qui sont créées ont tendance à correspondre à des sous-ensembles d’échantillons de petites tailles. De plus, sans élagage, les arbres sont souvent trop spécialisés sur les données d’apprentissage. La Figure 5.9 tirée de [76] montre ce phénomène. En effet, on remarque sur ce graphique que le nombre d’erreurs de classification sur les données d’apprentissage diminue avec le nombre de feuilles alors que ce nombre d’erreurs sur des données de test augmente à partir d’un certain nombre de feuilles. Ainsi, si l’on essaye de classer un échantillon n’apparaissant pas dans les données d’apprentissage, il arrive que ce nouvel échantillon soit mal classé.

Pour procéder à l’élagage, les méthodes les plus utilisées reposent sur une estimation du taux d’erreurs de classement si on utilisait l’arbre de décision créé pour classer un nouveau jeu de don-

FIGURE5.9 – Graphique tiré de [76] représentant le nombre d’erreurs de classification sur les don-

nées d’apprentissage (en rouge) et sur les données de test (en bleu) en fonction du nombre de feuilles.

nées. Pour réaliser cette estimation, l’algorithme CART calcule le taux d’erreur sur un jeu de don- nées déjà classées et qui n’a pas été utilisé pour l’apprentissage. Par contre l’algorithme C4.5 utilise les données d’apprentissage pour estimer le taux d’erreur.

Cette diminution de la hauteur de l’arbre est une étape très importante car en plus de diminuer les erreurs de classement, elle permet d’accélérer l’utilisation de l’arbre pour faire de la classifica- tion et permet également de simplifier la caractérisation des classes.

Avantages et inconvénients pour la classification de chirotopes

La classification supervisée par des arbres de décision est une méthode permettant à la fois de classer et de discriminer les classes. De plus cette méthode à l’avantage de fournir des résultats facilement compréhensibles. Comme les arbres de décision peuvent être utilisés sur tous les types de données et sont particulièrement bien adaptés aux données discrètes, ils peuvent être appliqués à la classification de chirotopes tout en fournissant une discrimination des classes.

Les arbres de décision présentent en plus deux avantages. Le premier avantage est de ne pas être perturbé par des échantillons atypiques. Ces derniers seront peut-être mal classés mais ils ne perturberont pas la classification des autres échantillons contrairement à la méthode des k-means par exemple (c.f. Section 5.2) dont les coordonnées des échantillons atypiques ont une influence directe dans la position du point moyen des classes.

Le deuxième avantage des arbres de décision est que la classification par les arbres de décision ne fait aucune hypothèse sur la répartition des échantillons. En effet, dans les méthodes des k- means et k-medoids on suppose que la répartition des échantillons correspond à un diagramme de Voronoï. Dans d’autres méthodes, on suppose que les échantillons sont répartis suivant une loi de probabilité. De telles méthodes ne sont donc pas adaptées pour la classification d’échantillons si ceux-ci ne respectent pas de telles hypothèses de répartition. Ainsi les arbres de décision peuvent être utilisés si l’on ne connait pas a priori la répartition des échantillons.

Par contre la classification par les arbres de décision présente deux inconvénients importants. Nous venons de voir que dans tous les algorithmes, pour un nœud donné, la variable qui va être

5.3. MÉTHODES DE CLASSIFICATION SUPERVISÉE 107

utilisée pour séparer ce nœud maximise une certaine fonction. Or ce maximum peut être atteint pour plusieurs variables. Dans ce cas, les algorithmes ne peuvent pas savoir quelle(s) variable(s) donnera le meilleur arbre de décision. Il faudrait générer tous les arbres de décision possible en utilisant pour chaque nœud toutes les variables maximisant la fonction. Cela risque d’être couteux en temps de calcul s’il y a plusieurs nœuds pouvant chacun utiliser plusieurs variables, ce qui né- cessiterait ensuite un tri pour ne conserver que les arbres minimisant les erreurs de classification.

Le deuxième inconvénient des arbres de décision est que le choix d’une variable pour décom- poser un nœud ne changera jamais et ne sera jamais remise en question. En effet, lorsque un algo- rithme décide d’utiliser une variable pour séparer un nœud v en r sous-ensembles, l’algorithme va créer r fils au nœud v puis va travailler avec un nœud qui n’est pas un nœud interne. Le seul mo- ment où l’algorithme traitera de nouveau le nœud v sera au moment de l’élagage pour déterminer si v reste un nœud interne ou si l’on supprime les fils de v (et donc que v redevienne une feuille). A aucun moment l’algorithme essayera de décomposer le nœud v en d’autres sous-ensembles. Or il arrive que la meilleure décision pour la décomposition consiste à utiliser successivement deux variables sans qu’aucune ne maximise la fonction. Ainsi quel que soit l’algorithme, l’arbre de déci- sion obtenu ne sera pas le meilleur arbre possible et n’indiquera pas que ces deux variables prises successivement permettent de bien classer les échantillons.

Les codes de l’algorithme C4.5 étant disponible en ligne et les arbres de décision étant implé- mentés dans de nombreux logiciels (comme par exemple dans de nombreuses librairies du logiciel Rhttp://www.r-project.org/ou dans le logiciel Wekahttp://www.cs.waikato.ac.nz/ml/weka/index. html), nous avons essayé d’utiliser les arbres de décision sur le jeu de données que nous présente- rons au Chapitre 11, pour déterminer si les classes fournies par des experts pouvaient être discrimi- nées facilement. Nous avons analysé ce jeu de données en deux temps, d’abord en utilisant tous les landmarks (voir Section 11.1) puis en n’utilisant que les landmarks anatomiques (voir Section 11.2). Dans la première étude, nous nous sommes aperçu qu’un grand nombre de variables (bases) maximisaient la fonction pour tous les nœuds de l’arbre. Par exemple sur les 2 675 999 bases non- fixes que compose chaque chirotopes, nous avons estimé qu’il y avait de l’ordre de 21 000 bases qui pouvaient être utilisées pour le nœud racine de l’arbre. Comme nous voulons obtenir toutes les façons de caractériser les classes des experts, il nous fallait générer tous les arbres possibles. Nous avons alors décidé de ne pas utiliser les arbres de décision car le nombre d’arbres à étudier était trop important et aurait nécessité de trop grands temps de calcul.

Dans la deuxième étude, l’algorithme C4.5 ne choisissait pas la bonne variable pour un nœud car la variable permettant la meilleure classification ne maximisait pas la fonction. En effet, la Fi- gure11.9 indique qu’il faut utiliser deux bases pour donner une caractérisation de la classe BCS. Or aucune de ces deux bases ne maximisait pas la fonction. L’algorithme utilisait à la place une autre base. L’arbre de décision retourné par l’algorithme ne classait pas bien certains échantillons de la classe BCS.

Au vu des deux inconvénient précédents nous avons décidé de ne pas utiliser les arbres de dé- cision que ce soit pour faire de la classification supervisée ou pour trouver plusieurs façon de dis- criminer les classes. Par contre nous nous sommes inspirés de cette méthode (et notamment de l’idée de trier les variables selon une certaine fonction) pour créer notre méthode présentée dans le Chapitre 6.

5.3.2 Classification naïve bayésienne