编程语言
首页 > 编程语言> > java – 如何使用Weka将数据集划分为训练集和测试集?

java – 如何使用Weka将数据集划分为训练集和测试集?

作者:互联网

我想将CSV格式的百万记录数据集划分为80%用于培训,20%用于测试.如何使用Java或Weka库对此进行编码?

解决方法:

您可以使用Instances First提供的方法随机化您的数据

Random rand = new Random(seed);   // create seeded number generator
randData = new Instances(data);   // create copy of original data
randData.randomize(rand);         // randomize data with number generator

如果您的数据具有标称类,并且您想要执行分层交叉验证:

randData.stratify(folds);

现在,通常你会想要进行交叉验证并执行此操作:

for (int n = 0; n < folds; n++) {
    Instances train = randData.trainCV(folds, n);
    Instances test = randData.testCV(folds, n);

    // further processing, classification, etc.
    ...
}

(该来源实际上提到“上面的代码由weka.filters.supervised.instance.StratifiedRemoveFolds过滤器使用”)

但是,如果您只需要一组80/20实例,那么只需执行一次:

Instances train = randData.trainCV(folds, 0);
Instances test = randData.testCV(folds, 0);

Source

标签:java,csv,weka
来源: https://codeday.me/bug/20190824/1711911.html