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);
标签:java,csv,weka 来源: https://codeday.me/bug/20190824/1711911.html