bowdbeg commited on
Commit
497161b
·
1 Parent(s): 51e08a8

improve matching availability

Browse files
Files changed (3) hide show
  1. README.md +4 -6
  2. __main__.py +1 -0
  3. matching_series.py +8 -13
README.md CHANGED
@@ -153,12 +153,10 @@ Let prediction instances be $P = \{p_1, p_2, \ldots, p_n\}$ and reference instan
153
  - **.\*_features**: (list of float): The values computed individually for each feature.
154
  - **macro_.\***: (float): Averaged values computed for each feature, average of the \*\_features.
155
  - **distance**: (numpy.ndarray): The distance matrix between the generated instances and the reference instances.
156
- - **match**: (numpy.ndarray): The matching matrix between the generated instances and the reference instances.
157
- - **match_inv**: (numpy.ndarray): The matching matrix between the reference instances and the generated instances.
158
- - **g2r_index**: (numpy.ndarray): The index of the reference instance that matches the generated instance for each feature.
159
- - **r2g_index**: (numpy.ndarray): The index of the generated instance that matches the reference instance for each feature.
160
- - **mean_g2r_index**: (numpy.ndarray): The index of the reference instance that matches the generated instance.
161
- - **mean_r2g_index**: (numpy.ndarray): The index of the generated instance that matches the reference instance.
162
 
163
  <!-- #### Values from Popular Papers -->
164
  <!-- *Give examples, preferrably with links to leaderboards or publications, to papers that have reported this metric, along with the values they have reported.* -->
 
153
  - **.\*_features**: (list of float): The values computed individually for each feature.
154
  - **macro_.\***: (float): Averaged values computed for each feature, average of the \*\_features.
155
  - **distance**: (numpy.ndarray): The distance matrix between the generated instances and the reference instances.
156
+ - **match**: (numpy.ndarray): The matching between the generated instances and the reference instances.
157
+ - **match_inv**: (numpy.ndarray): The matching between the reference instances and the generated instances.
158
+ - **match_features**: (numpy.ndarray): The matching between the generated instances and the reference instances for each feature.
159
+ - **match_inv_features**: (numpy.ndarray): The matching between the reference instances and the generated instances for each feature.
 
 
160
 
161
  <!-- #### Values from Popular Papers -->
162
  <!-- *Give examples, preferrably with links to leaderboards or publications, to papers that have reported this metric, along with the values they have reported.* -->
__main__.py CHANGED
@@ -46,6 +46,7 @@ results = metric.compute(
46
  num_processes=args.num_processes,
47
  return_each_features=True,
48
  return_coverages=True,
 
49
  dtype=args.dtype,
50
  )
51
  logger.info(f"Time taken: {time.time() - s}")
 
46
  num_processes=args.num_processes,
47
  return_each_features=True,
48
  return_coverages=True,
49
+ return_matching=True,
50
  dtype=args.dtype,
51
  )
52
  logger.info(f"Time taken: {time.time() - s}")
matching_series.py CHANGED
@@ -229,7 +229,6 @@ class matching_series(evaluate.Metric):
229
  return_matching: bool = False,
230
  return_each_features: bool = False,
231
  return_coverages: bool = False,
232
- return_matching_indices: bool = False,
233
  return_all: bool = False,
234
  dtype=np.float32,
235
  eps: float = 1e-8,
@@ -270,6 +269,8 @@ class matching_series(evaluate.Metric):
270
  distance (numpy.ndarray): The distance matrix.
271
  match (numpy.ndarray): The matching matrix.
272
  match_inv (numpy.ndarray): The inverse matching matrix.
 
 
273
  """
274
  if return_all:
275
  return_distance = True
@@ -328,6 +329,12 @@ class matching_series(evaluate.Metric):
328
  out["distance"] = distance
329
  if return_matching:
330
  out.update({k: v for k, v in metrics.items() if "match" in k})
 
 
 
 
 
 
331
  if return_coverages:
332
  out["coverages"] = metrics["coverages"]
333
  if return_each_features:
@@ -344,18 +351,6 @@ class matching_series(evaluate.Metric):
344
  "coverages_features": [m["coverages"] for m in metrics_feature],
345
  }
346
  )
347
- if return_matching_indices:
348
- # matching index
349
- g2r_index = distance.argmin(axis=1)
350
- r2g_index = distance.argmin(axis=0)
351
- # mean
352
- mean_g2r_index = distance_mean.argmin(axis=1)
353
- mean_r2g_index = distance_mean.argmin(axis=0)
354
-
355
- out["g2r_index"] = g2r_index
356
- out["r2g_index"] = r2g_index
357
- out["mean_g2r_index"] = mean_g2r_index
358
- out["mean_r2g_index"] = mean_r2g_index
359
 
360
  return out
361
 
 
229
  return_matching: bool = False,
230
  return_each_features: bool = False,
231
  return_coverages: bool = False,
 
232
  return_all: bool = False,
233
  dtype=np.float32,
234
  eps: float = 1e-8,
 
269
  distance (numpy.ndarray): The distance matrix.
270
  match (numpy.ndarray): The matching matrix.
271
  match_inv (numpy.ndarray): The inverse matching matrix.
272
+ match_features (list of numpy.ndarray): The matching matrix for each feature.
273
+ match_inv_features (list of numpy.ndarray): The inverse matching matrix for each feature.
274
  """
275
  if return_all:
276
  return_distance = True
 
329
  out["distance"] = distance
330
  if return_matching:
331
  out.update({k: v for k, v in metrics.items() if "match" in k})
332
+
333
+ g2r_index = distance.argmin(axis=1)
334
+ r2g_index = distance.argmin(axis=0)
335
+ out["match_features"] = g2r_index
336
+ out["match_inv_features"] = r2g_index
337
+
338
  if return_coverages:
339
  out["coverages"] = metrics["coverages"]
340
  if return_each_features:
 
351
  "coverages_features": [m["coverages"] for m in metrics_feature],
352
  }
353
  )
 
 
 
 
 
 
 
 
 
 
 
 
354
 
355
  return out
356