【发布时间】:2018-11-27 19:26:19
【问题描述】:
我主要处理具有数字特征大小、高度、重量、距离、时间、词袋/tf-idf 等的分类问题。但是,我开始考虑使用更多具有分类特征的数据集。此类特征的示例包括种族、流派(书籍或电影)、颜色、形状、城市名称、学校等。如果我有一个名为 length 的分类变量,其级别为 small、medium、large,那么将其重新编码为1、2、3,因为已经存在一些层次结构或顺序。但是,我对编码没有自然转换为数字尺度或已经具有内在秩序感的变量感到困惑。
对于颜色之类的东西,想象选项是红色、绿色和蓝色。红色为 1、绿色为 2、蓝色为 3 是没有意义的,因为这意味着从技术上讲,红色比蓝色“更接近”绿色,在这种情况下,对颜色进行排名或有距离吗?同样,假设我们有一个流派的简化列表(浪漫、喜剧、戏剧、科幻、动作)。如果我将其编码为浪漫 - 1,喜剧 - 2,戏剧 - 3,科幻 - 4,动作 - 5,这意味着在这种表示中,浪漫比戏剧“更接近”或更类似于喜剧,这真的没有意义。我觉得通过这样做,我们人为地创造了不存在的结构和意义。
如果您认为以这种方式编码是完全可以接受的,我很乐意被证明是错误的(使用起来会更方便和简单)——请解释原因。如果我的解释是正确的,你能解释一下我该如何解决这个问题吗?你做过的事情(或普遍接受的做法)有哪些例子?我意识到二进制变量在上面的例子中相当简单,但如果我有更多的选择就不一定了。注意:我主要使用 Python、Pandas 和 Sklearn 进行 ML。如果您建议其他可以帮助解决此问题的工具,请告诉我。
谢谢!
【问题讨论】:
标签: python machine-learning scikit-learn classification categorical-data