使用LabelEncoder
将分类变量编码为数字时,
如何保存跟踪转换的字典?
即。一本字典,我可以看到哪些值变成了什么:
{'A':1,'B':2,'C':3}
答案 0 :(得分:6)
我从classes_
le = preprocessing.LabelEncoder()
ids = le.fit_transform(labels)
mapping = dict(zip(le.classes_, range(len(le.classes_))))
进行测试:
all([mapping[x] for x in le.inverse_transform(ids)] == ids)
应该返回True
。
这是有效的,因为fit_transform
使用numpy.unique
同时计算标签编码和classes_
属性:
def fit_transform(self, y):
self.classes_, y = np.unique(y, return_inverse=True)
return y
答案 1 :(得分:0)
您可以在一行中完成此操作:
le = preprocessing.LabelEncoder()
my_encodings = {l: i for (i, l) in enumerate(le.fit(data["target"].classes_))}