Cannot map index of nominal attribute to nominal value

Legacy User
Legacy User New Altair Community Member
edited November 5 in Community Q&A
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
Tagged:

Answers

  • land
    land New Altair Community Member
    Hi Paul,
    I cannot reproduce your error with generated testdata. Could there be a missing value in your nominal attributes, or label?

    Greetings,
      Sebastian
  • Legacy User
    Legacy User New Altair Community Member
    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
  • land
    land New Altair Community Member
    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