Class CosineMetric

java.lang.Object
org.episteme.core.mathematics.topology.metrics.CosineMetric
All Implemented Interfaces:
Metric<Vector<Real>>

public class CosineMetric extends Object implements Metric<Vector<Real>>
Cosine distance metric.

d(x,y) = 1 - cos(θ) = 1 - (x·y)/(||x|| ||y||)

Measures the angle between vectors, commonly used in: - Text similarity (TF-IDF vectors) - Recommendation systems - Machine learning

Note: This is actually a distance (1 - similarity), not the cosine similarity itself. Range: [0, 2] where 0 = identical direction, 2 = opposite direction

*

Reference:
Fréchet, M. (1906). Sur quelques points du calcul fonctionnel. Rendiconti del Circolo Matematico di Palermo.

Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • CosineMetric

      public CosineMetric()
  • Method Details

    • distance

      public Real distance(Vector<Real> a, Vector<Real> b)
      Description copied from interface: Metric
      Computes the distance between two objects.
      Specified by:
      distance in interface Metric<Vector<Real>>
      Parameters:
      a - the first object
      b - the second object
      Returns:
      the distance between a and b (always non-negative)
    • similarity

      public Real similarity(Vector<Real> a, Vector<Real> b)
      Returns the cosine similarity (not distance).
      Parameters:
      a - first vector
      b - second vector
      Returns:
      cosine similarity in [-1, 1]