Skip to main content
Open llms.txtCopy tools

CartoBoost ChoiceSetTransformer

Use ChoiceSetTransformer when candidates compete within each decision set. It scores candidate value, candidate features, context features, optional entity or pair embeddings, and existing utility or probability fields, then returns utilities and softmax choice probabilities.

Python Example

from cartoboost.deep import ChoiceSetTransformer

report = ChoiceSetTransformer(
temperature=0.85,
monotone_candidate_value="decreasing",
outside_option=True,
).score(candidate_rows)

probabilities = report["predictions"]
best_by_decision = report["counterfactual_best"]

UtilityNet, NestedChoiceHead, and CounterfactualCandidateScorer are aliases for this surface.

Use When

Use this model when candidates compete within a decision set and probabilities must sum within that set. Use CartoBoostRanker when only relative ordering is needed.

Browser WASM Example

ChoiceSetTransformer Wasm example

Runs the Rust-backed browser export on a substantial multi-route taxi panel with a held-out prediction window.

Ready to run in this page.

Validation

Use grouped validation by decision id. Report Brier score or ECE when chosen labels exist, and compare the selected candidate against simple rule baselines.

Limitations

  • Candidate-set composition affects every predicted probability.
  • Unobserved alternatives and biased choice sets can invalidate interpretation.
  • The current utility-softmax architecture is not candidate-to-candidate attention.