jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
Public Member Functions | Private Attributes | List of all members
jubatus::core::anomaly::lof Class Reference

#include <lof.hpp>

Inheritance diagram for jubatus::core::anomaly::lof:
Inheritance graph
Collaboration diagram for jubatus::core::anomaly::lof:
Collaboration graph

Public Member Functions

float calc_anomaly_score (const common::sfv_t &query) const
 
float calc_anomaly_score (const std::string &id) const
 
void clear ()
 
void clear_row (const std::string &id)
 
void get_all_row_ids (std::vector< std::string > &ids) const
 
std::vector< framework::mixable * > get_mixables () const
 
bool is_updatable () const
 
 lof (const lof_storage::config &config, jubatus::util::lang::shared_ptr< core::recommender::recommender_base > nn_engine)
 
void pack (framework::packer &packer) const
 
void set_row (const std::string &id, const common::sfv_t &sfv)
 
std::string type () const
 
void unpack (msgpack::object o)
 
void update_row (const std::string &id, const sfv_diff_t &diff)
 
 ~lof ()
 
- Public Member Functions inherited from jubatus::core::anomaly::anomaly_base
 anomaly_base ()
 
uint64_t find_max_int_id () const
 
virtual ~anomaly_base ()
 
- Public Member Functions inherited from jubatus::core::framework::model
virtual ~model ()
 

Private Attributes

jubatus::util::lang::shared_ptr< mixable_lof_storagemixable_storage_
 
jubatus::util::lang::shared_ptr< recommender::recommender_basenn_engine_
 

Detailed Description

Definition at line 31 of file lof.hpp.

Constructor & Destructor Documentation

jubatus::core::anomaly::lof::lof ( const lof_storage::config config,
jubatus::util::lang::shared_ptr< core::recommender::recommender_base nn_engine 
)
explicit

Definition at line 68 of file lof.cpp.

References JUBATUS_EXCEPTION, mixable_storage_, jubatus::core::anomaly::lof_storage::config::nearest_neighbor_num, and jubatus::core::anomaly::lof_storage::config::reverse_nearest_neighbor_num.

71  : mixable_storage_(),
72  nn_engine_(nn_engine) {
73 
74  if (!(2 <= config.nearest_neighbor_num)) {
75  throw JUBATUS_EXCEPTION(
76  common::invalid_parameter("2 <= nearest_neighbor_num"));
77  }
78 
79  if (!(config.nearest_neighbor_num
80  <= config.reverse_nearest_neighbor_num)) {
81  throw JUBATUS_EXCEPTION(
82  common::invalid_parameter(
83  "nearest_neighbor_num <= reverse_nearest_neighbor_num"));
84  }
85 
86  mixable_lof_storage::model_ptr p(new lof_storage(config, nn_engine));
88 }
jubatus::util::lang::shared_ptr< Model > model_ptr
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79
jubatus::util::lang::shared_ptr< recommender::recommender_base > nn_engine_
Definition: lof.hpp:61
framework::linear_mixable_helper< lof_storage, lof_table_t > mixable_lof_storage
jubatus::util::lang::shared_ptr< mixable_lof_storage > mixable_storage_
Definition: lof.hpp:60
jubatus::core::anomaly::lof::~lof ( )

Definition at line 90 of file lof.cpp.

90  {
91 }

Member Function Documentation

float jubatus::core::anomaly::lof::calc_anomaly_score ( const common::sfv_t query) const
virtual

Implements jubatus::core::anomaly::anomaly_base.

Definition at line 93 of file lof.cpp.

References mixable_storage_.

93  {
94  unordered_map<string, float> neighbor_lrd;
95  const float lrd = mixable_storage_->get_model()->collect_lrds(
96  query, neighbor_lrd);
97  return calculate_lof(lrd, neighbor_lrd);
98 }
jubatus::util::lang::shared_ptr< mixable_lof_storage > mixable_storage_
Definition: lof.hpp:60
float jubatus::core::anomaly::lof::calc_anomaly_score ( const std::string &  id) const
virtual
void jubatus::core::anomaly::lof::clear ( )
virtual

Implements jubatus::core::anomaly::anomaly_base.

Definition at line 108 of file lof.cpp.

References mixable_storage_.

108  {
109  mixable_storage_->get_model()->clear();
110 }
jubatus::util::lang::shared_ptr< mixable_lof_storage > mixable_storage_
Definition: lof.hpp:60
void jubatus::core::anomaly::lof::clear_row ( const std::string &  id)
virtual

Implements jubatus::core::anomaly::anomaly_base.

Definition at line 112 of file lof.cpp.

References mixable_storage_.

112  {
113  mixable_storage_->get_model()->remove_row(id);
114 }
jubatus::util::lang::shared_ptr< mixable_lof_storage > mixable_storage_
Definition: lof.hpp:60
void jubatus::core::anomaly::lof::get_all_row_ids ( std::vector< std::string > &  ids) const
virtual

Implements jubatus::core::anomaly::anomaly_base.

Definition at line 124 of file lof.cpp.

References mixable_storage_.

124  {
125  mixable_storage_->get_model()->get_all_row_ids(ids);
126 }
jubatus::util::lang::shared_ptr< mixable_lof_storage > mixable_storage_
Definition: lof.hpp:60
std::vector< framework::mixable * > jubatus::core::anomaly::lof::get_mixables ( ) const
virtual

Implements jubatus::core::anomaly::anomaly_base.

Definition at line 132 of file lof.cpp.

References mixable_storage_, and nn_engine_.

132  {
133  std::vector<framework::mixable*> mixables;
134  mixables.push_back(mixable_storage_.get());
135  mixables.push_back(nn_engine_->get_mixable());
136  return mixables;
137 }
jubatus::util::lang::shared_ptr< recommender::recommender_base > nn_engine_
Definition: lof.hpp:61
jubatus::util::lang::shared_ptr< mixable_lof_storage > mixable_storage_
Definition: lof.hpp:60
bool jubatus::core::anomaly::lof::is_updatable ( ) const
inlinevirtual

Implements jubatus::core::anomaly::anomaly_base.

Definition at line 55 of file lof.hpp.

55  {
56  return true;
57  }
void jubatus::core::anomaly::lof::pack ( framework::packer packer) const
virtual

Implements jubatus::core::anomaly::anomaly_base.

Definition at line 139 of file lof.cpp.

References mixable_storage_, and nn_engine_.

139  {
140  packer.pack_array(2);
141  mixable_storage_->get_model()->pack(packer);
142  nn_engine_->pack(packer);
143 }
jubatus::util::lang::shared_ptr< recommender::recommender_base > nn_engine_
Definition: lof.hpp:61
msgpack::packer< jubatus_packer > packer
Definition: bandit_base.hpp:31
jubatus::util::lang::shared_ptr< mixable_lof_storage > mixable_storage_
Definition: lof.hpp:60
void jubatus::core::anomaly::lof::set_row ( const std::string &  id,
const common::sfv_t sfv 
)
virtual

Implements jubatus::core::anomaly::anomaly_base.

Definition at line 120 of file lof.cpp.

References JUBATUS_EXCEPTION.

120  {
121  throw JUBATUS_EXCEPTION(common::unsupported_method(__func__));
122 }
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79
string jubatus::core::anomaly::lof::type ( ) const
virtual

Implements jubatus::core::anomaly::anomaly_base.

Definition at line 128 of file lof.cpp.

128  {
129  return "lof";
130 }
void jubatus::core::anomaly::lof::unpack ( msgpack::object  o)
virtual

Implements jubatus::core::anomaly::anomaly_base.

Definition at line 145 of file lof.cpp.

References mixable_storage_, and nn_engine_.

145  {
146  if (o.type != msgpack::type::ARRAY || o.via.array.size != 2) {
147  throw msgpack::type_error();
148  }
149 
150  // clear before load
151  mixable_storage_->get_model()->clear();
152  nn_engine_->clear();
153 
154  mixable_storage_->get_model()->unpack(o.via.array.ptr[0]);
155  nn_engine_->unpack(o.via.array.ptr[1]);
156 }
jubatus::util::lang::shared_ptr< recommender::recommender_base > nn_engine_
Definition: lof.hpp:61
jubatus::util::lang::shared_ptr< mixable_lof_storage > mixable_storage_
Definition: lof.hpp:60
void jubatus::core::anomaly::lof::update_row ( const std::string &  id,
const sfv_diff_t diff 
)
virtual

Implements jubatus::core::anomaly::anomaly_base.

Definition at line 116 of file lof.cpp.

References mixable_storage_.

116  {
117  mixable_storage_->get_model()->update_row(id, diff);
118 }
jubatus::util::lang::shared_ptr< mixable_lof_storage > mixable_storage_
Definition: lof.hpp:60

Member Data Documentation

jubatus::util::lang::shared_ptr<mixable_lof_storage> jubatus::core::anomaly::lof::mixable_storage_
private
jubatus::util::lang::shared_ptr<recommender::recommender_base> jubatus::core::anomaly::lof::nn_engine_
private

Definition at line 61 of file lof.hpp.

Referenced by get_mixables(), pack(), and unpack().


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