An implementation of fast exact max-kernel search.
FastMKS (const arma::mat &referenceSet, const bool single=false, const bool naive=false)
Create the FastMKS object using the reference set as the query set. FastMKS (const arma::mat &referenceSet, const arma::mat &querySet, const bool single=false, const bool naive=false)
Create the FastMKS object using separate reference and query sets. FastMKS (const arma::mat &referenceSet, KernelType &kernel, const bool single=false, const bool naive=false)
Create the FastMKS object using the reference set as the query set, and with an initialized kernel. FastMKS (const arma::mat &referenceSet, const arma::mat &querySet, KernelType &kernel, const bool single=false, const bool naive=false)
Create the FastMKS object using separate reference and query sets, and with an initialized kernel. FastMKS (const arma::mat &referenceSet, TreeType *referenceTree, const bool single=false, const bool naive=false)
Create the FastMKS object with an already-initialized tree built on the reference points. FastMKS (const arma::mat &referenceSet, TreeType *referenceTree, const arma::mat &querySet, TreeType *queryTree, const bool single=false, const bool naive=false)
Create the FastMKS object with already-initialized trees built on the reference and query points. ~FastMKS ()
Destructor for the FastMKS object. const metric::IPMetric
< KernelType > & Metric () const "
Get the inner-product metric induced by the given kernel. metric::IPMetric< KernelType > & Metric ()
Modify the inner-product metric induced by the given kernel. void Search (const size_t k, arma::Mat< size_t > &indices, arma::mat &products)
Search for the maximum inner products of the query set (or if no query set was passed, the reference set is used). std::string ToString () const
Returns a string representation of this object.
void InsertNeighbor (arma::Mat< size_t > &indices, arma::mat &products, const size_t queryIndex, const size_t pos, const size_t neighbor, const double distance)
Utility function. Copied too many times from too many places.
metric::IPMetric< KernelType > metric
The instantiated inner-product metric induced by the given kernel. bool naive
If true, naive (brute-force) search is used. const arma::mat & querySet
The query dataset. TreeType * queryTree
The tree built on the query dataset. const arma::mat & referenceSet
The reference dataset. TreeType * referenceTree
The tree built on the reference dataset. bool single
If true, single-tree search is used. bool treeOwner
If true, this object created the trees and is responsible for them.
An implementation of fast exact max-kernel search.
Given a query dataset and a reference dataset (or optionally just a reference dataset which is also used as the query dataset), fast exact max-kernel search finds, for each point in the query dataset, the k points in the reference set with maximum kernel value K(p_q, p_r), where k is a specified parameter and K() is a Mercer kernel.
For more information, see the following paper.
@inproceedings{curtin2013fast, title={Fast Exact Max-Kernel Search}, author={Curtin, Ryan R. and Ram, Parikshit and Gray, Alexander G.}, booktitle={Proceedings of the 2013 SIAM International Conference on Data Mining (SDM 13)}, year={2013} }
This class allows specification of the type of kernel and also of the type of tree. FastMKS can be run on kernels that work on arbitrary objects -- however, this only works with cover trees and other trees that are built only on points in the dataset (and not centroids of regions or anything like that).
Template Parameters:
KernelType Type of kernel to run FastMKS with.
TreeType Type of tree to run FastMKS with; it must have metric IPMetric<KernelType>.
Definition at line 69 of file fastmks.hpp.
Create the FastMKS object using the reference set as the query set. Optionally, specify whether or not single-tree search or naive (brute-force) search should be used.
Parameters:
referenceSet Set of data to run FastMKS on.
single Whether or not to run single-tree search.
naive Whether or not to run brute-force (naive) search.
Create the FastMKS object using separate reference and query sets. Optionally, specify whether or not single-tree search or naive (brute-force) search should be used.
Parameters:
referenceSet Reference set of data for FastMKS.
querySet Set of query points for FastMKS.
single Whether or not to run single-tree search.
naive Whether or not to run brute-force (naive) search.
Create the FastMKS object using the reference set as the query set, and with an initialized kernel. This is useful for when the kernel stores state. Optionally, specify whether or not single-tree search or naive (brute-force) search should be used.
Parameters:
referenceSet Reference set of data for FastMKS.
kernel Initialized kernel.
single Whether or not to run single-tree search.
naive Whether or not to run brute-force (naive) search.
Create the FastMKS object using separate reference and query sets, and with an initialized kernel. This is useful for when the kernel stores state. Optionally, specify whether or not single-tree search or naive (brute-force) search should be used.
Parameters:
referenceSet Reference set of data for FastMKS.
querySet Set of query points for FastMKS.
kernel Initialized kernel.
single Whether or not to run single-tree search.
naive Whether or not to run brute-force (naive) search.
Create the FastMKS object with an already-initialized tree built on the reference points. Be sure that the tree is built with the metric type IPMetric<KernelType>. For this constructor, the reference set and the query set are the same points. Optionally, whether or not to run single-tree search or brute-force (naive) search can be specified.
Parameters:
referenceSet Reference set of data for FastMKS.
referenceTree Tree built on reference data.
single Whether or not to run single-tree search.
naive Whether or not to run brute-force (naive) search.
Create the FastMKS object with already-initialized trees built on the reference and query points. Be sure that the trees are built with the metric type IPMetric<KernelType>. Optionally, whether or not to run single-tree search or naive (brute-force) search can be specified.
Parameters:
referenceSet Reference set of data for FastMKS.
referenceTree Tree built on reference data.
querySet Set of query points for FastMKS.
queryTree Tree built on query data.
single Whether or not to use single-tree search.
naive Whether or not to use naive (brute-force) search.
Destructor for the FastMKS object.
Utility function. Copied too many times from too many places.
Get the inner-product metric induced by the given kernel.
Definition at line 193 of file fastmks.hpp.
References mlpack::fastmks::FastMKS< KernelType, TreeType >::metric.
Modify the inner-product metric induced by the given kernel.
Definition at line 195 of file fastmks.hpp.
References mlpack::fastmks::FastMKS< KernelType, TreeType >::metric.
Search for the maximum inner products of the query set (or if no query set was passed, the reference set is used). The resulting maximum inner products are stored in the products matrix and the corresponding point indices are stores in the indices matrix. The results for each point in the query set are stored in the corresponding column of the indices and products matrices; for instance, the index of the point with maximum inner product to point 4 in the query set will be stored in row 0 and column 4 of the indices matrix.
Parameters:
k The number of maximum kernels to find.
indices Matrix to store resulting indices of max-kernel search in.
products Matrix to store resulting max-kernel values in.
Returns a string representation of this object.
The instantiated inner-product metric induced by the given kernel.
Definition at line 223 of file fastmks.hpp.
Referenced by mlpack::fastmks::FastMKS< KernelType, TreeType >::Metric().
If true, naive (brute-force) search is used.
Definition at line 220 of file fastmks.hpp.
The query dataset.
Definition at line 206 of file fastmks.hpp.
The tree built on the query dataset. This is NULL if there is no query set.
Definition at line 212 of file fastmks.hpp.
The reference dataset.
Definition at line 204 of file fastmks.hpp.
The tree built on the reference dataset.
Definition at line 209 of file fastmks.hpp.
If true, single-tree search is used.
Definition at line 218 of file fastmks.hpp.
If true, this object created the trees and is responsible for them.
Definition at line 215 of file fastmks.hpp.
Generated automatically by Doxygen for MLPACK from the source code.