Repository navigation
feat(kelly,#19516): Fractional Kelly companion -- surface croissance/variance multi-seed - #19529
Conversation
…variance multi-seed Carnet compagnon du lake kelly_lean (plan #16231) qui mesure le compromis croissance / variance du *fractional Kelly* : pour c in [0, 2], sweep multi-seed Monte-Carlo (T=2000 pas, n_seeds=8 parmi {0, 1, 7, 42, 99, 123, 456, 789}) de la log-croissance finale et de son ecart-type. Repere canonique : p=0.55, b=1, f* = 0.10, g(f*) = 0.005008. - demi-Kelly (c=0.5) : g=0.00375 (75% du pic), std=2.23 (50% du std max) -> compromis croissance/variance de 1.5:1 - 8 seeds, ecart MC vs theorie ~5-10% sur la zone praticienne c in [0, 1.25] Carnet 1 (Fractional Kelly) de l'acceptance #19516 partiellement couvert : - companion Python execute avec sorties multi-seed (acceptance explicite) - lake Fractional (growth(c·f*) ≤ growth(f*)) a venir c.56 via module Fractional.lean -- preuve directe par monotonicite du log, pas de concavite requise (cf. commentaire Growth.lean:22 sur la strategie contournee pour le phare kelly_optimal). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
Grain tag obligatoire (#10045, bloquant).
Pour passer ce gate, le body doit porter en tete une ligne de la forme : Le |
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
✅ No unanchored measurement claim detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams). Scope = notebooks CHANGED in this PR, not the whole corpus. The |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Path-collision (organ #13359/#13615)Cette PR #19529 (
|
…lti-seed (carnet 2) Carnet compagnon Python du lake `kelly_lean` (issue #19516 carnet 2, plan #16231). Mesure le biais de l'optimiste : quand `p` est estime avec `p_hat ~ N(p, sigma)`, la fraction de Kelly `kellyFrac(p_hat)` surexpose le capital. La perte de croissance depend fortement de sigma, ce qui justifie quantitativement le *shrinkage* (fraction c < 1). Repere canonique : p = 0.55, b = 1 (binaire no-vig), f* = 0.10, g(f*) = 0.005008. 5 niveaux sigma (0, 0.01, 0.025, 0.05, 0.10), T = 2000 pas, 8 seeds parmi {0, 1, 7, 42, 99, 123, 456, 789} (C.3 multi-seed). Mesures : - sigma = 0.000 : <logW>/T = 0.004519 (90.23 % de g*, bruit MC) - sigma = 0.010 : 0.004320 (86.26 %, perte negligeable) - sigma = 0.025 : 0.003788 (75.64 %) - sigma = 0.050 : 0.002277 (45.46 %, shrinkage 0.5-0.8 rentable) - sigma = 0.100 : -0.003163 (-63.16 %, abandon ou c < 0.5) Acceptance #19516 carnet 2 : notebook execute via nbclient (Tell c.18529 voie 1), 5 cellules code avec execution_count = 1..5, 0 erreur, 0 cellule NotImplementedError (C.1). Sorties multi-seed chiffrees, figure optimist_bias_loss.png embarquee + sauvegardee, justification quantitative du shrinkage. Lie au lake Fractional.lean (c.56, PR #19534) et au companion Fractional carnet 1 (PR #19529). Refs #19516 (carnet 2), #16231. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Grain: DEEP/notebook-python — lane myia-po-2024:CoursIA-2 — prev: LIGHT/refactor #19500
Sujet
Carnet compagnon du lake
kelly_lean(plan #16231, issue #19516) qui mesure le compromis croissance / variance du fractional Kelly. Pourc ∈ [0, 2], sweep multi-seed Monte-Carlo (T = 2000 pas, 8 seeds parmi{0, 1, 7, 42, 99, 123, 456, 789}) de la log-croissance finale et de son écart-type.Repère canonique
p = 0.55,b = 1(binaire no-vig),f* = (b·p − q)/b = 0.10,g(f*) = 0.005008au log-croissance.Lecture
Acceptance #19516 (carnet 1)
Kelly_companion-Fractional-Python.ipynb, exécuté vianbclient(Tell c.18529 voie 1), 7 cellules code avecexecution_count = 1..7, 0 erreur, 0 celluleNotImplementedError(C.1 conforme).fractional_kelly_tradeoff.png(139 KB) embarquée + sauvegardée.Fractional.lean: à venir c.56 — moduleFractionalavec preuve directegrowth(c·f*) ≤ growth(f*)par monotonicité du log (pas d'invocation de concavité abstraite, suivant la stratégie contournée documentée enGrowth.lean:22).Kelly_companion-Fractional-Python.ipynbutilise le naming canonical post-rename(kelly,#16231): suffixes kernel des compagnons + section Carnets suivants #19518 (qui rebascule la conventionKelly_companion.ipynb→Kelly_companion-Python.ipynb). Cohérent avec le merge à venir de rename(kelly,#16231): suffixes kernel des compagnons + section Carnets suivants #19518.C.2 — outputs
execution_countnon-null etoutputsnon-vides (sauf cellule 1 =importqui n'a pas d'output par construction).+507/−0(2 fichiers créés) : notebook 14 cellules, PNG 139 KB.Validation locale
python scripts/notebook_tools/validate_pr_notebooks.py origin/main ...: 1/1 PASS (8 code cells, 0 erreur).compile()au head : cellule 5 (growth+ sweep), cellule 7 (std_logW_per_step), cellule 10 (MC sweep) — toutes valides, 0 erreur.execution_countnon-null sur toutes les cellules code.raise NotImplementedError\|assert False\|1/0sur le notebook → 0 hit.Refs #19516, #16231.
🤖 Generated with Claude Code