J'ai besoin de trouver la précision d'un ensemble de données de formation en appliquant l'algorithme de forêt aléatoire. Mais le type de mon ensemble de données est à la fois catégorique et numérique. Lorsque j'ai essayé d'ajuster ces données, j'obtiens une erreur.
'L'entrée contient NaN, l'infini ou une valeur trop grande pour dtype (' float32 ')'.
Il se peut que le problème concerne les types de données d'objet. Comment puis-je ajuster des données catégorielles sans les transformer pour appliquer des RF?
Voici mon code.
python
data-mining
random-forest
IS2057
la source
la source
Réponses:
Vous devez convertir les entités catégorielles en attributs numériques. Une approche courante consiste à utiliser un codage à chaud, mais ce n'est certainement pas la seule option. Si vous avez une variable avec un nombre élevé de niveaux catégoriels, vous devriez envisager de combiner des niveaux ou d'utiliser l'astuce de hachage. Sklearn est équipé de plusieurs approches (consultez la section "voir aussi"): Un Hot Encoder et Hashing Trick
Si vous n'êtes pas engagé à sklearn, l' implémentation de forêt aléatoire h2o gère directement les fonctionnalités catégorielles.
la source
Il y a un problème pour obtenir ce type d'erreur pour autant que je sache. La première est que, dans mes jeux de données, il existe un espace supplémentaire qui explique pourquoi l'erreur, 'Input Contains NAN value; Deuxièmement, python n'est pas en mesure de fonctionner avec n'importe quel type de valeur d'objet. Nous devons convertir cette valeur d'objet en valeur numérique. Pour convertir un objet en numérique, il existe deux types de processus de codage: codeur d'étiquettes et un codeur à chaud. Où le codeur d'étiquette code la valeur de l'objet entre 0 à n_classes-1 et Un codeur à chaud code la valeur entre 0 et 1. Dans mon travail, avant d'ajuster mes données pour tout type de méthode de classification, j'utilise le codeur d'étiquette pour convertir la valeur et avant la conversion, je m'assure que aucun espace vide n'existe dans mon ensemble de données.
la source