Module ojalgo

Class Similarity


  • public abstract class Similarity
    extends java.lang.Object
    Similarity / distance utilities commonly used in ML and information retrieval. Provides cosine similarity ([-1,1]) and cosine distance (1 - cosine similarity). Overloads are provided for both raw double[] and Access1D (treated as linearised 1D vectors using their element order).
    • Constructor Summary

      Constructors 
      Constructor Description
      Similarity()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static double cosine​(double[] a, double[] b)
      Cosine similarity between two equal-length vectors.
      static double cosine​(Access1D<?> a, Access1D<?> b)
      Cosine similarity between 2 matrices treated as flattened vectors.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Similarity

        public Similarity()
    • Method Detail

      • cosine

        public static double cosine​(Access1D<?> a,
                                    Access1D<?> b)
        Cosine similarity between 2 matrices treated as flattened vectors.
        Parameters:
        a - matrix a
        b - matrix b
        Returns:
        cosine similarity in [-1, 1]
        Throws:
        java.lang.NullPointerException - if a or b is null
        java.lang.IllegalArgumentException - if element counts differ or either has zero norm
      • cosine

        public static double cosine​(double[] a,
                                    double[] b)
        Cosine similarity between two equal-length vectors.
        Parameters:
        a - vector a
        b - vector b
        Returns:
        cosine similarity in [-1, 1]
        Throws:
        java.lang.NullPointerException - if a or b is null
        java.lang.IllegalArgumentException - if lengths differ or either vector has zero norm