Class MinkowskiDistance

java.lang.Object
smile.math.distance.MinkowskiDistance
All Implemented Interfaces:
Serializable, ToDoubleBiFunction<double[],double[]>, Distance<double[]>, Metric<double[]>

public class MinkowskiDistance extends Object implements Metric<double[]>
Minkowski distance of order p or Lp-norm, is a generalization of Euclidean distance that is actually L2-norm. You may also provide a specified weight vector. For float or double arrays, missing values (i.e. NaN) are also handled.
See Also:
  • Constructor Details

    • MinkowskiDistance

      public MinkowskiDistance(int p)
      Constructor.
      Parameters:
      p - the order of Minkowski distance.
    • MinkowskiDistance

      public MinkowskiDistance(int p, double[] weight)
      Constructor.
      Parameters:
      p - the order of Minkowski distance.
      weight - the weight vector.
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • d

      public double d(int[] x, int[] y)
      Minkowski distance between the two arrays of type integer.
      Parameters:
      x - a vector.
      y - a vector.
      Returns:
      the distance.
    • d

      public double d(float[] x, float[] y)
      Minkowski distance between the two arrays of type float. NaN will be treated as missing values and will be excluded from the calculation. Let m be the number non-missing values, and n be the number of all values. The returned distance is pow(n * d / m, 1/p), where d is the p-pow of distance between non-missing values.
      Parameters:
      x - a vector.
      y - a vector.
      Returns:
      the distance.
    • d

      public double d(double[] x, double[] y)
      Minkowski distance between the two arrays of type double. NaN will be treated as missing values and will be excluded from the calculation. Let m be the number non-missing values, and n be the number of all values. The returned distance is pow(n * d / m, 1/p), where d is the p-pow of distance between non-missing values.
      Specified by:
      d in interface Distance<double[]>
      Parameters:
      x - an object.
      y - an object.
      Returns:
      the distance.