Travail de labelEncoder dans sklearn
Dire que j'ai la suite de l'entité en entrée:
hotel_id = [1, 2, 3, 2, 3]
C'est un non catégorique fonction avec des valeurs numériques. Si je vous le donne le modèle tel qu'il est, le modèle de la traite en tant que variable continue, c'est à dire., 2 > 1.
Si je demande sklearn.labelEncoder()
alors je vais l'obtenir:
hotel_id = [0, 1, 2, 1, 2]
Si cette fonction est codée considérées comme continues ou catégorielles?
Si elle est traitée comme continue alors qui est l'utilisation de labelEncoder().
P. S. je sais que sur un hot d'encodage. Mais il y a environ 100 hotel_ids donc ne voulez pas l'utiliser.
Grâce
Vous devez vous connecter pour publier un commentaire.
La
LabelEncoder
est une façon d'encoder les niveaux de classe. En plus de l'entier exemple, vous l'avez compris, considérons l'exemple suivant:Ce que le
LabelEncoder
nous permet de faire, c'est d'attribuer un ordinal niveaux de données catégorielles. Cependant, ce que vous avez indiqué est correct: à savoir, la[2, 2, 1]
sont traitées comme des données numériques. C'est un bon candidat pour l'utilisation de laOneHotEncoder
pour les variables nominales (lequel je sais que vous avez dit que vous étiez en espérant ne pas utiliser).Noter que le
LabelEncoder
doivent être utilisés avant la "one-hot" de l'encodage, comme leOneHotEncoder
ne peut pas gérer des données catégorielles. Par conséquent, il est fréquemment utilisé comme pré-curseur sur "one-hot" de l'encodage.Alternativement, il peut encoder votre cible utilisable tableau. Si, par exemple,
train
ont été la cible de votre classement, vous avez besoin d'uneLabelEncoder
l'utiliser comme variable y.Si vous exécutez un modèle de classification ensuite les étiquettes sont traités comme des classes et la commande est ignorée. Vous n'avez pas besoin de onehot.
Une façon de traiter ce problème est de changer vos numéros d'étiquette avec le paquet infléchir
J'ai donc été visiter tous les numéros de hôtels id et j'ai changé en mots, par exemple, 1 -> "'et 2 -> "deux" ... 99 -> "quatre-vingt-dix-neuf"