[SOLVED] Access to IOObject

memvis70
memvis70 New Altair Community Member
edited November 2024 in Community Q&A
Hello,

I want to access to the entries of a ConfusionMatrix, so I can visualize the Matrix in my application,
I was trying to get access through the IOObject of the resulting IOContainer, but I didn't find a method.

Can I get access through the IOObject or is there another way to do that?


Thanks a lot for any response in advance!

Regards









Welcome!

It looks like you're new here. Sign in or register to get started.

Answers

  • Marco_Boeck
    Marco_Boeck New Altair Community Member
    Hi,

    the following code snippet might help. You can have a look inside the ConfusionMatrixViewer class and check the ConfusionMatrixViewerTable.

    MultiClassificationPerformance performance = (MultiClassificationPerformance) ioObject;
    ConfusionMatrixViewer viewer = new ConfusionMatrixViewer(performance.getName(), performance.getTitle(), performance.getClassNames(), performance.getCounter());

    Obligatory legal advice:
    Please note that if you are using RapidMiner 5 in your application, it must be released under the AGPL v3. If that is not an option, please contact us for an OEM license.
    The usage of RapidMiner Studio 6 inside your own application always requires an OEM license.

    Regards,
    Marco
  • memvis70
    memvis70 New Altair Community Member
    Hi,

    First of all thank you for your response.

    However I get the following exception:
    java.lang.ClassCastException: com.rapidminer.operator.performance.PerformanceVector cannot be cast to com.rapidminer.operator.performance.MultiClassificationPerformance
    How can I handle this problem?

    Best Regards
  • memvis70
    memvis70 New Altair Community Member
    Is there a way to handle it or any other hint?

    Thanks for any response in advance.
  • Marco_Boeck
    Marco_Boeck New Altair Community Member
    Hi,

    can you please post your process xml?

    Regards,
    Marco
  • memvis70
    memvis70 New Altair Community Member
    Hi Marco,

    the process looks like this:
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <process version="5.3.015">
      <context>
        <input/>
        <output/>
        <macros/>
      </context>
      <operator activated="true" class="process" compatibility="5.3.015" expanded="true" name="Process">
        <parameter key="logverbosity" value="init"/>
        <parameter key="random_seed" value="2001"/>
        <parameter key="send_mail" value="never"/>
        <parameter key="notification_email" value=""/>
        <parameter key="process_duration_for_mail" value="30"/>
        <parameter key="encoding" value="SYSTEM"/>
        <process expanded="true">
          <operator activated="true" class="retrieve" compatibility="5.3.015" expanded="true" height="60" name="Retrieve A" width="90" x="112" y="75">
            <parameter key="repository_entry" value="//Local Repository/A"/>
          </operator>
          <operator activated="true" class="retrieve" compatibility="5.3.015" expanded="true" height="60" name="Retrieve B" width="90" x="112" y="210">
            <parameter key="repository_entry" value="//Local Repository/B"/>
          </operator>
          <operator activated="true" class="join" compatibility="5.3.015" expanded="true" height="76" name="Join" width="90" x="313" y="120">
            <parameter key="remove_double_attributes" value="true"/>
            <parameter key="join_type" value="inner"/>
            <parameter key="use_id_attribute_as_key" value="true"/>
            <list key="key_attributes"/>
            <parameter key="keep_both_join_attributes" value="false"/>
          </operator>
          <operator activated="true" class="x_validation" compatibility="5.3.015" expanded="true" height="112" name="Validation" width="90" x="514" y="30">
            <parameter key="create_complete_model" value="false"/>
            <parameter key="average_performances_only" value="true"/>
            <parameter key="leave_one_out" value="false"/>
            <parameter key="number_of_validations" value="10"/>
            <parameter key="sampling_type" value="stratified sampling"/>
            <parameter key="use_local_random_seed" value="false"/>
            <parameter key="local_random_seed" value="1992"/>
            <process expanded="true">
              <operator activated="true" class="decision_tree" compatibility="5.3.015" expanded="true" height="76" name="Decision Tree" width="90" x="179" y="165">
                <parameter key="criterion" value="accuracy"/>
                <parameter key="minimal_size_for_split" value="4"/>
                <parameter key="minimal_leaf_size" value="2"/>
                <parameter key="minimal_gain" value="0.1"/>
                <parameter key="maximal_depth" value="20"/>
                <parameter key="confidence" value="0.25"/>
                <parameter key="number_of_prepruning_alternatives" value="3"/>
                <parameter key="no_pre_pruning" value="false"/>
                <parameter key="no_pruning" value="false"/>
              </operator>
              <connect from_port="training" to_op="Decision Tree" to_port="training set"/>
              <connect from_op="Decision Tree" from_port="model" to_port="model"/>
              <portSpacing port="source_training" spacing="0"/>
              <portSpacing port="sink_model" spacing="0"/>
              <portSpacing port="sink_through 1" spacing="0"/>
            </process>
            <process expanded="true">
              <operator activated="true" class="apply_model" compatibility="5.3.015" expanded="true" height="76" name="Apply Model" width="90" x="112" y="75">
                <list key="application_parameters"/>
                <parameter key="create_view" value="false"/>
              </operator>
              <operator activated="true" class="performance" compatibility="5.3.015" expanded="true" height="76" name="Performance" width="90" x="112" y="300">
                <parameter key="use_example_weights" value="true"/>
              </operator>
              <connect from_port="model" to_op="Apply Model" to_port="model"/>
              <connect from_port="test set" to_op="Apply Model" to_port="unlabelled data"/>
              <connect from_op="Apply Model" from_port="labelled data" to_op="Performance" to_port="labelled data"/>
              <connect from_op="Performance" from_port="performance" to_port="averagable 1"/>
              <portSpacing port="source_model" spacing="0"/>
              <portSpacing port="source_test set" spacing="0"/>
              <portSpacing port="source_through 1" spacing="0"/>
              <portSpacing port="sink_averagable 1" spacing="0"/>
              <portSpacing port="sink_averagable 2" spacing="0"/>
            </process>
          </operator>
          <connect from_op="Retrieve A" from_port="output" to_op="Join" to_port="left"/>
          <connect from_op="Retrieve B" from_port="output" to_op="Join" to_port="right"/>
          <connect from_op="Join" from_port="join" to_op="Validation" to_port="training"/>
          <connect from_op="Validation" from_port="model" to_port="result 1"/>
          <connect from_op="Validation" from_port="training" to_port="result 2"/>
          <connect from_op="Validation" from_port="averagable 1" to_port="result 3"/>
          <portSpacing port="source_input 1" spacing="0"/>
          <portSpacing port="sink_result 1" spacing="0"/>
          <portSpacing port="sink_result 2" spacing="0"/>
          <portSpacing port="sink_result 3" spacing="0"/>
          <portSpacing port="sink_result 4" spacing="0"/>
        </process>
      </operator>
    </process>
  • Marco_Boeck
    Marco_Boeck New Altair Community Member
    Hi,

    you can get the PerformanceVector by doing this:

    PerformanceVector performance = (PerformanceVector) ioObject;
    You can also have a look at the PerformanceVectorRenderer class in the createReportable() method which calls the performanceVector.getCriterion() methods.

    Regards,
    Marco

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.