{ "model_name": "realism-scorer-v1", "model_version": "1.0.0", "created_at": "2026-08-06T18:35:34Z", "seconds": 45.7, "compute": { "device": "cpu", "framework": "scikit-learn", "hist_gradient_boosting_max_iter": 400, "extra_trees": 120, "blend": { "hgb_weight": 1.0, "extra_trees_weight": 0.0, "selection": "minimum validation log-loss" } }, "data": { "battles_total": 14170, "min_card_plays": 12, "negatives_per_real": 3, "tiers": [ "easy", "medium", "hard" ], "feature_dim": 67, "train_rows": 39680, "val_rows": 8500, "test_rows": 8500, "splits": [ { "split": "train", "battles": 9920, "team_win_rate": 0.5158266129032258, "mean_events": 66.11300403225806 }, { "split": "val", "battles": 2125, "team_win_rate": 0.5171764705882353, "mean_events": 65.31858823529411 }, { "split": "test", "battles": 2125, "team_win_rate": 0.4875294117647059, "mean_events": 66.89411764705882 } ] }, "val": { "acc": 0.9632941176470589, "auc": 0.9923433264129181, "n": 8500, "mean_score_real": 0.8875523687048661, "mean_score_fake": 0.041520772067366124, "log_loss": 0.09345374568317749, "by_tier": [ { "tier": "easy", "n_negatives": 2125, "acc": 0.9818823529411764, "auc": 0.9999980069204152, "n": 4250, "mean_score_real": 0.8875523687048661, "mean_score_fake": 0.00018661890671850323, "mean_score_negatives": 0.00018661890671850323, "reject_rate_at_0.5": 1.0 }, { "tier": "medium", "n_negatives": 2125, "acc": 0.9818823529411764, "auc": 1.0, "n": 4250, "mean_score_real": 0.8875523687048661, "mean_score_fake": 5.2806418826299565e-05, "mean_score_negatives": 5.2806418826299565e-05, "reject_rate_at_0.5": 1.0 }, { "tier": "hard", "n_negatives": 2125, "acc": 0.9265882352941176, "auc": 0.977031972318339, "n": 4250, "mean_score_real": 0.8875523687048661, "mean_score_fake": 0.12432289087655354, "mean_score_negatives": 0.12432289087655354, "reject_rate_at_0.5": 0.8894117647058823 } ] }, "test": { "acc": 0.9587058823529412, "auc": 0.9904306343713957, "n": 8500, "mean_score_real": 0.883640746198733, "mean_score_fake": 0.042585812483399724, "log_loss": 0.1009734335067055, "by_tier": [ { "tier": "easy", "n_negatives": 2125, "acc": 0.9762352941176471, "auc": 1.0, "n": 4250, "mean_score_real": 0.883640746198733, "mean_score_fake": 0.00010598965807720862, "mean_score_negatives": 0.00010598965807720862, "reject_rate_at_0.5": 1.0 }, { "tier": "medium", "n_negatives": 2125, "acc": 0.9762352941176471, "auc": 1.0, "n": 4250, "mean_score_real": 0.883640746198733, "mean_score_fake": 5.2417432372964204e-05, "mean_score_negatives": 5.2417432372964204e-05, "reject_rate_at_0.5": 1.0 }, { "tier": "hard", "n_negatives": 2125, "acc": 0.9174117647058824, "auc": 0.9712919031141869, "n": 4250, "mean_score_real": 0.883640746198733, "mean_score_fake": 0.127599030359749, "mean_score_negatives": 0.127599030359749, "reject_rate_at_0.5": 0.8823529411764706 } ] }, "baseline": { "name": "majority_class", "test": { "acc": 0.75, "auc": 0.5, "n": 8500, "mean_score_real": 0.0, "mean_score_fake": 0.0 } }, "score_histogram": { "edges": [ 0.0, 0.05, 0.1, 0.15000000000000002, 0.2, 0.25, 0.30000000000000004, 0.35000000000000003, 0.4, 0.45, 0.5, 0.55, 0.6000000000000001, 0.65, 0.7000000000000001, 0.75, 0.8, 0.8500000000000001, 0.9, 0.9500000000000001, 1.0 ], "real": [ 3, 5, 8, 5, 4, 5, 16, 13, 15, 27, 23, 28, 34, 47, 68, 85, 108, 202, 358, 1071 ], "synthetic": [ 5782, 73, 58, 40, 48, 29, 25, 26, 23, 21, 18, 24, 31, 20, 20, 28, 24, 27, 35, 23 ] }, "training_stages": [ { "trees": 1, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9110588235294118, "tree_auc": 0.9430624405997693, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 2, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9170588235294118, "tree_auc": 0.9619831880046136, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 3, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9236470588235294, "tree_auc": 0.9695788881199539, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 5, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.926, "tree_auc": 0.9720413010380623, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 8, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9268235294117647, "tree_auc": 0.9752204844290657, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 10, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9270588235294117, "tree_auc": 0.9764796678200692, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 15, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9256470588235294, "tree_auc": 0.9786197185697808, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 20, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.926235294117647, "tree_auc": 0.9802172087658593, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 25, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9261176470588235, "tree_auc": 0.9814673125720876, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 30, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9257647058823529, "tree_auc": 0.9820408027681661, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 35, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9249411764705883, "tree_auc": 0.9823726136101499, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 40, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9254117647058824, "tree_auc": 0.9827792756632064, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 45, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9261176470588235, "tree_auc": 0.982840249134948, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 50, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9255294117647059, "tree_auc": 0.9830236124567474, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 55, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9256470588235294, "tree_auc": 0.9833160784313726, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 60, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9267058823529412, "tree_auc": 0.9834721291810842, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 65, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9267058823529412, "tree_auc": 0.9836297301038063, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 70, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9263529411764706, "tree_auc": 0.9838308096885813, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 75, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9261176470588235, "tree_auc": 0.9839116401384083, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 80, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9258823529411765, "tree_auc": 0.983957628604383, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 85, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9251764705882353, "tree_auc": 0.9840107035755479, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 90, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9250588235294117, "tree_auc": 0.984125047289504, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 95, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9250588235294117, "tree_auc": 0.9841419515570934, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 100, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9250588235294117, "tree_auc": 0.9841270403690888, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 105, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9249411764705883, "tree_auc": 0.9842433033448673, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 110, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9251764705882353, "tree_auc": 0.9842294994232987, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 115, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9252941176470588, "tree_auc": 0.9842114878892734, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 }, { "trees": 120, "acc": 0.9587058823529412, "auc": 0.9904306343713957, "tree_acc": 0.9252941176470588, "tree_auc": 0.9843016193771627, "hgb_acc": 0.9587058823529412, "hgb_auc": 0.9904306343713957 } ], "checkpoint": "models/realism_scorer/realism_ensemble.pkl", "lessons": [ "Random-but-legal negatives are only informative when tiered; easy chaos is a weak test.", "Hard negatives (perturbed real games) measure whether the model learned structure beyond deck identity.", "Sequence-only features avoid official elixir tables so synthetics stay comparable to real rows.", "A high easy-tier AUC with a weak hard-tier AUC means the scorer detects chaos, not strategic realism." ], "notes": "Binary realism scorer: P(battle is real) from action-sequence statistics. Negatives obey deck membership, elixir affordability, and placement-half constraints. Hard tier perturbs real timelines/placements/card mappings." }