ジャンケンの勝敗データ作成
このプログラムではジャンケンの勝敗データを作成し、データファイルに保存するもの。
ジャンケンの公式を定義
judge = lambda a, b: (a - b + 3) % 3
lambdaは無名関数。
lambda 引数: 返り値
という形で書く。
これを関数で表すと
def func(引数):
return 返り値
となる。
ジャンケンの結果の計算は(a-b+3)%3という簡単な式で計算することができる。
ランダムにデータ作成
import random
random_hand = lambda : random.randint(0, 2)
x_items =
y_items =
for i in range(3000):
a = random_hand()
b = random_hand()
result = judge(a, b)
x_items.append([a, b])
y_items.append(result)
# 作成したデータを表示
print(x_items)
print(y_items)
random.randint()ではランダムに引数に指定した整数の値を取得する。引数は(開始値, 終了値)と指定する。
for文の中でrandom_hand()を呼び出しランダムに0~2までの値を変数a,bに格納。
a,bを引数にjudge()でジャンケンの公式に値を渡し、結果を変数resultに格納。
x_itemsにランダムに出力された0~2の値が格納されたa,bのデータ、y_itemsにジャンケンの結果を表す値を追加。これを3000回繰り返す。
データを学習用、テスト用に分割し保存
x_train = x_items[0:2000]
y_train = y_items[0:2000]
x_test = x_items[2000:]
y_test = y_items[2000:]
# データを保存 --- (*5)
items = [[x_train, y_train],
[x_test, y_test]]
with open("janken-data.pkl", "wb") as fp:
pickle.dump(items, fp)
x_items[0:2000]でx_itemsに格納されているインデックス番号が0の要素から1999の要素までを範囲指定しx_trainに格納。
x_items[2000:]ではインデックス番号が2000から後の要素を全部範囲指定しx_testに格納。
最後にpickleで作成した学習用、テスト用データのオブジェクトを保存。