Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 使用一个热编码特性部署机器学习模型_Machine Learning_Deployment_Production_One Hot Encoding - Fatal编程技术网

Machine learning 使用一个热编码特性部署机器学习模型

Machine learning 使用一个热编码特性部署机器学习模型,machine-learning,deployment,production,one-hot-encoding,Machine Learning,Deployment,Production,One Hot Encoding,我已经训练了一个xgboost分类器,它具有我之前热编码过的分类特征。 例如,我有一个分类特征“年”,它取2014年到2018年之间的值。当OHEd我得到5个二进制特征:2014年、2015年、2016年、2017年、2018年。如果我对年份=2019的样本进行预测,会发生什么情况,因为特征年份2019不存在 更一般地说,为了对新样本进行预测,转换数据的稳健方法是什么?二进制特征的评估如下: if(year != ${year value}){ // Enter "left" branch

我已经训练了一个xgboost分类器,它具有我之前热编码过的分类特征。 例如,我有一个分类特征“年”,它取2014年到2018年之间的值。当OHEd我得到5个二进制特征:2014年、2015年、2016年、2017年、2018年。如果我对年份=2019的样本进行预测,会发生什么情况,因为特征年份2019不存在


更一般地说,为了对新样本进行预测,转换数据的稳健方法是什么?

二进制特征的评估如下:

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

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

为什么不尝试,并在此处报告您可能遇到的任何问题?像您的“更一般”部分这样的问题可以说是离题的,这是关于实际的编码问题…预测功能将失败。关于问题的第二部分,没有直接的答案。但是你会在SO和其他SE网站上找到很好的讨论。这里有一个-。社区鼓励在SDE代码中添加解释,而不是纯粹基于代码的答案(请参阅)
#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