MLPACK
1.0.11
|
An implementation of fast exact max-kernel search. More...
Public Member Functions | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
~FastMKS () | |
Destructor for the FastMKS object. More... | |
const metric::IPMetric< KernelType > & | Metric () const |
Get the inner-product metric induced by the given kernel. More... | |
metric::IPMetric< KernelType > & | Metric () |
Modify the inner-product metric induced by the given kernel. More... | |
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). More... | |
std::string | ToString () const |
Returns a string representation of this object. More... | |
Private Member Functions | |
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. More... | |
Private Attributes | |
metric::IPMetric< KernelType > | metric |
The instantiated inner-product metric induced by the given kernel. More... | |
bool | naive |
If true, naive (brute-force) search is used. More... | |
const arma::mat & | querySet |
The query dataset. More... | |
TreeType * | queryTree |
The tree built on the query dataset. More... | |
const arma::mat & | referenceSet |
The reference dataset. More... | |
TreeType * | referenceTree |
The tree built on the reference dataset. More... | |
bool | single |
If true, single-tree search is used. More... | |
bool | treeOwner |
If true, this object created the trees and is responsible for them. More... | |
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.
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).
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.
mlpack::fastmks::FastMKS< KernelType, TreeType >::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.
Optionally, specify whether or not single-tree search or naive (brute-force) search should be used.
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. |
mlpack::fastmks::FastMKS< KernelType, TreeType >::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.
Optionally, specify whether or not single-tree search or naive (brute-force) search should be used.
mlpack::fastmks::FastMKS< KernelType, TreeType >::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.
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.
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. |
mlpack::fastmks::FastMKS< KernelType, TreeType >::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.
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.
mlpack::fastmks::FastMKS< KernelType, TreeType >::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.
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.
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. |
mlpack::fastmks::FastMKS< KernelType, TreeType >::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.
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.
mlpack::fastmks::FastMKS< KernelType, TreeType >::~FastMKS | ( | ) |
Destructor for the FastMKS object.
|
private |
Utility function. Copied too many times from too many places.
|
inline |
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.
|
inline |
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.
void mlpack::fastmks::FastMKS< KernelType, TreeType >::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).
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.
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. |
std::string mlpack::fastmks::FastMKS< KernelType, TreeType >::ToString | ( | ) | const |
Returns a string representation of this object.
|
private |
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().
|
private |
If true, naive (brute-force) search is used.
Definition at line 220 of file fastmks.hpp.
|
private |
The query dataset.
Definition at line 206 of file fastmks.hpp.
|
private |
The tree built on the query dataset.
This is NULL if there is no query set.
Definition at line 212 of file fastmks.hpp.
|
private |
The reference dataset.
Definition at line 204 of file fastmks.hpp.
|
private |
The tree built on the reference dataset.
Definition at line 209 of file fastmks.hpp.
|
private |
If true, single-tree search is used.
Definition at line 218 of file fastmks.hpp.
|
private |
If true, this object created the trees and is responsible for them.
Definition at line 215 of file fastmks.hpp.