jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
Public Member Functions | Private Member Functions | Private Attributes | List of all members
jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base Class Referenceabstract

#include <bit_vector_nearest_neighbor_base.hpp>

Inheritance diagram for jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base:
Inheritance graph
Collaboration diagram for jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base:
Collaboration graph

Public Member Functions

 bit_vector_nearest_neighbor_base (uint32_t bitnum, jubatus::util::lang::shared_ptr< storage::column_table > table, const std::string &id)
 
 bit_vector_nearest_neighbor_base (uint32_t bitnum, jubatus::util::lang::shared_ptr< storage::column_table > table, std::vector< storage::column_type > &schema, const std::string &id)
 
uint32_t bitnum () const
 
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_id, 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)
 
- Public Member Functions inherited from jubatus::core::nearest_neighbor::nearest_neighbor_base
virtual float calc_similarity (float distance) const
 
virtual void clear ()
 
void get_all_row_ids (std::vector< std::string > &ids) const
 
jubatus::util::lang::shared_ptr< const storage::column_tableget_const_table () const
 
framework::mixableget_mixable () const
 
jubatus::util::lang::shared_ptr< storage::column_tableget_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
 
virtual std::string type () const =0
 
void unpack (msgpack::object o)
 
virtual ~nearest_neighbor_base ()
 

Private Member Functions

storage::const_bit_vector_columnbit_vector_column () const
 
void fill_schema (std::vector< storage::column_type > &schema)
 
virtual storage::bit_vector hash (const common::sfv_t &sfv) const =0
 
void neighbor_row_from_hash (const storage::bit_vector &query, std::vector< std::pair< std::string, float > > &ids, uint64_t ret_num) const
 

Private Attributes

uint64_t bit_vector_column_id_
 
uint32_t bitnum_
 

Additional Inherited Members

- Protected Attributes inherited from jubatus::core::nearest_neighbor::nearest_neighbor_base
std::string my_id_
 

Detailed Description

Definition at line 34 of file bit_vector_nearest_neighbor_base.hpp.

Constructor & Destructor Documentation

jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base::bit_vector_nearest_neighbor_base ( uint32_t  bitnum,
jubatus::util::lang::shared_ptr< storage::column_table table,
const std::string &  id 
)
jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base::bit_vector_nearest_neighbor_base ( uint32_t  bitnum,
jubatus::util::lang::shared_ptr< storage::column_table table,
std::vector< storage::column_type > &  schema,
const std::string &  id 
)

Member Function Documentation

const_bit_vector_column & jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base::bit_vector_column ( ) const
private

Definition at line 99 of file bit_vector_nearest_neighbor_base.cpp.

100  {
101  return get_const_table()->get_bit_vector_column(bit_vector_column_id_);
102 }
jubatus::util::lang::shared_ptr< const storage::column_table > get_const_table() const
uint32_t jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base::bitnum ( ) const
inline

Definition at line 46 of file bit_vector_nearest_neighbor_base.hpp.

References bitnum_.

Referenced by jubatus::core::nearest_neighbor::lsh::hash().

Here is the caller graph for this function:

void jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base::fill_schema ( std::vector< storage::column_type > &  schema)
private
virtual storage::bit_vector jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base::hash ( const common::sfv_t sfv) const
privatepure virtual
virtual void jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base::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::bit_vector_nearest_neighbor_base::neighbor_row ( const std::string &  query_id,
std::vector< std::pair< std::string, float > > &  ids,
uint64_t  ret_num 
) const
virtual
void jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base::neighbor_row_from_hash ( const storage::bit_vector query,
std::vector< std::pair< std::string, float > > &  ids,
uint64_t  ret_num 
) const
private

Definition at line 104 of file bit_vector_nearest_neighbor_base.cpp.

References jubatus::core::nearest_neighbor::ranking_hamming_bit_vectors().

107  {
108  vector<pair<uint64_t, float> > scores;
109  ranking_hamming_bit_vectors(query, bit_vector_column(), scores, ret_num);
110 
111  jubatus::util::lang::shared_ptr<const column_table> table = get_const_table();
112  ids.clear();
113  for (size_t i = 0; i < scores.size(); ++i) {
114  ids.push_back(make_pair(table->get_key_nolock(scores[i].first),
115  scores[i].second));
116  }
117 }
void ranking_hamming_bit_vectors(const bit_vector &query, const const_bit_vector_column &bvs, vector< pair< uint64_t, float > > &ret, uint64_t ret_num)
jubatus::util::lang::shared_ptr< const storage::column_table > get_const_table() const

Here is the call graph for this function:

void jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base::set_row ( const std::string &  id,
const common::sfv_t sfv 
)
virtual

Implements jubatus::core::nearest_neighbor::nearest_neighbor_base.

Definition at line 60 of file bit_vector_nearest_neighbor_base.cpp.

62  {
63  // TODO(beam2d): support nested algorithm, e.g. when used by lof and then
64  // we cannot suppose that the first column is assigned
65  // to bit_vector_nearest_neighbor_base.
66  get_table()->add(id, owner(my_id_), hash(sfv));
67 }
jubatus::util::lang::shared_ptr< storage::column_table > get_table()
virtual storage::bit_vector hash(const common::sfv_t &sfv) const =0

Member Data Documentation

uint64_t jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base::bit_vector_column_id_
private

Definition at line 69 of file bit_vector_nearest_neighbor_base.hpp.

uint32_t jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base::bitnum_
private

Definition at line 70 of file bit_vector_nearest_neighbor_base.hpp.

Referenced by bitnum().


The documentation for this class was generated from the following files: