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

入院時の暇を利用して王位戦(木村王位×藤井棋聖)を観戦した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パッケージでは拡張性が低く、状態空間モデルどころか、そもそも混合モデル(ランダム傾きモデル)が組めないので、棋士ごとに先手後手の影響や持ち時間の長さの影響がどの程度か、推定できないですからね。

 

強さの相対値

名人強くなってません?

棋聖戦王将戦も藤井竜王にスイープされてしまって、38歳の誕生日には「キャリアの終焉が…」とか言ってるし、渡辺名人は大丈夫なんだろうかと思わせておいて、名人戦でのここまでの戦い振りは一体どうなっているのか、むしろ安定感が増して強くなっているようにすら思えます。

棋聖戦の挑戦者トーナメントも明日に迫り、棋聖戦5番勝負は三年連続の藤井竜王ー渡辺名人でまた名勝負を量産してくれるのでしょうか?

 

藤井竜王に連勝されるのは当たり前?

2021年BTモデルで今回も勝敗確率を予測してみます。

2021年のプロ棋戦のデータを解析した(1) - たなかし@観る将×データ解析練習場

藤井竜王と渡辺名人が7番勝負した場合のスコア確率(左:藤井竜王、右:渡辺名人)

  • 4-0:26.4%
  • 4-1:29.9%
  • 4-2:21.2%
  • 4-3:12.0%
  • 3-4:4.7%
  • 2-4:3.3%
  • 1-4:1.8%
  • 0-4:0.6%

7番勝負をスイープする確率(26.4%)が渡辺名人が7番勝負を制する確率(10.4%)よりはるかに高いみたいです。いやぁこれはちょっと…

 

藤井竜王と渡辺名人が5番勝負した場合のスコア確率(左:藤井竜王、右:渡辺名人)

  • 3-0:36.8%
  • 3-1:31.3%
  • 3-2:17.7%
  • 2-3:7.0%
  • 1-3:4.9%
  • 0-3:2.3%

5番勝負の場合は、スコア3-0の確率が一番高いんですか…。それでも渡辺名人が5番勝負を制する確率は14.2%あるので、7番勝負よりは確率が上がるんです。

世間では渡辺名人があまりに藤井竜王に負けるので相性の問題と捉えている方も多いのかもしれませんが、2021年BTモデルから予想される勝敗確率からすると、相性というほど極端な事が起こっている感じではないのです。今のところは。

 

ただ皆さんの感覚値としては、棋聖戦のような一日制五番勝負は、もうちょっと拮抗するのではないかというところもあるでしょう。それはきっと持ち時間によるところだと思いますので、持ち時間の概念をBTモデルに入れられるように頑張りますね。

(そう簡単ではないのです。また追って記事にします。)

 

取りこぼしがない=強さが他を圧倒している

とにかく藤井竜王が強すぎるんです。

よく藤井竜王は取りこぼしが少ないことが強さの秘訣、なんて言われ方をしますが、それは強さの秘訣ではなく強さそのものです。負ける確率がとても低いのでほとんど負けない、ということです。

2021年度に藤井竜王が負けた対局は次の通りです。()内は2021年BTモデルの順位です。

  • 深浦九段(45位)王座戦挑決トーナメント
  • 稲葉八段(30位)順位戦
  • 豊島九段(4位)王位戦第一局
  • 豊島九段(4位)叡王戦第二局
  • 豊島九段(4位)叡王戦第四局
  • 渡辺名人(2位)銀河戦決勝トーナメント
  • 齋藤八段(5位)棋王戦挑決トーナメント
  • 深浦九段(45位)NHK杯
  • 豊島九段(4位)JT
  • 永瀬王座(3位)王将戦挑決リーグ
  • 千田七段(38位)順位戦
  • 永瀬王座(3位)朝日杯

 

渡辺名人は以下の通りです。

 

渡辺名人の負け対局リストが1位の人のせいで見づらいのですが、このリストだけ見るとあまり差がないように見えます。ただ、2021年度の対局スコアを見ると、違いが大きくわかります。

  • 藤井竜王 52勝12敗(タイトル戦21局)
  • 渡辺名人 21勝18敗(タイトル戦16局)

 

いよいよ藤井竜王のシーズン入り

王将戦終了から順位戦最終局の1局のみを挟み、2ヵ月半ほどのオフシーズン明けで、いよいよ藤井竜王が2022年度のシーズン入りを叡王戦5番勝負から迎えます。

昨年は特に忙しかった夏から秋にかけて少し星を落としていた傾向が見られました。今年は叡王戦が春に移動し、竜王・王将タイトル保持者になったので、夏から秋にかけての対局過多は多少緩和され、昨年度より一層安定感を増す(=強くなっている)ことが期待されます。タイトル戦も多く予定されており、また順位戦はA級ということで、とても楽しみですね。

叡王戦の挑戦者は出口六段。世間的には「勢いのある若手」評価ですが、2021年BTモデルは6位であり、タイトル戦に相応しい挑戦者です。

叡王戦チェスクロック4時間で一番持ち時間が短いタイトル戦です。スコア予想をしてもよいですが、今のBTモデルは持ち時間の短さを考慮できませんので、際どい勝負が多くなることが期待できます!

棋士の変調

名人戦

去年の名人戦と今年の名人戦、渡辺名人が齋藤八段を挑戦者に迎える構図は同じなのに、なんか雰囲気が違わないですか?

去年はスコアこそ4ー1でしたが、結構熱戦が多かった印象なんです(あくまで印象ですが)。今年は、なんか一方的。

 

予測勝敗確率

既報の通り、2021年データを用いたBTモデルでも、レーティングでも、両対局者の順位は渡辺名人2位で齋藤八段5位なので、渡辺名人の勝利の確率の方が高いのは確かなんです。

2021年のプロ棋戦のデータを解析した(1) - たなかし@観る将×データ解析練習場

2021年BTモデルから割り出される渡辺名人の対局勝ちの確率は63%ちょいで、7番勝負の場合、渡辺名人ー齋藤八段の勝敗スコアの確率は、以下の通りです。

  • 4-0:16.1%
  • 4-1:23.6%
  • 4-2:21.6%
  • 4-3:15.9%
  • 3-4:9.2%
  • 2-4:7.2%
  • 1-4:4.6%
  • 0-4:1.8%

4-1というスコアは思った以上に妥当っぽいのですが、とはいえ、齋藤八段が7番勝負でスイープされる確率はそれほど高くないはずなんです。

少なくとも上位陣の並びはBTモデルでもレーティングでも同じなので、レーティングを用いても似たような確率が計算されるのではないでしょうか。

 

齋藤八段の調子

私が一つ印象として抱いているのは、齋藤八段は調子を落としているのではないかってことです。

最近10局は以下の通りです。()内の数値はBTモデルから予想される対局勝ち確率です。

  • ○羽生九段(62.5%)
  • ○井上九段(90.3%)
  • ○豊島九段(46.2%)
  • 藤井猛九段(82.2%)
  • ●糸谷八段(59.8%)
  • ●出口六段(51.3%)
  • ●出口六段(51.3%)
  • ●渡辺名人(36.7%)
  • ○郷田九段(66.7%)
  • ●渡辺名人(36.7%)

目立つのは勝利確率の方が高いはずの糸谷八段ー出口六段ー出口六段で三連敗しているところですかね。この三連敗は約10%の確率の事象ですから、私の感覚もそんなにおかしくないように思います。

 

調子が悪くなるきっかけー順位戦の勝ち抜け棋士

この糸谷八段戦、A級の最終局でしたね。豊島九段戦で挑戦が決定していたので、齋藤八段にとっては勝ち抜けによる「消化試合」ではありました。

順位戦はリーグ戦なので、勝ち抜けによる消化試合は散見されます。確か昨年度は齋藤八段以外には、

  • 中村七段(B2)
  • 澤田七段(B2)
  • 及川七段(C1)
  • 西田五段(C2)

が勝ち抜け消化試合を持っていましたが、勝ち抜け後の消化試合で負けていないのはこの中で澤田七段だけなんですよね。

該当棋士の最近の対局結果を確認しておきましょうか。

まずは中村七段ですが、BTモデル順位は33位です。以下対局結果の()内は、BTモデル順位になります。

  • 藤井猛九段(77位)
  • ○三浦九段(39位)
  • ○中座七段(149位)
  • ○大平六段(151位)
  • 渡辺正六段(135位)
  • ●鈴木九段(71位)
  • ○鈴木九段(71位)
  • ●金井六段(120位)
  • ○阿部健七段(127位)
  • ●真田八段(82位)

澤田七段は12位です。

  • ●里見女流(111位)
  • ○村田六段(80位)
  • ○折田四段(51位)
  • ○行方九段(65位)
  • ○糸谷八段(13位)
  • ●池永五段(27位)
  • ○千田七段(38位)
  • ○千葉七段(61位)
  • ●今泉五段(72位)
  • ○久保九段(34位)

BTモデルでは女流棋士もランキングに含まれているので、里見女流にも順位がついています。続いて及川七段(70位)です。

  • ●高野智六段(42位)
  • ○行方九段(65位)
  • ○高野秀六段(131位)
  • ●高野智六段(42位)
  • ○青嶋六段(37位)昇級決定
  • ○阿久津八段(59位)
  • ●門倉六段(85位)
  • ●片上七段(106位)
  • ●松尾八段(44位)
  • ●高見七段(60位)

そして西田五段(16位)です。

  • ○谷川九段(110位)
  • ○船江六段(63位)
  • ○島本五段(156位)
  • ○都成七段(75位)
  • ○八代七段(7位)
  • ●石田五段(83位)
  • ●高田四段(93位)
  • ○佐々木慎七段(54位)
  • ○宮本五段(88位)
  • ●永瀬王座(3位)

この中では澤田七段が安定しているように見えますが、中村七段や及川七段は特に調子を落としているように見えます。

性格面も影響してきそうな気もしますが、順位戦の緊張感は棋士の調子を左右する重要な要因のように思われます。

2021年のプロ棋戦のデータを解析した(2)

(前回の復習)2021年BTモデルとレーティングの比較

こんな感じでした。左が2021年BTモデル、右がレーティング(2022年4月15日現在)です。

  2021BT      Rating 220415

  1. 藤井竜王 藤井竜王
  2. 渡辺名人 渡辺名人
  3. 永瀬王座 永瀬王座
  4. 豊島九段 豊島九段
  5. 齋藤八段 齋藤八段
  6. 出口六段 近藤七段
  7. 八代七段 菅井八段
  8. 伊藤五段 天彦九段
  9. 服部四段 稲葉八段
  10. 近藤七段 八代七段

順位だけで比較すると、2021BTの方がやり直近の活躍が反映されているのに対して、レーティングの方は過去の蓄積が効いている感じですね。

BTモデルは2021年のデータしか用いていないので2021年の活躍が反映されているのは当然。まあそもそも比較する方がおかしいって話ではあるのですが、それでも上位の順位がある程度似ているのは、レーティングも最近の活躍がある程度反映されるモデルだということを示していると考えられます。

 

レーティングをRで計算する

レーティング自体は何も外から情報をを取ってこなくても、自分で計算できるものでもあります。勝敗データはBTモデル用に前処理したものがあるので、あとは計算さえできればいいわけです。

RにはPlayerRatingsというパッケージがあり、双方のプレイヤー名と試合結果、試合日のデータさえあればレーティングの計算が可能です。詳しくはこちらで紹介されています。

RのPlayerRatingsパッケージを使ってテニス選手のレーティングを求める - Qiita

手元には2021年の棋戦成績データが揃っているので、ほとんど手間無くレーティングを算出することができました。

 

2021年データで算出したレーティング

  1. 藤井竜王
  2. 服部四段
  3. 伊藤(匠)五段
  4. 八代七段
  5. 出口六段
  6. 永瀬王座
  7. 池永五段
  8. 近藤七段
  9. 本田五段
  10. 梶浦七段

な、なんというか、言っている意味はわかるが、ちょっと極端じゃないか?というランキングになりました。活躍している若手のリストであることは間違いないですが、永瀬王座は6位、渡辺名人は13位、豊島九段は29位というのは少々極端すぎる気が…

ここでも1位になる藤井竜王はいかにもとんでもない存在なのですが、算出されたレーティング(初期値1500、係数K16)は1700程度で、現在の彼のレーティングはどこでも2000超えですから、2021年のデータだけを用いてレーティングを計算しても適正値に達してはいないんでしょうか。(K値をもっと大きくすればいいのかもしれませんが、必ずしもそれだけではない気も)。

 

BTモデルのレーティングに対する強み

感覚値としては2021年のBTモデルが実態を反映しているように見えて、でも実力者を軽んじすぎているようにも見えます。過去のデータを積み増せばこの問題は解決するとは思われますが、当然最近のデータの相対的な価値が落ち、「調子」が反映されづらくなります。

おそらくレーティングでも話は同じですが、2021年のデータを使って比較した限りは、レーティングを「適正値」に寄せるには2021年のデータだけでは足りなそうでした。巷で用いられているレーティングであっても服部四段や伊藤匠五段が適正レーティングにまだ到達できていない感じがしますが、全員が初期値の状態からスタートするとなるとより多くの時間がかかるわけです。レーティングというものは過去の積み重ねがあって初めてその数値に意味が出てくるものであるため、調子などの短期間の要素を反映するのは相当難しいだろうと思われます。

レーティングとの比較という観点では、BTモデルは過去からのデータの蓄積が不要な分、より直近のデータでの評価が可能と言えるのでしょう。

 

とはいえ予測性能の確認が必要

ここまでBTモデルとレーティングのランキングを作り、その「適正」さをなんとなくの「感覚値」と比較してきましたが、「感覚値」だって過去の実績に引きずられている部分もあるだろうし、これだけではどちらがより正しいかはわかりません。

モデルの予測性能は、モデル構築に用いなかったデータの予測性能を見て初めてわかるものでもあるので、今後しばらくはそういった検証をする必要があるように思います。

BTモデルもレーティングも手元でRを使って計算できるようになったので、予測結果の算出と実際の結果との比較は割と簡単にできる…と思われます。

とりあえず手元には2021年の対局データしかないので、手元のレーティングをある程度使えるようにするには、藤井竜王デビュー以前くらいからデータを積まないとだめでしょうね。

2021年のプロ棋戦のデータを解析した(1)

ソースデータ

  • 将棋連盟の月間対局結果ページから、2021年の1月~12月の対局結果
  • Wikipediaから第71回NHK杯トーナメント結果(収録日データ含む)
  • 囲碁将棋チャンネルから第29期銀河戦結果(収録日データ含む)

月間対局結果|対局予定・結果、記録|日本将棋連盟

第71回NHK杯テレビ将棋トーナメント - Wikipedia

将棋 - 銀河戦|囲碁・将棋チャンネルホームページ

タイトルに2021年と称しながら、銀河戦は前に、NHK杯は後ろに、それぞれ開催時期がずれてるじゃねーか、というツッコミは甘んじて受けますが、今回は棋戦時期の厳密さは求めていなくて、単純に取りやすいデータを取ってきてとりあえず解析を回すことが第一義と考えていました。

 

プロ棋士を特定するため、棋士データベースのデータも取ってきています。

棋士番号順一覧|棋士データベース|日本将棋連盟

将棋の女流棋士一覧 - Wikipedia

 

データハンドリング

詳細は省略しますが要点だけ。

  • 上記の3つのソースデータを、先手、後手、先手勝敗、後手勝敗、棋戦種類、対局日を対局ごとに1レコードとして縦に積み(rbind)ます。なお、将棋連盟HPから取ってきたデータは対局日が別行に記載されているので、データ加工を少し頑張る必要があります。
  • 棋士リストと女流棋士リストを縦に積み、上記の棋戦データの先手、後手をキー変数としてそれぞれマージ(inner_join)します。先手、後手のどちらかにプロ棋士・プロ女流棋士のデータが入っていたら除き(filter)ます。
  • 先手が勝利したとき1、後手が勝利したときが0となる変数を持っておきます。(解析時にBTmで指定します)
  • RのBradleyTerry2パッケージでは、強さを推定したい「Player」を因子化する必要があります。先手後手データを縦に積み、重複を取り除き(arrange, distinct)、因子化(as_factor)します。(名前をそのまま因子化したので、阿久津八段が先頭の因子でした。)
  • この段階で使えるかはわかりませんが、対局日を文字列から日付データに変換したり、棋戦種類から早指し(NHK杯銀河戦、朝日杯、JT杯に加えて、持ち時間1時間の棋戦予選)、長時間棋戦(順位戦竜王戦、2日制タイトル戦)のカテゴリー変数を作ったりしています。

 

解析ーBradleyTerry2::BTm

BradleyTerry2の詳細はこちら。

ブラッドリーテリーモデル - たなかし@観る将×データ解析練習場

ま、とりあえず解析を回してみました。入力した2021年の対戦データにおける棋士ランキングトップ10はこんな感じでした。

  1. 藤井竜王
  2. 渡辺名人
  3. 永瀬王座
  4. 豊島九段
  5. 齋藤八段
  6. 出口六段
  7. 八代七段
  8. 伊藤(匠)五段
  9. 服部四段
  10. 近藤(誠)七段

いやー、いろいろ納得感がありますね。まず4強が並び、時点が齋藤八段。そこまでは誰もが異論なしだと思うんです。

次の5人の並びが印象的ですよね。ちなみにこれは2021年の成績を用いているので、叡王戦の決勝トーナメントの成績は含まれていないのですが、叡王戦挑戦者の出口六段が6位にランクインするわけですか。個人的にはそこまでだとは思っていませんでした。。すみません。

 

レーティングとの比較

とりあえずこのランキングをレーティングと比較してみましょう。本当は2021年末のレーティングデータと比較できるといいんですけど見つからないので、とりあえず2022年4月15日版を使います。

将棋棋士レーティングランキング shogidata.info

  1. 藤井竜王
  2. 渡辺名人
  3. 永瀬王座
  4. 豊島九段
  5. 齋藤八段
  6. 近藤(誠)七段
  7. 菅井八段
  8. 佐藤(天)九段
  9. 稲葉八段
  10. 八代七段

 

6位以降が結構違うんですよね。レーティング6位の誠也七段は、2021年BTモデルでは10位です。ただこれは、2022年の王位リーグの快進撃が関連している可能性もありますね。

レーティング7位の菅井八段は2021年BTモデルではなんと24位です。それはそれでBTモデルの方に違和感もあるのですが、最近の菅井八段は明らかに調子が良いのと比較して、2021年は特に骨折期間中の調子が悪かったですね。それが反映されているのでしょうか。

8位の天彦九段ですが、2021年BTモデルはなんと36位です。これも菅井八段と同じ現象な気がします。

9位の稲葉八段は2021年BTモデルでは30位です。さて…稲葉八段はそんなに調子の波があったでしょうか。これはデータの有無の問題ではなさそうな気もします。

10位八代七段はBTモデルも7位なんで、そんなにギャップはないですかね。

 

逆に2021年BTモデル上位の出口六段、伊藤(匠)五段、服部四段はどうなんでしょうか。出口六段はレーティング12位なんでそれほど大きなギャップがありませんが、服部四段は17位、伊藤(匠)五段は27位で、だんだん差が開いていきます。

出口六段、服部四段、伊藤(匠)五段の共通項としては「新鋭の若手」というところですが、それぞれ棋士番号は317、322、324であり、プロデビューの順番もこの通りです。つまり、彼らの強さがレーティングにまだ反映されきれていないのではないか、ということが考えられます。

逆に菅井八段、天彦九段、稲葉八段は全員A級棋士で、レーティングでは過去の対局の蓄積が反映されています。2021年に一時的な不調があったとしてもレーティングは大きくは変わりませんが、2021年のみのデータを用いたBTモデルでは、好不調の波が反映されやすいということになります。

 

 

 

今回はこんなところにして、次回に続くとしましょう。

 

ABEMAトーナメント

ABEMAトーナメントってなんであんなに面白いんだろ。うまく説明できないんですよね。

重厚なタイトル戦とは真逆のライトなエンタメってところが、大事なんですかね。それでも対局になるとみんなムキになってやるところが、またよいのですが。

 

これは面白いなと思ったチーム

  • チーム藤井

ベテラン狙いということで木村九段に行くのかと思いましたが、森内九段でしたね。まさか藤井竜王がクジを当てるとは思ってなかったので、思わず「おー」とか言ってしまいました。藤井てんてーは予想通りでした、というのは、藤井竜王はてんてーの序盤戦術には一目置いているのではないかと、勝手に思っていたからです。三浦九段は「エンターテイメントがわかってきた」と言っていますが、たぶんこのチーム結構強いです。

  • チーム山崎

いや、でもね、私は今回はチーム山崎がすごくよいと思うんです。山崎八段、松尾八段、阿久津八段って、どう考えても「本人達の楽しさ重視」。でも観てる側があまりストレスかからなくて、なんかすごくいいチームな感じがするんです。

  • チーム康光

結果的に会長のチームと山ちゃんのチームは、指名も被ったけどコンセプトも被った。こういうチームが増えたのはすごくいいよね。非公式戦なんだからこちらもリラックスしたい。

ドラフトを盛り上げたリーダー

  • 天彦九段

チーム永瀬を削る戦略。まっすーは失敗したけど、なんだかんだでカジーを取ってしまったので、軍曹が二巡目に勇気七段を指名するくらいパニクってたのがよかった。将棋はエンターテイメントだからね!!

  • 豊島九段

藤井さんに強い深浦九段を指名して一発パンチを入れるって、テレビでそんなコメントするキャラでしたっけ!?しかし藤井竜王と対局しすぎて思考が完全に似通ってしまいましたね。

エントリートーナメント

実況の2人が頑張って勝ち残るんではないかなと予想。去年は二人とも出られてしかも対局できたけど、今年は同じチームで頑張って欲しい!(予選リーグが厳しすぎる…。)

 

明日からかぁ。

対局データの前処理

連盟対局データ

BTモデルが使えそうで、Rを使って解析もできそうなことがわかった。では解析に使う各対局の勝敗データはどこから取ってこようか。

ふつうに考えれば連盟がHPで公開している対局結果だろう。

月間対局結果|対局予定・結果、記録|日本将棋連盟

HP上に表形式で各対局の結果を月別に公開している。これはコピペしてExcelに貼り付けてそれをRに取り込めば、それほど大きな加工をしなくても使えそう。

ただ、いくつか問題がある。

  1. NHK杯銀河戦の結果が入っていない。これらの短時間棋戦の結果を解析に使わないと、短時間棋戦における強さの推定が難しくなってしまう。どこか別のデータソースを確保する必要がある。しかもこれらのテレビ棋戦の場合は放映日と対局日は違うので、できれば対局日の情報が欲しい。
  2. 新人王戦・加古川青流戦には奨励会三段が、また各棋戦にはアマチュアが参加しているが、原則これらの対局結果は取り除くことにする。

 

テレビ棋戦のデータ

NHK杯

NHK杯の結果も連盟で別ページにまとめられているが、放送日の記載こそあれ、対局日は不明。NHKもHPで公開しているが、状況は同じで連盟HPの方が使いやすい。

対局日の記載もあるデータソースは、Wikipedia。奇特な誰かが対局日もまとめてくれている。これを使おう。

第71回NHK杯テレビ将棋トーナメント - Wikipedia

ちなみに、NHK杯の予選の対局日程はどこにもかかれていない。結果だけなら連盟HPにあるので、これを使うかどうか…。

 

銀河戦

さて銀河戦。連盟HPはNHK杯と状況は同じ。銀河戦Wikipediaは対局結果がまとめられていない。囲碁将棋チャンネル棋譜データに対局日記載があるので、1局ずつ調べなくてはならない。。

将棋 - 銀河戦|囲碁・将棋チャンネルホームページ

ちなみに予選の結果は、連盟HPに他棋戦の結果と区別せずに記載されている。なぜNHK杯銀河戦で扱いが違う…。

 

アマ棋士データの使用

将来プロ棋士になるアマ棋士

連盟の対局データでは、奨励会三段の棋士は「三段」、アマ棋士は「アマ」と、それぞれ名前の末尾に記載されている。ただ、過去に「三段」あるいは「アマ」だった棋士がプロ棋士になるケースはある。「三段」「アマ」だから一律に対局データから取り除くという対応はしたくない。なので「三段」「アマ」表記は一旦取り外す。

 

棋士番号リストと引退棋士取り扱い

ではプロ棋士奨励会三段含むアマ棋士をどう区別するか。棋士番号リストを使う。これは連盟HPで公開されているものを使えばよい。

棋士番号順一覧|棋士データベース|日本将棋連盟

棋士番号は当然引退棋士にも与えられている。ある程度過去の対局まで遡ってデータとすることを考えると、今現在引退しているかどうかは全く重要ではない。むしろ区別する必要はない。

 

データ解析上の注意点

ただし、RでBTモデルを扱うBradleyTerry2パッケージの特性上、変数としての棋士はfactor化する必要があり、対局データを持たない棋士がこのfactor定義に紛れ込むと推定ができなくなることがわかった。棋士番号そのものをfactor化(as.factor(棋士番号))すると失敗する。

そこで、対局のあった棋士のリスト(先後の棋士リストをrow_bindしてdistinctする)と棋士番号のある棋士のリストをinner_mergeして、対局データがありかつプロ棋士である棋士に限ったfactor変数を作り、先後棋士のデータを作成したfactor変数で置き換えることで対処することにした。

 

女流棋士・女流棋戦

なお、女流棋戦の結果も連盟のデータには入っているが、女流棋士の結果を意図的に取り除く理由はないので、そのまま使おうと思う。強豪女流棋士は通常棋戦でも結果を残している(データが多くある)ので、棋士女流棋士を混ぜて解析を行っても全く問題はない。

ただし、女流棋士は諸事情により所属が分かれていたりフリーの棋士がいるので、リストが分散している。そこでここでもWikipediaに協力してもらうことにする。

将棋の女流棋士一覧 - Wikipedia

 

三段リーグデータの活用

なお将来的には奨励会三段リーグの結果も利用できるようにしようと思っているが、HPで公開されている三段リーグの結果表からは先後の区別が読み取れないという重大な欠点がある。

断片的に先後データが取得できる場合もあるが、対局も多いので手入力は面倒である。従ってデータを使うとしても先後データは欠測のままにする。

先後データをどう欠測処理するかはBTモデルへの理解が深まってから考えたいので、奨励会三段データの活用は、一回保留としたい。

 

これでBradleyTerry2パッケージを利用するBTモデル解析の準備は完了です!!