How do you Trouble Shoot "Object retrieval not possible"

tmarcinellitmarcinelli Member Posts: 3 Contributor I

Hello,

Need Trouble Shooting help with  "Object retrieval not possible" error.

Going thru RapidMiner tutorials... doing video tutorial named:  "Automated Model Selection & Optimization"

 

I have done everything in video, but get error on When I run, the "RECALL" object says no object with the name I named was found (I named 3 Recall objects per tutorial)

... I have poured over correct process per sample downloaded process, but can see no difference... Yet sample runs, mine comes up with error.

I have included my process XML file.  Would appreciate any help.

 

Thank you,

Tony

Best Answer

  • gmeiergmeier Employee, Member Posts: 25 RM Engineering
    Solution Accepted

    Hi tmarcinelli,

     

    there are two differences between the instructor process and your process:

    • The Recall operators in the instructor process have not selected remove from store but you have. The subprocess in Compare ROCs is executed more than once so the removal prevents from finding the object the second time.
    • The outer Optimize Parameter operator in the instructor process has not selected enable parallel execution but you have. That this must be unselected might be a bug, I will check this.

    When changing these two parameter settings, your process works for me.

     

Answers

  • lionelderkrikorlionelderkrikor Moderator, RapidMiner Certified Analyst, Member Posts: 1,195 Unicorn

    Hi @tmarcinelli,

     

    Can you share or tell us where we can find the data set "Customer data" in order we can reproduce this error ?

     

    Regards,

     

    Lionel

  • lionelderkrikorlionelderkrikor Moderator, RapidMiner Certified Analyst, Member Posts: 1,195 Unicorn

    Hi again  @tmarcinelli, and hello dear all

     

    I recovered the dataset.

    1. It seems you discovered a strange behaviour : 

    In deed, it seems that, if the Remember operator is too "deep" inside Subprocesses, 

    the Recall operator can't retrieve the object and RapidMiner raise the error of the subject of this topic.

     

    In deed, by going up the information to the Process level via the output ports of the Subprocesses, and connecting the final output

    port to the Remember operator, the first Recall operator is not rising an error anymore... The problem is : I can't use only one outport of the Subprocesses, so the 2nd and 3th Recall operators are rising  the error above.

     

    2. No activation of all output ports in subprocesses operators : 

    When we connect several output ports inside a subprocess, only one ouput port is activated outside the subprocess : 

    Model_selection_Optimization.png

     

    but outside the subprocess, only one output port is activated : 

    Model_selection_Optimization_2.png

    What do you think ?

     

    It's maybe a little difficult to understand, the best is to execute the process : 

    <?xml version="1.0" encoding="UTF-8"?><process version="8.1.003">
    <context>
    <input/>
    <output/>
    <macros/>
    </context>
    <operator activated="true" class="process" compatibility="8.1.003" expanded="true" name="Process">
    <process expanded="true">
    <operator activated="true" class="retrieve" compatibility="8.1.003" expanded="true" height="68" name="Retrieve customer data" width="90" x="45" y="34">
    <parameter key="repository_entry" value="//Ma premiere prediction/Data/customer data"/>
    </operator>
    <operator activated="true" class="filter_examples" compatibility="8.1.003" expanded="true" height="103" name="Filter Examples" width="90" x="179" y="34">
    <list key="filters_list">
    <parameter key="filters_entry_key" value="Churn.is_not_missing."/>
    </list>
    </operator>
    <operator activated="true" class="multiply" compatibility="8.1.003" expanded="true" height="103" name="Multiply" width="90" x="313" y="34"/>
    <operator activated="true" class="concurrency:optimize_parameters_grid" compatibility="8.1.003" expanded="true" height="187" name="Optimize Parameters (Grid)" width="90" x="514" y="34">
    <list key="parameters">
    <parameter key="Select Subprocess.select_which" value="[1.0;3;3;linear]"/>
    </list>
    <process expanded="true">
    <operator activated="true" class="select_subprocess" compatibility="8.1.003" expanded="true" height="145" name="Select Subprocess" width="90" x="313" y="34">
    <parameter key="select_which" value="2"/>
    <process expanded="true">
    <operator activated="true" class="concurrency:optimize_parameters_grid" compatibility="8.1.003" expanded="true" height="124" name="Optimize Parameters DT" width="90" x="45" y="34">
    <list key="parameters">
    <parameter key="Decision Tree (3).criterion" value="gain_ratio,information_gain,gini_index,accuracy"/>
    <parameter key="Decision Tree (3).minimal_gain" value="[.01;1;100;linear]"/>
    </list>
    <process expanded="true">
    <operator activated="true" class="concurrency:cross_validation" compatibility="8.1.003" expanded="true" height="145" name="Cross Validation" width="90" x="447" y="34">
    <process expanded="true">
    <operator activated="true" class="concurrency:parallel_decision_tree" compatibility="8.1.003" expanded="true" height="103" name="Decision Tree (3)" width="90" x="112" y="34">
    <parameter key="criterion" value="accuracy"/>
    <parameter key="minimal_gain" value="0.1288"/>
    </operator>
    <connect from_port="training set" to_op="Decision Tree (3)" to_port="training set"/>
    <connect from_op="Decision Tree (3)" from_port="model" to_port="model"/>
    <portSpacing port="source_training set" 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="8.1.003" expanded="true" height="82" name="Apply Model" width="90" x="112" y="34">
    <list key="application_parameters"/>
    </operator>
    <operator activated="true" class="performance" compatibility="8.1.003" expanded="true" height="82" name="Performance" width="90" x="313" y="34"/>
    <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="performance 1"/>
    <connect from_op="Performance" from_port="example set" to_port="test set results"/>
    <portSpacing port="source_model" spacing="0"/>
    <portSpacing port="source_test set" spacing="0"/>
    <portSpacing port="source_through 1" spacing="0"/>
    <portSpacing port="sink_test set results" spacing="0"/>
    <portSpacing port="sink_performance 1" spacing="0"/>
    <portSpacing port="sink_performance 2" spacing="0"/>
    </process>
    </operator>
    <operator activated="true" class="log" compatibility="8.1.003" expanded="true" height="82" name="Log" width="90" x="648" y="85">
    <list key="log">
    <parameter key="Gain" value="operator.Decision Tree.parameter.minimal_gain"/>
    <parameter key="Criterion" value="operator.Decision Tree.parameter.criterion"/>
    <parameter key="Iteration" value="operator.Cross Validation.value.applycount"/>
    <parameter key="Performance" value="operator.Cross Validation.value.performance main criterion"/>
    </list>
    </operator>
    <connect from_port="input 1" to_op="Cross Validation" to_port="example set"/>
    <connect from_op="Cross Validation" from_port="performance 1" to_op="Log" to_port="through 1"/>
    <connect from_op="Log" from_port="through 1" to_port="performance"/>
    <portSpacing port="source_input 1" spacing="0"/>
    <portSpacing port="source_input 2" spacing="0"/>
    <portSpacing port="sink_performance" spacing="0"/>
    <portSpacing port="sink_model" spacing="0"/>
    <portSpacing port="sink_output 1" spacing="0"/>
    </process>
    </operator>
    <operator activated="false" class="remember" compatibility="8.1.003" expanded="true" height="68" name="Remember" width="90" x="179" y="136">
    <parameter key="name" value="DT"/>
    <parameter key="io_object" value="ParameterSet"/>
    </operator>
    <connect from_port="input 1" to_op="Optimize Parameters DT" to_port="input 1"/>
    <connect from_op="Optimize Parameters DT" from_port="performance" to_port="output 1"/>
    <connect from_op="Optimize Parameters DT" from_port="parameter set" to_port="output 2"/>
    <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"/>
    <portSpacing port="sink_output 3" spacing="0"/>
    <portSpacing port="sink_output 4" spacing="0"/>
    <portSpacing port="sink_output 5" spacing="0"/>
    </process>
    <process expanded="true">
    <operator activated="true" class="concurrency:optimize_parameters_grid" compatibility="8.1.003" expanded="true" height="124" name="Optimize Parameters RF" width="90" x="45" y="34">
    <list key="parameters">
    <parameter key="Random Forest (2).number_of_trees" value="[1.0;10;10;linear]"/>
    </list>
    <process expanded="true">
    <operator activated="true" class="concurrency:cross_validation" compatibility="8.1.003" expanded="true" height="145" name="Cross Validation (2)" width="90" x="447" y="34">
    <process expanded="true">
    <operator activated="true" class="concurrency:parallel_random_forest" compatibility="8.1.003" expanded="true" height="103" name="Random Forest (2)" width="90" x="112" y="34"/>
    <connect from_port="training set" to_op="Random Forest (2)" to_port="training set"/>
    <connect from_op="Random Forest (2)" from_port="model" to_port="model"/>
    <portSpacing port="source_training set" 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="8.1.003" expanded="true" height="82" name="Apply Model (2)" width="90" x="112" y="34">
    <list key="application_parameters"/>
    </operator>
    <operator activated="true" class="performance" compatibility="8.1.003" expanded="true" height="82" name="Performance (2)" width="90" x="313" y="34"/>
    <connect from_port="model" to_op="Apply Model (2)" to_port="model"/>
    <connect from_port="test set" to_op="Apply Model (2)" to_port="unlabelled data"/>
    <connect from_op="Apply Model (2)" from_port="labelled data" to_op="Performance (2)" to_port="labelled data"/>
    <connect from_op="Performance (2)" from_port="performance" to_port="performance 1"/>
    <connect from_op="Performance (2)" from_port="example set" to_port="test set results"/>
    <portSpacing port="source_model" spacing="0"/>
    <portSpacing port="source_test set" spacing="0"/>
    <portSpacing port="source_through 1" spacing="0"/>
    <portSpacing port="sink_test set results" spacing="0"/>
    <portSpacing port="sink_performance 1" spacing="0"/>
    <portSpacing port="sink_performance 2" spacing="0"/>
    </process>
    </operator>
    <connect from_port="input 1" to_op="Cross Validation (2)" to_port="example set"/>
    <connect from_op="Cross Validation (2)" from_port="performance 1" to_port="performance"/>
    <portSpacing port="source_input 1" spacing="0"/>
    <portSpacing port="source_input 2" spacing="0"/>
    <portSpacing port="sink_performance" spacing="0"/>
    <portSpacing port="sink_model" spacing="0"/>
    <portSpacing port="sink_output 1" spacing="0"/>
    </process>
    </operator>
    <operator activated="false" class="remember" compatibility="8.1.003" expanded="true" height="68" name="Remember (2)" width="90" x="179" y="136">
    <parameter key="name" value="RF"/>
    <parameter key="io_object" value="ParameterSet"/>
    </operator>
    <connect from_port="input 1" to_op="Optimize Parameters RF" to_port="input 1"/>
    <connect from_op="Optimize Parameters RF" from_port="parameter set" to_port="output 3"/>
    <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"/>
    <portSpacing port="sink_output 3" spacing="0"/>
    <portSpacing port="sink_output 4" spacing="0"/>
    <portSpacing port="sink_output 5" spacing="0"/>
    </process>
    <process expanded="true">
    <operator activated="true" class="concurrency:optimize_parameters_grid" compatibility="8.1.003" expanded="true" height="124" name="Optimize Parameters RI" width="90" x="45" y="34">
    <list key="parameters">
    <parameter key="Rule Induction (2).minimal_prune_benefit" value="[0.0;1.0;10;linear]"/>
    </list>
    <process expanded="true">
    <operator activated="true" class="concurrency:cross_validation" compatibility="8.1.003" expanded="true" height="145" name="Cross Validation (3)" width="90" x="447" y="34">
    <process expanded="true">
    <operator activated="true" class="rule_induction" compatibility="8.1.003" expanded="true" height="82" name="Rule Induction (2)" width="90" x="112" y="34">
    <parameter key="minimal_prune_benefit" value="0.0"/>
    </operator>
    <connect from_port="training set" to_op="Rule Induction (2)" to_port="training set"/>
    <connect from_op="Rule Induction (2)" from_port="model" to_port="model"/>
    <portSpacing port="source_training set" 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="8.1.003" expanded="true" height="82" name="Apply Model (3)" width="90" x="112" y="34">
    <list key="application_parameters"/>
    </operator>
    <operator activated="true" class="performance" compatibility="8.1.003" expanded="true" height="82" name="Performance (3)" width="90" x="313" y="34"/>
    <connect from_port="model" to_op="Apply Model (3)" to_port="model"/>
    <connect from_port="test set" to_op="Apply Model (3)" to_port="unlabelled data"/>
    <connect from_op="Apply Model (3)" from_port="labelled data" to_op="Performance (3)" to_port="labelled data"/>
    <connect from_op="Performance (3)" from_port="performance" to_port="performance 1"/>
    <connect from_op="Performance (3)" from_port="example set" to_port="test set results"/>
    <portSpacing port="source_model" spacing="0"/>
    <portSpacing port="source_test set" spacing="0"/>
    <portSpacing port="source_through 1" spacing="0"/>
    <portSpacing port="sink_test set results" spacing="0"/>
    <portSpacing port="sink_performance 1" spacing="0"/>
    <portSpacing port="sink_performance 2" spacing="0"/>
    </process>
    </operator>
    <connect from_port="input 1" to_op="Cross Validation (3)" to_port="example set"/>
    <connect from_op="Cross Validation (3)" from_port="performance 1" to_port="performance"/>
    <portSpacing port="source_input 1" spacing="0"/>
    <portSpacing port="source_input 2" spacing="0"/>
    <portSpacing port="sink_performance" spacing="0"/>
    <portSpacing port="sink_model" spacing="0"/>
    <portSpacing port="sink_output 1" spacing="0"/>
    </process>
    </operator>
    <operator activated="false" class="remember" compatibility="8.1.003" expanded="true" height="68" name="Remember (3)" width="90" x="179" y="187">
    <parameter key="name" value="RI"/>
    <parameter key="io_object" value="ParameterSet"/>
    </operator>
    <connect from_port="input 1" to_op="Optimize Parameters RI" to_port="input 1"/>
    <connect from_op="Optimize Parameters RI" from_port="performance" to_port="output 1"/>
    <connect from_op="Optimize Parameters RI" from_port="parameter set" to_port="output 4"/>
    <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"/>
    <portSpacing port="sink_output 3" spacing="0"/>
    <portSpacing port="sink_output 4" spacing="0"/>
    <portSpacing port="sink_output 5" spacing="0"/>
    </process>
    </operator>
    <connect from_port="input 1" to_op="Select Subprocess" to_port="input 1"/>
    <connect from_op="Select Subprocess" from_port="output 1" to_port="performance"/>
    <connect from_op="Select Subprocess" from_port="output 2" to_port="output 1"/>
    <connect from_op="Select Subprocess" from_port="output 3" to_port="output 2"/>
    <connect from_op="Select Subprocess" from_port="output 4" to_port="output 3"/>
    <portSpacing port="source_input 1" spacing="0"/>
    <portSpacing port="source_input 2" spacing="0"/>
    <portSpacing port="sink_performance" spacing="0"/>
    <portSpacing port="sink_model" spacing="0"/>
    <portSpacing port="sink_output 1" spacing="0"/>
    <portSpacing port="sink_output 2" spacing="0"/>
    <portSpacing port="sink_output 3" spacing="0"/>
    <portSpacing port="sink_output 4" spacing="0"/>
    </process>
    </operator>
    <operator activated="true" class="remember" compatibility="8.1.003" expanded="true" height="68" name="Remember (4)" width="90" x="715" y="85">
    <parameter key="name" value="DT"/>
    <parameter key="io_object" value="ParameterSet"/>
    </operator>
    <operator activated="false" class="remember" compatibility="8.1.003" expanded="true" height="68" name="Remember (6)" width="90" x="715" y="187">
    <parameter key="name" value="RF"/>
    <parameter key="io_object" value="ParameterSet"/>
    </operator>
    <operator activated="false" class="remember" compatibility="8.1.003" expanded="true" height="68" name="Remember (5)" width="90" x="916" y="136">
    <parameter key="name" value="RI"/>
    <parameter key="io_object" value="ParameterSet"/>
    </operator>
    <operator activated="true" class="compare_rocs" compatibility="8.1.003" expanded="true" height="82" name="Compare ROCs" width="90" x="581" y="493">
    <process expanded="true">
    <operator activated="true" class="recall" compatibility="8.1.003" expanded="true" height="68" name="Recall" width="90" x="179" y="136">
    <parameter key="name" value="DT"/>
    <parameter key="io_object" value="ParameterSet"/>
    </operator>
    <operator activated="true" class="set_parameters" compatibility="8.1.003" expanded="true" height="82" name="Set Parameters" width="90" x="313" y="136">
    <list key="name_map">
    <parameter key="Optimize Parameters DT" value="Decision Tree ROC"/>
    </list>
    </operator>
    <operator activated="true" class="concurrency:parallel_decision_tree" compatibility="8.1.003" expanded="true" height="103" name="Decision Tree ROC" width="90" x="447" y="34"/>
    <operator activated="true" class="recall" compatibility="8.1.003" expanded="true" height="68" name="Recall (2)" width="90" x="45" y="646">
    <parameter key="name" value="RF"/>
    <parameter key="io_object" value="ParameterSet"/>
    </operator>
    <operator activated="true" class="set_parameters" compatibility="8.1.003" expanded="true" height="82" name="Set Parameters (3)" width="90" x="246" y="646">
    <list key="name_map">
    <parameter key="Optimize Parameters RF" value="Random Forest ROC"/>
    </list>
    </operator>
    <operator activated="true" class="concurrency:parallel_random_forest" compatibility="8.1.003" expanded="true" height="103" name="Random Forest" width="90" x="447" y="595"/>
    <operator activated="true" class="recall" compatibility="8.1.003" expanded="true" height="68" name="Recall (3)" width="90" x="45" y="391">
    <parameter key="name" value="RI"/>
    <parameter key="io_object" value="ParameterSet"/>
    </operator>
    <operator activated="true" class="set_parameters" compatibility="8.1.003" expanded="true" height="82" name="Set Parameters (2)" width="90" x="246" y="391">
    <list key="name_map">
    <parameter key="Optimize Parameters RI" value="Rule Induction ROC"/>
    </list>
    </operator>
    <operator activated="true" class="rule_induction" compatibility="8.1.003" expanded="true" height="82" name="Rule Induction" width="90" x="447" y="340"/>
    <connect from_port="train 1" to_op="Decision Tree ROC" to_port="training set"/>
    <connect from_port="train 2" to_op="Rule Induction" to_port="training set"/>
    <connect from_port="train 3" to_op="Random Forest" to_port="training set"/>
    <connect from_op="Recall" from_port="result" to_op="Set Parameters" to_port="parameter set"/>
    <connect from_op="Decision Tree ROC" from_port="model" to_port="model 1"/>
    <connect from_op="Recall (2)" from_port="result" to_op="Set Parameters (3)" to_port="parameter set"/>
    <connect from_op="Random Forest" from_port="model" to_port="model 3"/>
    <connect from_op="Recall (3)" from_port="result" to_op="Set Parameters (2)" to_port="parameter set"/>
    <connect from_op="Rule Induction" from_port="model" to_port="model 2"/>
    <portSpacing port="source_train 1" spacing="0"/>
    <portSpacing port="source_train 2" spacing="168"/>
    <portSpacing port="source_train 3" spacing="273"/>
    <portSpacing port="source_train 4" spacing="0"/>
    <portSpacing port="sink_model 1" spacing="0"/>
    <portSpacing port="sink_model 2" spacing="0"/>
    <portSpacing port="sink_model 3" spacing="0"/>
    <portSpacing port="sink_model 4" spacing="0"/>
    </process>
    </operator>
    <connect from_op="Retrieve customer data" from_port="output" to_op="Filter Examples" to_port="example set input"/>
    <connect from_op="Filter Examples" from_port="example set output" to_op="Multiply" to_port="input"/>
    <connect from_op="Multiply" from_port="output 1" to_op="Optimize Parameters (Grid)" to_port="input 1"/>
    <connect from_op="Multiply" from_port="output 2" to_op="Compare ROCs" to_port="example set"/>
    <connect from_op="Optimize Parameters (Grid)" from_port="performance" to_port="result 1"/>
    <connect from_op="Optimize Parameters (Grid)" from_port="output 1" to_op="Remember (4)" to_port="store"/>
    <connect from_op="Compare ROCs" from_port="rocComparison" to_port="result 2"/>
    <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"/>
    </process>
    </operator>
    </process>

    the dataset is in attached file.

     

    What do you think about all these elements.

     

    Thanks you for your help,

     

    Regards,

     

    Lionel

     

     

  • tmarcinellitmarcinelli Member Posts: 3 Contributor I

    Lionel,

    Appreciate your help.  Let me clarify that the tutorial instructors process does work, and mine does not.  I cannont tell why.  Attached are 3 files

    1. Customer data in excel.  Need to import with field Churn as a label
    2. My process that I am trying to do along with video, that throws error 
    3. Instructor process that does work without any issues (both have same deeply imbedded "Remember" operators)

    I do not know what is different about my process vs. instructors process(except I named "Remember" operators differently, but originally named them exactly same as instructor did and neither of my attempts worked)

     

    I ran your file, but I still get an error.

    Thank you,

    Tony

  • tmarcinellitmarcinelli Member Posts: 3 Contributor I

    gmeier,

    Thank you, that did it !!    Good to get it working.  Any shortcuts to identifying errors?

    As a lot is happening under the RapidMiner hood, It is important for me to be able to troubleshoot errors.  And learn good error catching methods.

     

    Really appreciate the help.  

    Tony

  • Edin_KlapicEdin_Klapic Moderator, Employee, RMResearcher, Member Posts: 299 RM Data Scientist

    Hi @tmarcinelli,

     

    I follow this approach for troubleshooting:

    1. Make sure that I have understood the error message.
    2. Identify the exact moment when the error occurs. The following methods help here:
      1. The green checkmarks displayed at the Operator indicate that the Operator has been executed sucessfully, so you need to find the first Operator not having the checkmark
      2. If you have unconnected Operators "Show execution order" helps to see if something is acting weird
      3. Every error message is also displayed in the Panel Log which can be activated in the View menu of the toolbar.
    3. Set a Breakpoint either at the end of the previous Operator or before the Operator producing the error
    4. Perhaps the Help panel and / or the integrated Tutorial process for the Operator gives me a hint what is the problem.

    If these approaches do not help - Either go the community and search for the error or google it. Also all community posts can be found on Google as well.

     

    Hope this helps.

     

    Happy Mining,

    Edin

Sign In or Register to comment.