LoginSignup
0
0

ガウシアンナイーブベイズによる聴牌判定

Last updated at Posted at 2023-06-05

※この記事は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)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0