mlpack_approx_kfn - approximate furthest neighbor search


mlpack_approx_kfn [-h] [-v]


This program implements two strategies for furthest neighbor search. These strategies are:

The ’qdafn’ algorithm from ’Approximate Furthest Neighbor in High Dimensions’ by R. Pagh, F. Silvestri, J. Sivertsen, and M. Skala, in Similarity Search and Applications 2015 (SISAP).

The ’DrusillaSelect’ algorithm from ’Fast approximate furthest neighbors with data-dependent candidate selection, by R.R. Curtin and A.B. Gardner, in Similarity Search and Applications 2016 (SISAP).

These two strategies give approximate results for the furthest neighbor search problem and can be used as fast replacements for other furthest neighbor techniques such as those found in the mlpack_kfn program. Note that typically, the ’ds’ algorithm requires far fewer tables and projections than the ’qdafn’ algorithm.

Specify a reference set (set to search in) with --reference_file, specify a query set with --query_file, and specify algorithm parameters with --num_tables (-t) and --num_projections (-p) (or don’t and defaults will be used). The algorithm to be used (either ’ds’---the default---or ’qdafn’) may be specified with --algorithm. Also specify the number of neighbors to search for with --k. Each of those options also has short names; see the detailed parameter documentation below.

If no query file is specified, the reference set will be used as the query set. A model may be saved with --output_model_file (-M), and an input model may be loaded instead of specifying a reference set with --input_model_file (-m).

Results for each query point are stored in the files specified by --neighbors_file and --distances_file. This is in the same format as the mlpack_kfn and mlpack_knn programs: each row holds the k distances or neighbor indices for each query point.


--algorithm (-a) [string]

Algorithm to use: ’ds’ or ’qdafn’. Default value ’ds’.

--calculate_error (-e)

If set, calculate the average distance error for the first furthest neighbor only. --distances_file (-d) [string] File to save furthest neighbor distances to. Default value ’’. --exact_distances_file (-x) [string] File containing exact distances to furthest neighbors; this can be used to avoid explicit calculation when --calculate_error is set. Default value ’’.

--help (-h)

Default help info.

--info [string]

Get help on a specific module or option. Default value ’’. --input_model_file (-m) [string] File containing input model. Default value ’’.

--k (-k) [int]

Number of furthest neighbors to search for. Default value 0. --neighbors_file (-n) [string] File to save furthest neighbor indices to. Default value ’’. --num_projections (-p) [int] Number of projections to use in each hash table. Default value 5.

--num_tables (-t) [int]

Number of hash tables to use. Default value 5.

--query_file (-q) [string]

File containing query points. Default value ’’. --reference_file (-r) [string] File containing reference points. Default value ’’.

--verbose (-v)

Display informational messages and the full list of parameters and timers at the end of execution.

--version (-V)

Display the version of mlpack.


--output_model_file (-M) [string] File to save output model to. Default value ’’.



For further information, including relevant papers, citations, and theory, For further information, including relevant papers, citations, and theory, consult the documentation found at or included with your consult the documentation found at or included with your DISTRIBUTION OF MLPACK. DISTRIBUTION OF MLPACK.