【機械学習】バタイユゲームデータで史実の勝敗を予想(1)

  機械学習を利用して、バタイユゲームのデータから史実の勝敗を予想してみる。

もちろん、ゲームの勝敗は無理である。しかし、ゲームが再現しようとしている環境

から史実の勝敗が予想できるのか興味があった。そこで、試してみた。

1.基本データ

 バタイユゲーム情報班のホームページで紹介してきたゲーム概要に

次の情報が入っている。

 ・ゲームマップ :縦横のHEX数

 ・ゲームユニット:両軍の歩兵大隊、騎兵連隊、砲兵中隊の数

 ・ゲームターン:メインシナリオのターン数(時間に相当)

 ・史実データ:勝利者、フランス軍と連合軍の司令官

2.参考にした機械学習

 実践 ロジスティック回帰である。ここでは、キノコのデータから毒キノコか

食用キノコかの分類問題が説明されている。

同様に上記1の基本データを基に、未知のゲームの史実勝敗を予測する。

なお、ロジスティク回帰は2択の分類である。そこで、今回は、次の2段階で

勝敗を予想する。

 ・勝つかどうかの2択で分類(”勝ち” と ”引き分けか負け”)

 ・負けるかどうかの2択で分類(”負け” と ”引き分けか勝ち”)

3.入力データ

  下図のファイルをcsvファイルで保存したもの。(コードをUTF-8に変更)

なお、不要な標題や不備のデータは、pythonのプログラムで削除する事にした。

前回のバタイユゲームのプレイ時間予想で使った下記(A)のデータの他に(B)を追加している。

(A)戦場の大きさ、両軍の規模、戦いの時間

(B)両軍の司令官・国、と勝利者

 データが不足して除外するアブキールを除くと、フランス軍の勝ち、負け、引き分けの数は、

28勝14敗6引き分けである。

4.JupyterNotebookでコーディングした例

(1)フランス軍の勝ち予想

上図赤枠の混同行列array([[14,6],[3,25])とあるが、この数字の意味は次の通りである。

 史実が勝ち以外の場合(20)> 予想が勝ち以外となったが14、 予想が勝ちとなったのが6

 史実が勝ちの場合(28)> 予想が勝ち以外となったのが3、 予想が勝ちとなったのが25

このモデルの性能評価は、以下の通り。いずれも80%を超えており、悪くない。

正解率=(勝ち以外と勝ちの正しい予想数)÷(全体の予想数)

   =(14+25)÷(14+6+3+25)=0.8125

勝ちの適合率=(勝ちの正しい予想数)÷(勝ちの予想数)

      =25÷(6+25)=0.8085

勝ちの再現率=(勝ちの正しい予想数)÷(史実の勝ち数)

      =25÷(3+25)=0.8929

下図は、2つのゲームについて予想したものである。1番目は未知の(訓練データに含めていない)ノーヴィ、

2番目は訓練データに含めたシェンカーバンである。

予想はどちらも勝利(array[1,1]で1番目が1(勝ち)、2番めも1(勝ち))である。

史実は、2つとも勝ち以外なので、的中率は0%である。

次回へつづく

 

<個人的な感想>

 思った以上に、訓練データの正解率が81.25%と高い。しかし、ノーヴィとシェンカーバンで予想が

外れたのは残念である(勝ちの適合率が80.85%なのに・・・)。

 

<リンク>

ブログのトップページは、こちら

バタイユゲーム情報班のホームページは、こちら