【问题标题】:Telling Weka Which Attributes to Predict in ARFF File?告诉 Weka 在 ARFF 文件中预测哪些属性?
【发布时间】:2014-01-05 10:26:21
【问题描述】:

我试图让 Weka 从命令行进行预测,但我担心我可能做错了。我阅读了《数据挖掘》一书并在他们的网站上搜索了文档,但我发现的内容充其量是模糊的,所以我希望你能帮助我。

首先,我创建了一个训练集 (train.arff)。这是一个示例:

@relation test
@attribute 'A' {0,1}
@attribute 'B' {0,1}
@attribute 'C' {0,1}
@attribute 'D' {0,1}
@attribute 'E' {0,1}
@attribute 'F' {0,1}
@data
0,0,0,0,0,0
0,0,0,0,0,0
...

然后我创建了要通过预测完成的数据集(test.arff):

@relation test
@attribute 'A' {0,1}
@attribute 'B' {0,1}
@attribute 'C' {0,1}
@attribute 'D' {0,1}
@attribute 'E' {0,1}
@attribute 'F' {0,1}
@data
0,?,0,0,0,0
0,?,0,0,0,0
...

“?”标记应该预测的属性。

最后,我尝试通过在命令行上运行来获得预测:

java weka.classifiers.trees.J48 -t train.arff -T test.arff -p 0

它产生以下输出:

=== Predictions on test data ===

 inst#     actual  predicted error prediction
     1        2:1        2:1       0.939
     2        2:1        2:1       0.939

然后我将预测列中“:”后面的数字用于预测由inst#标记的数据行。

这是我的问题:

  1. 这是正确的吗?我担心“?”正如我读到的那样,它可能是估算的(尽管这可能只是在学习阶段)。

  2. Weka 是否支持多个预测?无论有多少字段标有“?”我总是得到同一张表,每个实例只有一个预测值。

  3. Weka 能否生成一个完整的(预测的)ARFF 文件,还是我必须自己根据其结果构建这个文件?

如果我遗漏了一些非常明显的东西,请提前道歉并非常感谢任何指向相关文档的指针。

提前致谢!

【问题讨论】:

    标签: machine-learning data-mining weka arff


    【解决方案1】:

    “?”是未知值的通用标记。它可以用于训练和测试数据,并告诉 Weka 在这种特殊情况下,该值不可用。然后如何处理这些信息取决于实际的学习算法。所以回答你的问题:

    1. 没有。通过-c 参数训练模型时指定要预测的属性。这个参数给出了要预测的属性的索引。默认情况下,它是最后一个,所以在你的情况下是“F”。
    2. 没有。这实际上更多是实施的学习算法的问题,但 Weka 中没有一个支持这一点。方法是针对不同的预测训练多个模型。
    3. 在这种情况下这没有意义,因为您必须提供已知值才能让 Weka 能够评估分类器的准确性。如果这些值完全未知,则无法判断它有多好。

    请注意,您可以先save a trained model,然后再use it to make predictions。后一页还包含您可以构建的知识流,以将其结果保存为 ARFF 文件。

    【讨论】:

    • 非常感谢!因此,要使用 train.arff 预测 test.arff 的“F”,我可以这样做:“java weka.classifiers.trees.J48 -c 'F' -t train.arff -T test.arff -p 0”,对吗?我知道保存模型,但我只想先了解基础知识。
    猜你喜欢
    • 1970-01-01
    • 2016-02-15
    • 2011-08-26
    • 2016-08-21
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    相关资源
    最近更新 更多