Idée générale

L’idée générale des arbres de régression et de classification est de partir de l’ensemble des données d’entraînement et de les partitionner successivement sur la base de variables fortement discriminantes.

De façon très générale, les algorithmes fonctionnent ainsi:

On part, à la racine, avec toutes les observations. On sélectionne une variabl\(X_i\) et on subdivise le jeu de données en deux (ou plusieurs) noeuds sur la base de cette variable de sorte que la valeur de Y soit la plus homogène possible dans les deux noeuds. Pour chacun des deux noeuds créés, on répète l’étape On poursuit ainsi jusqu’à l’atteinte d’un certain critère d’arrêt.Le modèle créé est composé d’une longue suite de règles simples.Illustrons le concept à l’aide d’un exemple simple dont les données sont présentées.

Le jeu de données comporte une variable réponse de type binaire (variable admit), et trois variables prédictives :gre (graduate record exam score),gpa (grade point average),rank(prestige of the undergraduate institution) qui va de 1(meilleur prestige) à 4 (prestige plus faible). Notre base de donnée est composée de 400 observations.

# importation de la base de données 
library(readxl)
bi <- read.csv("F:/SAAD S1/statistique bayésienne/binary.CSV")

L’admission correspond à valeur 1 de la variable admit.

Afin d’utiliser ce jeu de données dans un algorithme de classification binaire, nous allons passer les variables admit et rank en facteurs.

bi$rank <- as.factor(bi$rank)
bi$admit <- as.factor(bi$admit)

En pratique

Les deux principales librairies en R pour créer des arbres sont les rpart et party. La librairie rpart utilise une approche de type «CART» alors que la librairie party utilise une approche conditionnelle. Voici un exemple pour obtenir un arbre de type CART avec les données.

library(rpart)
library(rpart.plot)

# Hyperparamètres
hp <- rpart.control(minsplit = 2, #L'effectif minimal pour séparer un noeud 
                     minbucket = 1, # L'effectif minimal dans chaque noeud terminal
                     maxdepth = 30, # Hauteur (profondeur) maximale de l'arbre
                     cp = 0 # Paramètre de pénalisation pour la complexité
                     )

# Construction de l'arbre
arbre_rpart <- rpart(admit~., # Y~X
                  control = hp, # Hyperparamètres
                    data=bi) 

# Afficher l'arbre
arbre_rpart
## n= 400 
## 
## node), split, n, loss, yval, (yprob)
##       * denotes terminal node
## 
##      1) root 400 127 0 (0.68250000 0.31750000)  
##        2) gpa< 3.415 208  45 0 (0.78365385 0.21634615)  
##          4) rank=3,4 99  13 0 (0.86868687 0.13131313)  
##            8) gre< 510 40   1 0 (0.97500000 0.02500000)  
##             16) gpa< 3.2 29   0 0 (1.00000000 0.00000000) *
##             17) gpa>=3.2 11   1 0 (0.90909091 0.09090909)  
##               34) gpa>=3.235 9   0 0 (1.00000000 0.00000000) *
##               35) gpa< 3.235 2   1 0 (0.50000000 0.50000000)  
##                 70) gre>=450 1   0 0 (1.00000000 0.00000000) *
##                 71) gre< 450 1   0 1 (0.00000000 1.00000000) *
##            9) gre>=510 59  12 0 (0.79661017 0.20338983)  
##             18) gpa>=2.69 57  10 0 (0.82456140 0.17543860)  
##               36) gpa>=3.235 27   2 0 (0.92592593 0.07407407)  
##                 72) gpa< 3.375 19   0 0 (1.00000000 0.00000000) *
##                 73) gpa>=3.375 8   2 0 (0.75000000 0.25000000)  
##                  146) gpa>=3.395 4   0 0 (1.00000000 0.00000000) *
##                  147) gpa< 3.395 4   2 0 (0.50000000 0.50000000)  
##                    294) gre>=620 1   0 0 (1.00000000 0.00000000) *
##                    295) gre< 620 3   1 1 (0.33333333 0.66666667)  
##                      590) rank=4 1   0 0 (1.00000000 0.00000000) *
##                      591) rank=3 2   0 1 (0.00000000 1.00000000) *
##               37) gpa< 3.235 30   8 0 (0.73333333 0.26666667)  
##                 74) gre< 570 13   1 0 (0.92307692 0.07692308)  
##                  148) gpa< 3.175 11   0 0 (1.00000000 0.00000000) *
##                  149) gpa>=3.175 2   1 0 (0.50000000 0.50000000)  
##                    298) gre>=540 1   0 0 (1.00000000 0.00000000) *
##                    299) gre< 540 1   0 1 (0.00000000 1.00000000) *
##                 75) gre>=570 17   7 0 (0.58823529 0.41176471)  
##                  150) gre>=590 15   5 0 (0.66666667 0.33333333)  
##                    300) rank=4 10   2 0 (0.80000000 0.20000000)  
##                      600) gre< 630 4   0 0 (1.00000000 0.00000000) *
##                      601) gre>=630 6   2 0 (0.66666667 0.33333333)  
##                       1202) gre>=660 5   1 0 (0.80000000 0.20000000)  
##                         2404) gpa>=3.04 3   0 0 (1.00000000 0.00000000) *
##                         2405) gpa< 3.04 2   1 0 (0.50000000 0.50000000)  
##                           4810) gre>=690 1   0 0 (1.00000000 0.00000000) *
##                           4811) gre< 690 1   0 1 (0.00000000 1.00000000) *
##                       1203) gre< 660 1   0 1 (0.00000000 1.00000000) *
##                    301) rank=3 5   2 1 (0.40000000 0.60000000)  
##                      602) gpa>=3.015 3   1 0 (0.66666667 0.33333333)  
##                       1204) gre>=630 2   0 0 (1.00000000 0.00000000) *
##                       1205) gre< 630 1   0 1 (0.00000000 1.00000000) *
##                      603) gpa< 3.015 2   0 1 (0.00000000 1.00000000) *
##                  151) gre< 590 2   0 1 (0.00000000 1.00000000) *
##             19) gpa< 2.69 2   0 1 (0.00000000 1.00000000) *
##          5) rank=1,2 109  32 0 (0.70642202 0.29357798)  
##           10) gre< 730 99  25 0 (0.74747475 0.25252525)  
##             20) gre>=320 98  24 0 (0.75510204 0.24489796)  
##               40) gre>=690 6   0 0 (1.00000000 0.00000000) *
##               41) gre< 690 92  24 0 (0.73913043 0.26086957)  
##                 82) gre< 470 21   3 0 (0.85714286 0.14285714)  
##                  164) gpa< 3.385 20   2 0 (0.90000000 0.10000000)  
##                    328) gre>=350 18   1 0 (0.94444444 0.05555556)  
##                      656) gre>=410 11   0 0 (1.00000000 0.00000000) *
##                      657) gre< 410 7   1 0 (0.85714286 0.14285714)  
##                       1314) gpa< 3.145 3   0 0 (1.00000000 0.00000000) *
##                       1315) gpa>=3.145 4   1 0 (0.75000000 0.25000000)  
##                         2630) gpa>=3.255 3   0 0 (1.00000000 0.00000000) *
##                         2631) gpa< 3.255 1   0 1 (0.00000000 1.00000000) *
##                    329) gre< 350 2   1 0 (0.50000000 0.50000000)  
##                      658) gpa< 2.95 1   0 0 (1.00000000 0.00000000) *
##                      659) gpa>=2.95 1   0 1 (0.00000000 1.00000000) *
##                  165) gpa>=3.385 1   0 1 (0.00000000 1.00000000) *
##                 83) gre>=470 71  21 0 (0.70422535 0.29577465)  
##                  166) gre>=490 64  17 0 (0.73437500 0.26562500)  
##                    332) gpa< 3.125 25   4 0 (0.84000000 0.16000000)  
##                      664) gre< 630 21   2 0 (0.90476190 0.09523810)  
##                       1328) rank=2 18   1 0 (0.94444444 0.05555556)  
##                         2656) gre< 590 14   0 0 (1.00000000 0.00000000) *
##                         2657) gre>=590 4   1 0 (0.75000000 0.25000000)  
##                           5314) gre>=610 3   0 0 (1.00000000 0.00000000) *
##                           5315) gre< 610 1   0 1 (0.00000000 1.00000000) *
##                       1329) rank=1 3   1 0 (0.66666667 0.33333333)  
##                         2658) gre< 550 2   0 0 (1.00000000 0.00000000) *
##                         2659) gre>=550 1   0 1 (0.00000000 1.00000000) *
##                      665) gre>=630 4   2 0 (0.50000000 0.50000000)  
##                       1330) gpa>=2.605 3   1 0 (0.66666667 0.33333333)  
##                         2660) gre>=660 1   0 0 (1.00000000 0.00000000) *
##                         2661) gre< 660 2   1 0 (0.50000000 0.50000000)  
##                           5322) gpa< 2.865 1   0 0 (1.00000000 0.00000000) *
##                           5323) gpa>=2.865 1   0 1 (0.00000000 1.00000000) *
##                       1331) gpa< 2.605 1   0 1 (0.00000000 1.00000000) *
##                    333) gpa>=3.125 39  13 0 (0.66666667 0.33333333)  
##                      666) gpa>=3.185 28   7 0 (0.75000000 0.25000000)  
##                       1332) gpa< 3.355 22   4 0 (0.81818182 0.18181818)  
##                         2664) rank=1 7   0 0 (1.00000000 0.00000000) *
##                         2665) rank=2 15   4 0 (0.73333333 0.26666667)  
##                           5330) gpa>=3.325 5   0 0 (1.00000000 0.00000000) *
##                           5331) gpa< 3.325 10   4 0 (0.60000000 0.40000000)  
##                            10662) gre>=530 9   3 0 (0.66666667 0.33333333)  
##                              21324) gre>=590 5   1 0 (0.80000000 0.20000000)  
##                                42648) gre< 660 3   0 0 (1.00000000 0.00000000) *
##                                42649) gre>=660 2   1 0 (0.50000000 0.50000000)  
##                                  85298) gpa>=3.29 1   0 0 (1.00000000 0.00000000) *
##                                  85299) gpa< 3.29 1   0 1 (0.00000000 1.00000000) *
##                              21325) gre< 590 4   2 0 (0.50000000 0.50000000)  
##                                42650) gre< 560 1   0 0 (1.00000000 0.00000000) *
##                                42651) gre>=560 3   1 1 (0.33333333 0.66666667)  
##                                  85302) gpa>=3.25 2   1 0 (0.50000000 0.50000000)  
##                                   170604) gpa< 3.31 1   0 0 (1.00000000 0.00000000) *
##                                   170605) gpa>=3.31 1   0 1 (0.00000000 1.00000000) *
##                                  85303) gpa< 3.25 1   0 1 (0.00000000 1.00000000) *
##                            10663) gre< 530 1   0 1 (0.00000000 1.00000000) *
##                       1333) gpa>=3.355 6   3 0 (0.50000000 0.50000000)  
##                         2666) gpa>=3.385 2   0 0 (1.00000000 0.00000000) *
##                         2667) gpa< 3.385 4   1 1 (0.25000000 0.75000000)  
##                           5334) gre< 600 2   1 0 (0.50000000 0.50000000)  
##                            10668) gre>=570 1   0 0 (1.00000000 0.00000000) *
##                            10669) gre< 570 1   0 1 (0.00000000 1.00000000) *
##                           5335) gre>=600 2   0 1 (0.00000000 1.00000000) *
##                      667) gpa< 3.185 11   5 1 (0.45454545 0.54545455)  
##                       1334) gre>=670 1   0 0 (1.00000000 0.00000000) *
##                       1335) gre< 670 10   4 1 (0.40000000 0.60000000)  
##                         2670) gpa< 3.135 3   1 0 (0.66666667 0.33333333)  
##                           5340) gre>=520 2   0 0 (1.00000000 0.00000000) *
##                           5341) gre< 520 1   0 1 (0.00000000 1.00000000) *
##                         2671) gpa>=3.135 7   2 1 (0.28571429 0.71428571)  
##                           5342) gpa>=3.155 5   2 1 (0.40000000 0.60000000)  
##                            10684) gre>=630 1   0 0 (1.00000000 0.00000000) *
##                            10685) gre< 630 4   1 1 (0.25000000 0.75000000)  
##                              21370) gpa< 3.165 1   0 0 (1.00000000 0.00000000) *
##                              21371) gpa>=3.165 3   0 1 (0.00000000 1.00000000) *
##                           5343) gpa< 3.155 2   0 1 (0.00000000 1.00000000) *
##                  167) gre< 490 7   3 1 (0.42857143 0.57142857)  
##                    334) gpa>=3.075 2   0 0 (1.00000000 0.00000000) *
##                    335) gpa< 3.075 5   1 1 (0.20000000 0.80000000)  
##                      670) gpa< 2.585 1   0 0 (1.00000000 0.00000000) *
##                      671) gpa>=2.585 4   0 1 (0.00000000 1.00000000) *
##             21) gre< 320 1   0 1 (0.00000000 1.00000000) *
##           11) gre>=730 10   3 1 (0.30000000 0.70000000)  
##             22) gpa< 2.935 3   1 0 (0.66666667 0.33333333)  
##               44) gre>=780 2   0 0 (1.00000000 0.00000000) *
##               45) gre< 780 1   0 1 (0.00000000 1.00000000) *
##             23) gpa>=2.935 7   1 1 (0.14285714 0.85714286)  
##               46) gre< 750 2   1 0 (0.50000000 0.50000000)  
##                 92) gpa>=3.14 1   0 0 (1.00000000 0.00000000) *
##                 93) gpa< 3.14 1   0 1 (0.00000000 1.00000000) *
##               47) gre>=750 5   0 1 (0.00000000 1.00000000) *
##        3) gpa>=3.415 192  82 0 (0.57291667 0.42708333)  
##          6) rank=2,3,4 160  58 0 (0.63750000 0.36250000)  
##           12) gre< 430 6   0 0 (1.00000000 0.00000000) *
##           13) gre>=430 154  58 0 (0.62337662 0.37662338)  
##             26) rank=3,4 84  27 0 (0.67857143 0.32142857)  
##               52) gre>=530 69  19 0 (0.72463768 0.27536232)  
##                104) gre< 650 32   5 0 (0.84375000 0.15625000)  
##                  208) gpa< 3.945 26   3 0 (0.88461538 0.11538462)  
##                    416) gre>=610 10   0 0 (1.00000000 0.00000000) *
##                    417) gre< 610 16   3 0 (0.81250000 0.18750000)  
##                      834) gpa< 3.52 5   0 0 (1.00000000 0.00000000) *
##                      835) gpa>=3.52 11   3 0 (0.72727273 0.27272727)  
##                       1670) gpa>=3.56 10   2 0 (0.80000000 0.20000000)  
##                         3340) gpa< 3.635 4   0 0 (1.00000000 0.00000000) *
##                         3341) gpa>=3.635 6   2 0 (0.66666667 0.33333333)  
##                           6682) gpa>=3.73 4   0 0 (1.00000000 0.00000000) *
##                           6683) gpa< 3.73 2   0 1 (0.00000000 1.00000000) *
##                       1671) gpa< 3.56 1   0 1 (0.00000000 1.00000000) *
##                  209) gpa>=3.945 6   2 0 (0.66666667 0.33333333)  
##                    418) gpa>=3.97 4   0 0 (1.00000000 0.00000000) *
##                    419) gpa< 3.97 2   0 1 (0.00000000 1.00000000) *
##                105) gre>=650 37  14 0 (0.62162162 0.37837838)  
##                  210) gpa< 3.46 3   0 0 (1.00000000 0.00000000) *
##                  211) gpa>=3.46 34  14 0 (0.58823529 0.41176471)  
##                    422) gpa>=3.765 18   5 0 (0.72222222 0.27777778)  
##                      844) gre< 730 10   1 0 (0.90000000 0.10000000)  
##                       1688) gre>=690 7   0 0 (1.00000000 0.00000000) *
##                       1689) gre< 690 3   1 0 (0.66666667 0.33333333)  
##                         3378) gre< 670 1   0 0 (1.00000000 0.00000000) *
##                         3379) gre>=670 2   1 0 (0.50000000 0.50000000)  
##                           6758) gpa>=3.92 1   0 0 (1.00000000 0.00000000) *
##                           6759) gpa< 3.92 1   0 1 (0.00000000 1.00000000) *
##                      845) gre>=730 8   4 0 (0.50000000 0.50000000)  
##                       1690) rank=4 2   0 0 (1.00000000 0.00000000) *
##                       1691) rank=3 6   2 1 (0.33333333 0.66666667)  
##                         3382) gpa>=3.855 5   2 1 (0.40000000 0.60000000)  
##                           6764) gpa< 3.955 1   0 0 (1.00000000 0.00000000) *
##                           6765) gpa>=3.955 4   1 1 (0.25000000 0.75000000) *
##                         3383) gpa< 3.855 1   0 1 (0.00000000 1.00000000) *
##                    423) gpa< 3.765 16   7 1 (0.43750000 0.56250000)  
##                      846) gre>=790 2   0 0 (1.00000000 0.00000000) *
##                      847) gre< 790 14   5 1 (0.35714286 0.64285714)  
##                       1694) gre>=670 9   4 1 (0.44444444 0.55555556)  
##                         3388) gpa< 3.49 1   0 0 (1.00000000 0.00000000) *
##                         3389) gpa>=3.49 8   3 1 (0.37500000 0.62500000)  
##                           6778) gpa>=3.57 5   2 0 (0.60000000 0.40000000)  
##                            13556) gre< 760 4   1 0 (0.75000000 0.25000000)  
##                              27112) gpa< 3.75 3   0 0 (1.00000000 0.00000000) *
##                              27113) gpa>=3.75 1   0 1 (0.00000000 1.00000000) *
##                            13557) gre>=760 1   0 1 (0.00000000 1.00000000) *
##                           6779) gpa< 3.57 3   0 1 (0.00000000 1.00000000) *
##                       1695) gre< 670 5   1 1 (0.20000000 0.80000000)  
##                         3390) gpa< 3.595 2   1 0 (0.50000000 0.50000000)  
##                           6780) gpa>=3.53 1   0 0 (1.00000000 0.00000000) *
##                           6781) gpa< 3.53 1   0 1 (0.00000000 1.00000000) *
##                         3391) gpa>=3.595 3   0 1 (0.00000000 1.00000000) *
##               53) gre< 530 15   7 1 (0.46666667 0.53333333)  
##                106) gre< 510 12   5 0 (0.58333333 0.41666667)  
##                  212) gre>=490 6   1 0 (0.83333333 0.16666667)  
##                    424) gpa>=3.74 3   0 0 (1.00000000 0.00000000) *
##                    425) gpa< 3.74 3   1 0 (0.66666667 0.33333333)  
##                      850) gpa< 3.585 2   0 0 (1.00000000 0.00000000) *
##                      851) gpa>=3.585 1   0 1 (0.00000000 1.00000000) *
##                  213) gre< 490 6   2 1 (0.33333333 0.66666667)  
##                    426) gpa< 3.445 1   0 0 (1.00000000 0.00000000) *
##                    427) gpa>=3.445 5   1 1 (0.20000000 0.80000000)  
##                      854) gpa>=3.74 2   1 0 (0.50000000 0.50000000)  
##                       1708) gpa< 3.88 1   0 0 (1.00000000 0.00000000) *
##                       1709) gpa>=3.88 1   0 1 (0.00000000 1.00000000) *
##                      855) gpa< 3.74 3   0 1 (0.00000000 1.00000000) *
##                107) gre>=510 3   0 1 (0.00000000 1.00000000) *
##             27) rank=2 70  31 0 (0.55714286 0.44285714)  
##               54) gpa>=3.495 54  20 0 (0.62962963 0.37037037)  
##                108) gpa< 3.73 25   5 0 (0.80000000 0.20000000)  
##                  216) gpa< 3.54 8   0 0 (1.00000000 0.00000000) *
##                  217) gpa>=3.54 17   5 0 (0.70588235 0.29411765)  
##                    434) gpa>=3.565 15   3 0 (0.80000000 0.20000000)  
##                      868) gre>=690 4   0 0 (1.00000000 0.00000000) *
##                      869) gre< 690 11   3 0 (0.72727273 0.27272727)  
##                       1738) gre< 640 7   1 0 (0.85714286 0.14285714) *
##                       1739) gre>=640 4   2 0 (0.50000000 0.50000000)  
##                         3478) gpa>=3.65 3   1 0 (0.66666667 0.33333333)  
##                           6956) gre< 670 1   0 0 (1.00000000 0.00000000) *
##                           6957) gre>=670 2   1 0 (0.50000000 0.50000000)  
##                            13914) gpa>=3.685 1   0 0 (1.00000000 0.00000000) *
##                            13915) gpa< 3.685 1   0 1 (0.00000000 1.00000000) *
##                         3479) gpa< 3.65 1   0 1 (0.00000000 1.00000000) *
##                    435) gpa< 3.565 2   0 1 (0.00000000 1.00000000) *
##                109) gpa>=3.73 29  14 1 (0.48275862 0.51724138)  
##                  218) gre>=550 23  10 0 (0.56521739 0.43478261)  
##                    436) gpa< 3.935 12   3 0 (0.75000000 0.25000000)  
##                      872) gpa>=3.885 4   0 0 (1.00000000 0.00000000) *
##                      873) gpa< 3.885 8   3 0 (0.62500000 0.37500000)  
##                       1746) gpa< 3.845 6   1 0 (0.83333333 0.16666667)  
##                         3492) gpa>=3.765 4   0 0 (1.00000000 0.00000000) *
##                         3493) gpa< 3.765 2   1 0 (0.50000000 0.50000000)  
##                           6986) gre>=710 1   0 0 (1.00000000 0.00000000) *
##                           6987) gre< 710 1   0 1 (0.00000000 1.00000000) *
##                       1747) gpa>=3.845 2   0 1 (0.00000000 1.00000000) *
##                    437) gpa>=3.935 11   4 1 (0.36363636 0.63636364)  
##                      874) gre< 630 2   0 0 (1.00000000 0.00000000) *
##                      875) gre>=630 9   2 1 (0.22222222 0.77777778)  
##                       1750) gpa< 3.945 2   1 0 (0.50000000 0.50000000)  
##                         3500) gre>=650 1   0 0 (1.00000000 0.00000000) *
##                         3501) gre< 650 1   0 1 (0.00000000 1.00000000) *
##                       1751) gpa>=3.945 7   1 1 (0.14285714 0.85714286)  
##                         3502) gre>=690 3   1 1 (0.33333333 0.66666667)  
##                           7004) gre< 740 1   0 0 (1.00000000 0.00000000) *
##                           7005) gre>=740 2   0 1 (0.00000000 1.00000000) *
##                         3503) gre< 690 4   0 1 (0.00000000 1.00000000) *
##                  219) gre< 550 6   1 1 (0.16666667 0.83333333)  
##                    438) gre< 500 1   0 0 (1.00000000 0.00000000) *
##                    439) gre>=500 5   0 1 (0.00000000 1.00000000) *
##               55) gpa< 3.495 16   5 1 (0.31250000 0.68750000)  
##                110) gre< 510 4   1 0 (0.75000000 0.25000000)  
##                  220) gre>=450 3   0 0 (1.00000000 0.00000000) *
##                  221) gre< 450 1   0 1 (0.00000000 1.00000000) *
##                111) gre>=510 12   2 1 (0.16666667 0.83333333)  
##                  222) gpa>=3.475 5   2 1 (0.40000000 0.60000000)  
##                    444) gre>=580 3   1 0 (0.66666667 0.33333333) *
##                    445) gre< 580 2   0 1 (0.00000000 1.00000000) *
##                  223) gpa< 3.475 7   0 1 (0.00000000 1.00000000) *
##          7) rank=1 32   8 1 (0.25000000 0.75000000)  
##           14) gpa>=3.895 11   5 1 (0.45454545 0.54545455)  
##             28) gpa< 3.985 2   0 0 (1.00000000 0.00000000) *
##             29) gpa>=3.985 9   3 1 (0.33333333 0.66666667)  
##               58) gre< 730 7   3 1 (0.42857143 0.57142857)  
##                116) gre>=550 6   3 0 (0.50000000 0.50000000)  
##                  232) gre< 600 1   0 0 (1.00000000 0.00000000) *
##                  233) gre>=600 5   2 1 (0.40000000 0.60000000)  
##                    466) gre>=640 4   2 0 (0.50000000 0.50000000)  
##                      932) gre< 680 1   0 0 (1.00000000 0.00000000) *
##                      933) gre>=680 3   1 1 (0.33333333 0.66666667) *
##                    467) gre< 640 1   0 1 (0.00000000 1.00000000) *
##                117) gre< 550 1   0 1 (0.00000000 1.00000000) *
##               59) gre>=730 2   0 1 (0.00000000 1.00000000) *
##           15) gpa< 3.895 21   3 1 (0.14285714 0.85714286)  
##             30) gre>=730 6   2 1 (0.33333333 0.66666667)  
##               60) gre< 770 1   0 0 (1.00000000 0.00000000) *
##               61) gre>=770 5   1 1 (0.20000000 0.80000000)  
##                122) gpa>=3.715 2   1 0 (0.50000000 0.50000000)  
##                  244) gpa< 3.735 1   0 0 (1.00000000 0.00000000) *
##                  245) gpa>=3.735 1   0 1 (0.00000000 1.00000000) *
##                123) gpa< 3.715 3   0 1 (0.00000000 1.00000000) *
##             31) gre< 730 15   1 1 (0.06666667 0.93333333)  
##               62) gpa>=3.665 5   1 1 (0.20000000 0.80000000)  
##                124) gpa< 3.7 1   0 0 (1.00000000 0.00000000) *
##                125) gpa>=3.7 4   0 1 (0.00000000 1.00000000) *
##               63) gpa< 3.665 10   0 1 (0.00000000 1.00000000) *

nous allons visalisé l’arbe de l’aprentissage

# Visualiser l'arbre
rpart.plot(arbre_rpart)
## Warning: labs do not fit even at cex 0.15, there may be some overplotting

# Visualiser l'arbre
plot(arbre_rpart)

# Faire une prédiction avec l'arbre
hat_y <- predict(arbre_rpart) # Le modèle créé par rpart)
hat_y
##             0         1
## 1   1.0000000 0.0000000
## 2   0.0000000 1.0000000
## 3   0.0000000 1.0000000
## 4   0.0000000 1.0000000
## 5   1.0000000 0.0000000
## 6   0.0000000 1.0000000
## 7   0.0000000 1.0000000
## 8   1.0000000 0.0000000
## 9   0.0000000 1.0000000
## 10  1.0000000 0.0000000
## 11  1.0000000 0.0000000
## 12  1.0000000 0.0000000
## 13  0.0000000 1.0000000
## 14  1.0000000 0.0000000
## 15  0.3333333 0.6666667
## 16  1.0000000 0.0000000
## 17  1.0000000 0.0000000
## 18  1.0000000 0.0000000
## 19  1.0000000 0.0000000
## 20  0.0000000 1.0000000
## 21  1.0000000 0.0000000
## 22  0.0000000 1.0000000
## 23  1.0000000 0.0000000
## 24  1.0000000 0.0000000
## 25  0.0000000 1.0000000
## 26  0.0000000 1.0000000
## 27  0.0000000 1.0000000
## 28  0.0000000 1.0000000
## 29  0.0000000 1.0000000
## 30  1.0000000 0.0000000
## 31  1.0000000 0.0000000
## 32  1.0000000 0.0000000
## 33  1.0000000 0.0000000
## 34  0.2500000 0.7500000
## 35  1.0000000 0.0000000
## 36  1.0000000 0.0000000
## 37  1.0000000 0.0000000
## 38  1.0000000 0.0000000
## 39  0.0000000 1.0000000
## 40  0.0000000 1.0000000
## 41  1.0000000 0.0000000
## 42  0.0000000 1.0000000
## 43  0.0000000 1.0000000
## 44  1.0000000 0.0000000
## 45  1.0000000 0.0000000
## 46  0.0000000 1.0000000
## 47  0.0000000 1.0000000
## 48  1.0000000 0.0000000
## 49  1.0000000 0.0000000
## 50  1.0000000 0.0000000
## 51  1.0000000 0.0000000
## 52  1.0000000 0.0000000
## 53  1.0000000 0.0000000
## 54  0.0000000 1.0000000
## 55  1.0000000 0.0000000
## 56  0.2500000 0.7500000
## 57  1.0000000 0.0000000
## 58  1.0000000 0.0000000
## 59  1.0000000 0.0000000
## 60  1.0000000 0.0000000
## 61  0.0000000 1.0000000
## 62  1.0000000 0.0000000
## 63  1.0000000 0.0000000
## 64  0.0000000 1.0000000
## 65  1.0000000 0.0000000
## 66  0.8571429 0.1428571
## 67  1.0000000 0.0000000
## 68  1.0000000 0.0000000
## 69  1.0000000 0.0000000
## 70  1.0000000 0.0000000
## 71  1.0000000 0.0000000
## 72  1.0000000 0.0000000
## 73  1.0000000 0.0000000
## 74  1.0000000 0.0000000
## 75  1.0000000 0.0000000
## 76  1.0000000 0.0000000
## 77  1.0000000 0.0000000
## 78  0.2500000 0.7500000
## 79  1.0000000 0.0000000
## 80  0.0000000 1.0000000
## 81  1.0000000 0.0000000
## 82  1.0000000 0.0000000
## 83  1.0000000 0.0000000
## 84  1.0000000 0.0000000
## 85  0.0000000 1.0000000
## 86  1.0000000 0.0000000
## 87  1.0000000 0.0000000
## 88  0.6666667 0.3333333
## 89  1.0000000 0.0000000
## 90  0.0000000 1.0000000
## 91  1.0000000 0.0000000
## 92  0.0000000 1.0000000
## 93  1.0000000 0.0000000
## 94  1.0000000 0.0000000
## 95  0.0000000 1.0000000
## 96  1.0000000 0.0000000
## 97  1.0000000 0.0000000
## 98  0.8571429 0.1428571
## 99  1.0000000 0.0000000
## 100 1.0000000 0.0000000
## 101 1.0000000 0.0000000
## 102 1.0000000 0.0000000
## 103 1.0000000 0.0000000
## 104 1.0000000 0.0000000
## 105 0.0000000 1.0000000
## 106 0.0000000 1.0000000
## 107 0.0000000 1.0000000
## 108 1.0000000 0.0000000
## 109 1.0000000 0.0000000
## 110 1.0000000 0.0000000
## 111 1.0000000 0.0000000
## 112 1.0000000 0.0000000
## 113 1.0000000 0.0000000
## 114 1.0000000 0.0000000
## 115 1.0000000 0.0000000
## 116 1.0000000 0.0000000
## 117 0.0000000 1.0000000
## 118 1.0000000 0.0000000
## 119 0.0000000 1.0000000
## 120 1.0000000 0.0000000
## 121 0.0000000 1.0000000
## 122 0.0000000 1.0000000
## 123 1.0000000 0.0000000
## 124 1.0000000 0.0000000
## 125 1.0000000 0.0000000
## 126 1.0000000 0.0000000
## 127 0.0000000 1.0000000
## 128 1.0000000 0.0000000
## 129 1.0000000 0.0000000
## 130 1.0000000 0.0000000
## 131 0.0000000 1.0000000
## 132 1.0000000 0.0000000
## 133 1.0000000 0.0000000
## 134 1.0000000 0.0000000
## 135 1.0000000 0.0000000
## 136 1.0000000 0.0000000
## 137 1.0000000 0.0000000
## 138 1.0000000 0.0000000
## 139 1.0000000 0.0000000
## 140 0.0000000 1.0000000
## 141 1.0000000 0.0000000
## 142 0.0000000 1.0000000
## 143 1.0000000 0.0000000
## 144 1.0000000 0.0000000
## 145 1.0000000 0.0000000
## 146 1.0000000 0.0000000
## 147 1.0000000 0.0000000
## 148 1.0000000 0.0000000
## 149 0.0000000 1.0000000
## 150 1.0000000 0.0000000
## 151 0.0000000 1.0000000
## 152 1.0000000 0.0000000
## 153 0.0000000 1.0000000
## 154 1.0000000 0.0000000
## 155 1.0000000 0.0000000
## 156 0.0000000 1.0000000
## 157 1.0000000 0.0000000
## 158 0.0000000 1.0000000
## 159 0.6666667 0.3333333
## 160 1.0000000 0.0000000
## 161 1.0000000 0.0000000
## 162 1.0000000 0.0000000
## 163 0.0000000 1.0000000
## 164 1.0000000 0.0000000
## 165 1.0000000 0.0000000
## 166 0.3333333 0.6666667
## 167 1.0000000 0.0000000
## 168 1.0000000 0.0000000
## 169 1.0000000 0.0000000
## 170 1.0000000 0.0000000
## 171 1.0000000 0.0000000
## 172 1.0000000 0.0000000
## 173 1.0000000 0.0000000
## 174 0.0000000 1.0000000
## 175 1.0000000 0.0000000
## 176 0.0000000 1.0000000
## 177 1.0000000 0.0000000
## 178 0.0000000 1.0000000
## 179 1.0000000 0.0000000
## 180 1.0000000 0.0000000
## 181 1.0000000 0.0000000
## 182 1.0000000 0.0000000
## 183 1.0000000 0.0000000
## 184 0.0000000 1.0000000
## 185 1.0000000 0.0000000
## 186 1.0000000 0.0000000
## 187 1.0000000 0.0000000
## 188 1.0000000 0.0000000
## 189 1.0000000 0.0000000
## 190 1.0000000 0.0000000
## 191 0.0000000 1.0000000
## 192 1.0000000 0.0000000
## 193 1.0000000 0.0000000
## 194 1.0000000 0.0000000
## 195 0.0000000 1.0000000
## 196 0.8571429 0.1428571
## 197 1.0000000 0.0000000
## 198 0.0000000 1.0000000
## 199 1.0000000 0.0000000
## 200 1.0000000 0.0000000
## 201 1.0000000 0.0000000
## 202 0.0000000 1.0000000
## 203 0.3333333 0.6666667
## 204 1.0000000 0.0000000
## 205 0.0000000 1.0000000
## 206 0.0000000 1.0000000
## 207 1.0000000 0.0000000
## 208 0.0000000 1.0000000
## 209 1.0000000 0.0000000
## 210 1.0000000 0.0000000
## 211 1.0000000 0.0000000
## 212 1.0000000 0.0000000
## 213 1.0000000 0.0000000
## 214 1.0000000 0.0000000
## 215 0.0000000 1.0000000
## 216 0.0000000 1.0000000
## 217 1.0000000 0.0000000
## 218 0.0000000 1.0000000
## 219 1.0000000 0.0000000
## 220 0.8571429 0.1428571
## 221 1.0000000 0.0000000
## 222 1.0000000 0.0000000
## 223 0.0000000 1.0000000
## 224 1.0000000 0.0000000
## 225 1.0000000 0.0000000
## 226 0.0000000 1.0000000
## 227 0.8571429 0.1428571
## 228 1.0000000 0.0000000
## 229 1.0000000 0.0000000
## 230 0.0000000 1.0000000
## 231 1.0000000 0.0000000
## 232 1.0000000 0.0000000
## 233 1.0000000 0.0000000
## 234 1.0000000 0.0000000
## 235 0.0000000 1.0000000
## 236 1.0000000 0.0000000
## 237 0.6666667 0.3333333
## 238 1.0000000 0.0000000
## 239 1.0000000 0.0000000
## 240 1.0000000 0.0000000
## 241 1.0000000 0.0000000
## 242 0.0000000 1.0000000
## 243 0.0000000 1.0000000
## 244 1.0000000 0.0000000
## 245 1.0000000 0.0000000
## 246 1.0000000 0.0000000
## 247 1.0000000 0.0000000
## 248 1.0000000 0.0000000
## 249 1.0000000 0.0000000
## 250 1.0000000 0.0000000
## 251 1.0000000 0.0000000
## 252 1.0000000 0.0000000
## 253 0.0000000 1.0000000
## 254 0.0000000 1.0000000
## 255 0.0000000 1.0000000
## 256 1.0000000 0.0000000
## 257 0.0000000 1.0000000
## 258 0.0000000 1.0000000
## 259 1.0000000 0.0000000
## 260 1.0000000 0.0000000
## 261 1.0000000 0.0000000
## 262 1.0000000 0.0000000
## 263 0.0000000 1.0000000
## 264 0.0000000 1.0000000
## 265 0.0000000 1.0000000
## 266 1.0000000 0.0000000
## 267 1.0000000 0.0000000
## 268 0.0000000 1.0000000
## 269 0.0000000 1.0000000
## 270 1.0000000 0.0000000
## 271 0.0000000 1.0000000
## 272 1.0000000 0.0000000
## 273 0.0000000 1.0000000
## 274 1.0000000 0.0000000
## 275 1.0000000 0.0000000
## 276 0.0000000 1.0000000
## 277 1.0000000 0.0000000
## 278 0.0000000 1.0000000
## 279 0.0000000 1.0000000
## 280 0.0000000 1.0000000
## 281 1.0000000 0.0000000
## 282 1.0000000 0.0000000
## 283 1.0000000 0.0000000
## 284 1.0000000 0.0000000
## 285 0.0000000 1.0000000
## 286 1.0000000 0.0000000
## 287 0.0000000 1.0000000
## 288 0.0000000 1.0000000
## 289 1.0000000 0.0000000
## 290 1.0000000 0.0000000
## 291 0.0000000 1.0000000
## 292 1.0000000 0.0000000
## 293 1.0000000 0.0000000
## 294 1.0000000 0.0000000
## 295 1.0000000 0.0000000
## 296 1.0000000 0.0000000
## 297 1.0000000 0.0000000
## 298 1.0000000 0.0000000
## 299 1.0000000 0.0000000
## 300 1.0000000 0.0000000
## 301 1.0000000 0.0000000
## 302 0.0000000 1.0000000
## 303 0.0000000 1.0000000
## 304 0.0000000 1.0000000
## 305 1.0000000 0.0000000
## 306 1.0000000 0.0000000
## 307 0.0000000 1.0000000
## 308 1.0000000 0.0000000
## 309 1.0000000 0.0000000
## 310 1.0000000 0.0000000
## 311 1.0000000 0.0000000
## 312 1.0000000 0.0000000
## 313 1.0000000 0.0000000
## 314 0.0000000 1.0000000
## 315 1.0000000 0.0000000
## 316 0.0000000 1.0000000
## 317 0.0000000 1.0000000
## 318 0.0000000 1.0000000
## 319 0.0000000 1.0000000
## 320 1.0000000 0.0000000
## 321 1.0000000 0.0000000
## 322 0.8571429 0.1428571
## 323 1.0000000 0.0000000
## 324 1.0000000 0.0000000
## 325 1.0000000 0.0000000
## 326 1.0000000 0.0000000
## 327 1.0000000 0.0000000
## 328 0.0000000 1.0000000
## 329 1.0000000 0.0000000
## 330 1.0000000 0.0000000
## 331 0.2500000 0.7500000
## 332 1.0000000 0.0000000
## 333 1.0000000 0.0000000
## 334 1.0000000 0.0000000
## 335 0.0000000 1.0000000
## 336 0.0000000 1.0000000
## 337 1.0000000 0.0000000
## 338 1.0000000 0.0000000
## 339 1.0000000 0.0000000
## 340 0.0000000 1.0000000
## 341 1.0000000 0.0000000
## 342 0.0000000 1.0000000
## 343 1.0000000 0.0000000
## 344 1.0000000 0.0000000
## 345 1.0000000 0.0000000
## 346 1.0000000 0.0000000
## 347 1.0000000 0.0000000
## 348 1.0000000 0.0000000
## 349 1.0000000 0.0000000
## 350 1.0000000 0.0000000
## 351 0.0000000 1.0000000
## 352 1.0000000 0.0000000
## 353 0.0000000 1.0000000
## 354 1.0000000 0.0000000
## 355 0.0000000 1.0000000
## 356 0.0000000 1.0000000
## 357 1.0000000 0.0000000
## 358 1.0000000 0.0000000
## 359 0.0000000 1.0000000
## 360 1.0000000 0.0000000
## 361 0.0000000 1.0000000
## 362 0.0000000 1.0000000
## 363 1.0000000 0.0000000
## 364 1.0000000 0.0000000
## 365 0.0000000 1.0000000
## 366 1.0000000 0.0000000
## 367 1.0000000 0.0000000
## 368 1.0000000 0.0000000
## 369 1.0000000 0.0000000
## 370 1.0000000 0.0000000
## 371 0.0000000 1.0000000
## 372 0.0000000 1.0000000
## 373 0.0000000 1.0000000
## 374 0.0000000 1.0000000
## 375 1.0000000 0.0000000
## 376 1.0000000 0.0000000
## 377 0.8571429 0.1428571
## 378 0.0000000 1.0000000
## 379 1.0000000 0.0000000
## 380 1.0000000 0.0000000
## 381 1.0000000 0.0000000
## 382 0.0000000 1.0000000
## 383 1.0000000 0.0000000
## 384 1.0000000 0.0000000
## 385 0.0000000 1.0000000
## 386 1.0000000 0.0000000
## 387 0.0000000 1.0000000
## 388 1.0000000 0.0000000
## 389 1.0000000 0.0000000
## 390 1.0000000 0.0000000
## 391 0.0000000 1.0000000
## 392 0.0000000 1.0000000
## 393 0.0000000 1.0000000
## 394 0.0000000 1.0000000
## 395 0.0000000 1.0000000
## 396 1.0000000 0.0000000
## 397 1.0000000 0.0000000
## 398 1.0000000 0.0000000
## 399 1.0000000 0.0000000
## 400 1.0000000 0.0000000

Nous allons perfectionner notre exemples dans de constructions. Nouts allons utilisé la library party. Nous avons Arbre d’inférence conditionnelle avec 8 nœuds terminaux.

 #Charger la librairie
library(party)
## Warning: package 'party' was built under R version 4.2.3
## Loading required package: grid
## Loading required package: mvtnorm
## Loading required package: modeltools
## Loading required package: stats4
## Loading required package: strucchange
## Warning: package 'strucchange' was built under R version 4.2.3
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich
# Choisir les hyperparamètres
hp <- ctree_control(minsplit = 2, #L'effectif minimal pour séparer un noeud 
                     minbucket = 1, # L'effectif minimal dans chaque noeud terminal
                     maxdepth = 30, # Hauteur (profondeur) maximale de l'arbre
                    mincriterion = 0.3) # 1-p-valeur à partir de laquelle on souhaite cesser la croissance)

# Construire l'arbre
arbre_ctree <- ctree(admit~.,control = hp,data=bi)

# Afficher l'arbre
arbre_ctree
## 
##   Conditional inference tree with 17 terminal nodes
## 
## Response:  admit 
## Inputs:  gre, gpa, rank 
## Number of observations:  400 
## 
## 1) rank == {1, 2}; criterion = 1, statistic = 25.179
##   2) gpa <= 3.4; criterion = 0.991, statistic = 8.8
##     3) gre <= 720; criterion = 0.621, statistic = 2.104
##       4)*  weights = 99 
##     3) gre > 720
##       5)*  weights = 10 
##   2) gpa > 3.4
##     6) rank == {1}; criterion = 0.99, statistic = 8.621
##       7) gpa <= 3.89; criterion = 0.676, statistic = 2.387
##         8) gre <= 720; criterion = 0.339, statistic = 1.061
##           9)*  weights = 15 
##         8) gre > 720
##           10)*  weights = 6 
##       7) gpa > 3.89
##         11) gpa <= 3.97; criterion = 0.592, statistic = 1.969
##           12)*  weights = 2 
##         11) gpa > 3.97
##           13)*  weights = 9 
##     6) rank == {2}
##       14)*  weights = 71 
## 1) rank == {3, 4}
##   15) gre <= 440; criterion = 0.945, statistic = 5.533
##     16) rank == {3}; criterion = 0.486, statistic = 1.545
##       17)*  weights = 17 
##     16) rank == {4}
##       18)*  weights = 11 
##   15) gre > 440
##     19) gpa <= 3.49; criterion = 0.622, statistic = 2.111
##       20) rank == {3}; criterion = 0.716, statistic = 2.623
##         21)*  weights = 53 
##       20) rank == {4}
##         22) gpa <= 3.19; criterion = 0.518, statistic = 1.663
##           23) gre <= 540; criterion = 0.306, statistic = 0.965
##             24)*  weights = 9 
##           23) gre > 540
##             25)*  weights = 10 
##         22) gpa > 3.19
##           26)*  weights = 18 
##     19) gpa > 3.49
##       27) gpa <= 3.76; criterion = 0.598, statistic = 1.998
##         28) rank == {3}; criterion = 0.682, statistic = 2.42
##           29)*  weights = 21 
##         28) rank == {4}
##           30)*  weights = 12 
##       27) gpa > 3.76
##         31) rank == {4}; criterion = 0.728, statistic = 2.7
##           32)*  weights = 7 
##         31) rank == {3}
##           33)*  weights = 30

Nous allons vusialisé notre base de données

# Visualiser l'arbre
plot(arbre_ctree)

NOus allons faire une prédiction

 #Faire une prédiction (donne une classe par défaut)

hat_y <- predict(arbre_ctree, # Le modèle
                 ) 

Avantages et inconvénients des arbres

Les principaux avantages des arbres de régression sont:

Aucune hypothèse a priori n’est faite sur la distribution des données Robuste aux données extrêmes Facile à interpréter si l’arbre est petit Tient implicitement compte des interactions possibles entre les variables Sélectionne implicitement les variables importantes Permet d’obtenir un modèle non linéaire

Les inconvénients sont les suivants:

L’approche n’est pas particulièrement performante en termes de prédiction Les risques de surapprentissage sont élevés Nous ne sommes pas certains d’atteindre la meilleure partition Peut être instable dans les résultats qu’elle produit Les algorithmes de construction des arbres nécessitent un temps d’exécution élevé