Section courante

A propos

Section administrative du site

csrf

Forêts aléatoires spécifiques à chaque cas
ranger C++/R

Syntaxe

csrf(
 formula,
 training_data,
 test_data,
 params1 = list(),
 params2 = list(),
 verbose = FALSE
)

Paramètres

Nom Description
formula Objet de classe formule ou caractère décrivant le modèle à adapter.
training_data Données d'entraînement de la classe data.frame.
test_data Données de test de la classe data.frame.
params1 Paramètres de la forêt aléatoire de proximité développée lors de la première étape.
params2 Paramètres pour les forêts aléatoires de prédiction développées dans la deuxième étape.
verbose Indique logiquement s'il faut ou non imprimer la progression du calcul

Description

Cette fonction permet de gérer ou valider des structures internes propres à l'exécution sécurisée. Dans les forêts aléatoires spécifiques aux cas (CSRF), les forêts aléatoires sont construites spécifiquement pour les cas étudiés. Au lieu d'utiliser des probabilités égales, les cas sont pondérés en fonction de leur différence avec le cas étudié.

Détails

L'algorithme se compose de trois étapes :

  1. Créer une forêt aléatoire à partir des données d'apprentissage.
  2. Pour chaque observation d'intérêt (données de test), les pondérations de toutes les observations d'apprentissage sont calculées en comptant le nombre d'arbres dans lesquels les deux observations se trouvent dans le même noud terminal.
  3. Pour chaque observation de test, créer une forêt aléatoire pondérée à partir des données d'apprentissage, en utilisant les pondérations obtenues à l'étape 2. Prédire le résultat de l'observation de test comme d'habitude.

Au total, n+1 forêts aléatoires sont créées, où n est le nombre d'observations dans l'ensemble de données de test. Pour plus de détails, voir Xu et al. (2014).

Exemple

  1. ## Répartition des données d'entraînement et de test
  2. train.idx <- sample(nrow(iris), 2/3 * nrow(iris))
  3. iris.train <- iris[train.idx, ]
  4. iris.test <- iris[-train.idx, ]
  5. ## Exécuter une RF spécifique au cas
  6. csrf(Species ~ ., training_data = iris.train, test_data = iris.test,
  7. params1 = list(num.trees = 50, mtry = 4),
  8. params2 = list(num.trees = 5))     


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