尝试运行Mahout Random Forest Descriptor时出现以下错误 P.S。:我试图在不同的集合上运行(不是在链接上提供的集合) 使用的描述符是:
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无法帮助我。数据或我对数据的描述是否存在问题?
答案 0 :(得分:0)
尝试仔细检查描述符选项('-d L 3 N 5 CN 2 CNC N')是否适合您的数据,因为如果找不到某些列的描述符,则DescriptorException(“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()]);
}