laberencoder 未见过的标签 unseen labels

from sklearn.preprocessing import LabelEncoder

LaberEncoder可以对分类型变量进行数字编码,但是transform如果遇到fit的时候unseen values就会报错,我采取的解决方法是:

因为LaberEncoder本质是字典映射,先构建一个字典,然后字典用get获取key对应的value,get可以设定default value,当给定的key取不到时,会取default value


le_area = preprocessing.LabelEncoder()

le_area.fit(df['area'].append(df['xs_daqu_most']).append(df['fy_daqu_most']).astype(str))

le_area_dict = dict(zip(le_area.classes_,le_area.transform(le_area.classes_)))

df['area'] = df['area'].apply(lambda x:le_area_dict.get(x,999))


留言

熱門文章