假设我有一个训练数据集,我在这个数据集上使用交叉验证来找到最好的 ML 模型和超参数。在训练数据集中,有一个名为“Season”的分类变量。它有 4 个值:“春”、“夏”、“秋”、“冬”。
我使用 LabelEncoder 、 OneHotEncoder 来获取分类变量的虚拟变量并删除一个虚拟变量。假设我保留“春天”、“夏天”、“秋天”,并删除“冬天”。现在,我有 3 列对应于“季节”。
训练后,我保存 ML 模型并在另一个脚本 (predict.py) 中加载预训练模型。
在“predict.py”中,我加载预训练模型和预测数据集。在预测数据集中,“Season”只有“Spring”和“Summer”两个值。模型应该仅预测“春季”和“夏季”季节。如果我使用 LabelEncoder 和 OneHotEncoder 作为预测数据集,我将只有一列(假设我删除了“Summer”的虚拟变量)。
由于特征不同,我无法使用经过训练的模型来预测预测数据集。您如何处理这种情况?