【问题标题】:Exception in thread "main" java.lang.IllegalArgumentException: Wrong number of attributes in the string + Mahout线程“main”java.lang.IllegalArgumentException 中的异常:字符串中的属性数量错误 + Mahout
【发布时间】:2014-08-10 13:11:54
【问题描述】:

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

$ 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

请帮忙!

【问题讨论】:

    标签: mahout


    【解决方案1】:

    有几个原因可能会导致您收到类似的错误...

    1. 错误的描述符:为了完整起见,将其放入。你一定已经检查过这个了。您实际上为数据提供了错误的描述符。重新检查列的数量和类型,然后将它们正确地提供给描述符。
    2. 分隔符错误:重新检查数据中使用的分隔符。这也可能造成一些麻烦。可能是您拥有的数据在某些记录中放置了错误的分隔符。确保这一点。
    3. 特殊字符:在我的几个实验中,我注意到 mahout 不喜欢某些特殊字符,或者数据包含非英语语言的字符(当然,除非你调整代码) .因此,请确保您有办法处理它们,您应该一切顺利。

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

    【讨论】:

    • 谢谢!问题是文本文件中有特殊字符。
    • 如果您对它感到满意,请“赞成”和“接受”答案(这里有点新,所以会喜欢一些声誉:P)
    【解决方案2】:

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

    在这种特殊情况下,我发现的问题是数据文件的格式(来自http://nsl.cs.unb.ca/NSL-KDD/)似乎已经从示例中更改,如Mahout Random Forest example page.

    示例列出了带有说明符的行格式

    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 文件格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-14
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多