【发布时间】:2016-03-14 05:31:54
【问题描述】:
我有一个带有一些分类列的 pandas 数据框。其中一些包含非整数值。
我目前想对这些数据应用多个机器学习模型。对于某些模型,有必要进行归一化以获得更好的结果。例如,将分类变量转换为虚拟/指标变量。实际上,pandas 有一个名为 get_dummies 的函数用于此目的。但是,此函数根据数据返回结果。因此,如果我在训练数据上调用 get_dummies,然后在测试数据上再次调用它,在两种情况下实现的列可能会有所不同,因为测试数据中的分类列与训练数据。
因此,我正在寻找其他方法来进行 one-hot 编码。
在 python (pandas/sklearn) 中进行一种热编码的可能方法是什么?
【问题讨论】:
-
在分类数据可能发生变化的训练和测试数据之间总会遇到这个问题。
-
好吧,如果您在测试(和真实)数据中的值与训练数据不同,那么当遇到未知数据时,您的模型无论如何都不会好...您的测试数据集必须有一个实例至少最终数据将拥有的所有内容。据我所知,机器学习并不神奇!
-
如果你有真正的班级平衡并检查它是否存在——你正在进入测试集。
标签: python pandas scikit-learn