在尝试对用户输入数据进行标签编码时出现TypeError

我在训练数据上使用以下代码对标签进行了编码,代码运行环境为python 3

from sklearn.preprocessing import LabelEncoderle = 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: ‘<‘ not supported between instances of ‘int’ and ‘str’

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


回答:

标签编码器保存了从分类输入到数字的转换。然而,当你多次拟合它时,它只保存最后一个(‘scarf’)。当你尝试转换用户输入的头发数据时,使用的输入值不匹配。

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

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"])  

然后分别使用这些编码器来转换新的输入数据。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注