所以我的代码是:
>>> le = preprocessing.LabelEncoder()
>>> le.fit(train["capital city"])
LabelEncoder()
>>> list(le.classes_)
['amsterdam', 'paris', 'tokyo']
>>> le.transform(["tokyo", "tokyo", "paris"])
array([2, 2, 1])
>>> list(le.inverse_transform([2, 2, 1]))
['tokyo', 'tokyo', 'paris']
但是如果在我的测试数据集中,我有类似“beijing”的内容,但训练集中不存在“beijing”怎么办?有没有一种方法可以让编码器处理这个问题,而无需添加全局所有可能的首都城市?
最佳答案
对于现实世界的场景,您拥有的只是训练数据,并且稍后会出现新的类(class),您可以尝试我的解决方案:
le.classes_ = np.append(le.classes_, "new_class_name")
le.transform(new_y)
关于pandas - 如何使用 scikit LabelEncoder 来创建新标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45495308/