2015-10-19 3 views
2

Ou le paquet se rendra-t-il compte qu'il n'est pas continu et les traitera comme des facteurs? Je sais que, pour la classification, la caractéristique à classer doit être un facteur. Mais qu'en est-il des fonctionnalités prédictives? Je l'ai exécuté sur quelques ensembles de données de jouets, et j'ai des résultats légèrement différents selon que les caractéristiques catégorielles sont numériques ou facteurs, mais l'algorithme est aléatoire, donc je ne sais pas si la différence de mes résultats est significative.Dans le package randomForest de R, les facteurs doivent-ils être explicitement étiquetés comme des facteurs?

Merci!

+1

Si vous voulez tester un script ou une fonction qui utilise le générateur de nombres aléatoires (RNG) d'une manière reproductible, essayez de définir la graine pour RNG avec 'set.seed (number)', où 'number' est un nombre entier, avant d'exécuter la fonction. Ensuite, vous pouvez tester si votre hypothèse est correcte ou non. – ialm

Répondre

3

Oui, il y a une différence entre les deux. Si vous voulez utiliser une variable factorielle, vous devez la spécifier comme telle et ne pas la laisser comme numérique.

Pour les données qualitatives (this est en fait une très bonne réponse sur CrossValidated):

Une scission sur un facteur avec des niveaux N est en fait une sélection de l'un des (2^N) -2 combinaisons possibles . Ainsi, l'algorithme vérifie toutes les combinaisons possibles et de choisir celui qui produit le mieux diviser


Pour les données numériques (comme on le voit here):

prédicteurs numériques sont triés puis pour chaque La valeur de l'impureté Gini ou de l'entropie est calculée et un seuil est choisi qui donne la meilleure répartition.


Alors oui, il fait une différence si vous ajouterez comme un facteur ou une variable numérique. Combien de différence dépend des données réelles.

+1

cela dépend en effet des données disponibles, comme vous le dites. J'ai utilisé le paquet 'randomForest' sur les données génomiques (donc tous les prédicteurs étaient dans {0, 1}) et les transmettre comme continus ou catégoriques n'a fait aucune différence. dans le premier cas, les divisions étaient avec des conditions comme 'x> 0.5' ou' x <0.5', ce qui représentait un choix binaire entre 0 et 1. Cependant, inexplicablement, RF est beaucoup plus lent avec des prédicteurs catégoriques, donc si je le peux, j'ai toujours Désactivez les attributs continus. –