RapidMiner Wisdom Banner

"Problem inbedding operator within Feature Selection"

RobertoRoberto Member Posts: 13 Contributor II
edited June 2019 in Help
Hi guys and gals,

I'm trying to use the Feature Selection operator to whittle down a list of the best attributes in a dataset.  However, no matter what supervised learner operator I use to learn on within Feature Selection, I get an error message: "Error in: Binary2MultiClassLearner (Binary2MultiClassLearner) Input example set has no attributes Learning methods require the input example sets to have at least one attribute. If this not the case, applying these operators is pointless. Certain operators like feature selection operators may switch off all attributes. If this happens, learning schemes cannot be applied." 
The problem is my dataset has 997 attributes (according to the data view if I place a breakpoint just prior to stepping into the Feature Selection operator).  Do I have something set up wrong?  My code is attached.

Thanks for the help!
Roberto

[attachment deleted by admin]

Answers

  • RobertoRoberto Member Posts: 13 Contributor II
    I'm copying and pasting my code in because I don't seem to see it attached????

    <operator name="Root" class="Process" expanded="yes">
        <operator name="ExcelExampleSource" class="ExcelExampleSource">
            <parameter key="create_id" value="true"/>
            <parameter key="create_label" value="true"/>
            <parameter key="excel_file" value="D:\Lab Projects\Roberto Lleras\Machine Learning Algorithms\Unsupervised training dataset.xls"/>
            <parameter key="label_column" value="2"/>
            <parameter key="sheet_number" value="3"/>
        </operator>
        <operator name="ExampleSetTranspose" class="ExampleSetTranspose">
        </operator>
        <operator name="ChangeAttributeRole" class="ChangeAttributeRole">
            <parameter key="name" value="Final T stage"/>
            <parameter key="target_role" value="label"/>
        </operator>
        <operator name="ChangeAttributeRole (2)" class="ChangeAttributeRole">
            <parameter key="name" value="Sample"/>
            <parameter key="target_role" value="id"/>
        </operator>
        <operator name="NominalNumbers2Numerical" class="NominalNumbers2Numerical" breakpoints="after">
        </operator>
        <operator name="FeatureSelection" class="FeatureSelection" expanded="yes">
            <operator name="XValidation" class="XValidation" expanded="yes">
                <parameter key="create_complete_model" value="true"/>
                <parameter key="keep_example_set" value="true"/>
                <operator name="Binary2MultiClassLearner" class="Binary2MultiClassLearner" expanded="yes">
                    <parameter key="keep_example_set" value="true"/>
                    <operator name="LibSVMLearner" class="LibSVMLearner">
                        <parameter key="keep_example_set" value="true"/>
                    </operator>
                </operator>
                <operator name="OperatorChain" class="OperatorChain" expanded="yes">
                    <operator name="ModelApplier" class="ModelApplier">
                        <parameter key="keep_model" value="true"/>
                    </operator>
                    <operator name="ClassificationPerformance" class="ClassificationPerformance">
                        <parameter key="absolute_error" value="true"/>
                        <parameter key="accuracy" value="true"/>
                        <parameter key="classification_error" value="true"/>
                        <parameter key="correlation" value="true"/>
                        <parameter key="cross-entropy" value="true"/>
                        <parameter key="kappa" value="true"/>
                        <parameter key="keep_example_set" value="true"/>
                        <parameter key="kendall_tau" value="true"/>
                        <parameter key="logistic_loss" value="true"/>
                        <parameter key="margin" value="true"/>
                        <parameter key="normalized_absolute_error" value="true"/>
                        <parameter key="relative_error" value="true"/>
                        <parameter key="relative_error_lenient" value="true"/>
                        <parameter key="relative_error_strict" value="true"/>
                        <parameter key="root_mean_squared_error" value="true"/>
                        <parameter key="root_relative_squared_error" value="true"/>
                        <parameter key="soft_margin_loss" value="true"/>
                        <parameter key="spearman_rho" value="true"/>
                        <parameter key="squared_correlation" value="true"/>
                        <parameter key="squared_error" value="true"/>
                        <parameter key="weighted_mean_precision" value="true"/>
                        <parameter key="weighted_mean_recall" value="true"/>
                    </operator>
                </operator>
            </operator>
        </operator>
    </operator>
  • RobertoRoberto Member Posts: 13 Contributor II
    Ok, I think I figured out my own problem...

    My guess is that since I was doing a forward selection which initially assumes no attributes are relevant, the inner operator wasnt being passed any attributes initially to train on, hence the crashing.  As soon as I switched to backwards selection, it started working swimmingly, which makes sense (sort of).

    So then my question becomes how would one set up feature selection to work with forward selection?

    Roberto
  • landland RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 2,529   Unicorn
    Hi Roberto,
    I've executed your process, but had to replace the data preprocessing by an exampleSetGenerator. There weren't showing up any error messages. Might this problem result from your data set? Which version of rapidMiner do you use? I tried with the latest stable cvs version.

    Greetings,
      Sebastian
Sign In or Register to comment.