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

#include <sparse_matrix_storage.hpp>

Inheritance diagram for jubatus::core::storage::sparse_matrix_storage:
Inheritance graph
Collaboration diagram for jubatus::core::storage::sparse_matrix_storage:
Collaboration graph

Public Member Functions

float calc_l2norm (const std::string &row) const
 
void clear ()
 
float get (const std::string &row, const std::string &column) const
 
void get_all_row_ids (std::vector< std::string > &ids) const
 
void get_row (const std::string &row, std::vector< std::pair< std::string, float > > &columns) const
 
storage::version get_version () const
 
 MSGPACK_DEFINE (tbl_, column2id_)
 
sparse_matrix_storageoperator= (const sparse_matrix_storage &)
 
void pack (framework::packer &packer) const
 
void remove (const std::string &row, const std::string &column)
 
void remove_row (const std::string &row)
 
void set (const std::string &row, const std::string &column, float val)
 
void set_row (const std::string &row, const std::vector< std::pair< std::string, float > > &columns)
 
 sparse_matrix_storage ()
 
void unpack (msgpack::object o)
 
 ~sparse_matrix_storage ()
 
- Public Member Functions inherited from jubatus::core::framework::model
virtual ~model ()
 

Private Attributes

common::key_manager column2id_
 
tbl_t tbl_
 
storage::version version_
 

Detailed Description

Definition at line 34 of file sparse_matrix_storage.hpp.

Constructor & Destructor Documentation

jubatus::core::storage::sparse_matrix_storage::sparse_matrix_storage ( )

Definition at line 37 of file sparse_matrix_storage.cpp.

37  {
38 }
jubatus::core::storage::sparse_matrix_storage::~sparse_matrix_storage ( )

Definition at line 40 of file sparse_matrix_storage.cpp.

40  {
41 }

Member Function Documentation

float jubatus::core::storage::sparse_matrix_storage::calc_l2norm ( const std::string &  row) const

Definition at line 104 of file sparse_matrix_storage.cpp.

References jubatus::core::common::assoc_vector< K, V >::begin(), jubatus::core::common::assoc_vector< K, V >::end(), and tbl_.

104  {
105  tbl_t::const_iterator it = tbl_.find(row);
106  if (it == tbl_.end()) {
107  return 0.f;
108  }
109  float sq_norm = 0.f;
110  const row_t& row_v = it->second;
111  for (row_t::const_iterator row_it = row_v.begin(); row_it != row_v.end();
112  ++row_it) {
113  sq_norm += row_it->second * row_it->second;
114  }
115  return std::sqrt(sq_norm);
116 }
data_type::const_iterator const_iterator
jubatus::core::common::assoc_vector< uint64_t, float > row_t

Here is the call graph for this function:

void jubatus::core::storage::sparse_matrix_storage::clear ( )
virtual
float jubatus::core::storage::sparse_matrix_storage::get ( const std::string &  row,
const std::string &  column 
) const

Definition at line 68 of file sparse_matrix_storage.cpp.

References column2id_, jubatus::core::common::key_manager::get_id_const(), jubatus::core::common::key_manager::NOTFOUND, and tbl_.

70  {
71  tbl_t::const_iterator it = tbl_.find(row);
72  if (it == tbl_.end()) {
73  return 0.f;
74  }
75 
76  uint64_t id = column2id_.get_id_const(column);
78  return 0.f;
79  }
80 
81  row_t::const_iterator cit = it->second.find(id);
82  if (cit == it->second.end()) {
83  return 0.f;
84  }
85  return cit->second;
86 }
uint64_t get_id_const(const std::string &key) const
Definition: key_manager.cpp:67
unordered_map< string, uint64_t >::const_iterator cit
Definition: key_manager.cpp:33
data_type::const_iterator const_iterator

Here is the call graph for this function:

void jubatus::core::storage::sparse_matrix_storage::get_all_row_ids ( std::vector< std::string > &  ids) const

Definition at line 151 of file sparse_matrix_storage.cpp.

References tbl_.

Referenced by jubatus::core::recommender::recommender_mock::get_all_row_ids(), jubatus::core::storage::inverted_index_storage::mix(), and jubatus::core::storage::inverted_index_storage::put_diff().

151  {
152  ids.clear();
153  for (tbl_t::const_iterator it = tbl_.begin(); it != tbl_.end(); ++it) {
154  ids.push_back(it->first);
155  }
156 }

Here is the caller graph for this function:

void jubatus::core::storage::sparse_matrix_storage::get_row ( const std::string &  row,
std::vector< std::pair< std::string, float > > &  columns 
) const

Definition at line 88 of file sparse_matrix_storage.cpp.

References jubatus::core::common::assoc_vector< K, V >::begin(), column2id_, jubatus::core::common::assoc_vector< K, V >::end(), jubatus::core::common::key_manager::get_key(), and tbl_.

Referenced by jubatus::core::recommender::inverted_index::clear_row(), jubatus::core::recommender::recommender_base::complete_row(), jubatus::core::recommender::recommender_base::decode_row(), jubatus::core::storage::inverted_index_storage::mix(), jubatus::core::storage::inverted_index_storage::put_diff(), jubatus::core::recommender::recommender_base::similar_row(), jubatus::core::recommender::nearest_neighbor_recommender::update_row(), jubatus::core::recommender::recommender_mock::update_row(), jubatus::core::recommender::minhash::update_row(), jubatus::core::recommender::lsh::update_row(), and jubatus::core::recommender::euclid_lsh::update_row().

90  {
91  columns.clear();
92  tbl_t::const_iterator it = tbl_.find(row);
93  if (it == tbl_.end()) {
94  return;
95  }
96  const row_t& row_v = it->second;
97  for (row_t::const_iterator row_it = row_v.begin(); row_it != row_v.end();
98  ++row_it) {
99  columns.push_back(
100  make_pair(column2id_.get_key(row_it->first), row_it->second));
101  }
102 }
data_type::const_iterator const_iterator
const std::string & get_key(const uint64_t id) const
Definition: key_manager.cpp:78
jubatus::core::common::assoc_vector< uint64_t, float > row_t

Here is the call graph for this function:

Here is the caller graph for this function:

storage::version jubatus::core::storage::sparse_matrix_storage::get_version ( ) const
inline

Definition at line 57 of file sparse_matrix_storage.hpp.

57  {
58  return storage::version();
59  }
jubatus::core::storage::sparse_matrix_storage::MSGPACK_DEFINE ( tbl_  ,
column2id_   
)
sparse_matrix_storage & jubatus::core::storage::sparse_matrix_storage::operator= ( const sparse_matrix_storage sms)

Definition at line 43 of file sparse_matrix_storage.cpp.

References column2id_, and tbl_.

44  {
45  tbl_ = sms.tbl_;
46  column2id_ = sms.column2id_;
47  return *this;
48 }
void jubatus::core::storage::sparse_matrix_storage::pack ( framework::packer packer) const
virtual
void jubatus::core::storage::sparse_matrix_storage::remove ( const std::string &  row,
const std::string &  column 
)

Definition at line 118 of file sparse_matrix_storage.cpp.

References column2id_, jubatus::core::common::key_manager::get_id_const(), jubatus::core::common::key_manager::NOTFOUND, and tbl_.

118  {
119  tbl_t::iterator it = tbl_.find(row);
120  if (it == tbl_.end()) {
121  return;
122  }
123 
124  uint64_t id = column2id_.get_id_const(column);
125  if (id == common::key_manager::NOTFOUND) {
126  return;
127  }
128 
129  row_t::iterator cit = it->second.find(id);
130  if (cit == it->second.end()) {
131  return;
132  }
133  // norm_ptr_->notify(row, cit->second, 0.f);
134  it->second.erase(cit);
135 }
uint64_t get_id_const(const std::string &key) const
Definition: key_manager.cpp:67
unordered_map< string, uint64_t >::const_iterator cit
Definition: key_manager.cpp:33

Here is the call graph for this function:

void jubatus::core::storage::sparse_matrix_storage::remove_row ( const std::string &  row)

Definition at line 137 of file sparse_matrix_storage.cpp.

References tbl_.

Referenced by jubatus::core::recommender::inverted_index::clear_row(), jubatus::core::recommender::nearest_neighbor_recommender::clear_row(), jubatus::core::recommender::recommender_mock::clear_row(), jubatus::core::recommender::minhash::clear_row(), jubatus::core::recommender::lsh::clear_row(), jubatus::core::recommender::euclid_lsh::clear_row(), and jubatus::core::recommender::nearest_neighbor_recommender::unlearn_row().

137  {
138  tbl_t::iterator it = tbl_.find(row);
139  if (it == tbl_.end()) {
140  return;
141  }
142 
143  // for (row_t::const_iterator cit = it->second.begin();
144  // cit != it->second.end(); ++cit){
145  // norm_ptr_->notify(row, cit->second, 0.f);
146  // }
147 
148  tbl_.erase(it);
149 }

Here is the caller graph for this function:

void jubatus::core::storage::sparse_matrix_storage::set ( const std::string &  row,
const std::string &  column,
float  val 
)

Definition at line 50 of file sparse_matrix_storage.cpp.

References column2id_, jubatus::core::common::key_manager::get_id(), and tbl_.

Here is the call graph for this function:

void jubatus::core::storage::sparse_matrix_storage::set_row ( const std::string &  row,
const std::vector< std::pair< std::string, float > > &  columns 
)

Definition at line 57 of file sparse_matrix_storage.cpp.

References column2id_, jubatus::core::common::key_manager::get_id(), tbl_, and jubatus::core::common::jsonconfig::v().

Referenced by jubatus::core::storage::inverted_index_storage::get_diff(), jubatus::core::storage::inverted_index_storage::mix(), jubatus::core::recommender::inverted_index::update_row(), jubatus::core::recommender::nearest_neighbor_recommender::update_row(), jubatus::core::recommender::recommender_mock::update_row(), jubatus::core::recommender::minhash::update_row(), jubatus::core::recommender::lsh::update_row(), and jubatus::core::recommender::euclid_lsh::update_row().

59  {
60  row_t& row_v = tbl_[row];
61  for (size_t i = 0; i < columns.size(); ++i) {
62  float& v = row_v[column2id_.get_id(columns[i].first)];
63  // norm_ptr_->notify(row, v, columns[i].second);
64  v = columns[i].second;
65  }
66 }
std::vector< T > v(size)
uint64_t get_id(const std::string &key)
Definition: key_manager.cpp:48
jubatus::core::common::assoc_vector< uint64_t, float > row_t

Here is the call graph for this function:

Here is the caller graph for this function:

void jubatus::core::storage::sparse_matrix_storage::unpack ( msgpack::object  o)
virtual

Member Data Documentation

common::key_manager jubatus::core::storage::sparse_matrix_storage::column2id_
private

Definition at line 66 of file sparse_matrix_storage.hpp.

Referenced by clear(), get(), get_row(), operator=(), remove(), set(), and set_row().

tbl_t jubatus::core::storage::sparse_matrix_storage::tbl_
private
storage::version jubatus::core::storage::sparse_matrix_storage::version_
private

Definition at line 67 of file sparse_matrix_storage.hpp.


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