sklearn为多个分类列序列化标签编码器

数据挖掘 scikit-学习 分类数据 标签 分类编码 编码器
2022-03-02 05:36:22

我有一个模型,其中包含几个需要转换为数字格式的分类特征。我正在使用LabelEncoderOneHotEncoder的组合来实现这一点。一旦投入生产,我需要对新传入的数据应用相同的编码,然后才能使用模型。我已经使用pickle将模型和编码器保存在磁盘上。这里的问题是LabelEncoder只保留最后一组类(对于它编码的最后一个特征),因此它不能用于编码新数据的所有分类特征。为了解决这个问题,我在磁盘上LabelEncoder为每个分类特征保存了一个不同的文件,但这对我来说似乎不能很好地扩展,尤其是当你有大量分类特征时。

这种情况的常见做法是什么?是否可以序列化并只保存一个编码器,用于生产中使用的所有分类特征?

1个回答

LabelEncoder用于标签(目标,因变量),而不是特征。 OrdinalEncoder可用于特征,因此可以采用 2d 数组而不是 1d 数组LabelEncoder需要,因此您可以对所有分类列使用单个转换器。(如果您也有连续的,您可以使用 aColumnTransformer来选择那些分类列。)

但是,你不应该再使用OrdinalEncoderOneHotEncoderOneHotEncoder现在已经有一段时间直接应用于字符串分类列了。