【问题标题】:Preprocessing Categorical attributes in machine Learning预处理机器学习中的分类属性
【发布时间】:2018-02-24 18:15:26
【问题描述】:
numpy.unique()  vs Pandas.get_dummies()

numpy.unique() 将数据转换为所有 K 个类别的数组,并将每个值的索引作为新列返回,而 get_dummies() 只是创建 k 列,每个列都有 (0,1) 值。

哪种方法将分类数据转换为数字最适合机器学习?为什么?

【问题讨论】:

    标签: python pandas numpy machine-learning scikit-learn


    【解决方案1】:

    对于分类属性的预处理,主要取决于分类属性是否具有有序关系。

    例如,像温度这样的属性由四个级别组成:非常高、高、中、低。这些被称为序数变量,在这种情况下,转换为数字索引是合理的。所以非常高变成“1”,高变成“2”等等。

    但是,如果变量是没有排序信息的名义变量,则数字索引很可能会因为提供给模型的错误信息而导致较差的结果。 例如,对于像性别这样的属性,将它们转换为数字索引是没有意义的,“1”代表男性,“2”代表女性,因为这给模型提供了一个有偏见的信息,使得女性排名高于男性值时在大多数情况下,它们都是相等的,并且它们之间没有顺序。因此,为每个变量创建具有二进制值的 k 列会更有意义。

    【讨论】:

    • 但是男性的“1”和女性的“2”如何为模型提供有偏见的信息,只要测试和训练数据具有相同的值,它将如何影响结果结束了吗?
    • 它会引导模型认为这些值之间具有序数关系。含义模型会认为女性的排名高于男性,但这不是您想要传递给模型的信息。
    • 机器学习不是魔法,它只有在需要解决的问题被尽可能准确地表示为真实世界时才有效。
    • 好的,这有帮助,但属性列的增加不会使结果有所不同。
    • 你是怎么暗示的?你能详细说明一下吗?
    猜你喜欢
    • 2018-12-01
    • 2021-04-01
    • 2018-08-18
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 2018-11-09
    • 2019-04-27
    • 2020-06-15
    相关资源
    最近更新 更多