0
votes

OneHotencoder Ajusteur Erreur ValueRorror: Impossible de convertir une chaîne en flottant: B

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(dtype=np.str)
enc.fit([['b', 'c', 'd'], ['a', 'd', 'f']])
print enc.transform([['a', 'd', 'f']]).toarray()
ValueError: could not convert string to float: bsklearn.version = 0.19.2It can't work too if dtype = np.int64

3 commentaires

Je viens de désinstaller 0,21,3 et installé 0.19.2 et obtenu la même erreur que votre gettez. Si vous essayez de désinstaller que Pip3 Installez SCIKIT-HOPR == 0.21.3, cela devrait fonctionner


Unhotencoder est censé renvoyer des variables factices, nous ne pouvons donc pas nous attendre à ce qu'il retourne au format Str en tant que sortie.


Il est accepté à Sklearn 0.21, merci à tous


4 Réponses :


1
votes

dtype dans un onehotencoder est utilisé pour la sortie souhaitée et seul le type de numéro est pris en charge et vous passez np.str c'est pourquoi vous obtenez une erreur xxx


1 commentaires

DTYPE = NP.INT64 fonctionne également, j'utilise Sklearn Version '0.20.2' ..



0
votes

Essayez xxx


1 commentaires

Je couronne Sklearn .__ Version__, '0.21.3' Je pense que vous pouvez avoir un bogue dans votre version, cela fonctionne sur 0.21.3. Êtes-vous capable de mettre à niveau?



0
votes

OneHotencoder s'attend à ce que vos données d'entrée soient au format numérique avant de les convertir en variables factices. Ainsi, vous voudrez peut-être que Fit_Transform utilise le labelEncoder pour convertir les données catégoriques en chiffres en premier.

Un autre moyen de nater de faire cela consiste à utiliser LabelBinarizer, qui fonctionne comme à l'aide de labelenCoder, puis d'un onehotencoder: xxx


0 commentaires

0
votes

Je reçois une sortie correcte avec Sklearn 0.21, cela devrait être un problème pour la version de Sklearn, merci à tous!


0 commentaires