0

我有一个包含 1000 个示例的数据集,500 个正例和 500 个负例。我用 0.7 的分割比验证它们,然后将它们放在具有默认参数的 rapidminers MP 上,除了两层 25 个节点。

但是,当我验证它时,我的所有预测都是负面的,我不知道为什么?即使优化不佳的 MP(就像在这个例子中一样),我也应该得到至少一个积极的预测。

嗯,这是我第一次在 rapidminer 上这样做,可能这是一个非常基本的错误,但我找不到。

在此处输入图像描述

在此处输入图像描述

XML 代码:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="5.3.008">
  <context>
    <input/>
    <output/>
    <macros/>
  </context>
  <operator activated="true" class="process" compatibility="5.3.008" expanded="true" name="Process">
    <process expanded="true">
      <operator activated="true" class="split_validation" compatibility="5.3.008" expanded="true" height="112" name="Validation (6)" width="90" x="112" y="255">
        <process expanded="true">
          <operator activated="true" class="neural_net" compatibility="5.3.008" expanded="true" height="76" name="Neural Net" width="90" x="69" y="30">
            <list key="hidden_layers">
              <parameter key="Layer" value="25"/>
              <parameter key="Layer2" value="25"/>
            </list>
            <parameter key="training_cycles" value="100"/>
            <parameter key="shuffle" value="false"/>
          </operator>
          <connect from_port="training" to_op="Neural Net" to_port="training set"/>
          <connect from_op="Neural Net" from_port="model" to_port="model"/>
          <portSpacing port="source_training" spacing="0"/>
          <portSpacing port="sink_model" spacing="0"/>
          <portSpacing port="sink_through 1" spacing="0"/>
        </process>
        <process expanded="true">
          <operator activated="true" class="apply_model" compatibility="5.3.008" expanded="true" height="76" name="Apply Model (6)" width="90" x="45" y="30">
            <list key="application_parameters"/>
          </operator>
          <operator activated="true" class="performance" compatibility="5.3.008" expanded="true" height="76" name="Performance (6)" width="90" x="147" y="30"/>
          <connect from_port="model" to_op="Apply Model (6)" to_port="model"/>
          <connect from_port="test set" to_op="Apply Model (6)" to_port="unlabelled data"/>
          <connect from_op="Apply Model (6)" from_port="labelled data" to_op="Performance (6)" to_port="labelled data"/>
          <connect from_op="Performance (6)" from_port="performance" to_port="averagable 1"/>
          <portSpacing port="source_model" spacing="0"/>
          <portSpacing port="source_test set" spacing="0"/>
          <portSpacing port="source_through 1" spacing="0"/>
          <portSpacing port="sink_averagable 1" spacing="0"/>
          <portSpacing port="sink_averagable 2" spacing="0"/>
        </process>
      </operator>
      <portSpacing port="source_input 1" spacing="0"/>
      <portSpacing port="sink_result 1" spacing="0"/>
    </process>
  </operator>
</process>
4

1 回答 1

0

到目前为止,您的处理看起来相当不错。有趣的是:您的数据会发生什么变化?要对此进行调查,您可以设置一些断点并检查您的样本。在 NN-learner 之前设置的断点将向您展示训练集的外观,在模型应用程序之前设置的另一个断点让您检查测试集。为了确保正确的类分布,您可以为验证运算符启用分层抽样。NN-learner 的 shuffle 选项允许操作员在训练模型之前对训练集进行混洗。这在您的数据项已经排序的情况下很有用,这可能导致模型不合适。

于 2014-08-25T08:48:03.107 回答