Pythonのrandom.seedでデータセットをランダムに分ける
はじめに
今回はデータセットをランダムに分ける時random.seed
を使用すると便利だったので書き残しときます。
抽出
0~23までの数値を17 : 5 : 2 の24個のデータから重複なしで値を抽出します。
順番は17個抽出、5個抽出、2個抽出します。
3分割している理由は 学習用 : チューニング用 : テスト用 です。
コード
# ランダムな整数値の生成(0~24) seed有り # 24個の数値を17 : 5 : 2 でランダムに分ける import random random.seed(1) # seed一度ランダム抽出された値を固定 all_list = list(range(24)) random_a = random.sample(all_list, 17) print("a_list : {}".format(sorted(random_a))) set_all_a = set(all_list) - set(random_a) list_all_a = list(set_all_a) random_b = random.sample(list_all_a, 5) print("b_list : {}".format(sorted(random_b))) set_a_b = set(all_list) - set(random_a) - set(random_b) list_a_b = list(set_a_b) random_c = random.sample(list_a_b, 2) print("c_list : {}".format(sorted(random_c)))
見やすいように一応昇順ソート。
random.seedの引数を変えることにより固定する値を変更できます。
結果
a_list : [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 19, 22] b_list : [11, 13, 17, 20, 21] c_list : [5, 23]
終わりに
enumerate関数と併用するといい感じかも?