はじめに
明けましておめでとうございます。
昨年は東芝の不正会計について触れたのですが、また今年も東芝のことを触れるとは思っていませんでした。 不正会計後に少しずつ回復傾向にあったのに、まさか昨年末に再度危機的状況になるなんて。 東芝家電のためにサザエさんがあるのに家電売却したら意味が無いんじゃないと思うんですが、まー国民的アニメですから東芝がスポンサー降りたら別のスポンサーになるだけですよね。
さてさて、2016年のサザエさんのじゃんけん結果はどうなったでしょう。 ちなみに、2015年のサザエさんのじゃんけん結果は、32勝9敗9分(勝率0.78)でした。
R言語からPythonに移植
もともと2013年に静岡Developers勉強会で機械学習を学んだ際にR言語を覚えたのですが、その後に1年に1回だけサザエさんのじゃんけんのためだけにR Studioを起動するだけになっていて、操作も思い出す感じでやっている状態だったのです。
昨年、Visual Studio CodeでPythonの開発環境を整えることが出来たので、R言語からPythonに移植してみました。とはいっても、Pythonを本格的に意識して組むこと自体は今回初めてなので、そこそこ苦労しました。
はてなブログにPythonのソースコードを掲載しようとしたら表示がおかしくなるため、Qiitaにしました qiita.com
次の手の予測アルゴリズム
- チョキが多いので、グー > チョキ > パーの優先順位とする
- 前回と違う手を出すので、上記の優先順位で勝手を選ぶ
- 二手前と一手前が違う手なら、残りの手を出すので勝手を選ぶ
- 三手の中に同手がある場合、 残りの手を出すので勝手を選ぶ
- 二手前と一手前が同じ手なら、勝手を出すので負手を選ぶ
2016年の勝敗結果
| 年月 | サザエさんの手 | 予想の手 | 勝敗結果 |
|---|---|---|---|
| 01月03日 | 休み | ||
| 01月10日 | チョキ | グー | 勝ち |
| 01月17日 | グー | グー | 引き分け |
| 01月24日 | チョキ | チョキ | 引き分け |
| 01月31日 | グー | チョキ | 負け |
| 02月07日 | パー | チョキ | 勝ち |
| 02月14日 | チョキ | グー | 勝ち |
| 02月21日 | チョキ | パー | 負け |
| 02月28日 | グー | パー | 勝ち |
| 03月06日 | パー | チョキ | 勝ち |
| 03月13日 | パー | グー | 負け |
| 03月20日 | グー | グー | 引き分け |
| 03月27日 | チョキ | グー | 勝ち |
| 04月03日 | パー | チョキ | 勝ち |
| 04月10日 | グー | パー | 勝ち |
| 04月17日 | グー | グー | 引き分け |
| 04月24日 | チョキ | グー | 勝ち |
| 05月01日 | チョキ | チョキ | 引き分け |
| 05月08日 | パー | チョキ | 勝ち |
| 05月15日 | パー | パー | 引き分け |
| 05月22日 | グー | パー | 勝ち |
| 05月29日 | パー | グー | 負け |
| 06月05日 | チョキ | グー | 勝ち |
| 06月12日 | グー | パー | 勝ち |
| 06月19日 | パー | チョキ | 勝ち |
| 06月26日 | グー | グー | 引き分け |
| 07月03日 | チョキ | グー | 勝ち |
| 07月10日 | チョキ | チョキ | 引き分け |
| 07月17日 | パー | チョキ | 勝ち |
| 07月24日 | チョキ | パー | 負け |
| 07月31日 | グー | パー | 勝ち |
| 08月07日 | グー | チョキ | 負け |
| 08月14日 | チョキ | チョキ | 引き分け |
| 08月21日 | パー | チョキ | 勝ち |
| 08月28日 | チョキ | パー | 負け |
| 09月04日 | パー | パー | 引き分け |
| 09月11日 | グー | パー | 勝ち |
| 09月18日 | グー | グー | 引き分け |
| 09月25日 | パー | グー | 負け |
| 10月02日 | チョキ | グー | 勝ち |
| 10月09日 | グー | パー | 勝ち |
| 10月16日 | チョキ | チョキ | 引き分け |
| 10月23日 | 休み | ||
| 10月30日 | パー | チョキ | 勝ち |
| 11月06日 | チョキ | パー | 負け |
| 11月13日 | グー | パー | 勝ち |
| 11月20日 | グー | チョキ | 負け |
| 11月27日 | パー | チョキ | 勝ち |
| 12月04日 | パー | グー | 負け |
| 12月11日 | チョキ | グー | 勝ち |
| 12月18日 | グー | パー | 勝ち |
| 12月25日 | パー | チョキ | 勝ち |
結果は、27勝11敗12分(勝率0.71)となりました。
ちなみに、サザエさんじゃんけん研究所 公式ウェブサイトの サザエさんの手の予想と勝負結果(2016年)が22勝13敗15分(勝率0.628)でした。
これまで研究所公式側に僅差で負けていましたが、今回は勝ちました。といってもアルゴリズムは何も変えてないので、単に相手側がミスったということですね。
| 年 | データ分析 | 研究所公式 |
|---|---|---|
| 2013 | 24勝13敗12分(勝率0.65) | 25勝9敗17分(勝率0.735) |
| 2014 | 30勝10敗11分(勝率0.75) | 30勝9敗12分(勝率0.769) |
| 2015 | 32勝9敗9分(勝率0.78) | 33勝9敗8分(勝率0.785) |
| 2016 | 27勝11敗12分(勝率0.71) | 22勝13敗15分(勝率0.628) |
スライド
2013年に静岡Developers勉強会で機械学習を学び、2014年1月にネタとしてSlideShareに公開しました。
最後に
本当は、TensorFlowを使って人工知能のディープラーニングで予測手を作りたかったのですが、まだ組むだけの理解度(n-gramモデル)が足りないため持ち越しです。
でも、今年中には実現したいと思っています。