Version courte: je recherche un package R capable de construire des arbres de décision alors que chaque feuille de l'arbre de décision est un modèle de régression linéaire complet. AFAIK, la bibliothèque rpart
crée des arbres de décision où la variable dépendante est constante dans chaque feuille. Y a-t-il une autre bibliothèque (ou un rpart
paramètre que je ne connais pas) qui peut construire de tels arbres?
Version longue: je recherche un algorithme qui construit un arbre de décision basé sur un ensemble de données de formation. Chaque décision dans l'arbre divise l'ensemble de données d'apprentissage en deux parties, selon une condition sur l'une des variables indépendantes. La racine de l'arborescence contient l'ensemble de données complet, et chaque élément de l'ensemble de données est contenu dans exactement un nœud feuille.
L'algorithme va comme ceci:
- Commencez par l'ensemble de données complet, qui est le nœud racine de l'arborescence. Choisissez ce nœud et appelez .
- Créer un modèle de régression linéaire sur les données .
- Si de modèle linéaire de est supérieur à un certain seuil , nous avons fini avec , marquer si comme une feuille et sauter à l' étape 5. N θ R 2 N N
- Essayez décisions aléatoires et choisissez celle qui donne le meilleur dans les sous-nœuds:
R 2
- Choisissez une variable indépendante aléatoire , ainsi qu'un seuil aléatoire .θ i
- La décision divise l'ensemble de données de en deux nouveaux nœuds, et . N N ~ N
- Créez des modèles de régression linéaire sur et , et calculez leur (appelez-les et ). ~ N R2 r ~ r
- À partir de tous ces tuples , sélectionnez celui avec le maximal . Cela donne une nouvelle décision dans l'arborescence et a deux nouveaux sous-noeuds et .
- Nous avons fini le traitement . Sélectionnez un nouveau nœud qui n'a pas encore été traité et revenez à l'étape 2. Si tous les nœuds ont été traités, l'algorithme se termine.
Cela créera récursivement un arbre de décision qui divise les données en parties plus petites et calcule un modèle linéaire sur chacune de ces parties.
L'étape 3 est la condition de sortie, qui empêche l'algorithme de sur-adapter. Bien sûr, il existe d'autres conditions de sortie possibles:
- Quittez si la profondeur de dans l'arborescence est supérieure à
- Quittez si l'ensemble de données dans est inférieur à
Existe-t-il un tel algorithme dans un package R?