#include <euclid_lsh.hpp>
|
virtual float | calc_similarity (float distance) const |
|
| euclid_lsh (const config &conf, jubatus::util::lang::shared_ptr< storage::column_table > table, const std::string &id) |
|
| euclid_lsh (const config &conf, jubatus::util::lang::shared_ptr< storage::column_table > table, std::vector< storage::column_type > &schema, const std::string &id) |
|
virtual void | neighbor_row (const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, uint64_t ret_num) const |
|
virtual void | neighbor_row (const std::string &query, std::vector< std::pair< std::string, float > > &ids, uint64_t ret_num) const |
|
virtual void | set_row (const std::string &id, const common::sfv_t &sfv) |
|
virtual std::string | type () const |
|
virtual void | clear () |
|
void | get_all_row_ids (std::vector< std::string > &ids) const |
|
jubatus::util::lang::shared_ptr< const storage::column_table > | get_const_table () const |
|
framework::mixable * | get_mixable () const |
|
jubatus::util::lang::shared_ptr< storage::column_table > | get_table () |
|
| nearest_neighbor_base (jubatus::util::lang::shared_ptr< storage::column_table > table, const std::string &id) |
|
void | pack (framework::packer &packer) const |
|
virtual void | similar_row (const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, uint64_t ret_num) const |
|
virtual void | similar_row (const std::string &query_id, std::vector< std::pair< std::string, float > > &ids, uint64_t ret_num) const |
|
void | unpack (msgpack::object o) |
|
virtual | ~nearest_neighbor_base () |
|
Definition at line 35 of file euclid_lsh.hpp.
jubatus::core::nearest_neighbor::euclid_lsh::euclid_lsh |
( |
const config & |
conf, |
|
|
jubatus::util::lang::shared_ptr< storage::column_table > |
table, |
|
|
const std::string & |
id |
|
) |
| |
virtual float jubatus::core::nearest_neighbor::euclid_lsh::calc_similarity |
( |
float |
distance | ) |
const |
|
inlinevirtual |
void jubatus::core::nearest_neighbor::euclid_lsh::fill_schema |
( |
std::vector< storage::column_type > & |
schema | ) |
|
|
private |
const_bit_vector_column & jubatus::core::nearest_neighbor::euclid_lsh::lsh_column |
( |
| ) |
const |
|
private |
Definition at line 131 of file euclid_lsh.cpp.
uint64_t first_column_id_
jubatus::util::lang::shared_ptr< const storage::column_table > get_const_table() const
virtual void jubatus::core::nearest_neighbor::euclid_lsh::neighbor_row |
( |
const common::sfv_t & |
query, |
|
|
std::vector< std::pair< std::string, float > > & |
ids, |
|
|
uint64_t |
ret_num |
|
) |
| const |
|
virtual |
virtual void jubatus::core::nearest_neighbor::euclid_lsh::neighbor_row |
( |
const std::string & |
query, |
|
|
std::vector< std::pair< std::string, float > > & |
ids, |
|
|
uint64_t |
ret_num |
|
) |
| const |
|
virtual |
void jubatus::core::nearest_neighbor::euclid_lsh::neighbor_row_from_hash |
( |
const storage::bit_vector & |
bv, |
|
|
float |
norm, |
|
|
std::vector< std::pair< std::string, float > > & |
ids, |
|
|
uint64_t |
ret_num |
|
) |
| const |
|
private |
Definition at line 139 of file euclid_lsh.cpp.
References jubatus::core::storage::fixed_size_heap< T, Comp >::get_sorted(), jubatus::core::storage::fixed_size_heap< T, Comp >::push(), and jubatus::core::regression::squared_norm().
144 jubatus::util::lang::shared_ptr<const column_table> table =
get_const_table();
151 const float denom = bv.bit_num();
152 for (
size_t i = 0; i < table->size(); ++i) {
153 const size_t hamm_dist = bv.calc_hamming_distance(bv_col[i]);
154 const float theta = hamm_dist * M_PI / denom;
156 norm_col[i] * (norm_col[i] - 2 * norm * std::cos(theta));
157 heap.push(make_pair(score, i));
161 vector<pair<float, size_t> > sorted;
162 heap.get_sorted(sorted);
166 for (
size_t i = 0; i < sorted.size(); ++i) {
167 ids.push_back(make_pair(table->get_key(sorted[i].second),
168 std::sqrt(squared_norm + sorted[i].first)));
storage::const_bit_vector_column & lsh_column() const
static float squared_norm(const common::sfv_t &fv)
const bit_vector_column const_bit_vector_column
storage::const_float_column & norm_column() const
jubatus::util::lang::shared_ptr< const storage::column_table > get_const_table() const
const typed_column< float > const_float_column
const_float_column & jubatus::core::nearest_neighbor::euclid_lsh::norm_column |
( |
| ) |
const |
|
private |
Definition at line 135 of file euclid_lsh.cpp.
uint64_t first_column_id_
jubatus::util::lang::shared_ptr< const storage::column_table > get_const_table() const
void jubatus::core::nearest_neighbor::euclid_lsh::set_config |
( |
const config & |
conf | ) |
|
|
private |
void jubatus::core::nearest_neighbor::euclid_lsh::set_row |
( |
const std::string & |
id, |
|
|
const common::sfv_t & |
sfv |
|
) |
| |
|
virtual |
virtual std::string jubatus::core::nearest_neighbor::euclid_lsh::type |
( |
| ) |
const |
|
inlinevirtual |
uint64_t jubatus::core::nearest_neighbor::euclid_lsh::first_column_id_ |
|
private |
uint32_t jubatus::core::nearest_neighbor::euclid_lsh::hash_num_ |
|
private |
The documentation for this class was generated from the following files: