在rapidminer中计算缺失值错误

时间:2018-03-25 08:13:48

标签: rapidminer data-cleansing

我有一些学生的样本数据,其中科目成绩学期列值。在此数据集中,我在 semester 列中有一些缺失值,我需要通过学习 semester 列中的现有值来估算这些缺失值。为此,我使用的是 Rapid Miner ,请参阅下面的图片,其中我使用了2个检索数据并将数据归档的过程Processes

当我尝试执行流程时,它会显示以下错误: ERROR

我尝试将 semester 列的数据类型从数字改为实际但也没有成功,网上也没有这样的解决方案,有人可以提出建议吗?

已更新 以下是XML:

<?xml version="1.0" encoding="UTF-8"?><process version="8.1.001">
  <context>
   <input/>
   <output/>
   <macros/>
  </context>
  <operator activated="true" class="process" compatibility="8.1.001" expanded="true" name="Process">
  <process expanded="true">
  <operator activated="true" class="retrieve" compatibility="8.1.001" expanded="true" height="68" name="Retrieve" width="90" x="179" y="85">
  <parameter key="repository_entry" value="//Local Repository/testing data 2"/>
  </operator>
  <operator activated="true" class="impute_missing_values" compatibility="8.1.001" expanded="true" height="68" name="Impute Missing Values" width="90" x="380" y="85">
    <parameter key="attribute_filter_type" value="single"/>
    <parameter key="attribute" value="Semester"/>
    <parameter key="attributes" value="Subjects|Semester|Grades|GPA|Course Code|Batch"/>
    <process expanded="true">
      <connect from_port="example set source" to_port="model sink"/>
      <portSpacing port="source_example set source" spacing="0"/>
      <portSpacing port="sink_model sink" spacing="0"/>
    </process>
  </operator>
  <connect from_op="Retrieve" from_port="output" to_op="Impute Missing Values" to_port="example set in"/>
  <connect from_op="Impute Missing Values" from_port="example set out" to_port="result 1"/>
  <portSpacing port="source_input 1" spacing="0"/>
  <portSpacing port="sink_result 1" spacing="0"/>
  <portSpacing port="sink_result 2" spacing="0"/>
  <description align="center" color="yellow" colored="false" height="105" resized="false" width="180" x="158" y="110">Type your comment</description>
    </process>
  </operator>
</process>

还有一件事是,当我运行上述错误的过程时,我可以通过单击结果输出图标看到结果输出,如下所示:

Get output data

我的文件中总共有54条记录,其中7条在 semester 列中缺失值,结果输出显示47条记录,它会删除这些缺失值记录,如果这些缺失值被替换还有其他一些值?为什么要删除那些记录?

2 个答案:

答案 0 :(得分:0)

问题似乎是您尝试将数据集(在Rapidminer中称为ExampleSet)连接到另一个需要模型作为输入的Operator。 当您不确定操作员的输入和输出时,您可以将鼠标悬停在端口上或按F1(在右键单击上下文菜单中显示操作员信息),您将看到更多信息。

一般来说,将过程xml附加到问题上总是非常有帮助,因此其他人可以直接复制和检查您的过程(当然没有数据)。 xml视图可以在 View - &gt;下找到。显示面板 - &gt;菜单栏中的XML

最佳

答案 1 :(得分:0)

Impute Missing Values运算符需要其中的另一个运算符,它接受一个示例集并生成一个模型。我们的想法是将所有具有缺失值的列作为标签进行迭代,并且模型预测缺失值将是什么。它基本上假定缺失值是测试数据而非缺失值是训练数据。有一个示例流程可用 - 如果您转到Impute运算符的帮助并滚动到结尾,您将找到一个加载一些缺少值的数据的流程并将其计算在内。