Dans la routine rpart () pour créer des modèles CART, vous spécifiez le paramètre de complexité auquel vous souhaitez tailler votre arbre. J'ai vu deux recommandations différentes pour choisir le paramètre de complexité:
Choisissez le paramètre de complexité associé à l'erreur de validation croisée minimale possible. Cette méthode est recommandée par Quick-R et HSAUR.
Choisissez le paramètre de complexité le plus élevé dont l'erreur de validation croisée estimée se situe toujours dans une SE de l'erreur de validation croisée minimale possible. Voici mon interprétation de la documentation du package, qui dit: "Un bon choix de cp pour l'élagage est souvent la valeur la plus à gauche pour laquelle la moyenne se situe en dessous de la ligne horizontale" en référence à ce tracé .
Les deux choix de cp produisent des arbres assez différents dans mon jeu de données.
Il semble que la première méthode produira toujours un arbre plus complexe, potentiellement surchargé. Y a-t-il d'autres avantages, inconvénients, recommandations dans la littérature, etc. Je dois prendre en compte lors du choix de la méthode à utiliser? Je peux fournir plus d'informations sur mon problème de modélisation particulier si cela est utile, mais j'essaie de garder cette question suffisamment large pour qu'elle soit pertinente pour les autres.
party
package qui utilise des tests de signification (ce n'est généralement pas quelque chose que je recommande, mais il semble pertinent ici). Comme toujours, cependant, le meilleur test est l'utilité et le sens; cela est particulièrement vrai si vous êtes principalement intéressé par l'explication.Réponses:
Dans la pratique, j'ai vu les deux approches adoptées et je pense qu'en général, vos résultats ne devraient pas différer beaucoup dans les deux sens.
Cela étant dit, Hastie et al recommandent la règle de "l'erreur standard" dans les Éléments de l'apprentissage statistique , et j'ai tendance à faire confiance à leur jugement (Section 7.10, p. 244 dans ma version). La citation pertinente est:
Votre intuition sur la raison pour laquelle on suivrait la règle d'erreur à une norme est juste - vous feriez cela pour éviter de sélectionner un modèle qui correspond aux données.
la source
Vous devez d'abord commencer par utiliser les arguments
minsplit=0
etcp=0
(paramètre de complexité) puis utiliser les fonctionsplotcp(T.max)
etprintcp(T.max)
choisir la valeur decp
l'erreur relative minimale correspondante et tailler l'arborescence par la fonctionprune.rpart(T.max, cp=....)
Cela devrait vous donner l'arbre de classification optimal car ils ont tendance à être trop optimistes.
la source