2017-12-12 11 views
0

私は自分のデータセットを無作為にトレーニングとテストのデータに分割して、Javaのナイーブベイズ分類にしたいと思っています。私はwekaを使う選択肢が1つありますが、私は外部ライブラリを使いたくありません。私はjavaを使って他にどのような可能性がありますか?データセットを無作為にトレーニングとテストを使ってJavaに分割する

+0

あなたはJavaで独自のランダム化を定義することができますか?彼らは均等に分割する必要がありますか?または大多数のトレーニングとサブセットをテストに使用しますか? –

+0

私は、トレーニングとして75%、テストデータとして25%をこの制約なしに保つという制約があります。 –

+0

私はどこに問題があるのか​​わかりません。簡単に聞こえますが、あなたが自分でこれを実装するのが難しいところを正確に説明しているかもしれません。あなたがこれまでに試したことを私たちに教えてください。現在の状態であなたの質問が広範であることを意味します。あなたの全データから、訓練セットのエントリの75%をランダムに選択し、残りをテストデータとして使用します。 – Zabuza

答えて

1

あなたはrandomly permute the indicesとすることができます。次に、インデックスされた要素の最初の75%を新しい配列にコピーします。

0

私は自分の問題を解決し、データをトレーニング(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); 

} 
関連する問題