21 #include "jubatus/util/lang/shared_ptr.h"
22 #include "jubatus/util/text/json.h"
24 #include "../common/exception.hpp"
25 #include "../common/jsonconfig.hpp"
26 #include "../nearest_neighbor/nearest_neighbor_factory.hpp"
27 #include "../unlearner/unlearner_factory.hpp"
28 #include "../storage/column_table.hpp"
29 #include "../recommender/recommender_factory.hpp"
34 using jubatus::util::lang::shared_ptr;
35 using jubatus::util::text::json::json;
43 struct lof_config :
public lof_storage::config {
47 template <
typename Ar>
52 & JUBA_MEMBER(parameter);
56 struct light_lof_config :
public light_lof::config {
59 jubatus::util::data::optional<std::string>
unlearner;
60 jubatus::util::data::optional<jubatus::core::common::jsonconfig::config>
63 template <
typename Ar>
68 & JUBA_MEMBER(parameter)
69 & JUBA_MEMBER(unlearner)
80 lof_config conf = config_cast_check<lof_config>(param);
82 return shared_ptr<anomaly_base>(
new lof(
86 conf.parameter,
id)));
87 }
else if (name ==
"light_lof") {
88 light_lof_config conf = config_cast_check<light_lof_config>(param);
90 jubatus::util::lang::shared_ptr<storage::column_table>
92 jubatus::util::lang::shared_ptr<nearest_neighbor::nearest_neighbor_base>
94 conf.method, conf.parameter, nearest_neighbor_table,
id));
97 if (!conf.unlearner_parameter) {
101 "unlearner is set but unlearner_parameter is not found"));
103 jubatus::util::lang::shared_ptr<unlearner::unlearner_base>
unlearner(
106 *conf.unlearner_parameter));
107 return shared_ptr<anomaly_base>(
108 new light_lof(conf,
id, nearest_neighbor_engine, unlearner));
111 return jubatus::util::lang::shared_ptr<anomaly_base>(
112 new light_lof(conf,
id, nearest_neighbor_engine));
T config_cast_check(const config &c)
void serialize(member_collector &mem, jubatus::util::data::serialization::named_value< T > &v)
static jubatus::util::lang::shared_ptr< anomaly_base > create_anomaly(const std::string &name, const common::jsonconfig::config ¶m, const std::string &id)
static jubatus::util::lang::shared_ptr< recommender_base > create_recommender(const std::string &name, const common::jsonconfig::config ¶m, const std::string &id)
shared_ptr< unlearner_base > create_unlearner(const std::string &name, const common::jsonconfig::config &config)
jubatus::util::data::optional< jubatus::core::common::jsonconfig::config > unlearner_parameter
jubatus::core::common::jsonconfig::config parameter
#define JUBATUS_EXCEPTION(e)
jubatus::util::data::optional< std::string > unlearner
shared_ptr< nearest_neighbor_base > create_nearest_neighbor(const std::string &name, const common::jsonconfig::config &config, shared_ptr< storage::column_table > table, const std::string &id)