生成10倍交叉验证knime的PMML的问题

时间:2018-03-26 08:07:15

标签: cross-validation pmml knime

我正在与KNIME合作并尝试使用测试数据训练我的朴素贝叶斯分类算法。我尝试使用10倍交叉验证来使我的结果准确但我无法生成PMML模型:我不断收到错误已经分配了循环结束(起始节点有多个终端节点)。这是我的KNIME工作流程:

workflow screenshot

1 个答案:

答案 0 :(得分:0)

正如错误消息所示,您有两个循环结束节点( PMML Ensemble Loop End X-Aggregator 节点)但只有一个循环开始(<强> X-分区程序)。

你想要实现的目标是什么?通常,交叉验证的目的是估计预测模型在未知数据上的表现。如果你想要的是一个训练有素的朴素贝叶斯模型,你可以用它做出预测,我想你想删除 PMML Ensemble Loop End ,而是将规范化的数据集连接到第二个< strong> Naive Bayes Learner ,配置与第一个相同,以及X-Partitioner输入。第二个学习者的输出是您可以用于预测的模型。通过这种方式,第二个学习者节点在整个数据集上进行训练,获得最精确的模型,而交叉验证循环中的原始数据集仅用于生成模型有多好的估计值。

如果您想确保两个学习者都使用相同的设置,您可以使用流变量将整个数据集学习器中的设置值传递给循环内的设置值:

  • 在整个数据集学习器上显示流量变量端口 X-Partitioner并将前者的输出链接到输入 后者
  • 在整个数据集学习器的“流变量”选项卡中 配置,在框中为您想要的每个参数键入一个名称 传递
  • 运行整个数据集学习器
  • 在循环中学习者的Flow Variables选项卡中,您现在应该可以选择 您在旁边的下拉列表中创建的变量名称 相应的参数。