首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流水线生产oneHotEncoding

流水线生产oneHotEncoding
EN

Stack Overflow用户
提问于 2019-12-07 05:25:57
回答 1查看 119关注 0票数 2

我正试着让我的训练自动化,预测过程。但是我有一个关于热编码的问题。

假设我有一个如下所示的列:

代码语言:javascript
复制
column /
a      /
b      /
c      /

如果我对它进行一次热编码,我会得到每个字母的3列,但是如果后来我下载了一些新的数据,在同一列中我只有a和b,名为"column_c“的列将不会被创建,因此我不能使用模型预测,因为形状,我将有2列而不是3列。

我怎么才能修复它呢?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-12-08 08:46:07

您描述的错误只有在您重新训练OneHotEncoder时才会发生,而这不应该在自动化过程中进行。您应该像训练数据集上的任何其他ML模型一样训练您的OneHotEncoder,然后将这个经过训练的编码器应用于您希望通过自动化管道馈送的任何新数据。

示例:

代码语言:javascript
复制
import pandas as pd
from sklearn.preprocessing import OneHotEncoder

df1 = pd.DataFrame({"cat_col":["a","b","c"]})
df2 = pd.DataFrame({"cat_col":["a","b"]})

ohe = OneHotEncoder(handle_unknown="ignore")

print(ohe.fit_transform(df1).toarray())
print(ohe.transform(df2).toarray())

这将返回

代码语言:javascript
复制
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
[[1. 0. 0.]
 [0. 1. 0.]]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59220528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档