我的数据框中有一个分类变量(a,B,C)。然后,我对它进行编码(使其成为数字),以便传入神经网络。你知道吗
然而,我的最终可视化图形显示了分类变量的编码值,我很难将其映射回原始值。你知道吗
我首先使用这个命令将分类变量(数据类型=对象)编码为数值:
encoders = {}
for x in df.columns:
if df[x].dtypes=='object':
le = preprocessing.LabelEncoder()
df[x]=le.fit_transform(df[x].astype(str))
encoders[x] = le
corr = df.corr()
然后,我用这段代码解码(就在最终可视化之前):
for x, le in encoders.items():
df[x] = le.inverse_transform(df[x])
# Visualization: plotting categorical variables (A,B,C) in scatterplot using Seaborn.
sns.lmplot(x="A", y="B", data=df, fit_reg=False, hue='C',legend=False)
display()
…但是可视化仍然显示编码值而不是分类值(见下面的屏幕截图)。未进行映射。为什么?你知道吗
您必须存储原始的
LabelEncoder
。映射存储在该类中。所以有些东西或者更好的是,不要用编码的标签覆盖标签,而是在数据帧中创建一个新列。你知道吗
相关问题 更多 >
编程相关推荐