Python 使用安装在数据库上的XGBoost模型对新数据库进行预测

Python 使用安装在数据库上的XGBoost模型对新数据库进行预测,python,database,machine-learning,regression,xgboost,Python,Database,Machine Learning,Regression,Xgboost,我有一个数据库,我已将其分为列车和测试数据集,在列车组上安装XGBoost模型,并在测试组上使用安装的模型进行预测。到目前为止一切都很好 现在,如果我保存拟合的模型,并希望在一个全新的数据集上使用它进行预测,那么我的新数据库应该是什么样子 它是否必须包含确切数量的功能 分类功能在两个数据库中必须具有相同的类别吗?我假设,您对颜色功能使用了一种热编码 因此,从技术上讲,为了避免测试数据中出现额外的或新的特征,您应该使用train+测试数据形成特征向量 对整套培训+测试数据进行一次热编码/特征化。现

我有一个数据库,我已将其分为列车和测试数据集,在列车组上安装XGBoost模型,并在测试组上使用安装的模型进行预测。到目前为止一切都很好

现在,如果我保存拟合的模型,并希望在一个全新的数据集上使用它进行预测,那么我的新数据库应该是什么样子

它是否必须包含确切数量的功能


分类功能在两个数据库中必须具有相同的类别吗?

我假设,您对颜色功能使用了一种热编码

因此,从技术上讲,为了避免测试数据中出现额外的或新的特征,您应该使用train+测试数据形成特征向量

  • 对整套培训+测试数据进行一次热编码/特征化。现在分离出
    培训数据集
    测试数据集
  • 假设[v1、v2、v3…vn]是来自列车+测试数据的特征名称列表
  • 现在使用此功能名称形成训练数据。正如预期的那样,训练数据中对应于第五种颜色的特征列都将为零,这很好
  • 对测试数据使用相同的特性列表,现在您不应该在即将出现的新特性方面有任何差异

  • 希望澄清。

    它必须具有相同数量的功能。只有当模型具有相同数量/类型的特征时,模型才会进行预测,而不管这些值是什么类别,但是如果您希望正确预测,您希望使新数据具有与训练数据相同的格式。@DK那么,这是否意味着分类特征具有确切数量的类别?因为在进行标签编码之后,我需要得到相同数量的列。例如,如果我有一个包含4种颜色的颜色功能,它将从该功能创建4列。因此,如果我的新数据库有5种颜色而不是4种,它将创建5个新列,因此我的输入功能数量将发生变化。请让我知道我是否弄错了。致以最诚挚的问候。您必须为分类功能输入完全相同数量的类别。如果用于预测的当前数据与训练集的格式不同,则在将其输入到模型之前需要重新格式化。仔细想想,制作xgboost或任何机器学习模型的全部目的就是从固定数量的类别中做出可行的预测。@DKDK非常感谢您的帮助。这是一个非常有见地的评论,让整个事情变得更加清晰。我投票决定结束这个问题,因为它不是关于在中定义的编程,而是关于ML理论和方法论。