在Rapid Miner中使用交叉验证进行聚类

时间:2014-12-14 17:40:59

标签: data-mining k-means cross-validation rapidminer

我不确定我在这里做错了什么,但我希望有人可以帮助我。我试图在快速矿工中运行x-validation,使用k-means聚类作为我的模型。

我导入了我的数据集,设置了'标签'在一个属性上,将数据从名义转换为数字,然后将该输出连接到x验证过程。然后,我将训练数据连接到k-means聚类模型,并将聚类模型连接到测试数据的模型。我应用k-means模型中的模型,然后应用性能过程。

我一直收到错误消息,我需要一个特殊的属性'标签'。

我不确定我在这里做错了什么,感谢任何帮助。

主要流程: main-process

X验证过程: x-validation

错误讯息: error

2 个答案:

答案 0 :(得分:0)

X-Validation需要标签和预测。聚类不会产生预测;它将示例分配给不同的集群。要将分配的群集更改为预测,可以使用Map Clustering on Labels运算符。将其放在Apply ModelPerformance运算符之间。

如果群集数量与有效标签值的数量不同,则该过程将出错。

答案 1 :(得分:0)

如果您想在验证中检查群集,则引导程序也可能适合您。可以使用循环和样本运算符轻松归档引导。附件是一个过程。

如果使用“从群集映射”标记,则只需从验证中获得性能。如果您想拥有聚类示例,可以使用相同技巧进行X-Prediction。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="6.1.001-SNAPSHOT">
  <context>
    <input/>
    <output/>
    <macros/>
  </context>
  <operator activated="true" class="process" compatibility="6.1.001-SNAPSHOT" expanded="true" name="Process">
    <process expanded="true">
      <operator activated="true" class="retrieve" compatibility="6.1.001-SNAPSHOT" expanded="true" height="60" name="Retrieve Sonar" width="90" x="112" y="75">
        <parameter key="repository_entry" value="//Samples/data/Sonar"/>
      </operator>
      <operator activated="true" class="loop" compatibility="6.1.001-SNAPSHOT" expanded="true" height="76" name="Loop" width="90" x="313" y="75">
        <parameter key="iterations" value="10"/>
        <process expanded="true">
          <operator activated="true" class="sample_bootstrapping" compatibility="6.1.001-SNAPSHOT" expanded="true" height="76" name="Sample (Bootstrapping)" width="90" x="179" y="30"/>
          <operator activated="true" class="k_means" compatibility="6.1.001-SNAPSHOT" expanded="true" height="76" name="Clustering (2)" width="90" x="313" y="30"/>
          <connect from_port="input 1" to_op="Sample (Bootstrapping)" to_port="example set input"/>
          <connect from_op="Sample (Bootstrapping)" from_port="example set output" to_op="Clustering (2)" to_port="example set"/>
          <connect from_op="Clustering (2)" from_port="cluster model" to_port="output 1"/>
          <portSpacing port="source_input 1" spacing="0"/>
          <portSpacing port="source_input 2" spacing="0"/>
          <portSpacing port="sink_output 1" spacing="0"/>
          <portSpacing port="sink_output 2" spacing="0"/>
        </process>
      </operator>
      <connect from_op="Retrieve Sonar" from_port="output" to_op="Loop" to_port="input 1"/>
      <connect from_op="Loop" from_port="output 1" 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"/>
    </process>
  </operator>
</process>