22 #include "jubatus/util/lang/bind.h"
25 using jubatus::util::lang::bind;
26 using jubatus::util::lang::_1;
27 using jubatus::util::lang::_2;
41 (w1 * lhs.
v1 + w2 * rhs.
v1) / (w1 + w2),
42 std::min(lhs.
v2, rhs.
v2),
43 (w1 * lhs.
v3 + w2 * rhs.
v3) / (w1 + w2));
57 struct internal_diff_object : diff_object_raw {
58 void convert_binary(
packer& pk)
const {
74 bind(mix_feature, lhs.
count, mixed.
count, _1, _2));
89 for (
size_t i = 0; i < v.
v.
diff.size(); ++i) {
91 for (
size_t j = 0; j < classes.size(); ++j) {
98 for (
size_t i = 0; i < v.
v.
diff.size(); ++i) {
99 parameters[i].first = v.
v.
diff[i].first;
105 target_classes.reserve(source_classes.size());
106 for (
size_t j = 0; j < source_classes.size(); ++j) {
108 target_classes.push_back(source_classes[j]);
117 return get_model()->set_average_and_clear_diff(unlearned_diff);
119 return get_model()->set_average_and_clear_diff(v.
v);
124 const msgpack::object& obj)
const {
125 internal_diff_object* diff =
new internal_diff_object;
127 obj.convert(&diff->diff_);
132 const msgpack::object& obj,
135 internal_diff_object* diff_obj =
136 dynamic_cast<internal_diff_object*
>(ptr.get());
142 mix(diff, diff_obj->diff_);
152 internal_diff_object* diff_obj =
153 dynamic_cast<internal_diff_object*
>(ptr.get());
void mix(const diffv &lhs, diffv &mixed) const
std::vector< std::pair< std::string, feature_val3_t > > features3_t
jubatus::util::lang::shared_ptr< diff_object_raw > diff_object
diff_object convert_diff_object(const msgpack::object &) const
#define JUBATUS_EXCEPTION(e)
bool put_diff(const diffv &v)
void get_diff(diffv &) const
void swap(weighted_point &p1, weighted_point &p2)
msgpack::packer< jubatus_packer > packer
std::vector< std::pair< std::string, val3_t > > feature_val3_t
jubatus::util::lang::shared_ptr< unlearner::unlearner_base > label_unlearner_
std::vector< std::pair< std::string, E > > & binop(std::vector< std::pair< std::string, E > > &lhs, std::vector< std::pair< std::string, E > > rhs, F f, E default_value=E())
model_ptr get_model() const