たなかし@観る将×データ解析練習場

入院時の暇を利用して王位戦(木村王位×藤井棋聖)を観戦した2日間以来の観る将。データ解析の練習もかねて棋士の強さ解析を実施しながら、マニアックな角度からの観る将ライフを紹介。

5年分の対局データ(2017-2021)を取り込んでみた

5年分の対局データを使って手元でレーティングを作る

前回のモデル開発記事で、1年分のデータだけでレーティングを作るのは困難というような話をしました。

sdentyu.hatenablog.com

ただ、いちいち他サイトに行ってレーティングデータを引っ張ってくるのも面倒だし、何よりレーティングの経時変化を追うのが難しいので、やはりレーティングは自分で計算できるようにしておいたほうがよいということで、とりあえず5年分の対局データを取り込みました。

ソースはこれまでと同じで、連盟のHPと、連盟HPにないNHK杯銀河戦のデータは、それぞれWikipedia囲碁将棋チャンネルHPから取ってきています。

 

レーティングの結果はこんな感じでした。

  1. 藤井竜王
  2. 永瀬王座
  3. 渡辺名人
  4. 豊島九段
  5. 斎藤八段
  6. 近藤七段
  7. 八代七段
  8. 佐々木(大)七段
  9. 出口六段
  10. 池永五段

それほど大きな意外性もない結果となりました。上記の記事でレーティングの特徴として述べた「過去の蓄積」をそれほど感じないのは、過去5年分のデータしか使っていないからでしょう。とはいえ、全く使い物にならないという感じでもなく、むしろ実感値にも近く、予測性能がそれなりにありそうなデータです。

もっとレーティングらしいデータを得るにはもうちょっと過去のデータを積み増す必要があるように思いますが・・・疲れるからまた気が向いたときにしましょう(特に銀河戦が面倒)。

 

5年分のデータを使ってBTモデルの解析をする(1)

5年分のデータを取り込んだのはレーティングを手元で計算できるようにするためですが、データが増える分にはBTモデルの解析だってできます。

5年分のデータを全部つかって17-21年BTモデルを作ってみるとこんな感じでした。右には前回出した2021年BTモデルの結果を並べています。

 17-21年BTモデル  21年BTモデル

  1. 藤井竜王     藤井竜王
  2. 永瀬王座     渡辺名人
  3. 渡辺名人     永瀬王座
  4. 豊島九段     豊島九段
  5. 斎藤八段     斎藤八段
  6. 広瀬八段     出口六段
  7. 羽生九段     八代七段
  8. 菅井八段     伊藤(匠)五段
  9. 佐々木(大)七段 服部四段 
  10. 千田七段     近藤七段

2021年の結果と比較すると2017-21年データの方が「重厚」というか、特に2010年代後半に活躍した棋士の蓄積が反映されているように思われます。

BTモデルは1年分のデータがあればそれなりのランキングが作れることを考えると、5年分のデータを「なんの重み付けもなく」使うのは、むしろ過去のデータに引きづられてしまい、モデルの本来の目的である「将来の予測」には使いづらいですよね。

 

5年分のデータを使ってBTモデルの解析をする(2)

ただ、1年分のデータがあればそれなりのモデルを組めるということは、5年分のデータがあれば、1年分x5のモデルが組めるということになります。そんなお遊びの結果は以下の通りです。

   2017年    2018年    2019年    2020年    2021年

  1. 藤井竜王   広瀬八段   渡辺名人   藤井竜王   藤井竜王
  2. 豊島九段   藤井竜王   豊島九段   永瀬王座   渡辺名人
  3. 永瀬王座   豊島九段   永瀬王座   豊島九段   永瀬王座
  4. 斎藤八段   羽生九段   藤井竜王   都成六段   出口四段
  5. 菅井八段   渡辺名人   菅井八段   斎藤八段   斎藤八段
  6. 糸谷八段   永瀬王座   広瀬八段   渡辺名人   豊島九段
  7. 三枚堂七段  佐藤天九段  羽生九段   羽生九段   八代七段
  8. 佐々木大七段 千田七段   佐々木大七段 飯島八段   伊藤匠五段
  9. 増田六段   斎藤八段   千田七段   船江六段   近藤七段
  10. 近藤七段   稲葉八段   服部四段   糸谷八段   服部四段

結構面白い推移をしています。2017年は藤井竜王の実質的なデビュー年にもかかわらずすでにランキング1位だったり、ずっと1位をキープしているわけでもなかったり、その年々に応じた新鋭が現れたりする現象が見えます。

なお、2021年がこれまでに表示していたものと違うのは、今回の2021年データは厳密に2021年1月1日~12月31日に行われた結果を反映しているものだからです。(銀河戦NHK杯が影響を受けています)

さて、この1年の切り方は何も1月1日~12月31日でなくてもよいわけで、参考までに7月1日~6月30日で切ってみると以下のような推移を示しています。

   2017-18   2018-19    2019-20   2020-21

  1. 豊島九段   渡辺名人   藤井竜王   藤井竜王
  2. 永瀬王座   永瀬王座   永瀬王座   渡辺名人
  3. 藤井竜王   藤井竜王   豊島九段   永瀬王座
  4. 広瀬八段   広瀬八段   渡辺名人   豊島九段
  5. 増田六段   羽生九段   菅井八段   山崎八段
  6. 高見七段   本田五段   千田七段   斎藤八段
  7. 三浦九段   豊島九段   佐々木大七段 広瀬八段
  8. 斎藤八段   千田七段   斎藤八段   澤田七段
  9. 三枚堂七段  菅井八段   丸山九段   糸谷八段
  10. 久保九段   佐々木大七段 羽生九段   佐々木勇七段

半年ずらすだけでまた異なる棋士がランキングに登場する様は非常に面白く、将棋の勝負にはきっと「調子」の要素が強く関わるのであろうことがうかがわれます。

 

藤井竜王はデビュー時には完成されていた!?

2017年のデータで藤井竜王がトップになっているのは多分に伝説の29連勝との影響が大きいとは思うのですが、にしてもトップというのは意外ですね。

ただBTモデルの解析結果を見るとわかるのですが、明らかに藤井竜王は強くなり続けています。順位には現れてこない要素を、何人かの棋士との期待勝率を並べることで確認してみたいと思います。

      永瀬王座   渡辺名人   豊島九段   羽生九段  佐藤天九段 阿久津八段 

  • 2017: 54.3%   69.0%   50.2%   66.8%   83.2%   67.2%  
  • 17-18:  48.7%   66.1%   40.0%   59.7%   71.6%   71.4%
  • 2018:    61.9%   61.2%   55.7%   60.3%   68.6%   89.7%
  • 18-19:  49.8%   32.0%   53.2%   51.2%   64.9%   85.9%
  • 2019:    47.4%   29.8%   44.2%   60.2%   77.6%   84.5%
  • 19-20:  56.4%   62.6%   58.7%   77.1%   86.2%   90.4%
  • 2020:    60.9%   74.2%   63.8%   74.2%   81.3%   92.3%
  • 20-21:  62.3%   60.7%   63.8%   77.6%   81.2%   93.3%
  • 2021:    76.8%   75.3%   81.3%   88.6%   89.0%   93.8%

ここにいる全員に対して期待勝率が60%を上回ったのが2020年以降、75%を上回ったのが2021年ですが、2019年までは現4強や羽生九段とはだいたい60%以内に収まっていることからタイトル戦に出始めた2020年から差が大きく開き始めています。タイトル戦でほとんど負けないためこういう結果になるのですが、ここ2年程度でググッと強くなられているわけです。

なお、ここに上げた中で(阿久津八段以外:阿から始まる阿久津八段はBTモデルで基準となる棋士です)藤井竜王以外に安定感があり不調が少ないのが永瀬王座です。渡辺名人は名人を取る前のB級1組-A級全勝抜けをした際には無双しているのに対し、その前に大スランプを経験しています。豊島九段と羽生九段は今明らかに不調に陥っています。

 

予測モデルとして目指す先

BTモデルを経時的に用いることによってわかったことは、棋士の強さは調子により左右され、そのためにランキングは時として大きく変動するというものです。安定してトップ10に入る棋士であっても少なくとも小刻みに順位は変動し、調子の波が大きい棋士では時として順位は大きく沈み込みました。

レーティングはもともと経時性をもったモデルなので、一つのモデルでその経時変化を表現することができますが、過去の積み上げの影響が大きく、半年や1年といった短いスパンで現れる新鋭を捉えることが難しいです。

BTモデルに経時性の概念を入れる、これが次の段階の目標になります。ぱっと思いつくのは状態空間モデルの導入です。

状態空間モデル | Logics of Blue

いやー、厳しいですかね。ちょっとデータ量がおおすぎますかね…。

とりあえず今のRパッケージではどうにもならないので、BTモデルをStan上で動かせるかどうか、やってみましょうかね。今のRパッケージでは拡張性が低く、状態空間モデルどころか、そもそも混合モデル(ランダム傾きモデル)が組めないので、棋士ごとに先手後手の影響や持ち時間の長さの影響がどの程度か、推定できないですからね。