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:
Et là très franchement je saisis pas.
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
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é"?
Partager