Section courante

A propos

Section administrative du site

ranger

Intervalle
ranger C++/R

Syntaxe

ranger(
 formula = NULL,
 data = NULL,
 num.trees = 500,
 mtry = NULL,
 importance = "none",
 write.forest = TRUE,
 probability = FALSE,
 min.node.size = NULL,
 min.bucket = NULL,
 max.depth = NULL,
 replace = TRUE,
 sample.fraction = ifelse(replace, 1, 0.632),
 case.weights = NULL,
 class.weights = NULL,
 splitrule = NULL,
 num.random.splits = 1,
 alpha = 0.5,
 minprop = 0.1,
 poisson.tau = 1,
 split.select.weights = NULL,
 always.split.variables = NULL,
 respect.unordered.factors = NULL,
 scale.permutation.importance = FALSE,
 local.importance = FALSE,
 regularization.factor = 1,
 regularization.usedepth = FALSE,
 keep.inbag = FALSE,
 inbag = NULL,
 holdout = FALSE,
 quantreg = FALSE,
 time.interest = NULL,
 oob.error = TRUE,
 num.threads = NULL,
 save.memory = FALSE,
 verbose = TRUE,
 node.stats = FALSE,
 seed = NULL,
 na.action = "na.learn",
 dependent.variable.name = NULL,
 status.variable.name = NULL,
 classification = NULL,
 x = NULL,
 y = NULL,
 ...
)

Paramètres

Nom Description
formula Objet de formule de classe ou caractère décrivant le modèle à ajuster. Les termes d'interaction ne sont pris en charge que pour les variables numériques.
data Données d'entraînement de la classe data.frame, matrix, dgCMatrix (Matrix) ou gwaa.data (GenABEL).
num.trees Nombre d'arbres.
mtry Nombre de variables pouvant être divisées dans chaque noeud. La valeur par défaut est la racine carrée (arrondie à l'inférieure) du nombre de variables. Alternativement, une fonction à un seul argument renvoie un entier, étant donné le nombre de variables indépendantes.
importance Mode d'importance variable : «aucun», «impureté», «impureté corrigée» ou «permutation». La mesure de l'impureté est l'indice de Gini pour la classification, la variance des réponses pour la régression et la somme des statistiques de test (voir règle de division) pour la survie.
write.forest Enregistrer l'objet ranger.forest, nécessaire à la prédiction. Définir sur FALSE pour réduire l'utilisation de la mémoire si aucune prédiction n'est prévue.
probability Cultivez une forêt de probabilités comme dans Malley et al. (2012).
min.node.size Taille minimale du noeud à fractionner. Par défaut : 1 pour la classification, 5 pour la régression, 3 pour la survie et 10 pour la probabilité. Pour la classification, il peut s'agir d'un vecteur de valeurs spécifiques à la classe.
min.bucket Taille minimale du noud terminal. Aucun noud inférieur à cette valeur ne peut être présent. La valeur par défaut est 3 pour la survie et 1 pour tous les autres types d'arbres. Pour la classification, il peut s'agir d'un vecteur de valeurs spécifiques à la classe.
max.depth Profondeur maximale de l'arbre. Une valeur nulle ou 0 (par défaut) correspond à une profondeur illimitée, et 1 aux souches (une division par arbre).
replace Échantillon avec remplacement.
sample.fraction Fraction d'observations à échantillonner. La valeur par défaut est 1 pour l'échantillonnage avec remise et 0,632 pour l'échantillonnage sans remise. Pour la classification, il peut s'agir d'un vecteur de valeurs spécifiques à la classe.
case.weights Pondérations pour l'échantillonnage des observations d'entraînement. Les observations ayant une pondération plus élevée seront sélectionnées avec une probabilité plus élevée dans les échantillons bootstrap (ou sous-échantillonnés) des arbres.
class.weights Pondérations des classes de résultats (par ordre de niveaux de facteurs) dans la règle de division (apprentissage sensible aux coûts). Classification et prédiction probabiliste uniquement. Pour la classification, les pondérations sont également appliquées lors du vote majoritaire aux nouds terminaux. Règle de division splitrule. Pour la classification et l'estimation probabiliste, «gini», «extratrees» ou «hellinger» avec «gini» par défaut. Pour la régression, «variance», «extratrees», «maxstat», «beta» ou «poisson» avec «variance» par défaut. Pour la survie, «logrank», «extratrees», «C» ou «maxstat» avec «logrank» par défaut.
num.random.splits Pour la règle de division «extratrees» : nombre de divisions aléatoires à prendre en compte pour chaque variable de division candidate.
alpha Pour la règle de division «maxstat» : seuil de signification pour autoriser la division.
minprop Pour la règle de division «maxstat» : quantile inférieur de la distribution des covariables à prendre en compte pour la division.
poisson.tau Pour la règle de division «Poisson» : le coefficient de variation de la fréquence (attendue) est de 1/Τ. Si un noud terminal n'a que 0 réponse, l'estimation est fixée à α0 + (1 - α)mean(parent) avec α = samples(child)mean(parent)/(Τ + samples(child)mean(parent)).
split.select.weights Vecteur numérique avec des pondérations comprises entre 0 et 1, utilisé pour calculer la probabilité de sélection des variables à diviser. Une liste de tailles num.trees, contenant les vecteurs de pondération de sélection pour chaque arbre, peut également être utilisée.
always.split.variables Vecteur de caractères avec des noms de variables à toujours sélectionner en plus des variables essayées pour le fractionnement.
respect.unordered.factors Gestion des covariables factorielles non ordonnées. L'une des options est « ignorer », « ordre » et « partitionner ». Pour la règle de division « arbres supplémentaires », la valeur par défaut est « partitionner » pour toutes les autres règles de division « ignorer ». Alternativement, les valeurs VRAI (= « ordre ») ou FAUX (= « ignorer ») peuvent être utilisées.
scale.permutation.importance Importance de la permutation d'échelle par erreur type, comme dans (Breiman 2001). Applicable uniquement si le mode d'importance de la variable de permutation est sélectionné.
local.importance Calculer et renvoyer les valeurs d'importance locale comme dans (Breiman 2001). Applicable uniquement si l'importance est définie sur «permutation».
regularization.factor Facteur de régularisation (pénalisation du gain), soit un vecteur de longueur p, soit une valeur pour toutes les variables.
regularization.usedepth Considérez la profondeur de la régularisation.
keep.inbag Enregistrez la fréquence à laquelle les observations sont enregistrées dans le sac dans chaque arbre.
inbag Définissez manuellement les observations par arbre. Liste de tailles d'arbres, contenant le nombre d'arbres dans le sac pour chaque observation. Peut être utilisé pour un échantillonnage stratifié.
holdout Mode de rétention. Retenez tous les échantillons dont le poids de cas est égal à 0 et utilisez-les pour l'importance des variables et l'erreur de prédiction.
quantreg Préparer la prédiction quantile comme dans les forêts de régression quantile (Meinshausen 2006). Régression uniquement. Définir keep.inbag = TRUE pour préparer la prédiction quantile out-of-bag.
time.interest Points temporels d'intérêt (survie uniquement). Peut être nul (par défaut, utiliser tous les points temporels observés), un vecteur de points temporels ou un seul nombre pour utiliser autant de points temporels (grille sur les points temporels observés).
oob.error Calculez l'erreur de prédiction hors bande. Définissez-la sur FAUX pour gagner du temps de calcul, par exemple pour les grandes forêts de survie.
num.threads Nombre de processus légers. Utilisez 0 pour tous les cours disponibles. La valeur par défaut est 2 si elle n'est pas définie par les options/variables d'environnement.
save.memory Utilisez le mode de fractionnement économe en mémoire (mais plus lent). Aucun effet sur les données de survie et GWAS. Attention : cette option ralentit la croissance de l'arbre ; utilisez-la uniquement en cas de problèmes de mémoire.
verbose Afficher l'état du calcul et le temps d'exécution estimé.
node.stats Enregistrer les statistiques des nouds. Définir sur TRUE pour enregistrer la prédiction, le nombre d'observations et les statistiques de répartition pour chaque noeud.
seed Graine aléatoire. La valeur par défaut est NULL, ce qui génère la graine à partir de R. Définissez-la sur 0 pour ignorer la graine R.
na.action Gestion des valeurs manquantes. Définissez « na.learn » pour gérer les valeurs manquantes en interne (par défaut), «na.omit» pour omettre les observations manquantes et «na.fail» pour arrêter si des valeurs manquantes sont trouvées.
dependent.variable.name Nom de la variable dépendante, nécessaire si aucune formule n'est fournie. Pour les forêts de survie, il s'agit de la variable temporelle.
status.variable.name Nom de la variable d'état, applicable uniquement aux données de survie et nécessaire si aucune formule n'est fournie. Utiliser 1 pour un événement et 0 pour une censure.
classification Définir sur TRUE pour développer une forêt de classification. Nécessaire uniquement si les données sont une matrice ou la réponse numérique.
x Données prédictives (variables indépendantes), interface alternative aux données avec formule ou dependent.variable.name.
y Vecteur de réponse (variable dépendante), interface alternative aux données avec formule ou nom de variable dépendante. Pour la survie, utilisez un objet Surv() ou une matrice avec heure et statut.
... Autres paramètres passés vers ou depuis d'autres méthodes (actuellement ignorés)

Description

Cette fonction permet d'entraîner un modèle de forêt aléatoire rapide, pour des tâches de classification, régression ou survie. Ranger est une implémentation rapide des forêts aléatoires (Breiman 2001) ou du partitionnement récursif, particulièrement adaptée aux données de grande dimension. Les forêts de classification, de régression et de survie sont prises en charge. Les forêts de classification et de régression sont implémentées comme dans la forêt aléatoire originale (Breiman 2001), les forêts de survie comme dans les forêts de survie aléatoires (Ishwaran et al. 2008). Il inclut des implémentations d'arbres extrêmement randomisés (Geurts et al. 2006) et de forêts de régression quantile (Meinshausen 2006).

Remarques

Valeur

Objet de classe ranger avec éléments :

Nom Description
forest Forêt enregistrée (si write.forest est défini sur TRUE). Notez que les identifiants de variable dans l'objet split.varIDs ne représentent pas nécessairement le numéro de colonne dans R.
predictions Classes/valeurs prédites, basées sur des échantillons hors sac (classification et régression uniquement).
variable.importance Importance variable pour chaque variable indépendante.
variable.importance.local Importance variable pour chaque variable indépendante et chaque échantillon, si local.importance est défini sur TRUE et importance est défini sur « permutation ».
prediction.error Erreur de prédiction globale out-of-bag. Pour la classification, il s'agit de la précision (proportion d'observations mal classées), pour l'estimation de la probabilité, du score de Brier ; pour la régression, de l'erreur quadratique moyenne ; et pour la survie, de l'indice C de Harrell (un moins). r.carré : R carré. Également appelé variance expliquée ou coefficient de détermination (régression uniquement). Calculé à partir des données out-of-bag.
confusion.matrix Tableau de contingence pour les classes et les prédictions basées sur des échantillons hors sac (classification uniquement).
unique.death.times Heures de mort uniques (survie uniquement).
chf Fonction de risque cumulé estimée pour chaque échantillon (survie uniquement).
survival Fonction de survie estimée pour chaque échantillon (survie uniquement).
call Appel de fonction.
num.trees Nombre d'arbres.
num.independent.variables Nombre de variables indépendantes.
mtry Valeur de mtry utilisée.
min.node.size Valeur de la taille minimale du noud utilisé.
treetype Type de forêt/arbre. classification, régression ou survie.
importance.mode Mode d'importance utilisé.
num.samples Nombre d'échantillons.
inbag.counts Nombre de fois où les observations sont dans le sac dans les arbres.
dependent.variable.name Nom de la variable dépendante. Cette valeur est nulle lorsque l'interface x/y est utilisée.
status.variable.name Nom de la variable d'état (survie uniquement). Cette valeur est nulle lorsque l'interface x/y est utilisée.

Références

Exemples

  1. ## Forêt de classification avec paramètres par défaut
  2. ranger(Species ~ ., data = iris)
  3. ## Prédiction
  4. train.idx <- sample(nrow(iris), 2/3 * nrow(iris))
  5. iris.train <- iris[train.idx, ]
  6. iris.test <- iris[-train.idx, ]
  7. rg.iris <- ranger(Species ~ ., data = iris.train)
  8. pred.iris <- predict(rg.iris, data = iris.test)
  9. table(iris.test$Species, pred.iris$predictions)
  10. ## Quantile regression forest
  11. rf <- ranger(mpg ~ ., mtcars[1:26, ], quantreg = TRUE)
  12. pred <- predict(rf, mtcars[27:32, ], type = "quantiles")
  13.  
  14. timepoints.ranger 27
  15. pred$predictions
  16. ## Importance variable
  17. rg.iris <- ranger(Species ~ ., data = iris, importance = "impurity")
  18. rg.iris$variable.importance
  19. ## Forêt de survie
  20. require(survival)
  21. rg.veteran <- ranger(Surv(time, status) ~ ., data = veteran)
  22. plot(rg.veteran$unique.death.times, rg.veteran$survival[1,])
  23. ## Interfaces alternatives (mêmes résultats)
  24. ranger(dependent.variable.name = "Species", data = iris)
  25. ranger(y = iris[, 5], x = iris[, -5])
  26. ## Non exécuté :
  27. ## Utiliser l'interface GenABEL pour lire les données Plink dans R et développer une forêt de classification
  28. ## Les fichiers ped et map ne sont pas inclus
  29. library(GenABEL)
  30. convert.snp.ped("data.ped", "data.map", "data.raw")
  31. dat.gwaa <- load.gwaa.data("data.pheno", "data.raw")
  32. phdata(dat.gwaa)$trait <- factor(phdata(dat.gwaa)$trait)
  33. ranger(trait ~ ., data = dat.gwaa)
  34. ## Fin (non exécuté)


Dernière mise à jour : Vendredi, le 1er août 2025