Ce n'négatif %IncMSE dans RandomForest paquet veux dire?
J'ai utilisé RandomForest pour un problème de régression. J'ai utilisé importance(rf,type=1)
pour obtenir le %IncMSE pour les variables et l'un d'eux a un pourcentage négatif IncMSE. Est-ce à dire que cette variable est mauvais pour le modèle? J'ai cherché sur Internet pour obtenir des réponses mais je n'ai pas trouver.
J'ai aussi trouvé quelque chose d'étrange dans le modèle de synthèse ( ci-joint), Il semble qu'un seul arbre a été utilisé bien que j'ai défini ntrees
800.
modèle:
rf<-randomForest(var1~va2+var3+..+var35,data=d7depo,ntree=800,keep.forest=FALSE, importance=TRUE)
summary(rf)
Length Class Mode
call 6 -none- call
type 1 -none- character
predicted 26917 -none- numeric
mse 800 -none- numeric
rsq 800 -none- numeric
oob.times 26917 -none- numeric
importance 70 -none- numeric
importanceSD 35 -none- numeric
localImportance 0 -none- NULL
proximity 0 -none- NULL
ntree 1 -none- numeric
mtry 1 -none- numeric
forest 0 -none- NULL
coefs 0 -none- NULL
y 26917 -none- numeric
test 0 -none- NULL
inbag 0 -none- NULL
terms 3 terms call
OriginalL'auteur mql4beginner | 2015-01-13
Vous devez vous connecter pour publier un commentaire.
Question 1: pourquoi ne
ntree
1 show?:summary(rf)
indique la longueur des objets qui sont inclus dans votrerf
variable. Cela signifie querf$ntree
est de longueur 1. Si vous tapez sur votre consolerf$tree
vous verrez qu'il montre 800.Question 2 - un pourcentage négatif IncMSE preuve d'un "mauvais" variable?
IncMSE:
La manière dont il est calculé par le calcul de l'EQM de l'ensemble du modèle initialement. Appelons cette
MSEmod
. Après cela, pour chacune des variables (colonnes dans votre ensemble de données) les valeurs sont mélangées au hasard (permutation) de sorte qu'un "mauvais" de la variable est créée et un nouveau MSE est calculé. I. e. imaginez que pour une colonne-vous eu des lignes 1,2,3,4,5. Après la permutation de ces sera à la fin 4,3,1,2,5 au hasard. Après la permutation (toutes les colonnes restent exactement les mêmes, puisque nous voulons examinercol1's
importance), la nouvelle MSE du modèle est calculée, nous allons l'appelerMSEcol1
(d'une manière similaire, vous aurezMSEcol2
,MSEcol3
mais nous allons garder les choses simples et ne traite qu'avec desMSEcol1
ici). Nous nous attendons à ce que, depuis la seconde MSE a été créé à l'aide d'une variable aléatoire,MSEcol1
serait plus élevé queMSEmod
(plus le MSE le pire). Par conséquent, lorsque nous prenons la différence des deuxMSEcol1
-MSEmod
nous attendent généralement à un nombre positif. Dans votre cas, un nombre négatif indique que la variable aléatoire a mieux fonctionné, ce qui montre qu'elle est probablement la variable n'est pas prédictive assez c'est à dire pas d'importance.Gardez à l'esprit que cette description que je vous ai donné est le haut niveau, en réalité, les deux MSE valeurs sont mises à l'échelle et à la différence en pourcentage est calculée. Mais le haut niveau, c'est ça.
Dans la forme d'un algorithme:
Espère que c'est clair maintenant!
Content d'avoir aidé de Ron :). Si vous voulez creuser plus profond, vous pouvez avoir un coup d'oeil ici. C'est à partir de Breiman lui-même (l'inventeur de forêts aléatoires) et il explique exactement comment ils fonctionnent dans la plaine de l'anglais sans un peu (beaucoup) de formules mathématiques. C'est exactement la référence de la rf emballage utilisé pour la mise en œuvre.
Merci, je vais vérifier..
sûrement de la valeur calculée (dans l'explication simple) doit être
MSEcol1 - MSEmod
, depuis siMSEcol1 > MSEmod
, comme c'est probable, si la variable 1 est de toute utilisation, la différence est positive (par conséquentMSEmod - MSEcol1
dans votre réponse devrait alors être négatif...Merci @stasg . Vous avez raison, j'ai fait une erreur il y a, il doit être vice-versa, comme vous dites. Merci pour remarquer cela. C'est ce que j'aime à propos de la communauté que nous pouvons vérifier les uns les autres erreurs. Merci encore.
OriginalL'auteur LyzandeR