交叉验证WEKA随机

时间:2014-12-25 16:38:34

标签: random weka cross-validation

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());

这是什么意思" rand"?在这种情况下如何进行交叉验证? 10倍总是混合在一起?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

“rand”是什么意思?

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

  

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

数据集是混合的,例如,如果你按顺序有数据行(1-100),数据将被随机化,所以前5个可能是(77,12,4,7,55)而不是(77,12,4,7,55) 1,2,3,4,5)

  

10倍总是混合在一起?

这取决于您使用的工具或库,但我不认为使用WEKA。我认为它只需要1-10,并使其成为一组11-20并使其成为一组等等。如果在文件中组合在一起的数据具有相似的特征,则会导致偏差。这就是数据最佳随机化的原因。