Distance
Distance metrics for comparing sets of winners.
The base classDistance class is a stateless strategy: instantiate once,
then call methcompute as many times as needed. This avoids creating N²
objects when building a pairwise distance matrix.
Subclass it and override compute to define new metrics.
BinaryDistance
¶
Bases: Distance
Simple 0/1 distance: 0 when the sets are equal, 1 otherwise.
Source code in src/vote_simulation/models/distance/distance.py
Distance
¶
Abstract base for pairwise winner-set distance metrics.
Subclasses must override method compute.
Source code in src/vote_simulation/models/distance/distance.py
compute(winners1, winners2)
¶
Return the distance between two winner sets.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
winners1
|
frozenset[str]
|
Winner set of rule 1. |
required |
winners2
|
frozenset[str]
|
Winner set of rule 2. |
required |
Returns:
| Type | Description |
|---|---|
float
|
A float in [0, 1] where 0 means identical and 1 means maximally different. |
Source code in src/vote_simulation/models/distance/distance.py
JaccardDistance
¶
Bases: Distance
Jaccard distance: 1 - |intersection| / |union|.
Ranges from 0 (identical sets) to 1 (disjoint sets). Returns 0 when both sets are empty.