Pages: [1]
  Print  
Author Topic: Macro: Apply on all examples, not only on one  (Read 574 times)
elag1985
Guest
« on: December 03, 2013, 09:08:55 AM »

Hello guys,

I am jsut getting familiar with macros. I am using the following workflow that I have taken from myexperiment. My problem is that it works for one single value and for all. The idea here is the following: I have a similarity matrix: id1,id2, similar. I want tofind the top 10 most similar items to a certain item(=id1). The following process works if i set the id in the xml. How can I make this work for all the id?

Thank you in advance.

Best,
Elena

P.S.: Is there a more concrete manual of macros in RM? I haven't found anything,

 
Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="5.3.015">
  <context>
    <input/>
    <output/>
    <macros>
      <macro>
        <key>id</key>
        <value>1599_1350505843.jpg</value>
      </macro>
      <macro>
        <key>recommendation_no</key>
        <value>10</value>
      </macro>
    </macros>
  </context>
  <operator activated="true" class="process" compatibility="5.3.015" expanded="true" name="Process">
    <process expanded="true">
      <operator activated="true" class="retrieve" compatibility="5.3.015" expanded="true" height="60" name="Retrieve Similarity2_0.01" width="90" x="45" y="30">
        <parameter key="repository_entry" value="//MyNewRepos/workflows/Improved/Similarity2_0.01"/>
      </operator>
      <operator activated="true" class="filter_examples" compatibility="5.3.015" expanded="true" height="76" name="Filter Examples" width="90" x="179" y="30">
        <parameter key="condition_class" value="attribute_value_filter"/>
        <parameter key="parameter_string" value="FIRST_ID=%{id}"/>
      </operator>
      <operator activated="true" class="filter_examples" compatibility="5.3.015" expanded="true" height="76" name="Filter Examples (2)" width="90" x="313" y="120">
        <parameter key="condition_class" value="attribute_value_filter"/>
        <parameter key="parameter_string" value="SECOND_ID=%{id}"/>
      </operator>
      <operator activated="true" class="rename" compatibility="5.3.015" expanded="true" height="76" name="Rename" width="90" x="447" y="120">
        <parameter key="old_name" value="FIRST_ID"/>
        <parameter key="new_name" value="temp"/>
        <list key="rename_additional_attributes">
          <parameter key="SECOND_ID" value="FIRST_ID"/>
          <parameter key="temp" value="SECOND_ID"/>
        </list>
      </operator>
      <operator activated="true" class="append" compatibility="5.3.015" expanded="true" height="94" name="Append" width="90" x="581" y="30"/>
      <operator activated="true" class="select_attributes" compatibility="5.3.015" expanded="true" height="76" name="Select Attributes" width="90" x="715" y="30">
        <parameter key="attribute_filter_type" value="single"/>
        <parameter key="attribute" value="FIRST_ID"/>
        <parameter key="invert_selection" value="true"/>
      </operator>
      <operator activated="true" class="rename" compatibility="5.3.015" expanded="true" height="76" name="Rename (2)" width="90" x="849" y="30">
        <parameter key="old_name" value="SECOND_ID"/>
        <parameter key="new_name" value="recommendation"/>
        <list key="rename_additional_attributes">
          <parameter key="DISTANCE" value="score"/>
        </list>
      </operator>
      <operator activated="true" class="sort" compatibility="5.3.015" expanded="true" height="76" name="Sort" width="90" x="983" y="30">
        <parameter key="attribute_name" value="score"/>
        <parameter key="sorting_direction" value="decreasing"/>
      </operator>
      <operator activated="true" class="filter_example_range" compatibility="5.3.015" expanded="true" height="76" name="Filter Example Range" width="90" x="1117" y="30">
        <parameter key="first_example" value="1"/>
        <parameter key="last_example" value="%{recommendation_no}"/>
      </operator>
      <connect from_op="Retrieve Similarity2_0.01" from_port="output" to_op="Filter Examples" to_port="example set input"/>
      <connect from_op="Filter Examples" from_port="example set output" to_op="Append" to_port="example set 1"/>
      <connect from_op="Filter Examples" from_port="original" to_op="Filter Examples (2)" to_port="example set input"/>
      <connect from_op="Filter Examples (2)" from_port="example set output" to_op="Rename" to_port="example set input"/>
      <connect from_op="Rename" from_port="example set output" to_op="Append" to_port="example set 2"/>
      <connect from_op="Append" from_port="merged set" to_op="Select Attributes" to_port="example set input"/>
      <connect from_op="Select Attributes" from_port="example set output" to_op="Rename (2)" to_port="example set input"/>
      <connect from_op="Rename (2)" from_port="example set output" to_op="Sort" to_port="example set input"/>
      <connect from_op="Sort" from_port="example set output" to_op="Filter Example Range" to_port="example set input"/>
      <connect from_op="Filter Example Range" from_port="example set output" to_port="result 1"/>
      <portSpacing port="source_input 1" spacing="90"/>
      <portSpacing port="sink_result 1" spacing="0"/>
      <portSpacing port="sink_result 2" spacing="0"/>
    </process>
  </operator>
</process>
Logged
Marius
Administrator
Hero Member
*****
Posts: 1794



WWW
« Reply #1 on: December 06, 2013, 01:52:47 PM »

Hi,

you can probably use Loop Examples around your current process. Set the loop_attribute to "FIRST_ID" and iteration_macro to "id" and your process should give recommendations for all ids.

Best regards,
Marius
Logged

Please add [SOLVED] to the topic title when your problem has been solved! (do so by editing the first post in the thread and modifying the title)
Please click here before posting.
elag1985
Guest
« Reply #2 on: December 12, 2013, 09:45:57 PM »

Hi Marius,

thanks for the reply. I figured this out afterall. I jst changed the whole thing.
It took me some time to figrue out that the macro input value is in the xml though. Wink

Best,
Elena
Logged
Marius
Administrator
Hero Member
*****
Posts: 1794



WWW
« Reply #3 on: December 18, 2013, 04:43:07 PM »

Hi Elena,

next time you can directly use the XML: in RapidMiner, go to the View menu -> Show View and make sure that the XML view is visible. There you can simply paste my XML code, and the process will be visible in RapidMiner.

Best regards,
Marius
Logged

Please add [SOLVED] to the topic title when your problem has been solved! (do so by editing the first post in the thread and modifying the title)
Please click here before posting.
Pages: [1]
  Print  
 
Jump to: