# `Monty.Frameworks.Models.EvidenceMatching.FeaturesForMatching.Selector.FeaturesForMatchingSelector`
[🔗](https://github.com/d-led/ex.tbp.monty/blob/v0.1.0/packages/ex_tbp_monty_core/lib/monty/frameworks/models/evidence_matching/features_for_matching/selector/features_for_matching_selector.ex#L1)

What a features-for-matching selector has to be able to do.

Mirrors
`tbp/monty/frameworks/models/evidence_matching/features_for_matching/selector.py::FeaturesForMatchingSelector`,
a `Protocol` in Python and a behaviour here: an experiment chooses how the
decision is made by naming a different module.

# `select`

```elixir
@callback select(
  feature_evidence_increment :: number(),
  feature_weights :: %{optional(String.t()) =&gt; map()},
  tolerances :: %{optional(String.t()) =&gt; map()}
) :: %{optional(String.t()) =&gt; boolean()}
```

Whether features are matched, per input channel.

`tolerances` names the channels in play; the result has one entry for each.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
