Python 不可见数据中不存在虚拟变量级别

Python 不可见数据中不存在虚拟变量级别,python,machine-learning,logistic-regression,one-hot-encoding,dummy-variable,Python,Machine Learning,Logistic Regression,One Hot Encoding,Dummy Variable,我训练了一个逻辑回归模型,其中有5个分类变量水平,所有水平对模型都是显著的 然而,在看不见的数据上,分类变量的级别数为3。 因此,经过训练的模型无法对看不见的数据进行预测,因为它无法找到某些水平 我使用了一种热编码来转换分类变量。 如何解决这个问题 用于转换为列车组中虚拟变量的代码: metadata_employeegroup = pd.get_dummies(df['metadata_employeegroup'],prefix='metadata_employeegroup',dro

我训练了一个逻辑回归模型,其中有5个分类变量水平,所有水平对模型都是显著的

然而,在看不见的数据上,分类变量的级别数为3。 因此,经过训练的模型无法对看不见的数据进行预测,因为它无法找到某些水平

我使用了一种热编码来转换分类变量。 如何解决这个问题

用于转换为列车组中虚拟变量的代码:

   metadata_employeegroup = pd.get_dummies(df['metadata_employeegroup'],prefix='metadata_employeegroup',drop_first=True)
   df = pd.concat([df,metadata_employeegroup],axis=1)
基于RFE,只有一些因素水平对模型有显著影响。因此,在训练模型时,我会根据这些列对训练集进行子集设置

logsk.fit(X_train[col], y_train)
y_pred = logsk.predict_proba(X_test[col])
此处col仅包含3个级别的metadata_employeegroup。说L1,L2,L3

对于看不见的数据,我采用相同的方法创建虚拟变量。 但是,employeegroup的元数据级别为L1和L2。
经过培训的模型无法找到L3级别,正在抛出错误。

对于未查看数据中缺少的分类变量级别,请通过添加这些缺少的级别并将所有记录的值保持为0,在数据中创建新功能


我能用这个解决问题,你应该发布一些数据和代码,否则,你做了什么以及错误是什么还不清楚。只要您的编码在训练和测试之间保持一致,测试数据中缺少某些级别就可以了。因此,我要检查的第一件事是您的编码是否一致。例如,如果您使用5个假人对训练集进行编码,那么您也应该使用5个假人对测试集进行编码(即使其中2个假人始终为零)。我添加了一些代码,并详细解释了我面临的问题。你能调查一下吗。