danieldux commited on
Commit
f584d87
1 Parent(s): 6ca765f

Add hierarchical calculation with test ancestors to MetricTemplate1

Browse files
Files changed (1) hide show
  1. metric_template_1.py +29 -7
metric_template_1.py CHANGED
@@ -15,6 +15,7 @@
15
 
16
  import evaluate
17
  import datasets
 
18
 
19
 
20
  # TODO: Add BibTeX citation
@@ -70,15 +71,17 @@ class MetricTemplate1(evaluate.Metric):
70
  citation=_CITATION,
71
  inputs_description=_KWARGS_DESCRIPTION,
72
  # This defines the format of each prediction and reference
73
- features=datasets.Features({
74
- 'predictions': datasets.Value('int64'),
75
- 'references': datasets.Value('int64'),
76
- }),
 
 
77
  # Homepage of the module for documentation
78
  homepage="http://module.homepage",
79
  # Additional links to the codebase or references
80
  codebase_urls=["http://github.com/path/to/codebase/of/new_module"],
81
- reference_urls=["http://path.to.reference.url/new_module"]
82
  )
83
 
84
  def _download_and_prepare(self, dl_manager):
@@ -89,7 +92,26 @@ class MetricTemplate1(evaluate.Metric):
89
  def _compute(self, predictions, references):
90
  """Returns the scores"""
91
  # TODO: Compute the different scores of the module
92
- accuracy = sum(i == j for i, j in zip(predictions, references)) / len(predictions)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  return {
94
  "accuracy": accuracy,
95
- }
 
 
 
 
15
 
16
  import evaluate
17
  import datasets
18
+ import ham
19
 
20
 
21
  # TODO: Add BibTeX citation
 
71
  citation=_CITATION,
72
  inputs_description=_KWARGS_DESCRIPTION,
73
  # This defines the format of each prediction and reference
74
+ features=datasets.Features(
75
+ {
76
+ "predictions": datasets.Value("int64"),
77
+ "references": datasets.Value("int64"),
78
+ }
79
+ ),
80
  # Homepage of the module for documentation
81
  homepage="http://module.homepage",
82
  # Additional links to the codebase or references
83
  codebase_urls=["http://github.com/path/to/codebase/of/new_module"],
84
+ reference_urls=["http://path.to.reference.url/new_module"],
85
  )
86
 
87
  def _download_and_prepare(self, dl_manager):
 
92
  def _compute(self, predictions, references):
93
  """Returns the scores"""
94
  # TODO: Compute the different scores of the module
95
+ accuracy = sum(i == j for i, j in zip(predictions, references)) / len(
96
+ predictions
97
+ )
98
+
99
+ ancestors = { # The ancestors for each class, excluding the root
100
+ "G": {"B", "C", "E"},
101
+ "F": {"C"},
102
+ }
103
+
104
+ # Calculate hierarchical measures
105
+ hP, hR, hF = ham.hierarchical_precision_recall_fmeasure(
106
+ references, predictions, ancestors
107
+ )
108
+ print(f"Hierarchical Precision (hP): {hP}")
109
+ print(f"Hierarchical Recall (hR): {hR}")
110
+ print(f"Hierarchical F-measure (hF): {hF}")
111
+
112
  return {
113
  "accuracy": accuracy,
114
+ "hierarchical_precision": hP,
115
+ "hierarchical_recall": hR,
116
+ "hierarchical_fmeasure": hF,
117
+ }