知らないサイズに対するディフェンス頻度

この記事は何?

MDFは強い!という主張です、もし、記事が長いと思ったら最後のまとめだけでも読んでください


ソルバーを模倣する戦略構築が抱える問題

ポーカーにおいてPiosolverなどのツールが提示する戦略を模倣する戦略構築の方法は自分がベットをする側の局面においては有効な方法の一つだと思われますが、自分が相手からベットを受ける側の局面では相手にソルバーに入力されていないサイズを使用されると適切な対応が分からなくなる問題が生じます。
これは計算力の制約の為にベットサイズを簡略化していることに起因する問題ですが、仮に全てのベットサイズを入力したソルバー解を手に入れることができても、それは膨大な情報量を含むでしょうから、ソルバー解を暗記して模倣するような手法ではそれを模倣することができず、結局相手の変則的なサイズに対応できない問題が生じるでしょう

MDFの強みと問題

ディフェンス頻度を考える際によく語られるMDFですが、こちらはソルバーと違い任意のベットサイズに対応できるという利点があります。
しかし、ご存知のようにMDFとソルバーが示すディフェンス頻度は状況によっては大きく乖離することがあります、ソルバーからの乖離が必ずしもEVロスに繋がるわけではないですが、相手の戦略が予測できないような状況ではとりあえずソルバーを模倣するのが無難でしょうから、この乖離はうれしくありません。

本題

もし、任意のサイズに対してMDFとそのサイズを入力したソルバー解のディフェンス頻度の値との乖離を推測する方法があれば、変則的なサイズのベットに対しても適切に対応する指針になると考えられます(その後に具体的なレンジ構築をする必要はありますが)

ソルバーのディフェンス頻度からMDFを引いた値(以下MDF乖離と呼びます)を推測するヒューリスティックを構築する為の材料を示すのがこの記事の本題です

分析の流れ

MDF乖離を予測する要因を以下の流れで示します
1.機械学習を使ってMDF乖離を予測するモデルを構築する
2.構築されたモデルに対しSHAP分析を行い予測の根拠を明らかにする

簡単にいえばMDF乖離に自信ニキを作って、そのお気持ちを教えてもらうという流れです

モデルの構築

今回はEQBとベットサイズからMDF乖離を推測するモデルをLightGBMを使って構築します。

集合分析から作成したボード毎のストリート開始時のEQB
OOP80はOOPのEQ80〜90%のハンドが OOPレンジ全体に占める割合を示してる
W列は33%ベットをされた場合のMDFとソルバー乖離の値

具体的には上の画像のB〜V列からW列を予測する関数を作ります。

経験上ソルバーの戦略を予測する特徴量としてEQBが最も強く、LightGBMが筆者が扱える中で最強の手法なのでこのような構築になりました。


構築したモデルのテストデータに対するスコア

今回はBTNvsBB(2bet),SBvsBTN(3bet),COvsBTN(3bet)の3つのシチュエーションでFlopもしくはTurnでCBを受けるノードそれぞれでモデル構築を行い、テスト結果は決定係数、誤差平均共に良好な結果が得られました。

予測の理由を調べる方法

EQBからMDF乖離を高い精度で予測できることが分かったことは良いのですが、lightGBMは所謂ブラックボックスモデルであり、回帰分析のように予測の理由を簡単に知ることはできません、その為、今回の分析ではSHAPという手法を用います。

SHAPの概要
SHAP はそれぞれの特徴量の予測への貢献度を計算することで、あるデータに対する予測を説明する手法です。
詳しく説明すると長くなってしまうので詳細が知りたい場合は以下のリンクなどを参考にしてください
https://hacarus.github.io/interpretable-ml-book-ja/

SHAPを使った分析の結果

BTNvsBB 2bet vsTurnCB

SHAP Summary Plot

各点はあるデータの特徴量のシャープレイ値(予測に与えた影響度)です。 y軸方向の位置は特徴量、x軸の位置はシャープレイ値によって決まります。 色は特徴量の値の大小を表し、特徴量は重要度に従って並べられています。

ディフェンス側であるOOPのEQ10〜30%の弱いハンドがレンジに占める割合がディフェンス頻度を強く押し下げているのがわかります。
(TurnでCBを受けるノードなので、EQ0〜10%のハンドは僅かしか存在しないので影響度も小さくなっています)

SHAP Dependence Plot(EQB)

y軸はシャープレイ値、x軸は特徴量の値で点の色は最も相互作用が強い特徴量の値を表しています。
y軸のスケールが統一されていないので少しわかりずらいですが、EQ10〜20%とEQ20〜30%のレンジは割合が増えるほどディフェンス頻度を押し下げ、しかも押し下げ度合いが他の特徴量より大きいです。

SHAP Dependence Plot(EQB)

ベットサイズがMDF乖離に与える影響は今回検証した33%〜300%の範囲では大きくないです。

BTNvsBB 2bet vsFlopCB

今回使用したsubsetが184Flopだったので、Flopだとデータ足りてない感がありましたが、このノードでも引き続きOOP側の弱いレンジが多くなるとディフェンス頻度を強く押し下げる傾向があります。

SBvsBTN 3bet vsTurnCB


このノードだとsizeの重要度が最も高くなっていますが、ディフェンスをする側のIPの弱いレンジの重要度も高く出ています

BBvsBTNと同じくディフェンス側の弱いレンジの割合が増えるほどディフェンス頻度を強く押し下げています。

SBvsBTN 3bet vs FlopCB

このノードだとサイズとOOPのナッツ級の影響が強く出ています。
他のノードと同じようにディフェンス側の弱いレンジが増えるとディフェンス頻度が下がります。

BTNvsCO 3betの分析結果はBTNvsBB 2betと似たような傾向を示したので省略します。

弱いレンジの影響の考察

今回分析した全てのノードでディフェンス側のEQの低いレンジが増えるとディフェンス頻度が下がる傾向がありました。
この傾向について「EQの低いハンドを降りたから、結果的にディフェンス頻度が下がった」と解釈することもできますが、MDFが大きくなる200%以上のベットに対してもEQの低いハンドがディフェンス頻度を押し下げている、すなわち、EQの低いハンドだけではなく中程度のEQのハンドも合わせたフォールド頻度が上昇していることを考慮すると、この傾向は「ディフェンス側のEQの低いハンドがベット側のチェックEVの押し上げ要因になっていて、チェックEVが高いので多くフォールドしても相手はブラフを増やせないので高いフォールド率が正当化される」と解釈できるのではと思っています。

まとめ

eff100BBで現実的に使われそうなサイズに対してはベットサイズがMDFとソルバーのフォールド頻度との乖離に与える影響はそこまで大きくなく、ディフェンス側のEQ0〜30%のレンジの割合が与えるマイナスの影響がどのノードでも大きいことが分かりました。
なので、ソルバーで予習してないベットサイズを使われて、しかも、相手のレンジが推測できない状況では、MDFを目安にディフェンスレンジを決めて自分のレンジに弱いハンドが多そうであれば際どいハンドは降りる程度のヒューリスティックで降りすぎ、または、コールし過ぎが原因のエクスプロイトは防ぐことができると思います。


この記事が気に入ったらサポートをしてみませんか?