Mahout随机森林数据描述错误



当尝试运行Mahout随机森林描述符时,我得到以下错误:
注:我正试图运行在一个不同的集合(不是在链接上提供的)
使用的描述符是:

hadoop jar /home/ubuntu/binaries/mahout-distribution-0.9/mahout-core-0.9-job.jar org.apache.mahout.classifier.df.tools.Describe -p /user/ubuntu/train_OLwoCV.csv -f  /user/ubuntu/train_OLwoCV.csv.info -d L 3 N 5 C N 2 C N C N

错误是:

Exception in thread "main" org.apache.mahout.classifier.df.data.DescriptorException: Bad Token : 2�C
    at org.apache.mahout.classifier.df.data.DescriptorUtils.parseDescriptor(DescriptorUtils.java:55)
    at org.apache.mahout.classifier.df.data.DataLoader.generateDataset(DataLoader.java:174)
    at org.apache.mahout.classifier.df.tools.Describe.generateDataset(Describe.java:127)
    at org.apache.mahout.classifier.df.tools.Describe.runTool(Describe.java:115)
    at org.apache.mahout.classifier.df.tools.Describe.main(Describe.java:100)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:160)

Grep不能帮助我。是数据有问题还是我对数据的描述有问题?

尝试仔细检查描述符选项('-d L 3 N 5 C N 2 C N C N')是否适合您的数据,因为descriptoreexception ("Bad Token: " + Token)可以抛出,如果在csv中没有找到某些列的描述符。

Mahout v0.7中parseDescriptor()方法的代码:

public static Attribute[] parseDescriptor(CharSequence descriptor) throws DescriptorException {
 List<Attribute> attributes = Lists.newArrayList();
 for (String token : SPACE.split(descriptor)) {
   token = token.toUpperCase(Locale.ENGLISH);
   if ("I".equals(token)) {
     attributes.add(Attribute.IGNORED);
   } else if ("N".equals(token)) {
     attributes.add(Attribute.NUMERICAL);
   } else if ("C".equals(token)) {
     attributes.add(Attribute.CATEGORICAL);
   } else if ("L".equals(token)) {
     attributes.add(Attribute.LABEL);
   } else {
     throw new DescriptorException("Bad Token : " + token);
   }
 }
return attributes.toArray(new Attribute[attributes.size()]);
}

最新更新