私はrandom.shuffle
が好きです。
(私たちは、彼らが整数だと言うだろう)さんが31個のサンプルでダミーのデータセットを作成してみましょう:
import random
# copy training to preserve the order of the original dataset
this_round = training[:]
# permute the elements
random.shuffle(this_round)
# separate into training and test
training_this_round = this_round[:30]
testing_this_round = this_round[30:31]
:
training = range(31)
は今、私たちは、これが2つのランダムなサブグループに設定分割するshuffle
を使用することができます
これは、サンプルをランダムな順序で配置し(カードのデッキをシャッフルするのと同じように)、次にテストのために一番上のカードを取り出し、残りをトレーニングに使用します。私が気に入っていることは、他の種類の分割(例えば、上位3枚のカードをテストセットに入れ、次に別の5枚を検証セットに入れて、残りをトレーニングに使うなど)にまで及ぶことです。
# pick an index into training at random
select = random.randint(0, len(training) - 1)
# test set is a single sample (not a list)
testing_this_round = training[select]
# training set is all elements except the one chosen for testing
training_this_round = [x for (i, x) in enumerate(training) if i != select]
おかげで、しかし、どのように私はtesting_roundのインデックスを維持することができますか? – konstantin
また、訓練は私の最初のデータセットの名前なので、インデックス変数訓練は誤解を招くものです。 – konstantin
最後の編集は、トレーニングラウンドの「インデックスを保持する」のに役立ちますか?その場合、 'select'の値を思い出すことができます。また、私はインデックス変数として 'training'を使用していません、私はそれをデータセットにしようとしています(答えでは、それは整数値の束からなるダミーのデータセットです)。 – wildwilhelm