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

#include <clustering.hpp>

Inheritance diagram for jubatus::core::driver::clustering:
Inheritance graph
Collaboration diagram for jubatus::core::driver::clustering:
Collaboration graph

Public Member Functions

void clear ()
 
 clustering (jubatus::util::lang::shared_ptr< core::clustering::clustering > clustering_method, jubatus::util::lang::shared_ptr< fv_converter::datum_to_fv_converter > converter)
 
void do_clustering ()
 
core::clustering::cluster_set get_core_members () const
 
std::vector< fv_converter::datumget_k_center () const
 
fv_converter::datum get_nearest_center (const fv_converter::datum &point) const
 
core::clustering::cluster_unit get_nearest_members (const fv_converter::datum &point) const
 
size_t get_revision () const
 
void pack (framework::packer &pk) const
 
void push (const std::vector< fv_converter::datum > &points)
 
void unpack (msgpack::object o)
 
virtual ~clustering ()
 
- Public Member Functions inherited from jubatus::core::driver::driver_base
 driver_base ()
 
virtual framework::mixableget_mixable ()
 
std::vector< storage::versionget_versions () const
 
virtual ~driver_base ()
 

Private Member Functions

fv_converter::datum to_datum (const common::sfv_t &src) const
 
std::vector< fv_converter::datumto_datum_vector (const std::vector< common::sfv_t > &src) const
 
common::sfv_t to_sfv (const fv_converter::datum &dat)
 
common::sfv_t to_sfv_const (const fv_converter::datum &dat) const
 
std::pair< double, fv_converter::datumto_weighted_datum (const core::clustering::weighted_point &src) const
 
core::clustering::cluster_unit to_weighted_datum_vector (const std::vector< core::clustering::weighted_point > &src) const
 
core::clustering::weighted_point to_weighted_point (const fv_converter::datum &src)
 
std::vector< core::clustering::weighted_pointto_weighted_point_vector (const std::vector< fv_converter::datum > &src)
 

Private Attributes

jubatus::util::lang::shared_ptr< core::clustering::clusteringclustering_
 
jubatus::util::lang::shared_ptr< fv_converter::datum_to_fv_converterconverter_
 
fv_converter::mixable_weight_manager wm_
 

Additional Inherited Members

- Protected Member Functions inherited from jubatus::core::driver::driver_base
void register_mixable (framework::mixable *mixable)
 
- Protected Attributes inherited from jubatus::core::driver::driver_base
mixable_holder holder_
 

Detailed Description

Definition at line 40 of file clustering.hpp.

Constructor & Destructor Documentation

jubatus::core::driver::clustering::clustering ( jubatus::util::lang::shared_ptr< core::clustering::clustering clustering_method,
jubatus::util::lang::shared_ptr< fv_converter::datum_to_fv_converter converter 
)
jubatus::core::driver::clustering::~clustering ( )
virtual

Definition at line 53 of file clustering.cpp.

53  {
54 }

Member Function Documentation

void jubatus::core::driver::clustering::clear ( )
virtual

Implements jubatus::core::driver::driver_base.

Definition at line 202 of file clustering.cpp.

202  {
203  clustering_->clear();
204  converter_->clear_weights();
205 }
jubatus::util::lang::shared_ptr< fv_converter::datum_to_fv_converter > converter_
Definition: clustering.hpp:84
jubatus::util::lang::shared_ptr< core::clustering::clustering > clustering_
Definition: clustering.hpp:85
void jubatus::core::driver::clustering::do_clustering ( )

Definition at line 98 of file clustering.cpp.

98  {
99  clustering_->do_clustering();
100 }
jubatus::util::lang::shared_ptr< core::clustering::clustering > clustering_
Definition: clustering.hpp:85
core::clustering::cluster_set jubatus::core::driver::clustering::get_core_members ( ) const

Definition at line 77 of file clustering.cpp.

77  {
78  vector<vector<core::clustering::weighted_point> > src =
79  clustering_->get_core_members();
80 
82  ret.reserve(src.size());
83  std::transform(
84  src.begin(),
85  src.end(),
86  std::back_inserter(ret),
87  jubatus::util::lang::bind(
89  this, jubatus::util::lang::_1));
90 
91  return ret;
92 }
std::vector< cluster_unit > cluster_set
Definition: types.hpp:37
jubatus::util::lang::shared_ptr< core::clustering::clustering > clustering_
Definition: clustering.hpp:85
core::clustering::cluster_unit to_weighted_datum_vector(const std::vector< core::clustering::weighted_point > &src) const
Definition: clustering.cpp:168
vector< datum > jubatus::core::driver::clustering::get_k_center ( ) const

Definition at line 72 of file clustering.cpp.

72  {
73  return to_datum_vector(clustering_->get_k_center());
74 }
std::vector< fv_converter::datum > to_datum_vector(const std::vector< common::sfv_t > &src) const
Definition: clustering.cpp:138
jubatus::util::lang::shared_ptr< core::clustering::clustering > clustering_
Definition: clustering.hpp:85
fv_converter::datum jubatus::core::driver::clustering::get_nearest_center ( const fv_converter::datum point) const
core::clustering::cluster_unit jubatus::core::driver::clustering::get_nearest_members ( const fv_converter::datum point) const
size_t jubatus::core::driver::clustering::get_revision ( ) const

Definition at line 94 of file clustering.cpp.

94  {
95  return clustering_->get_revision();
96 }
jubatus::util::lang::shared_ptr< core::clustering::clustering > clustering_
Definition: clustering.hpp:85
void jubatus::core::driver::clustering::pack ( framework::packer pk) const
virtual

Implements jubatus::core::driver::driver_base.

Definition at line 182 of file clustering.cpp.

182  {
183  pk.pack_array(2);
184  clustering_->pack(pk);
185  wm_.get_model()->pack(pk);
186 }
fv_converter::mixable_weight_manager wm_
Definition: clustering.hpp:86
jubatus::util::lang::shared_ptr< core::clustering::clustering > clustering_
Definition: clustering.hpp:85
void jubatus::core::driver::clustering::push ( const std::vector< fv_converter::datum > &  points)
datum jubatus::core::driver::clustering::to_datum ( const common::sfv_t src) const
private

Definition at line 118 of file clustering.cpp.

References jubatus::core::fv_converter::revert_feature().

118  {
119  datum ret;
121  return ret;
122 }
void revert_feature(const common::sfv_t &fv, fv_converter::datum &data)
Definition: revert.cpp:31

Here is the call graph for this function:

vector< datum > jubatus::core::driver::clustering::to_datum_vector ( const std::vector< common::sfv_t > &  src) const
private

Definition at line 138 of file clustering.cpp.

139  {
140  vector<datum> ret;
141  ret.reserve(src.size());
142  std::transform(
143  src.begin(),
144  src.end(),
145  std::back_inserter(ret),
146  jubatus::util::lang::bind(
148  this, jubatus::util::lang::_1));
149  return ret;
150 }
fv_converter::datum to_datum(const common::sfv_t &src) const
Definition: clustering.cpp:118
common::sfv_t jubatus::core::driver::clustering::to_sfv ( const fv_converter::datum dat)
private

Definition at line 104 of file clustering.cpp.

References jubatus::core::common::sort_and_merge().

104  {
105  common::sfv_t ret;
106  converter_->convert_and_update_weight(dat, ret);
108  return ret;
109 }
jubatus::util::lang::shared_ptr< fv_converter::datum_to_fv_converter > converter_
Definition: clustering.hpp:84
void sort_and_merge(sfv_t &sfv)
Definition: vector_util.cpp:28
std::vector< std::pair< std::string, float > > sfv_t
Definition: type.hpp:29

Here is the call graph for this function:

common::sfv_t jubatus::core::driver::clustering::to_sfv_const ( const fv_converter::datum dat) const
private

Definition at line 111 of file clustering.cpp.

References jubatus::core::common::sort_and_merge().

111  {
112  common::sfv_t ret;
113  converter_->convert(dat, ret);
115  return ret;
116 }
jubatus::util::lang::shared_ptr< fv_converter::datum_to_fv_converter > converter_
Definition: clustering.hpp:84
void sort_and_merge(sfv_t &sfv)
Definition: vector_util.cpp:28
std::vector< std::pair< std::string, float > > sfv_t
Definition: type.hpp:29

Here is the call graph for this function:

pair< double, datum > jubatus::core::driver::clustering::to_weighted_datum ( const core::clustering::weighted_point src) const
private

Definition at line 133 of file clustering.cpp.

References jubatus::core::clustering::weighted_point::original, and jubatus::core::clustering::weighted_point::weight.

134  {
135  return std::make_pair(src.weight, src.original);
136 }
core::clustering::cluster_unit jubatus::core::driver::clustering::to_weighted_datum_vector ( const std::vector< core::clustering::weighted_point > &  src) const
private

Definition at line 168 of file clustering.cpp.

169  {
171  ret.reserve(src.size());
172  std::transform(
173  src.begin(),
174  src.end(),
175  std::back_inserter(ret),
176  jubatus::util::lang::bind(
178  this, jubatus::util::lang::_1));
179  return ret;
180 }
std::vector< std::pair< cluster_weight, jubatus::core::fv_converter::datum > > cluster_unit
Definition: types.hpp:36
std::pair< double, fv_converter::datum > to_weighted_datum(const core::clustering::weighted_point &src) const
Definition: clustering.cpp:133
core::clustering::weighted_point jubatus::core::driver::clustering::to_weighted_point ( const fv_converter::datum src)
private

Definition at line 124 of file clustering.cpp.

References jubatus::core::clustering::weighted_point::data, jubatus::core::clustering::weighted_point::original, and jubatus::core::clustering::weighted_point::weight.

125  {
126  core::clustering::weighted_point ret;
127  ret.data = to_sfv(src);
128  ret.weight = 1;
129  ret.original = src;
130  return ret;
131 }
common::sfv_t to_sfv(const fv_converter::datum &dat)
Definition: clustering.cpp:104
vector< core::clustering::weighted_point > jubatus::core::driver::clustering::to_weighted_point_vector ( const std::vector< fv_converter::datum > &  src)
private

Definition at line 153 of file clustering.cpp.

154  {
155  vector<core::clustering::weighted_point> ret;
156  ret.reserve(src.size());
157  std::transform(
158  src.begin(),
159  src.end(),
160  std::back_inserter(ret),
161  jubatus::util::lang::bind(
163  this, jubatus::util::lang::_1));
164  return ret;
165 }
core::clustering::weighted_point to_weighted_point(const fv_converter::datum &src)
Definition: clustering.cpp:124
void jubatus::core::driver::clustering::unpack ( msgpack::object  o)
virtual

Implements jubatus::core::driver::driver_base.

Definition at line 188 of file clustering.cpp.

188  {
189  if (o.type != msgpack::type::ARRAY || o.via.array.size != 2) {
190  throw msgpack::type_error();
191  }
192 
193  // clear
194  clustering_->clear();
195  converter_->clear_weights();
196 
197  // load
198  clustering_->unpack(o.via.array.ptr[0]);
199  wm_.get_model()->unpack(o.via.array.ptr[1]);
200 }
jubatus::util::lang::shared_ptr< fv_converter::datum_to_fv_converter > converter_
Definition: clustering.hpp:84
fv_converter::mixable_weight_manager wm_
Definition: clustering.hpp:86
jubatus::util::lang::shared_ptr< core::clustering::clustering > clustering_
Definition: clustering.hpp:85

Member Data Documentation

jubatus::util::lang::shared_ptr<core::clustering::clustering> jubatus::core::driver::clustering::clustering_
private

Definition at line 85 of file clustering.hpp.

jubatus::util::lang::shared_ptr<fv_converter::datum_to_fv_converter> jubatus::core::driver::clustering::converter_
private

Definition at line 84 of file clustering.hpp.

fv_converter::mixable_weight_manager jubatus::core::driver::clustering::wm_
private

Definition at line 86 of file clustering.hpp.


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