Skip to content

Fixing the number of per class ground truths calculation in compute_macro_f_score() #1

@astrocyted

Description

@astrocyted

Hi,

The number of ground truths per each class seem to be done in a degenerate way in the following line in case of zero tp_ratios leading to nan values of num_gt

        num_gts = per_class_tp / tp_ratios

https://github.com/DCASE-REPO/psds_eval/blob/41cb9639633271fd676a6a7f26dbff36fbc0c9ba/src/psds_eval/psds.py#L755C41-L755C41

Since there is already a relevant method implemented to obtain gts in the class, the above line seems unnecessary and can be replaced by :

        num_gts = self._get_dataset_counts().values[:-1].astype(float)

the [:-1] slicing is to remove the dummy class injected at the end of the counts tensor, confusion matrix, etc. by the original developers referred to as "injected_psds_world_label". similar slicing for example is perfomed in the line above of the above mentioned line to obtain the tp counts:

per_class_tp = np.diag(counts)[:-1]

Metadata

Metadata

Assignees

No one assigned

    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