y 包含以前看不见的标签:标签编码器中的 'Male'
y contains previously unseen labels: 'Male' in Label encoder
我正在尝试使用 LabelEncoder 将我的数据集的分类列转换为数值。
dataset
转换代码如下:
for i in cat_columns:
df[i]=encoder.fit_transform(df[i])
转换后的数据集看起来像 dataset after transformation
但问题是,每当我尝试转换我的测试数据集时,它都会给出一个错误
y contains previously unseen labels: 'Male'
测试数据转换代码:
for i in cat_columns:
df1[i]=encoder.transform(df1[i])
test data
现在我该如何解决这个问题?
我想问题是您使用相同的编码器来适应所有不同的列。您应该改为使用不同的编码器来适应每一列。例如,您可以使用字典来存储不同的编码器:
from sklearn import preprocessing
encoders = {}
for i in cat_columns:
encoders[i] = preprocessing.LabelEncoder()
df[i] = encoders[i].fit_transform(df[i])
for i in cat_columns:
df1[i] = encoders[i].transform(df1[i])
您遇到的错误 (previously unseen labels: 'Male'
) 是由于您尝试使用在上一个 for 循环中创建的最后一个编码器来转换 gender
列,在您的情况下可能成为 smoking_status
标签编码器。
我正在尝试使用 LabelEncoder 将我的数据集的分类列转换为数值。 dataset
转换代码如下:
for i in cat_columns:
df[i]=encoder.fit_transform(df[i])
转换后的数据集看起来像 dataset after transformation
但问题是,每当我尝试转换我的测试数据集时,它都会给出一个错误
y contains previously unseen labels: 'Male'
测试数据转换代码:
for i in cat_columns:
df1[i]=encoder.transform(df1[i])
test data
现在我该如何解决这个问题?
我想问题是您使用相同的编码器来适应所有不同的列。您应该改为使用不同的编码器来适应每一列。例如,您可以使用字典来存储不同的编码器:
from sklearn import preprocessing
encoders = {}
for i in cat_columns:
encoders[i] = preprocessing.LabelEncoder()
df[i] = encoders[i].fit_transform(df[i])
for i in cat_columns:
df1[i] = encoders[i].transform(df1[i])
您遇到的错误 (previously unseen labels: 'Male'
) 是由于您尝试使用在上一个 for 循环中创建的最后一个编码器来转换 gender
列,在您的情况下可能成为 smoking_status
标签编码器。