※この記事は2020年に作成しました
#概要
ハードコーティングで作成した聴牌判定で手牌の聴牌ラベルをつけ、ガウシアンナイーブベイズで判定するプログラムを作成した。
#結果
test_size(テストデータに使用するデータの割合)を変更したときの各精度を示す。
test_size | 精度(%) |
---|---|
0.10 | 91.9 |
0.20 | 92.1 |
0.30 | 92.0 |
0.40 | 91.9 |
#作成したプログラム
from sklearn import datasets # データロード用
from sklearn.model_selection import train_test_split # 学習/テストデータ作成用
from sklearn import metrics # 精度評価用
from sklearn.naive_bayes import GaussianNB # ガウシアンナイーブベイズ実行用
import numpy as np
np.set_printoptions(threshold=100000000)
# データ用意
data = 101437
X = np.zeros((data,34), dtype='float32')# Xは手牌
with open('C:/sqlite/tehai.csv', 'r') as fr:
for i,row in enumerate(fr.readlines(),start=0):
if i <data:
X[i] += np.array(list(map(np.float,row[:34])))
dahai = np.zeros((data,1), dtype='float32')#打牌読み込み
with open('C:/sqlite/tenpai.csv', 'r') as fr:
for i,row in enumerate(fr.readlines(),start=0):
if i <data:
dahai[i] += np.array(list(map(np.float,row[:1])))
Y = dahai.flatten()
X_train, X_test, Y_train, Y_test = train_test_split(X, Y,test_size=0.4,random_state=0)
# ガウシアンナイーブベイズ実行
model = GaussianNB() # インスタンス生成
model.fit(X_train, Y_train) # モデル作成実行
# 予測実行
predicted = model.predict(X_test) # 予測実行
acc = metrics.accuracy_score(Y_test, predicted) # 精度計算
print(acc)
#print(predicted)