【问题标题】:set Exampleset to ExampleSet2SimilarityExampleSet Rapidminer Operator with java使用 java 将 Exampleset 设置为 ExampleSet2SimilarityExampleSet Rapidminer Operator
【发布时间】:2014-12-14 15:28:18
【问题描述】:

我创建了一个衡量相似度的流程。我使用 ExampleSet2SimilarityExampleSetoperator,我想在输入中添加一个在我的代码中生成的示例集。

第一个想法是在本地存储库中编写我的示例集。然后我将使用检索运算符读取示例集并将运算符检索的输出连接到运算符 ExampleSet2SimilarityExampleSet 的输入。

所以我想知道我是否可以避免读/写。

  public class Test {

        public static void main(String[] args) throws OperatorCreationException, OperatorException{
            Test t = new Test();        
            t.createprocess();
        }
          public void createprocess() throws OperatorCreationException, OperatorException{
                RapidMiner.init();
                ExampleSet exampleset = getExampleset();

                Operator silimarityOperator = OperatorService.createOperator(ExampleSet2SimilarityExampleSet.class);
        //        silimarityOperator.setParameter("measure_type", "NumericalMeasures");
        //        silimarityOperator.setParameter("numerical_measure", "CosineSimilarity");

                Process process = new Process();
                process.getRootOperator().getSubprocess(0).addOperator(silimarityOperator);
                process.getRootOperator().getSubprocess(0).getInnerSources().getPortByIndex(0).connectTo( silimarityOperator.getInputPorts().getPortByName("input"));

                // run the process with new IOContainer using the created exampleSet
                IOContainer run = process.run(new IOContainer(exampleset));
                System.out.println(run.toString());




            }

            public ExampleSet getExampleset() {
        // construct attribute set
                Attribute[] attributes = new Attribute[3];
                attributes[0] = AttributeFactory.createAttribute("Topic1", Ontology.STRING);
                attributes[1] = AttributeFactory.createAttribute("Topic2", Ontology.STRING);
                attributes[2] = AttributeFactory.createAttribute("Topic3", Ontology.STRING);

                MemoryExampleTable table = new MemoryExampleTable(attributes);
                DataRowFactory ROW_FACTORY = new DataRowFactory(0);

                Double[] strings = new Double[3];

                double a = 0;
                for (int i = 0; i < 3; i++) {
                    a++;
                    strings[i] = a;
                    // make and add row
                    DataRow row = ROW_FACTORY.create(strings, attributes);

                    table.addDataRow(row);
                }

                ExampleSet exampleSet = table.createExampleSet();
                return exampleSet;
            }
    }

【问题讨论】:

    标签: java machine-learning data-mining rapidminer


    【解决方案1】:

    我找到了解决方案。我在连接操作员时出错。它不存在端口输入,所以我得到端口 0。

     process.getRootOperator().getSubprocess(0).getInnerSources().getPortByIndex(0).connectTo(  
              silimarityOperator.getInputPorts().getPortByIndex(0));
    
         silimarityOperator.getOutputPorts().getPortByIndex(0).connectTo(
              process.getRootOperator().getSubprocess(0).getInnerSinks().getPortByIndex(0));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多