我正在使用sklearn.LabelEncoder
将分类数据转换为数值以进行适当的模型拟合,但是当我对此应用数据时,会出现此错误
ValueError:y包含以前看不见的标签:“ Wilkes,詹姆斯夫人 (艾伦·尼德斯)'
训练数据和测试数据中的类别列相同。
谁能告诉我问题出在哪里?
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])
答案 0 :(得分:0)
首先,LabelEncoder()
用于目标变量。在我看来,您正在使用它来输入数据。我猜OrdinalEncoder()
会满足您将对象转换为数字的要求。
关于您的错误
训练数据中不存在测试数据字段/列中的某些值,因此ordinalEnconder
不知道如何对其进行编码。