> Statistiques > Apprentissage > Random Forest
Random Forest
Principe est :
- d'utiliser un grand nombre d'arbres de décision construits chacun avec un sous-échantillon différent de l'ensemble d'apprentissage, et pour chaque construction d'arbre, la décision à un noeud est fait en fonction d'un sous-ensemble de variables tirées au hasard.
- puis, on utilise l'ensemble des arbres de décision produits pour faire la prédiction, avec un vote à la majorité (pour de la classification, variable prédite de type facteur), ou une moyenne (pour de la régression, variable prédite de type numérique).
On peut utiliser la librairie randomForest qui fait à la fois de la classification et de la régression :
library(randomForest) :
- rf <- randomForest(Species ~ ., iris) : entrainement du modèle.
- rf <- randomForest(Species ~ ., iris, ntree = 500, mtry = 2, importance = TRUE) :
- ntree : nombre d'arbres (défaut est de 500)
- mtry : nombre de variables à prendre en compte pour chaque noeud d'arbre.
- importance : mettre à TRUE si on veut avoir en retour la variable importance indiquant l'importance de chaque variable.
- la valeur retournée a les attributs :
- type : le type, classification ou regression.
- predicted : les valeurs prédites sur l'échantillon d'apprentissage.
- importance : matrice qui indique l'importance des différentes variables, avec une ligne par variable (attention, il faut mettre importance = TRUE pour l'avoir) :
- pour de la classification : matrice avec n + 2 colonnes où n est le nombre de classes. Les colonnes 1 à n sont la décroissance de la précision quand variable non prise en compte pour chaque classe, et la colonne n+1 est la décroissance moyenne de la précision.
- pour de la régression : matrice avec 2 colonnes où la première colonne est la décroissance moyenne de la précision pour chaque variable.
- importanceSD : écart-type sur l'importance.
- err.rate : première colonne est le taux d'erreur obtenu en utilisant les n premiers arbres (seulement pour la classification).
- confusion : matrice de confusion (dans le cas de la classification seulement).
- mse : mean square error obtenu en utilisant les n premiers arbres (seulement pour la régression). C'est la somme des carrés des erreurs divisée par le nombre d'individus.
Prédiction sur un nouveau set de données :
- predict(rf, newdata = newIrisData) renvoie un facteur indiquant la classe prédite pour chaque individu du nouveau set de données.
- predict(rf, newdata = newIrisData, type = "prob") donne la matrices des probabilités, uniquement pour de classification.
On peut combiner après coup plusieurs forêts :
- rf1 <- randomForest(Species ~ ., iris, ntree = 100); rf2 <- randomForest(Species ~ ., iris, ntree = 100); rf.all <- combine(rf1, rf2) (il peut y en avoir plus que 2)
- permet de faire les calculs en parallèle sur plusieurs noeuds et rassembler les prédicteurs.
Copyright Aymeric Duclert
programmer en R, tutoriel R, graphes en R