Options

Cannot map index of nominal attribute to nominal value

Legacy UserLegacy User Member Posts: 0 Newbie
edited November 2018 in Help
Hi,

for my mixed learning set containing nominal and numerical attributes and a nominal label (yes/no), I was trying to
grid-optimize parameter 'k' of the NearestNeighbor operator. This is the process XML:

<operator name="Root" class="Process" expanded="yes">
    <operator name="CSVExampleSource" class="CSVExampleSource">
        <parameter key="filename" value="examples.csv"/>
        <parameter key="label_name" value="result"/>
    </operator>
    <operator name="GridParameterOptimization" class="GridParameterOptimization" expanded="yes">
        <list key="parameters">
          <parameter key="NearestNeighbors.k" value="[1.0;3.0;3;linear]"/>
        </list>
        <operator name="XValidation" class="XValidation" expanded="yes">
            <parameter key="sampling_type" value="shuffled sampling"/>
            <operator name="NearestNeighbors" class="NearestNeighbors">
                <parameter key="divergence" value="EuclideanDistance"/>
                <parameter key="k" value="2"/>
                <parameter key="measure_types" value="MixedMeasures"/>
                <parameter key="mixed_measure" value="MixedEuclideanDistance"/>
                <parameter key="nominal_measure" value="NominalDistance"/>
                <parameter key="numerical_measure" value="EuclideanDistance"/>
                <parameter key="weighted_vote" value="true"/>
            </operator>
            <operator name="OperatorChain" class="OperatorChain" expanded="yes">
                <operator name="ModelApplier" class="ModelApplier">
                    <list key="application_parameters">
                    </list>
                </operator>
                <operator name="ClassificationPerformance" class="ClassificationPerformance">
                    <parameter key="absolute_error" value="true"/>
                    <parameter key="accuracy" value="true"/>
                    <list key="class_weights">
                    </list>
                    <parameter key="classification_error" value="true"/>
                </operator>
            </operator>
        </operator>
    </operator>
</operator>
Runnig it, RapidMiner terminates with:

Exception: com.rapidminer.example.AttributeTypeException
Message: Cannot map index of nominal attribute to nominal value: index -2147483648 is out of bounds!
Stack trace:

  com.rapidminer.example.table.PolynominalMapping.mapIndex(PolynominalMapping.java:112)
  com.rapidminer.example.Example.getNominalValue(Example.java:106)
  com.rapidminer.operator.performance.MultiClassificationPerformance.countExample(MultiClassificationPerformance.java:191)
  com.rapidminer.operator.performance.AbstractPerformanceEvaluator.evaluate(AbstractPerformanceEvaluator.java:366)
  com.rapidminer.operator.performance.AbstractPerformanceEvaluator.evaluate(AbstractPerformanceEvaluator.java:297)
  com.rapidminer.operator.performance.AbstractPerformanceEvaluator.apply(AbstractPerformanceEvaluator.java:167)
  com.rapidminer.operator.Operator.apply(Operator.java:663)
  com.rapidminer.operator.OperatorChain.apply(OperatorChain.java:377)
  com.rapidminer.operator.Operator.apply(Operator.java:663)
  com.rapidminer.operator.validation.ValidationChain.evaluate(ValidationChain.java:251)
  com.rapidminer.operator.validation.ValidationChain.evaluate(ValidationChain.java:274)
  com.rapidminer.operator.validation.XValidation.estimatePerformance(XValidation.java:143)
  com.rapidminer.operator.validation.ValidationChain.apply(ValidationChain.java:219)
  com.rapidminer.operator.Operator.apply(Operator.java:663)
  com.rapidminer.operator.meta.ParameterOptimizationOperator.getPerformance(ParameterOptimizationOperator.java:82)
  com.rapidminer.operator.meta.GridSearchParameterOptimizationOperator.apply(GridSearchParameterOptimizationOperator.java:158)
  com.rapidminer.operator.Operator.apply(Operator.java:663)
  com.rapidminer.operator.OperatorChain.apply(OperatorChain.java:377)
  com.rapidminer.operator.Operator.apply(Operator.java:663)
  com.rapidminer.Process.run(Process.java:665)
  com.rapidminer.Process.run(Process.java:635)
  com.rapidminer.Process.run(Process.java:625)
  com.rapidminer.gui.ProcessThread.run(ProcessThread.java:61)
I also got the log message:

G Jan 10, 2009 3:01:34 PM: [Warning] SimpleCriterion: NaN was generated!
Last message repeated 458 times.
G Jan 10, 2009 3:01:34 PM: [Fatal] AttributeTypeException occured in 11th application of ClassificationPerformance (ClassificationPerformance)
G Jan 10, 2009 3:01:34 PM: [Fatal] Process failed: Cannot map index of nominal attribute to nominal value: index -2147483648 is out of bounds!
When I change the range for parameter 'k' to [1..100] the process works fine.

Any ideas what might be wrong or how I can debug it?

Paul

Answers

  • Options
    landland RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 2,531 Unicorn
    Hi Paul,
    I cannot reproduce your error with generated testdata. Could there be a missing value in your nominal attributes, or label?

    Greetings,
      Sebastian
  • Options
    Legacy UserLegacy User Member Posts: 0 Newbie
    Hi Sebastian,

    I've checked my data and could not find any missing attributes nor labels. Is there a possibility to
    debug such a problem with RapidMiner, i.e. to have RM point to that example that produced this
    problem?

    Cheers,
    Paul
  • Options
    landland RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 2,531 Unicorn
    Hi Paul,
    unkown values are counted in the meta data view's last column.
    Simplest solution would be, you send me your data and process, if the data is not confidental.

    Greetings,
      Sebastian
Sign In or Register to comment.