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::clustering::eigen_feature_mapper Class Reference

#include <eigen_feature_mapper.hpp>

Collaboration diagram for jubatus::core::clustering::eigen_feature_mapper:
Collaboration graph

Public Member Functions

void clear ()
 
eigen_wsvec_list_t convert (const wplist &src, bool update_map=true)
 
eigen_svec_list_t convert (const std::vector< common::sfv_t > &src, bool update_map=true)
 
eigen_wsvec_t convert (const weighted_point &src, bool update_map=true)
 
eigen_svec_t convert (const common::sfv_t &src, bool update_map=true)
 
eigen_svec_t convertc (const common::sfv_t &src) const
 
 eigen_feature_mapper ()
 
int get_dimension ()
 
wplist revert (const eigen_wsvec_list_t &src) const
 
std::vector< common::sfv_trevert (const eigen_svec_list_t &src) const
 
common::sfv_t revert (const eigen_svec_t &src) const
 
weighted_point revert (const eigen_wsvec_t &src) const
 

Private Member Functions

void insert (const std::pair< std::string, float > &item, bool update_map, eigen_svec_t &dst)
 
void insertc (const std::pair< std::string, float > &, eigen_svec_t &dst) const
 
void rinsert (const std::pair< int, float > &, common::sfv_t &dst) const
 

Private Attributes

int d_
 
jubatus::util::data::unordered_map< std::string, size_t > map_
 
jubatus::util::data::unordered_map< size_t, std::string > rmap_
 

Detailed Description

Definition at line 31 of file eigen_feature_mapper.hpp.

Constructor & Destructor Documentation

jubatus::core::clustering::eigen_feature_mapper::eigen_feature_mapper ( )
inline

Member Function Documentation

void jubatus::core::clustering::eigen_feature_mapper::clear ( )

Definition at line 30 of file eigen_feature_mapper.cpp.

References d_, map_, and rmap_.

Referenced by jubatus::core::clustering::gmm_clustering_method::batch_update().

30  {
31  map_.clear();
32  rmap_.clear();
33  d_ = 0;
34 }
jubatus::util::data::unordered_map< std::string, size_t > map_
jubatus::util::data::unordered_map< size_t, std::string > rmap_

Here is the caller graph for this function:

eigen_wsvec_list_t jubatus::core::clustering::eigen_feature_mapper::convert ( const wplist src,
bool  update_map = true 
)

Definition at line 84 of file eigen_feature_mapper.cpp.

References d_, and jubatus::core::common::jsonconfig::v().

Referenced by jubatus::core::clustering::gmm_clustering_method::batch_update(), and convert().

86  {
87  eigen_wsvec_list_t ret(src.size());
88  eigen_wsvec_list_t::iterator ob = ret.begin();
89  wplist::const_iterator ib = src.begin();
90  while (ib != src.end()) {
91  *ob = convert(*ib, update_map);
92  ++ob;
93  ++ib;
94  }
95  for (ob = ret.begin(); ob != ret.end(); ++ob) {
96  eigen_svec_t v(d_);
97  for (eigen_svec_t::InnerIterator it(ob->data); it; ++it) {
98  v.coeffRef(it.index()) = it.value();
99  }
100  ob->data = v;
101  }
102  return ret;
103 }
std::vector< T > v(size)
std::vector< eigen_wsvec_t > eigen_wsvec_list_t
Definition: gmm_types.hpp:42
eigen_wsvec_list_t convert(const wplist &src, bool update_map=true)
Eigen::SparseVector< double > eigen_svec_t
Definition: gmm_types.hpp:29

Here is the call graph for this function:

Here is the caller graph for this function:

eigen_svec_list_t jubatus::core::clustering::eigen_feature_mapper::convert ( const std::vector< common::sfv_t > &  src,
bool  update_map = true 
)
eigen_wsvec_t jubatus::core::clustering::eigen_feature_mapper::convert ( const weighted_point src,
bool  update_map = true 
)

Definition at line 58 of file eigen_feature_mapper.cpp.

References convert(), jubatus::core::clustering::eigen_wsvec_t::data, jubatus::core::clustering::weighted_point::data, jubatus::core::clustering::eigen_wsvec_t::weight, and jubatus::core::clustering::weighted_point::weight.

60  {
61  eigen_wsvec_t ret;
62  ret.data = convert(src.data, update_map);
63  ret.weight = src.weight;
64  return ret;
65 }
eigen_wsvec_list_t convert(const wplist &src, bool update_map=true)

Here is the call graph for this function:

eigen_svec_t jubatus::core::clustering::eigen_feature_mapper::convert ( const common::sfv_t src,
bool  update_map = true 
)

Definition at line 40 of file eigen_feature_mapper.cpp.

References d_, and insert().

42  {
43  eigen_svec_t ret(d_);
44  for (common::sfv_t::const_iterator it = src.begin(); it != src.end(); ++it) {
45  insert(*it, update_map, ret);
46  }
47  return ret;
48 }
void insert(const std::pair< std::string, float > &item, bool update_map, eigen_svec_t &dst)
Eigen::SparseVector< double > eigen_svec_t
Definition: gmm_types.hpp:29

Here is the call graph for this function:

eigen_svec_t jubatus::core::clustering::eigen_feature_mapper::convertc ( const common::sfv_t src) const

Definition at line 50 of file eigen_feature_mapper.cpp.

References d_, and insertc().

Referenced by jubatus::core::clustering::gmm_clustering_method::get_nearest_center(), and jubatus::core::clustering::gmm_clustering_method::get_nearest_center_index().

50  {
51  eigen_svec_t ret(d_);
52  for (common::sfv_t::const_iterator it = src.begin(); it != src.end(); ++it) {
53  insertc(*it, ret);
54  }
55  return ret;
56 }
void insertc(const std::pair< std::string, float > &, eigen_svec_t &dst) const
Eigen::SparseVector< double > eigen_svec_t
Definition: gmm_types.hpp:29

Here is the call graph for this function:

Here is the caller graph for this function:

int jubatus::core::clustering::eigen_feature_mapper::get_dimension ( )

Definition at line 36 of file eigen_feature_mapper.cpp.

References d_.

Referenced by jubatus::core::clustering::gmm_clustering_method::batch_update().

Here is the caller graph for this function:

void jubatus::core::clustering::eigen_feature_mapper::insert ( const std::pair< std::string, float > &  item,
bool  update_map,
eigen_svec_t dst 
)
private

Definition at line 147 of file eigen_feature_mapper.cpp.

References d_, map_, and rmap_.

Referenced by convert().

150  {
151  if (dst.rows() < d_) {
152  dst.resize(d_);
153  }
154  if (map_.find(item.first) != map_.end()) {
155  dst.coeffRef(map_[item.first]) = item.second;
156  } else if (update_map) {
157  rmap_[d_] = item.first;
158  map_[item.first] = d_++;
159  insert(item, update_map, dst);
160  }
161 }
void insert(const std::pair< std::string, float > &item, bool update_map, eigen_svec_t &dst)
jubatus::util::data::unordered_map< std::string, size_t > map_
jubatus::util::data::unordered_map< size_t, std::string > rmap_

Here is the caller graph for this function:

void jubatus::core::clustering::eigen_feature_mapper::insertc ( const std::pair< std::string, float > &  ,
eigen_svec_t dst 
) const
private

Definition at line 163 of file eigen_feature_mapper.cpp.

References d_, and map_.

Referenced by convertc().

165  {
166  if (dst.rows() < d_) {
167  dst.resize(d_);
168  }
169  if (map_.find(item.first) != map_.end()) {
170  dst.coeffRef((map_.find(item.first))->second) = item.second;
171  }
172 }
jubatus::util::data::unordered_map< std::string, size_t > map_

Here is the caller graph for this function:

wplist jubatus::core::clustering::eigen_feature_mapper::revert ( const eigen_wsvec_list_t src) const

Definition at line 134 of file eigen_feature_mapper.cpp.

Referenced by jubatus::core::clustering::gmm_clustering_method::batch_update(), jubatus::core::clustering::gmm_clustering_method::get_nearest_center(), and revert().

135  {
136  wplist ret(src.size());
137  eigen_wsvec_list_t::const_iterator ib = src.begin();
138  wplist::iterator ob = ret.begin();
139  while (ib != src.end()) {
140  *ob = revert(*ib);
141  ++ob;
142  ++ib;
143  }
144  return ret;
145 }
wplist revert(const eigen_wsvec_list_t &src) const
std::vector< weighted_point > wplist
Definition: types.hpp:55

Here is the caller graph for this function:

std::vector< common::sfv_t > jubatus::core::clustering::eigen_feature_mapper::revert ( const eigen_svec_list_t src) const

Definition at line 121 of file eigen_feature_mapper.cpp.

References revert().

122  {
123  std::vector<common::sfv_t> ret(src.size());
124  eigen_svec_list_t::const_iterator ib = src.begin();
125  std::vector<common::sfv_t>::iterator ob = ret.begin();
126  while (ib != src.end()) {
127  *ob = revert(*ib);
128  ++ob;
129  ++ib;
130  }
131  return ret;
132 }
wplist revert(const eigen_wsvec_list_t &src) const

Here is the call graph for this function:

common::sfv_t jubatus::core::clustering::eigen_feature_mapper::revert ( const eigen_svec_t src) const

Definition at line 105 of file eigen_feature_mapper.cpp.

References rinsert().

105  {
106  common::sfv_t ret;
107  for (eigen_svec_t::InnerIterator it(src); it; ++it) {
108  rinsert(std::make_pair(it.row(), static_cast<float>(it.value())), ret);
109  }
110  return ret;
111 }
void rinsert(const std::pair< int, float > &, common::sfv_t &dst) const
std::vector< std::pair< std::string, float > > sfv_t
Definition: type.hpp:29

Here is the call graph for this function:

weighted_point jubatus::core::clustering::eigen_feature_mapper::revert ( const eigen_wsvec_t src) const

Definition at line 113 of file eigen_feature_mapper.cpp.

References jubatus::core::clustering::eigen_wsvec_t::data, jubatus::core::clustering::weighted_point::data, revert(), jubatus::core::clustering::eigen_wsvec_t::weight, and jubatus::core::clustering::weighted_point::weight.

114  {
115  weighted_point ret;
116  ret.weight = src.weight;
117  ret.data = revert(src.data);
118  return ret;
119 }
wplist revert(const eigen_wsvec_list_t &src) const

Here is the call graph for this function:

void jubatus::core::clustering::eigen_feature_mapper::rinsert ( const std::pair< int, float > &  ,
common::sfv_t dst 
) const
private

Definition at line 174 of file eigen_feature_mapper.cpp.

References rmap_.

Referenced by revert().

176  {
177  if (rmap_.find(item.first) != rmap_.end()) {
178  dst.push_back(
179  make_pair((rmap_.find(item.first))->second, item.second));
180  }
181 }
jubatus::util::data::unordered_map< size_t, std::string > rmap_

Here is the caller graph for this function:

Member Data Documentation

int jubatus::core::clustering::eigen_feature_mapper::d_
private

Definition at line 65 of file eigen_feature_mapper.hpp.

Referenced by clear(), convert(), convertc(), get_dimension(), insert(), and insertc().

jubatus::util::data::unordered_map<std::string, size_t> jubatus::core::clustering::eigen_feature_mapper::map_
private

Definition at line 49 of file eigen_feature_mapper.hpp.

Referenced by clear(), insert(), and insertc().

jubatus::util::data::unordered_map<size_t, std::string> jubatus::core::clustering::eigen_feature_mapper::rmap_
private

Definition at line 50 of file eigen_feature_mapper.hpp.

Referenced by clear(), insert(), and rinsert().


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