-
Notifications
You must be signed in to change notification settings - Fork 49
Labels
data:sequentialRelated to timeseries datasetsRelated to timeseries datasetsfeature requestRequest for a new featureRequest for a new feature
Milestone
Description
Problem Description
In this paper, we introduced a new methodology for calculating multi-sequence metrics called MSAS. We should add the MSAS-related metrics to SDMetrics so that users with sequential data can use them for evaluation.
Expected behavior
Add a new metric called SequenceLengthSimilarity
to SDMetrics.
Data compatibility: ID columns (representing the sequence key)
Parameters:
- (required)
real_data
: A column (pd.Series) containing the sequence key of the real data - (required)
synthetic_data
: A column (pd.Series) containing the sequence key of the synthetic data
Output: A score in range [0, 1]
-- 0 being the worst and 1 being the best
from sdmetrics.single_column import SequenceLengthSimilarity
score = SequenceLengthSimilarity.compute(
real_data=real_table['patient_id'],
synthetic_data=synthetic_table['patient_id']
)
How does it work? The length of a sequence is determined by the number of times the same sequence key occurs. For example if id_09231
appeared 150 times in the sequence key, then the sequence is of length 150. This metric compares the lengths of all sequence keys in the real data vs. the synthetic data:
- Calculate the length of each sequence in the real data (call this distribution D_r)
- Calculate the length of each sequence in the synthetic data (call this distribution D_s)
- Now apply the KSComplement metric to compare the similarities of the distributions (D_r, D_s). Return this score.
Metadata
Metadata
Assignees
Labels
data:sequentialRelated to timeseries datasetsRelated to timeseries datasetsfeature requestRequest for a new featureRequest for a new feature