首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将实时数据分解为与训练数据一致的映射?

将实时数据分解为与训练数据一致的映射?
EN

Stack Overflow用户
提问于 2018-08-21 06:45:28
回答 3查看 150关注 0票数 2

在生产水平上,我想使用预先保存的模型来预测我的实时数据.

但是,当分解分类数据时,我不知道如何将实时数据设置为与训练数据保持一致的映射。

From this article我知道我可以将训练数据和新数据堆叠在一起,并使它们保持一致。

然而,堆叠和贯穿整个过程(做整个特征工程、训练和预测)太费时了。

  • 整个过程:15分钟v.s. model.prediction :3秒

由于生产级别系统是时间敏感的,是否有任何方法可以将新数据分解为具有与培训数据相同的映射?

或者只能手动完成,例如

代码语言:javascript
运行
复制
 df.loc[df['col_name']=='YES', 'col_name'] =  '1'

这会导致很长的编码?

EN

回答 3

Stack Overflow用户

发布于 2018-08-21 12:12:58

如果您的意思是在新的分类值(例如,您得到一个新的值‘蓝绿色’的df.color),您可以弹出任何意想不到的值到相同的-1桶(例如,未知),然后处理在后处理或任何时候,您重新调整模型。

本质上,您可以捕获类别异常,然后稍后处理它们。

票数 0
EN

Stack Overflow用户

发布于 2018-08-22 05:14:43

工作了几个小时后,我从pd.factorize切换到了LabelEncoder()。由于LabelEncoder只支持pd.series数据,所以我尝试使用一个循环来遍历所有列,并将每个符合LabelEncoder()的模型存储到字典中。

在培训数据部分

代码语言:javascript
运行
复制
# list you want to do Label encoding
col_list =  ['colA', 'colB', 'colC']
df[col_list]= df[col_list].fillna('NAN')

# create  a dictionary to save LabelEncoder() model for each col
model = {}

# convert Categorical Data
for x in col_list:
    encoder = LabelEncoder()
    df[x]=encoder.fit_transform(df.__getattr__(x))
    model[x]= encoder

# save dictionary to pickle file
with open('model.pkl', 'wb') as f:
    pickle.dump(model, f)

在实时数据部分:

代码语言:javascript
运行
复制
with open('model.pkl', 'rb') as f:
    model= pickle.load(f)

for x in col_list:
    encoder = model[x]
    try:
        df[x]=encoder.transform(df[x].astype(str))
    except:
        df[x]=encoder.transform(df[x].astype(int))

结果,我花了1.5秒的时间来加载数据,进行特征工程和预测。

票数 0
EN

Stack Overflow用户

发布于 2019-11-08 09:15:48

你用的是哪种算法?我遇到了同样的问题,但是由于我使用的是LGBM,所以没有必要对我的数据进行因式分解,该算法可以处理已处理的值。我不得不将数据类型从'object‘更改为’change‘。

代码语言:javascript
运行
复制
categorical_feats = [f for f in combined_data.columns if combined_data[f].dtype == 'object']

categorical_feats
for f_ in categorical_feats:
    # Set feature type as categorical
    combined_data[f_] = combined_data[f_].astype('category')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51943037

复制
相关文章

相似问题

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