bundles / scipy 1.17.1 / scipy / spatial / distance / jaccard
function
scipy.spatial.distance:jaccard
source: /scipy/spatial/distance.py :778
Signature
def jaccard ( u , v , w = None ) Summary
Compute the Jaccard dissimilarity between two boolean vectors.
Extended Summary
Given boolean vectors and that are not both zero, their Jaccard dissimilarity is defined as ([1], p. 26)
where
for . If and are both zero, their Jaccard dissimilarity is defined to be zero. [2]
If a (non-negative) weight vector is supplied, the weighted Jaccard dissimilarity is defined similarly but with replaced by
Parameters
u: (N,) array_like of boolsInput vector.
v: (N,) array_like of boolsInput vector.
w: (N,) array_like of floats, optionalWeights for each pair of . Default is
None, which gives each pair a weight of1.0.
Returns
jaccard: floatThe Jaccard dissimilarity between vectors
uandv, optionally weighted bywif supplied.
Notes
The Jaccard dissimilarity satisfies the triangle inequality and is qualified as a metric. [2]
The Jaccard index, or Jaccard similarity coefficient, is equal to one minus the Jaccard dissimilarity. [3]
The dissimilarity between general (finite) sets may be computed by encoding them as boolean vectors and computing the dissimilarity between the encoded vectors. For example, subsets of may be encoded into boolean vectors by setting , for .
Examples
from scipy.spatial import distance
✓distance.jaccard([1, 0, 0], [0, 1, 0])
✗distance.jaccard([1, 0, 0, 0], [1, 1, 1, 0])
✗distance.jaccard([1, 0, 0], [1, 0, 0]) distance.jaccard([0, 0, 0], [0, 0, 0])✗
distance.jaccard([1, 1, 0, 0], [1, 0, 1, 0], [31, 41, 59, 26])
✗Aliases
-
scipy.spatial.distance.jaccard