【发布时间】:2018-07-31 04:27:32
【问题描述】:
我有一个包含类别列的数据集。为了使用线性回归,我对这一列进行了 1-hot 编码。
我的集合有 10 列,包括类别列。删除该列并附加 1-hot 编码矩阵后,我最终得到 14 列 (10 - 1 + 5)。
所以我用形状为 (n, 14) 的矩阵训练(拟合)我的 LinearRegression 模型。
在训练之后,我想在训练集的一个子集上对其进行测试,所以我先只取 5 个,然后将它们通过相同的管道。但是这 5 个首先只包含 3 个类别。因此,在通过管道之后,我只剩下一个形状为 (n, 13) 的矩阵,因为它缺少 2 个类别。
如何强制 1-hot 编码器使用 5 个类别?
我正在使用来自 sklearn 的 LabelBinarizer。
【问题讨论】:
-
您应该只对新数据使用 LabelBinarizer.transform()。永远不适合()。显示代码,我们将根据需要对其进行修改。
-
就是这样@VivekKumar - 一旦安装了变压器(在本例中为 LabelBinarizer),就不应重新安装。谢谢!
标签: python scikit-learn one-hot-encoding