部署具有一种热门编码功能的机器学习模型

时间:2019-03-07 17:52:29

标签: machine-learning deployment production one-hot-encoding

我已经训练了一个xgboost分类器,该分类器具有我以前进行过热编码的分类功能。 例如,我有一个分类特征“年”,它的取值在2014年至2018年之间。当OHEd时,我得到5个二进制特征:Year_2014,Year_2015,Year_2016,Year_2017,Year_2018。如果我对具有Year = 2019的样本进行预测,因为没有Year_2019功能,会发生什么情况?

更笼统地说,为了对新样本进行预测,什么是可靠的数据转换方式?

2 个答案:

答案 0 :(得分:0)

二进制特征的评估如下:

if(year != ${year value}){
  // Enter "left" branch
} else {
  // Enter "right" branch
}

一个看不见的类别级别被发送到“左”分支。

答案 1 :(得分:0)

#While traning say year has below values
df = pd.DataFrame([2014,2015,2016,2017,2018], columns = ['year']) 
data=pd.get_dummies(df,columns=['year']) 
data.head()
# while predicting lets say input for year is 2018
known_categories = ['2014','2015','2016','2017','2018']    
year_type = pd.Series(['2018']) 
year_type = pd.Categorical(year_type, categories = known_categories)
pd.get_dummies(year_type)
# column name does not matter only the values matters which will be input to the model