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倍总是混合在一起?
谢谢!
答案 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并使其成为一组等等。如果在文件中组合在一起的数据具有相似的特征,则会导致偏差。这就是数据最佳随机化的原因。