python - ValueError:y 包含以前看不见的标签:“一些值”
问题描述
我正在使用sklearn.LabelEncoder
将分类数据转换为数字以进行正确的模型拟合,但是当我将其应用于此时,出现此错误
ValueError:y 包含以前看不见的标签:'威尔克斯,詹姆斯夫人(艾伦需要)'
训练数据和测试数据中的分类列是相同的。
谁能告诉我是什么问题?
from sklearn.preprocessing import LabelEncoder
train_data.fillna(0)
s= (train_data.dtypes == 'object')
object_cols = list(s[s].index)
label_train_data=train_data.copy()
label_test_data=test_data.copy()
Label_encoder=LabelEncoder()
for col in object_cols:
label_train_data[col]=Label_encoder.fit_transform(train_data[col])
label_test_data[col]=Label_encoder.transform(test_data[col])
解决方案
首先,LabelEncoder()
用于目标变量。在我看来,您正在将其用于输入数据。我想OrdinalEncoder()
会满足您将对象转换为数字的要求。
关于你的错误,
测试数据字段/列中的某些值不存在于训练数据中,因此ordinalEnconder
不知道如何对它们进行编码。
推荐阅读
- python - 数组中多个文件的异步处理 - Python
- android - 如果我们使用应用程序上下文而不是活动上下文来启动活动,会有什么区别?
- python-2.7 - 当我在 python 2.7.15 中使用 virtualenv 时 pip install leveldb 出了点问题
- javascript - 为什么删除了数组的旧内容?
- php - Symfony 3 - 覆盖包模板 - prependPath 不起作用
- unity3d - 如何统一验证文本到语音?
- google-cloud-platform - 连接到 Cloud SQL
- java - 无法解析符号“Intent”
- microsoft-graph-api - 如何从消息而不是附件中获取 FileAttachment
- sql - 用于查找里程最大值的 SQL 查询