目前,我正在尝试将我的数据输入以进行机器学习实验,数据如下所示,包含三列(第一列是时间,第二列是代码,第三列是数字):
2016-06-05 00:00:00 fd04:bd3:80e8:2:215:8d00:35:ca4b 02016-06-05 00:00:00 fd04:bd3:80e8:2:215:8d00:35:f2be 0.125492016-06-05 00:00:00 fd04:bd3:80e8:2:215:8d00:35:c8a1 0.140912016-06-05 00:00:01 fd04:bd3:80e8:2:215:8d00:35:ca4b 02016-06-05 00:00:01 fd04:bd3:80e8:2:215:8d00:35:f2be 0.250982016-06-05 00:00:01 fd04:bd3:80e8:2:215:8d00:35:c8a1 02016-06-05 00:00:02 fd04:bd3:80e8:2:215:8d00:35:ca4b 02016-06-05 00:00:02 fd04:bd3:80e8:2:215:8d00:35:f2be 0.25098
以下是将数据导入mahout的代码:
我如何实现分类功能等?请告诉我。非常感谢!
回答:
您的输入文件格式不符合FileDataModel
的要求。如果您查看源代码,您会发现它期望的是:
userID,itemID,timestamp
这与您看到的java.lang.NumberFormatException
错误相符。它期望userID
是一个long
类型,而您提供的是一个格式化的日期。
另外,请注意timestamp
也应该是一个long
类型。源代码中的文档表明,如果您不想将所有日期转换为毫秒,您可以提供自己的函数来解析日期,只需重写readTimestampFromString(String)
方法即可。
因此,您需要重新格式化数据以适应这个类,或者扩展它并重写相关方法以正确解析数据(如果可能的话)。