TypeError尝试标记编码用户输入数据时

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeError尝试标记编码用户输入数据时相关的知识,希望对你有一定的参考价值。

我已经使用python 3中的火车数据代码对我的标签进行了编码

from sklearn.preprocessing import LabelEncoder
le = preprocessing.LabelEncoder()                      
dframe["hair"] = le.fit_transform(dframe["hair"])          
dframe["beard"] = le.fit_transform(dframe["beard"])         
dframe["scarf"] = le.fit_transform(dframe["scarf"])  

enter image description here

训练我的模型后,我想通过使用用户enter image description here的输入来测试它

我正在尝试使用以下代码对用户输入进行编码:

user_input["hair"] = le.transform(user_input["hair"])
user_input["beard"] = le.transform(user_input["beard"])
user_input["scarf"] = le.transform(user_input["scarf"])

但我收到以下错误:

enter image description here

TypeError:'int'和'str'的实例之间不支持'<'

我已经在S / O上看到了这个问题的多个重复,但仍然找不到解决方案。因此,不要将其标记为重复,请提供有用的解决方案。我是机器学习初学者,所以请随意指出此代码中的任何错误,您也可以要求提供完整的代码。

答案

labelencoder保存从分类输入到数字的转换。但是,当你适合它时,它只会保存最后一个('围巾')。然后,当您尝试转换头发的用户输入时,它用作输入的值不匹配。

解决方案是适合三个标签编码器:

le_hair = preprocessing.LabelEncoder()
le_beard = preprocessing.LabelEncoder()                      
le_scarf = preprocessing.LabelEncoder()                                            
dframe["hair"] = le_hair.fit_transform(dframe["hair"])          
dframe["beard"] = le_beard.fit_transform(dframe["beard"])         
dframe["scarf"] = le_scarf.fit_transform(dframe["scarf"])  

然后分别使用这些来转换新输入。

以上是关于TypeError尝试标记编码用户输入数据时的主要内容,如果未能解决你的问题,请参考以下文章

码片速率的含义

码分复用

Google Maps API 重绘地理编码界限

NLTK 感知器标记器“TypeError:'LazySubsequence' 对象不支持项目分配”

TypeError: __init__() 得到了一个意外的关键字参数“编码”

TypeError: line() 得到了一个意外的关键字参数“标记”