我想将我的数据集随机分成训练和测试数据,以便在java中进行朴素的贝叶斯分类。我知道,我有一个选项可以使用weka,但我不想使用外部库。我还有什么其他的可能性使用java?
答案 0 :(得分:1)
你可以randomly permute the indices,然后将前75%的索引元素复制到一个新数组中。
答案 1 :(得分:0)
我想我已经解决了我的问题并将数据分成训练(75%)和测试集。然后使用swap随机化数据。
随机化数据的代码:
private static void shuffleArray(ArrayList<Record> records) {
int n = records.size();
Random random = new Random();
random.nextInt();
for (int i = 0; i < n; i++) {
int change = i + random.nextInt(n - i);
swap(records, i, change);
}
}
private static void swap(ArrayList<Record> records, int i, int change) {
Record helper = records.get(i);
records.set(i, records.get(change)) ;
records.set(change, helper);
}