id: a0ba84c8077d49adafb4fc66ebb38c66
parent_id: 8ffcfa5259c94e308e01fb85112ba84f
item_type: 1
item_id: f3c42f4435644e19b186265dd3fbf672
item_updated_time: 1786734961749
title_diff: "[]"
body_diff: "[{\"diffs\":[[0,\"#7 (\"],[-1,\"revised): Action-Likelihood Range Re-weighting (2026-08-14)\\\n\\\n## Problem\\\nKK-type overplay: overpair assessed 0.58-0.65 equity on A-high boards\"],[1,\"final design): Xpot Rollout Table + Hand-Fit Weight Curves (2026-08-14)\\\n\\\n## Problem\\\nOverpairs/TP overplayed on overcard boards (KK assessed 0.58-0.65 vs true ~0.10-0.25\"],[0,\" vs \"]],\"start1\":7,\"start2\":7,\"length1\":149,\"length2\":176},{\"diffs\":[[0,\"ines\"],[-1,\" (true ~0.10-0.25\"],[0,\"). P\"]],\"start1\":199,\"start2\":199,\"length1\":25,\"length2\":8},{\"diffs\":[[0,\"G50 \"],[-1,\"path \"],[0,\"(alp\"]],\"start1\":217,\"start2\":217,\"length1\":13,\"length2\":8},{\"diffs\":[[0,\".0) \"],[-1,\"skips ALL\"],[1,\"applies zero\"],[0,\" boa\"]],\"start1\":229,\"start2\":229,\"length1\":17,\"length2\":20},{\"diffs\":[[0,\"ion \"],[-1,\"narrowing — range comes purely from RangeNet `probs_to_hand_range`, which does\"],[1,\"reweighting — RangeNet output only\"],[0,\" card\"],[-1,\" \"],[1,\"-\"],[0,\"exclu\"],[-1,\"sion only. `narrow_board_hit_boost` exists (range_builder.rs:514) but only runs in the heuristic fallback; percentile S-curve narrowing ignores draws/overcards.\\\n\\\n## Revised design (user proposal): Bayesian action-likelihood re-weighting\\\nP(hand | actions, board) ∝ P(actions | hand, board) × P(hand)\\\n- P(hand) = RangeNet prediction (prior)\\\n- P(actions | hand) = likelihood from\"],[1,\"ded.\\\n\\\n## Design (agreed with user)\\\n\\\n### 1. Raw Xpot rollout table (per street, vs RANDOM hands — not ranges)\\\nFor each unmasked combo (≤169, typically ~40-90 after hero/board exclusion): MC rollouts vs uniform random opponent + random runout → hs, ppot, npot, nutpot, rpot\"],[0,\" per\"],[-1,\"-\"],[1,\" \"],[0,\"combo\"],[-1,\" strength profile: hs (static LUT eval percentile vs actual board, 169 evals, cheap), ppot/npot (draw classification tier or small shared-board MC via\"],[1,\". Board-exact, range-free.\\\n- **Key optimization**: table depends only on (board, hero cards) → compute ONCE per street, shared by ALL opponents.\\\n- Efficient sampling: sample M runouts, evaluate all combos on each (LUT eval); ~169×M evals, ~20-50ms/street. Existing\"],[0,\" Han\"]],\"start1\":260,\"start2\":260,\"length1\":633,\"length2\":598},{\"diffs\":[[0,\"otential\"],[-1,\"),\"],[1,\" + GPU\"],[0,\" nutpot/\"]],\"start1\":860,\"start2\":860,\"length1\":18,\"length2\":22},{\"diffs\":[[0,\"pot \"],[-1,\"(GPU MC infra exists, commit f2312ab; matters for big-bet lines)\\\n- Likelihood shapes per StreetAction × bet-size bucket: CalledBet(big) → high hs or ppot+odds or nutpot; Bet/RaisedBet → hs or ppot semi-bluff + bluff floor; Checked → mid/low hs. Compounded\"],[1,\"infra reusable.\\\n\\\n### 2. Weight map: weight = prior × Π curve(Xpot) × action multipliers\\\n- prior = RangeNet 169-dim probs (already consumes VPIP/PFR/3bet/action history via 85 features)\\\n- curves C_hs, C_ppot, C_npot, C_nutpot, C_rpot: hand-fit monotone (logistic/spline, center+steepness+floor knobs), applied per combo from rollout table\\\n- action\"],[0,\" mul\"]],\"start1\":883,\"start2\":883,\"length1\":263,\"length2\":354},{\"diffs\":[[0,\"ipli\"],[-1,\"catively\"],[1,\"ers\"],[0,\" per \"],[-1,\"s\"],[1,\"S\"],[0,\"treet\"],[-1,\" (naive Bayes), renormalized.\\\n\\\n## Properties\\\n- Subsumes hand-crafted board-interaction classes: overcards, paired boards, straights, flushes, river overtake all appear as hs changes automatically\\\n- Board-exact — corrects RangeNet's structural blindness (board seen only via 4 texture + 10 card features)\\\n- Bet-size conditioning per-hand, not global\\\n\\\n## Integration / pitfalls\\\n1. REPLACE percentile S-curve + narrow_board_hit_boost (supersedes both), same TOML knobs\\\n2. Keep bluff floors (narrow_floor) — avoid over-narrowing\\\n3. Calibrate likelihoods from equity_v5_2m4 data (19.2M samples with showdown\"],[1,\"Action × bet-size bucket, centers = player's observed frequencies (call_freq/bet_freq — rarity weighting like existing narrow code). Preflop actions (raised/3bet/called) included.\\\n- stats (VPIP/3bet) enter via NN prior + action centers only — avoid double-counting by NOT re-adding raw stats in corrector\\\n- renormalize; per-combo and global ratio clamps\\\n\\\n### 3. Floors\\\n- per-curve floors (like narrow_floor, keep bluff mass), plus final weight floor sweep: ratio clamp (e.g. 1/20..20× prior) and/or max(w, floor×mean). Sweep floor values vs NN pool.\\\n\\\n### 4. Hand-fit first, validate offline\\\n- Hand-fit curves initially (user decision), tune via replay_kk_overplay\\\n- Offline validation: equity_v5_2m4 showdown labels → measure P(actual\"],[0,\" hand\"],[-1,\"s +\"],[1,\" |\"],[0,\" action\"],[-1,\" lines; logistic fits per action × size bucket) instead of hand-tuning 6-8 knobs\\\n4. Cost: negligible vs multiway equity MC downstream\"],[1,\"s) log-likelihood with/without corrector (direct metric, no sim needed). Can later refit curves from this data.\"],[0,\"\\\n\\\n##\"]],\"start1\":1238,\"start2\":1238,\"length1\":777,\"length2\":881},{\"diffs\":[[0,\"play\"],[-1,\" (#[ignore], real profiles)\"],[0,\" → H\"]],\"start1\":2147,\"start2\":2147,\"length1\":35,\"length2\":8},{\"diffs\":[[0,\"nl_g50 →\"],[1,\" floor/curve\"],[0,\" sweep v\"]],\"start1\":2194,\"start2\":2194,\"length1\":16,\"length2\":28},{\"diffs\":[[0,\"in\\\n1\"],[-1,\"-1.5d (+0.5d if fitting likelihoods from data)\"],[1,\".5-2d\"],[0,\". +1\"]],\"start1\":2245,\"start2\":2245,\"length1\":54,\"length2\":13},{\"diffs\":[[0,\"ve, \"],[-1,\"largest\"],[1,\"max\"],[0,\" vs \"]],\"start1\":2270,\"start2\":2270,\"length1\":15,\"length2\":11},{\"diffs\":[[0,\"ds. \"],[-1,\"Interim until EquityNet (#1); improves #1 training targets. Generic action-likelihood refinement, not just the KK patch\"],[1,\"Generic: all board interactions (overcards, pairs, flush/straight overtakes) handled automatically\"],[0,\".\"]],\"start1\":2299,\"start2\":2299,\"length1\":124,\"length2\":103}]"
metadata_diff: {"new":{},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2026-08-14T19:25:24.494Z
created_time: 2026-08-14T19:25:24.494Z
is_locked: 0
type_: 13