线程中的异常 "main" java.lang.IllegalArgumentException: 字符串 + Mahout 中的属性数量错误



我正在尝试使用命令创建一个文件描述符:

$ MAHOUT_HOME/core/target/mahout-core--job.jar org.apache.mahout.classifier.df.tools.Describe -p testdata/KDDTrain+.arff -f testdata/KDDTrain+.info -d N 3 C 2 N C 4 N C 8 N 2 C 19 N L 

从链接:https://mahout.apache.org/users/classification/partial-implementation.html在我的数据文件,但无论文件我采取和改变属性字符串N 3 C 2 N C 4 N C 8 N 2 C 19 N L的数量。

我得到以下异常:

Exception in thread "main" java.lang.IllegalArgumentException: Wrong number of attributes in the string

请帮忙!

您可能会得到这样的错误有几个原因…

  1. 描述符错误:为了完整起见。你一定已经看过这本书了。实际上,您为数据提供了错误的描述符。重新检查列的数量和类型,然后将它们正确地提供给描述符。
  2. 分隔符错误:重新检查数据中使用的分隔符。这也可能带来一些麻烦。可能您拥有的数据在某些记录中有一些错误的分隔符。
  3. 特殊字符:在我的几个实验中,我注意到mahout不喜欢某些特殊字符,或者数据由英语以外的语言字符组成(当然,除非您对代码进行调整)。所以,确保你有一个处理它们的方法,你应该很好去。

无论如何,所有这些都只是为了创建数据的描述符。作为。

老问题,但我有一个更尖锐的答案,我登陆后发现同样的问题。

在这种特殊情况下,我发现的问题是数据文件(来自http://nsl.cs.unb.ca/NSL-KDD/)的格式似乎与Mahout随机森林示例页面上列出的示例有变化。

示例列出了带有说明符

的行格式

N 3 C 2 N C 4 N C 8 N 2 C 19 N L

但是在行尾有一个额外的元素;例如:

13,tcp,telnet,SF,118,2425,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0.00,0.00,0.00,0.00,1.00,0.00,0.00,26,10,0.38,0.12,0.04,0.00,0.00,0.00,0.12,0.30,guess_passwd,2

多一个字段。在说明符的末尾添加另一个数字字段(N),如

N 3 C 2 N C 4 N C 8 N 2 C 19 N L N

我很幸运地使用了普通的.txt文件格式,而不是.arff文件格式。

最新更新