LabelEncoder:如何保持显示原始和转换变量的字典

时间:2016-01-06 08:14:15

标签: python dictionary label categorical-data

使用LabelEncoder将分类变量编码为数字时,

如何保存跟踪转换的字典?

即。一本字典,我可以看到哪些值变成了什么:

{'A':1,'B':2,'C':3}

2 个答案:

答案 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_))}