全,
我已经培训了一个使用xgboost的模型。其中一些特征是一种热编码的货币,例如,它要么是英镑,要么是美元。似乎当我输出特征重要性时,英镑和美元分别排在第7位。
现在我想用这个模型来预测澳大利亚国家是否有违约者,但是这些国家的货币是澳元。因此,当我应用我的特性工程时,它将创建一个列和一次热编码。
由于我的模型没有AUD作为一个功能,它如何处理的功能,已经看不见?我对此不太清楚
发布于 2020-11-02 14:37:29
You可以使用参数来处理sklearn.preProcessing中名为handle_unknown的未知类。
任何类型编码的<#>Best实践:
您应该只在训练数据上训练一次编码的估计器,而在编码测试数据时,您应该使用与训练数据相同的估计器。
OneHotEn编码器这样做,它有一个名为handle_unknown的参数。
Handle_unknown{“错误”,“忽略”},缺省=“错误”
如果在转换过程中存在未知的分类特征,则是否引发错误或忽略(默认为引发)。当此参数设置为“忽略”,并且在转换过程中遇到未知类别时,该功能的一个热编码列将为零。在逆变换中,未知范畴将表示为无。
Optimal选项是:您可以使用此参数并将其设置为忽略,以便忽略未知的特征值并避免错误,直到您最终重新训练模型并将新的特性值添加到模型中为止。
from sklearn.preprocessing import OneHotEncoder
ohe=OneHotEncoder(handle_unknown='ignore')
train=ohe.fit_transform(train)
test=ohe.transform(test)https://datascience.stackexchange.com/questions/84836
复制相似问题