随机将数据集拆分为训练并使用java进行测试

问题描述 投票:0回答:2

我想将我的数据集随机分成训练和测试数据,以便在Java中进行朴素的贝叶斯分类。我知道,我有一个选项可以使用weka,但我不想使用外部库。我还有什么其他的可能性使用java?

java
2个回答
1
投票

你可以randomly permute the indices,然后将前75%的索引元素复制到一个新的数组中。


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

}
© www.soinside.com 2019 - 2024. All rights reserved.