Skip to content

Naming the new metrics API #17

@riedgar-ms

Description

@riedgar-ms

With the new metrics object almost finalised, we need to decide on the names. Currently, the object looks like this:

class GroupedMetric
    def __init__(self, metric_functions,
                 y_true, y_pred, *,
                 sensitive_features,
                 conditional_features=None,
                 sample_params=None)

    @property
    def overall(self)

    @property
    def by_group(self)

    def group_max(self)

    def group_min(self)

    # Other accepted method is 'to_overall'
    def difference(self, method='minmax')

    # Other accepted method is 'to_overall'
    def ratio(self, method='minmax')

With the exception of __init__ all names here are potentially changeable. The ones I think are most 'controversial' are the class name, and the method= argument and its accepted values (if others think differently, those can be discussed too). I will update this starting post with suggestions from the discussion to save everyone having to read through the whole thread each time.

Options for the class name

Some thoughts

  • MetricsFrame

Consensus is on this. Use 'metrics' since 'metric' could be an adjective and not a noun.

Options for method=minmax

There are two components - the name of the argument itself, and its accepted values. The latter could potentially depend on the former.

For the argument name

  • method=

Consensus is to stick with method=

For the allowed values:

  • between_pairs (replaces minmax which has other meanings)
  • to_overall

There isn't a huge amount of love for these, but there's a shortage of concise alternatives that don't suffer from similar ambiguity issues.

Options for group_min/max()

Stick with group_min()/max(). They do have value when there are conditional features present.

Options for conditional features

  • conditional_features
  • other_features
  • condition_on
  • split_by
  • conditioned_on
  • conditioning_features (might sound like a shampoo advert)

Sample Params

  • sample_params

Keep as sample_params. The most meaningful alternative is sample_props, and that wasn't felt to be a significant difference.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions