【问题标题】:Cross Validation WEKA random交叉验证 WEKA 随机
【发布时间】:2015-06-20 00:20:17
【问题描述】:

WEKA 交叉验证:

 Classifier cls = new J48();
 Evaluation eval = new Evaluation(data);
 Random rand = new Random(1);  // using seed = 1
 int folds = 10;
 eval.crossValidateModel(cls, data, folds, rand);
 System.out.println(eval.toSummaryString());

“兰特”是什么意思?在这种情况下如何交叉验证? 10折总是混的?

谢谢!

【问题讨论】:

    标签: random weka cross-validation


    【解决方案1】:

    “兰特”是什么意思?

    Rand 是一个对象实例,它将为您随机化数据集。这用于交叉验证目的。种子是随机性的一个组成部分。

    这种情况下如何交叉验证?

    数据集是混合的,例如,如果您有 (1-100) 的数据行,数据将是随机的,因此前 5 行可能是 (77,12,4,7,55) 而不是 ( 1,2,3,4,5)

    10折总是混合的?

    这取决于您使用的工具或库,但我不这么认为 WEKA。我认为它只是采取 1-10 并使其成为一盘 11-20 并使其成为一盘等等。这会导致偏差,尤其是在文件中组合在一起的数据具有相似特征的情况下。这就是为什么数据最好随机化。

    【讨论】:

    • 感谢您提供这个有用的答案,我怎么知道 weka 是如何实现交叉验证的? (我使用的是 weka 3.8)如果我设置了 Random(0) 是否意味着我消除了随机性?
    猜你喜欢
    • 2013-10-10
    • 2023-03-10
    • 1970-01-01
    • 2015-10-25
    • 2021-12-10
    • 2014-04-16
    • 2018-09-03
    • 2013-08-16
    • 2019-07-27
    相关资源
    最近更新 更多