【发布时间】:2021-11-02 06:12:45
【问题描述】:
如果我们不确定分类特征的性质,例如它们是名义特征还是有序特征,我们应该使用哪种编码?序数编码还是单热编码? 关于这个主题有明确定义的规则吗?
我看到很多人在没有方向的分类数据上使用 Ordinal-Encoding。 假设一个频率表:
some_data[some_col].value_counts()
[OUTPUT]
color_white 11413
color_green 4544
color_black 1419
color_orang 3
Name: shirt_colors, dtype: int64
在本专栏中有很多人更喜欢使用 Ordinal-Encoding。而且我一心想要使用 One-Hot-Encoding。 我对此的看法是,进行 Ordinal Encoding 会为这些颜色分配一些有序的数字,这意味着排名。而且一开始就没有排名。换句话说,我的模型不应该认为 color_white 是 4 而 color_orang 是 0 或 1 或 2。 请记住,数据描述中也没有任何排名或顺序的提示。
我对这个话题的理解如下:
既没有方向也没有大小的数字是名义变量。例如,fruit_list =['apple','orange',banana']。除非有特定的上下文,否则该集合将被称为名义集合。 对于此类变量,我们应该执行 get_dummies 或 one-hot-encoding
而序数变量有一个方向。例如, shirt_sizes_list = [大、中、小]。这些变量称为序数变量。如果同一个水果列表背后有一个上下文,比如价格或营养价值,即可以给水果列表中的水果一些排名或顺序,我们称之为序数变量。 对于序数变量,我们执行序数编码
我的理解正确吗? 请提供您的反馈 这个话题变成了噩梦 谢谢!
【问题讨论】:
标签: machine-learning categorical-data one-hot-encoding dummy-variable ordinal