How to count number of features in Optimize Selection?

Fred12Fred12 Member Posts: 344 Unicorn
edited November 2018 in Help


I use forward selection in optimize selection operator, but I'd like to plot the performance with the number of attributes in a chart...

however, unlike in the Forward Selection operator, there is no such parameter "number of attributes" that one can log...

I therefore tried to use some function like COUNT(feature_names) or so with the generate Attributes operator, but that function does not exist... so how can I count the number of attributes in that operator???


Best Answer

  • Options
    IngoRMIngoRM Administrator, Moderator, Employee, RapidMiner Certified Analyst, RapidMiner Certified Expert, Community Manager, RMResearcher, Member, University Professor Posts: 1,751 RM Founder
    Solution Accepted



    The operator "Performance (Attribute Count)" should do the trick and also provide a value to log.  The process below shows you how to use it.





    <?xml version="1.0" encoding="UTF-8"?><process version="7.4.000">
    <operator activated="true" class="process" compatibility="7.4.000" expanded="true" name="Process">
    <process expanded="true">
    <operator activated="true" class="retrieve" compatibility="7.4.000" expanded="true" height="68" name="Retrieve Sonar" width="90" x="45" y="34">
    <parameter key="repository_entry" value="//Samples/data/Sonar"/>
    <operator activated="true" class="optimize_selection" compatibility="7.4.000" expanded="true" height="103" name="Optimize Selection" width="90" x="179" y="34">
    <process expanded="true">
    <operator activated="true" class="concurrency:cross_validation" compatibility="7.4.000" expanded="true" height="145" name="Validation" width="90" x="45" y="34">
    <parameter key="sampling_type" value="stratified sampling"/>
    <process expanded="true">
    <operator activated="true" class="concurrency:parallel_decision_tree" compatibility="7.4.000" expanded="true" height="82" name="Decision Tree" width="90" x="45" y="34"/>
    <connect from_port="training set" to_op="Decision Tree" to_port="training set"/>
    <connect from_op="Decision Tree" 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"/>
    <description align="left" color="green" colored="true" height="80" resized="true" width="248" x="37" y="137">In the training phase, a model is built on the current training data set. (90 % of data by default, 10 times)</description>
    <process expanded="true">
    <operator activated="true" class="apply_model" compatibility="7.4.000" expanded="true" height="82" name="Apply Model" width="90" x="45" y="34">
    <list key="application_parameters"/>
    <operator activated="true" class="performance" compatibility="7.4.000" expanded="true" height="82" name="Performance" width="90" x="179" 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"/>
    <description align="left" color="blue" colored="true" height="103" resized="true" width="315" x="38" y="137">The model created in the Training step is applied to the current test set (10 %).&lt;br/&gt;The performance is evaluated and sent to the operator results.</description>
    <description align="center" color="transparent" colored="false" width="126">A cross-validation evaluating a decision tree model.</description>
    <operator activated="true" class="performance_attribute_count" compatibility="7.4.000" expanded="true" height="82" name="Performance (2)" width="90" x="179" y="34"/>
    <operator activated="true" class="log" compatibility="7.4.000" expanded="true" height="82" name="Log" width="90" x="313" y="34">
    <list key="log">
    <parameter key="attributes" value="operator.Performance (2).value.attributes"/>
    <parameter key="performance" value="operator.Validation.value.performance 1"/>
    <parameter key="iteration" value="operator.Optimize Selection.value.generation"/>
    <connect from_port="example set" to_op="Validation" to_port="example set"/>
    <connect from_op="Validation" from_port="example set" to_op="Performance (2)" to_port="example set"/>
    <connect from_op="Validation" from_port="performance 1" to_op="Performance (2)" to_port="performance"/>
    <connect from_op="Performance (2)" from_port="performance" to_op="Log" to_port="through 1"/>
    <connect from_op="Log" from_port="through 1" to_port="performance"/>
    <portSpacing port="source_example set" spacing="0"/>
    <portSpacing port="source_through 1" spacing="0"/>
    <portSpacing port="sink_performance" spacing="0"/>
    <connect from_op="Retrieve Sonar" from_port="output" to_op="Optimize Selection" to_port="example set in"/>
    <connect from_op="Optimize Selection" from_port="weights" 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"/>


  • Options
    Fred12Fred12 Member Posts: 344 Unicorn

    is there any solution to that? can anybody help?

  • Options
    Fred12Fred12 Member Posts: 344 Unicorn

    very nice, thanks

Sign In or Register to comment.