Skip to content

feat(TRIM): add support for entities that are missing the target variable measurement #1064

Description

@VassilisVassiliadis

Is your feature request related to a problem? Please describe. A clear and
concise description of what the problem is. Ex. I'm always frustrated when [...]

The current version of TRIM requires that your experiment can obtain a target variable measurement for every entity in the space and that these measurements are of the same type (numbers or strings, vectors are not supported).

Describe the solution you'd like. A clear and concise description of what
you want to happen.

It is difficult to design a one-size-fits-all solution. So we'll support 3 mutually exclusive modes of operation when using TRIM to apply the experiment on an entity which does not measure the TRIM target variable:

  • (default) Raise an exception (current behaviour)
  • Use a default value, with up to missingTargetMeasurements.budget times and raise an exception when there's too many measurements that are missing the target variable
  • Skip an Entity, up to missingTargetMeasurements.budget times. Raise an exception if skipping too many entities OR if running out of entities

The default behavior is to raise an exception on first missing target variable measurement. The default of missingTargetMeasurements.budget is None which means that the budget is infinite. The missingTargetMeasurements.budget parameter of TRIM must either be None, or greater than 0.

To pick a mode set the parameter missingTargetMeasurements.mode which can be one of:

  • RaiseError
  • InjectDefaultValue - which uses the value of missingTargetMeasurements.defaultValue
  • Skip

if missingTargetMeasurements is not set, then it defaults to missingTargetMeasurements.mode = RaiseError

We'll also refactor the NoPriorsSampleSelector to keep track of whether the operator managed to measure the target variable or not.

Describe alternatives you've considered. A clear and concise description of
any alternative solutions or features you've considered.

  • Update the actuators to use a default value instead: This is a hack

Additional context. Add any other context or screenshots about the feature
request here.

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions