sklearn 管道中的持久标签编码
persistent label encoding in sklearn pipeline
如何将相同的字符串持久编码到同一列?
Label encoding across multiple columns in scikit-learn 提出了一种处理具有多个分类值的数据框的好方法。但是,我不确定这是否正确地持续存在(在 pickle 中)并且会再次为新传入的数据应用相同的标签。
到目前为止我直接使用pandas并通过类别值的.cat.codes
获得标签。但是现在我需要将标签编码集成到管道中以处理新的传入数据。
想要
le = LabelEncoder()
for col in df.select_dtypes([], ['object'].columns:
df[col] = le.fit_transform(df[col])
或者 MultiColumnLabelEncoder
的建议解决方案是否足以完成我的任务?
似乎已经处理了单列情况
所以我使用了前面提到的多列解决方案,效果很好。
遇到了同样的问题并且能够找到解决方法,如果我们可以保存编码器实例信息,我们可以重新使用它来产生预期的输出。
下面link有详细的解答:
Using Scikit's LabelEncoder correctly across multiple programs
对于更通用的方法,here 是一个分别用于拟合和变换的自定义函数,
- 拟合函数得到训练DataFrame和分类列列表returns标签编码器的字典类。
- Dict 在推理时被腌制和加载。
- 转换函数获取推理 DataFrame、分类列列表和编码器 Dict pickle 路径以及 returns 标签编码 DataFrame。
功能代码和工作示例请参考这里,
来源:Link
如何将相同的字符串持久编码到同一列? Label encoding across multiple columns in scikit-learn 提出了一种处理具有多个分类值的数据框的好方法。但是,我不确定这是否正确地持续存在(在 pickle 中)并且会再次为新传入的数据应用相同的标签。
到目前为止我直接使用pandas并通过类别值的.cat.codes
获得标签。但是现在我需要将标签编码集成到管道中以处理新的传入数据。
想要
le = LabelEncoder()
for col in df.select_dtypes([], ['object'].columns:
df[col] = le.fit_transform(df[col])
或者 MultiColumnLabelEncoder
的建议解决方案是否足以完成我的任务?
似乎已经处理了单列情况
所以我使用了前面提到的多列解决方案,效果很好。
遇到了同样的问题并且能够找到解决方法,如果我们可以保存编码器实例信息,我们可以重新使用它来产生预期的输出。 下面link有详细的解答: Using Scikit's LabelEncoder correctly across multiple programs
对于更通用的方法,here 是一个分别用于拟合和变换的自定义函数,
- 拟合函数得到训练DataFrame和分类列列表returns标签编码器的字典类。
- Dict 在推理时被腌制和加载。
- 转换函数获取推理 DataFrame、分类列列表和编码器 Dict pickle 路径以及 returns 标签编码 DataFrame。
功能代码和工作示例请参考这里,
来源:Link