首页 > 解决方案 > 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])

标签: pythonmachine-learningscikit-learn

解决方案


首先,LabelEncoder()用于目标变量。在我看来,您正在将其用于输入数据。我想OrdinalEncoder()会满足您将对象转换为数字的要求。

关于你的错误,

测试数据字段/列中的某些值不存在于训练数据中,因此ordinalEnconder不知道如何对它们进行编码。


推荐阅读