Bonjour tout le monde,

J'ai une data.frame avec 110000 individus et 16 variables (qualitatives et quantitatives).

L'une de mes variables est la proportion de personnes qui ont dépensé plus qu'un certain montant chez le marchand. (ici pour l'exemple j'ai prix le montant = la médiane et un autre exemple où le montant = 3ème quartile pour les dépenses)

Je lance rpart (de la librairie du même nom) sur mon jeu de données et à chaque fois je n'ai que 2 à 4 nœuds, i.e. que 2 critères de séparations.
J'ai enlevé la variable qui séparait le "mieux au départ" pour voir si c'était pas elle qui plantait mes résultats.

Et là j'ai encore quelque chose de plus "drôle" (alors qu'il me reste 14 variables pour en expliquer une) je n'ai que 2 nœuds/feuilles et le résumé de mon modèle me donne cela:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
summary(avg.arbreQ2)
Call:
rpart(formula = Groupe_Q2 ~ ., data = clients)
  n= 111945 
 
          CP nsplit rel error   xerror        xstd
1 0.02134996      0   1.00000 1.011327 0.002988641
2 0.01000000      1   0.97865 0.978650 0.002988150
 
Node number 1: 111945 observations,    complexity param=0.02134996
  predicted class=1  expected loss=0.4999955
    class counts: 55972 55973
   probabilities: 0.500 0.500 
  left son=2 (93881 obs) right son=3 (18064 obs)
  Primary splits:
      NombreJour      < 1.5     to the left,  improve=47.19850, (0 missing)
      Marge_Bonbon          < 0.1467  to the left,  improve=24.66014, (0 missing)
      NombreVisite < 0.1467  to the left,  improve=24.66014, (0 missing)
      NombreAchats            < 2.5     to the left,  improve=18.69148, (0 missing)
      NombreVisitePlusieurs      < 5.5     to the right, improve=17.74538, (0 missing)
  Surrogate splits:
      NombreAchats            < 1.5     to the left,  agree=0.918, adj=0.495, (0 split)
      NombreVisiteU         < 14.5    to the left,  agree=0.844, adj=0.036, (0 split)
      NombreVisitePlusieurs     < 11.5    to the left,  agree=0.844, adj=0.036, (0 split)
      Marge_Bonbon          < 3.07143 to the left,  agree=0.841, adj=0.013, (0 split)
       NombreVisite < 3.07143 to the left,  agree=0.841, adj=0.013, (0 split)
 
Node number 2: 93881 observations
  predicted class=0  expected loss=0.4936356
    class counts: 47538 46343
   probabilities: 0.506 0.494 
 
Node number 3: 18064 observations
  predicted class=1  expected loss=0.4668955
    class counts:  8434  9630
   probabilities: 0.467 0.533
Et là très franchement je saisis pas.
On reste vachement dans le 50/50 alors que je cherche la classe (ou plutôt la suite de valeurs pour les variables explicatives) qui font que les personnes ont dépensé plus de "Q2" (médiane du montant des achats chez le marchand). Le but étant de "catégoriser" les "bons" clients (ceux qui dépensent plus qu'un certain montant) et voir ce qui les définit (sinon on peut faire ça de façon déterministe).

Est-ce que j'ai pris le problème à l'envers?
Est-ce un problème de code?

Là je me perds un peu.

Cordialement,

Hollow

PS: je précise que j'ai pris le montant moyen dépensé par les clients et non le montant global ou le montant maximum dépensé sur un article, peut être que là également je me suis "loupé"?