summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/lsh/create_random_projection_hash_abstract.h
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/dlib/lsh/create_random_projection_hash_abstract.h')
-rw-r--r--ml/dlib/dlib/lsh/create_random_projection_hash_abstract.h148
1 files changed, 0 insertions, 148 deletions
diff --git a/ml/dlib/dlib/lsh/create_random_projection_hash_abstract.h b/ml/dlib/dlib/lsh/create_random_projection_hash_abstract.h
deleted file mode 100644
index cff55b9a5..000000000
--- a/ml/dlib/dlib/lsh/create_random_projection_hash_abstract.h
+++ /dev/null
@@ -1,148 +0,0 @@
-// Copyright (C) 2011 Davis E. King (davis@dlib.net)
-// License: Boost Software License See LICENSE.txt for the full license.
-#undef DLIB_CREATE_RANDOM_PROJECTION_HAsH_ABSTRACT_Hh_
-#ifdef DLIB_CREATE_RANDOM_PROJECTION_HAsH_ABSTRACT_Hh_
-
-#include "projection_hash_abstract.h"
-#include "../rand.h"
-
-namespace dlib
-{
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename vector_type
- >
- projection_hash create_random_projection_hash (
- const vector_type& v,
- const int bits,
- dlib::rand& rnd
- );
- /*!
- requires
- - 0 < bits <= 32
- - v.size() > 1
- - vector_type == a std::vector or compatible type containing dlib::matrix
- objects, each representing a column vector of the same size.
- - for all valid i, j:
- - is_col_vector(v[i]) == true
- - v[i].size() > 0
- - v[i].size() == v[j].size()
- - i.e. v contains only column vectors and all the column vectors
- have the same non-zero length
- - rand_type == a type that implements the dlib/rand/rand_kernel_abstract.h interface
- ensures
- - returns a hash function H such that:
- - H.num_hash_bins() == pow(2,bits)
- - H will be setup so that it hashes the contents of v such that each bin
- ends up with roughly the same number of elements in it. This is
- accomplished by picking random hyperplanes passing though the data. In
- particular, each plane normal vector is filled with Gaussian random
- numbers and we also perform basic centering to ensure the plane passes
- though the data.
- - This function uses the supplied random number generator, rnd, to drive part
- of it's processing. Therefore, giving different random number generators
- will produce different outputs.
- !*/
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename vector_type
- >
- projection_hash create_random_projection_hash (
- const vector_type& v,
- const int bits
- );
- /*!
- requires
- - 0 < bits <= 32
- - v.size() > 1
- - vector_type == a std::vector or compatible type containing dlib::matrix
- objects, each representing a column vector of the same size.
- - for all valid i, j:
- - is_col_vector(v[i]) == true
- - v[i].size() > 0
- - v[i].size() == v[j].size()
- - i.e. v contains only column vectors and all the column vectors
- have the same non-zero length
- ensures
- - returns create_random_projection_hash(v,bits,dlib::rand())
- (i.e. calls the above function with a default initialized random number generator)
- !*/
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename vector_type
- >
- projection_hash create_max_margin_projection_hash (
- const vector_type& v,
- const int bits,
- const double C,
- dlib::rand& rnd
- );
- /*!
- requires
- - 0 < bits <= 32
- - v.size() > 1
- - vector_type == a std::vector or compatible type containing dlib::matrix
- objects, each representing a column vector of the same size.
- - for all valid i, j:
- - is_col_vector(v[i]) == true
- - v[i].size() > 0
- - v[i].size() == v[j].size()
- - i.e. v contains only column vectors and all the column vectors
- have the same non-zero length
- - rand_type == a type that implements the dlib/rand/rand_kernel_abstract.h interface
- ensures
- - returns a hash function H such that:
- - H.num_hash_bins() == pow(2,bits)
- - H will be setup so that it hashes the contents of v such that
- each bin ends up with roughly the same number of elements
- in it. This is accomplished using a variation on the random hyperplane
- generation technique from the paper:
- Random Maximum Margin Hashing by Alexis Joly and Olivier Buisson
- In particular, we use the svm_c_linear_dcd_trainer to generate planes.
- We train it on randomly selected and randomly labeled points from v.
- The C SVM parameter is set to the given C argument.
- - This function uses the supplied random number generator, rnd, to drive part
- of it's processing. Therefore, giving different random number generators
- will produce different outputs.
- !*/
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename vector_type
- >
- projection_hash create_max_margin_projection_hash (
- const vector_type& v,
- const int bits,
- const double C = 10
- );
- /*!
- requires
- - 0 < bits <= 32
- - v.size() > 1
- - vector_type == a std::vector or compatible type containing dlib::matrix
- objects, each representing a column vector of the same size.
- - for all valid i, j:
- - is_col_vector(v[i]) == true
- - v[i].size() > 0
- - v[i].size() == v[j].size()
- - i.e. v contains only column vectors and all the column vectors
- have the same non-zero length
- ensures
- - returns create_max_margin_projection_hash(v,bits,C,dlib::rand())
- (i.e. calls the above function with a default initialized random number generator)
- !*/
-
-// ----------------------------------------------------------------------------------------
-
-}
-
-#endif // DLIB_CREATE_RANDOM_PROJECTION_HAsH_ABSTRACT_Hh_
-
-