【问题标题】:randomly splitting a data set into training and test using java使用 java 将数据集随机拆分为训练和测试
【发布时间】:2018-05-26 14:57:36
【问题描述】:

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

【问题讨论】:

  • 你可以在java中定义你自己的随机化吗?他们需要平均分配吗?还是您希望大多数训练和一个子集用于测试?
  • 我有一个约束,即保留 75% 作为训练数据和 25% 作为测试数据,除了这个没有限制。
  • 我看不出你这样做有什么问题。听起来很简单,您可以详细说明您自己在哪些方面遇到困难。向我们展示您迄今为止所做的尝试。我的意思是你目前的问题很广泛。从您的全部数据中,随机选择 75% 的条目作为训练集,并将其余条目用作测试数据。
  • 您需要自己进行研究。见help center,第三点……

标签: java


【解决方案1】:

我想我已经解决了我的问题并将数据分成训练集(75%)和测试集。后来使用交换随机化数据。

数据随机化代码:

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

}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-12-01
      • 2018-09-08
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 2021-02-27
      • 2019-05-01
      • 2013-06-29
      • 1970-01-01
      相关资源
      最近更新 更多