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.
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:
missingTargetMeasurements.budgettimes and raise an exception when there's too many measurements that are missing the target variablemissingTargetMeasurements.budgettimes. Raise an exception if skipping too many entities OR if running out of entitiesThe default behavior is to raise an exception on first missing target variable measurement. The default of
missingTargetMeasurements.budgetis None which means that the budget is infinite. ThemissingTargetMeasurements.budgetparameter of TRIM must either be None, or greater than 0.To pick a mode set the parameter missingTargetMeasurements.mode which can be one of:
RaiseErrorInjectDefaultValue- which uses the value ofmissingTargetMeasurements.defaultValueSkipif
missingTargetMeasurementsis not set, then it defaults tomissingTargetMeasurements.mode = RaiseErrorWe'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.
Additional context. Add any other context or screenshots about the feature
request here.