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

时间:2017-12-12 20:15:36

标签: java

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

2 个答案:

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

}