【发布时间】:2017-12-18 05:18:45
【问题描述】:
这是我的问题,希望有人能帮我弄清楚..
解释一下,我的数据集中有 10 多个类别列,每个类别都有 200-300 个类别。我想将它们转换为二进制值。为此,我使用第一个标签编码器将字符串类别转换为数字。标签编码器代码和输出如下所示。
在标签编码器之后,我再次使用了来自 scikit-learn 的一个热编码器,它可以工作了。 但问题是,我需要一个热编码器之后的列名。例如,列 A 在编码之前具有分类值。 A = [1,2,3,4,..]
编码后应该是这样的,
A-1、A-2、A-3
任何人都知道如何在一次热编码后将列名分配给(旧列名-值名或编号)。这是我的一个热编码和它的输出;
我需要带有名称的列,因为我训练了一个人工神经网络,但是每次出现数据时,我都无法一次又一次地转换所有过去的数据。所以,我想每次都添加新的。还是谢谢..
【问题讨论】:
-
使用 Dataframe.get_dummies() 代替 scikit 转换器,它会自动为它们分配适当的列名
-
如果您想创建一个 API 或您想要序列化标签和一个热编码器以便能够将输入数据快速转换为模型可读数据的东西,这可能不合适.
-
当我使用 DataFrame.get_dummies 时,我收到一条错误消息,指出
AttributeError: 'DataFrame' object has no attribute 'get_dummies' -
问题会更好,代码为 text 而不是图像。
标签: encoding scikit-learn one-hot-encoding