Documentation of 'jsat.linear.vectorcollection.CoverTree' Java class
CoverTree
jsat.linear.vectorcollection

Class CoverTree<V extends Vec>

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, IncrementalCollection<V>, VectorCollection<V>


    public final class CoverTree<V extends Vec>
    extends java.lang.Object
    implements IncrementalCollection<V>
    This class implements the Cover-tree algorithm for answering nearest neighbor queries. In particular, it uses the "Simplified Cover-tree" algorithm.
    Note, this implementation does not yet support parallel construction.
    See:
    • Beygelzimer, A., Kakade, S., & Langford, J. (2006). Cover trees for nearest neighbor. In International Conference on Machine Learning (pp. 97–104). New York: ACM. Retrieved from here
    • Izbicki, M., & Shelton, C. R. (2015). Faster Cover Trees. In Proceedings of the Thirty-Second International Conference on Machine Learning (Vol. 37).
    See Also:
    Serialized Form
    • Constructor Detail

      • CoverTree

        public CoverTree(java.util.List<V> source,
                         DistanceMetric dm)
      • CoverTree

        public CoverTree(java.util.List<V> source,
                         DistanceMetric dm,
                         boolean parallel)
      • CoverTree

        public CoverTree(java.util.List<V> source,
                         DistanceMetric dm,
                         boolean parallel,
                         boolean looseBounds)
      • CoverTree

        public CoverTree(CoverTree<V> toCopy)
    • Method Detail

      • build

        public void build(boolean parallel,
                          java.util.List<V> collection,
                          DistanceMetric dm)
        Description copied from interface: VectorCollection
        Builds this metric index from the given collection of points using the given distance metric.
        Specified by:
        build in interface VectorCollection<V extends Vec>
        Parameters:
        parallel - true if the index should be built in parallel, or false if it should be done in a single thread.
        collection - the list of vectors to put into the index
        dm - the distance metric to build the index using.
      • setLooseBounds

        public void setLooseBounds(boolean looseBounds)
      • search

        public void search(Vec query,
                           double range,
                           java.util.List<java.lang.Integer> neighbors,
                           java.util.List<java.lang.Double> distances)
        Description copied from interface: VectorCollection
        Performs a range search of the current collection. The index and distance of each found neighbor will be placed into the given Lists.
        Specified by:
        search in interface VectorCollection<V extends Vec>
        Parameters:
        query - the point to search for the neighbors within a given radius.
        range - the radius to search for all the neighbors with a distance ≤ range.
        neighbors - the list to store the index of the neighbors in. Will be sorted by distance to the query, and paired with the values in distances.
        distances - the list to store the distance of the neighbors to the query in. Will be sorted, and paired with the values in neighbors.
      • search

        public void search(Vec query,
                           int numNeighbors,
                           java.util.List<java.lang.Integer> neighbors,
                           java.util.List<java.lang.Double> distances)
        Description copied from interface: VectorCollection
        Performs k-Nearest Neighbor search of the current collection. The index and distance of each found neighbor will be placed into the given Lists.
        Specified by:
        search in interface VectorCollection<V extends Vec>
        Parameters:
        query - the point to search for the k-nearest neighbors of
        numNeighbors - the number of neighbors k to search for.
        neighbors - the list to store the index of the neighbors in. Will be sorted by distance to the query, and paired with the values in distances.
        distances - the list to store the distance of the neighbors to the query in. Will be sorted, and paired with the values in neighbors.
      • size

        public int size()
        Description copied from interface: VectorCollection
        Returns the number of vectors stored in the collection
        Specified by:
        size in interface VectorCollection<V extends Vec>
        Returns:
        the size of the collection
      • get

        public V get(int indx)
        Description copied from interface: VectorCollection
        Accesses a vector from this collection via index.
        Specified by:
        get in interface VectorCollection<V extends Vec>
        Parameters:
        indx - the index in [0, VectorCollection.size()) of the vector to access
        Returns:
        the vector from the collection
      • insert

        public void insert(V x)
        Description copied from interface: IncrementalCollection
        Incrementally adds the given datapoint into the collection
        Specified by:
        insert in interface IncrementalCollection<V extends Vec>
        Parameters:
        x - the vector to add to the collection

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.