jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
Static Public Member Functions | List of all members
jubatus::core::recommender::recommender_factory Class Reference

#include <recommender_factory.hpp>

Collaboration diagram for jubatus::core::recommender::recommender_factory:
Collaboration graph

Static Public Member Functions

static jubatus::util::lang::shared_ptr< recommender_basecreate_recommender (const std::string &name, const common::jsonconfig::config &param, const std::string &id)
 

Detailed Description

Definition at line 35 of file recommender_factory.hpp.

Member Function Documentation

shared_ptr< recommender_base > jubatus::core::recommender::recommender_factory::create_recommender ( const std::string &  name,
const common::jsonconfig::config param,
const std::string &  id 
)
static

Definition at line 56 of file recommender_factory.cpp.

References jubatus::core::nearest_neighbor::create_nearest_neighbor(), jubatus::core::unlearner::create_unlearner(), and JUBATUS_EXCEPTION.

Referenced by jubatus::core::anomaly::anomaly_factory::create_anomaly().

59  {
60  if (name == "inverted_index") {
61  // inverted_index doesn't have parameter
62  return shared_ptr<recommender_base>(new inverted_index);
63  } else if (name == "minhash") {
64  return shared_ptr<recommender_base>(
65  new minhash(config_cast_check<minhash::config>(param)));
66  } else if (name == "lsh") {
67  return shared_ptr<recommender_base>(
68  new lsh(config_cast_check<lsh::config>(param)));
69  } else if (name == "euclid_lsh") {
70  return shared_ptr<recommender_base>(
71  new euclid_lsh(config_cast_check<euclid_lsh::config>(param)));
72  } else if (name == "nearest_neighbor_recommender") {
73  nearest_neighbor_recommender_config conf =
74  config_cast_check<nearest_neighbor_recommender_config>(param);
75  shared_ptr<storage::column_table> table(new storage::column_table);
76  shared_ptr<nearest_neighbor::nearest_neighbor_base>
77  nearest_neighbor_engine(nearest_neighbor::create_nearest_neighbor(
78  conf.method, conf.parameter, table, id));
79  if (conf.unlearner) {
80  if (!conf.unlearner_parameter) {
81  throw JUBATUS_EXCEPTION(
82  common::config_exception() << common::exception::error_message(
83  "unlearner is set but unlearner_parameter is not found"));
84  }
85  shared_ptr<unlearner::unlearner_base> unl(unlearner::create_unlearner(
86  *conf.unlearner, common::jsonconfig::config(
87  *conf.unlearner_parameter)));
88  return shared_ptr<recommender_base>(
89  new nearest_neighbor_recommender(nearest_neighbor_engine, unl));
90  }
91  return shared_ptr<recommender_base>(
92  new nearest_neighbor_recommender(nearest_neighbor_engine));
93  } else {
94  throw JUBATUS_EXCEPTION(common::unsupported_method(name));
95  }
96 }
shared_ptr< unlearner_base > create_unlearner(const std::string &name, const common::jsonconfig::config &config)
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79
error_info< struct error_message_, std::string > error_message
Definition: exception.hpp:59
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)

Here is the call graph for this function:

Here is the caller graph for this function:


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