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 :
- Créer une forêt aléatoire à partir des données d'apprentissage.
- 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.
- 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
- ## Répartition des données d'entraînement et de test
- train.idx <- sample(nrow(iris), 2/3 * nrow(iris))
- iris.train <- iris[train.idx, ]
- iris.test <- iris[-train.idx, ]
- ## Exécuter une RF spécifique au cas
- csrf(Species ~ ., training_data = iris.train, test_data = iris.test,
- params1 = list(num.trees = 50, mtry = 4),
- params2 = list(num.trees = 5))
Dernière mise à jour : Vendredi, le 1er août 2025