4

我正在使用 weka.classifiers.bayes.HMM 尝试对我的一些数据进行分类,但我似乎找不到任何关于我的 ARFF 文件应该是什么样子的示例......文档对我来说并不是很清楚.

所以我知道 HMM 需要时间序列数据,我的问题是如何在我的数据集中表示它?我应该在每个特征行前面添加另一个“数字”索引吗?例如,这是我的 3 条特征线(总共有 10 条,但都遵循这种格式):

2,2.217950,2.235440,0.031252,2.224833,2.301141,0.093227,1.940765,1.973835,0.064434,1 2,2.216870,2.235608,0.035570,2.217950,2.235440,0.031252,2.023161,2.531513,0.623939,1 2,2.216577,2.246109,0.045806, 2.216870,2.235608,0.035570,2.497010,2.529199,0.050049,1

每行包含几个能量读数,它们都按顺序列出:第 1 行在前,第 2 行在 1 秒后出现,第 3 行,在第 2 行读数后 1 秒等。

我如何在 Weka 中使用 HMM 来训练这个集合?(是的,我知道我需要一个单独的测试数据集,它也是一个时间序列)

谢谢!!

4

2 回答 2

3

HMMweka 主页:

HMM 分类器仅适用于序列数据,在 Weka 中表示为关系属性。数据实例必须有一个单一的、名义的、类属性和一个单一的、关系的、序列属性 [...]

于 2015-06-01T13:49:21.160 回答
3

我遇到了同样的问题,而且也是新的,所以任何更正都将不胜感激,但这就是我想出的。

下载中有一个例子很有用,特别是 numericsequence.arff 你想要的格式是这样的:

@relation relation_name
@attribute name_of_instance_attribute {instance_0,instance_1,...instance_n}
@attribute class {relation_type_0, relation_type_1, ... relation_type_n}
@attribute name_of_sequence relational 
  @attribute sequence_variable_0 type 
  @attribute sequence_variable_1 type
@end sequence_variable_1 type
@data

instance_0,relation_type_n,'5,6\n7,8\n9,10'
instance_1,relation_type_n,'2,3\n4,5\n6,7'

确保如果您正在编写一个程序来编写您插入“\n”而不是换行符的 arff,它似乎想要一行文字 '\n' 而不是真正的换行符。

于 2015-11-07T18:59:44.060 回答