GenerateAttributes cannot read GenerateGaussians output ?

harrisharris Member Posts: 8 Contributor II
edited November 2018 in Help
Hi rapidminers.

I apply GenerateGaussians operator on the 62 dependent attributes of a random example set:
  <operator activated="true" class="generate_gaussians" expanded="true" height="76" name="GenGau#1" width="90" x="313" y="30">
    <parameter key="attribute_filter_type" value="subset"/>
    <parameter key="attributes" value="a9|a8|a7|a62|a61|a60|a6|a59|a58|a57|a56|a55|a54|a53|a52|a51|a50|a5|a49|a48|a47|a46|a45|a44|a43|a42|a41|a40|a4|a39|a38|a37|a36|a35|a34|a33|a32|a31|a30|a3|a29|a28|a27|a26|a25|a24|a23|a22|a21|a20|a2|a19|a18|a17|a16|a15|a14|a13|a12|a11|a10|a1"/>
    <parameter key="mean" value="0.0"/>
    <parameter key="sigma" value="1.0"/>
  </operator>

Since outputted gaussian-transformed attributes are of format 'gauss (a1, [mean], [sigma])' and GenerateAttributes is known to not accept att names with either parentheses or blanks, I apply Rename by Replacing operator to give acceptable 'gauss_a1' att names.

Good and well, but when I then try to have GenerateAttributes read the renamed attributes:
  <operator activated="true" class="generate_attributes" expanded="true" height="76" name="Generate Attributes" width="90" x="849" y="30">
    <list key="function_descriptions">
      <parameter key="a1_gauss1" value="1-gauss_a1"/>
      <parameter key="a2_gauss1" value="1-gauss_a2"/>
...
    </list>
    <parameter key="use_standard_constants" value="false"/>
    <parameter key="keep_all" value="true"/>
  </operator>

it gives 'No such attribute: 'gauss_a1' even though resultset after renaming does contain such an attribute.

What am I missing ?
thanks, Harri S

Answers

  • wesselwessel Member Posts: 537 Maven
    Hey Harri,

    Good to see you have discovered Rapid Miner.
    What I often do is use the "Store" and "Retrieve" operator after renaming (or other weird) operations.
    Rapid Miner is not able to successfully update meta information, so it does not remember the proper names of attributes.
    When using store and retrieve the meta information does get updated.

    *When I tested this out in the xml pasted below, Rapid Miner was able to update the attribute names after renaming.
    So maybe downloading the latest version will also fix the problem.

    image

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <process version="5.1.009">
      <context>
        <input/>
        <output/>
        <macros/>
      </context>
      <operator activated="true" class="process" compatibility="5.1.009" expanded="true" name="Process">
        <process expanded="true" height="409" width="681">
          <operator activated="true" class="retrieve" compatibility="5.1.009" expanded="true" height="60" name="Retrieve" width="90" x="45" y="30">
            <parameter key="repository_entry" value="//Samples/data/Polynomial"/>
          </operator>
          <operator activated="true" class="generate_gaussians" compatibility="5.1.009" expanded="true" height="76" name="Generate Gaussians" width="90" x="180" y="30">
            <parameter key="attribute_filter_type" value="subset"/>
            <parameter key="attributes" value="|a5|a4|a3|a2|a1"/>
          </operator>
          <operator activated="true" class="rename_by_replacing" compatibility="5.1.009" expanded="true" height="76" name="Rename by Replacing" width="90" x="315" y="30">
            <parameter key="replace_what" value="\(|\)|,"/>
            <parameter key="replace_by" value="_"/>
          </operator>
          <operator activated="true" class="generate_attributes" compatibility="5.1.009" expanded="true" height="76" name="Generate Attributes" width="90" x="450" y="30">
            <list key="function_descriptions"/>
          </operator>
          <connect from_op="Retrieve" from_port="output" to_op="Generate Gaussians" to_port="example set input"/>
          <connect from_op="Generate Gaussians" from_port="example set output" to_op="Rename by Replacing" to_port="example set input"/>
          <connect from_op="Rename by Replacing" from_port="example set output" to_op="Generate Attributes" to_port="example set input"/>
          <connect from_op="Generate Attributes" from_port="example set output" 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>
  • harrisharris Member Posts: 8 Contributor II
    thanks wessel, after 'run as admin' execution of latest rapidminer it explains the error: 'An operator failed to generate a new attribute which is calculated on the fly' so it's indeed about updating the metainfo but the problem persists even after the suggested fixes: i.e. submitted Rename* output to Store and then to get that repo entry tried both Retrieve, Recall and Remember prior to GenerateAttributes with no luck: 'no such attribute'

    but then joy with WriteCSV->ReadCSV sequence inserted after rename ops which cleared the metadata update issue (which MetaDataView oddly doesn't give clues of) (appreciate your help but kindly refrain from calling weird specific things that are current properties or capabilities of software or human learners)

    best, Harri
Sign In or Register to comment.