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

#include <passive_aggressive_1.hpp>

Inheritance diagram for jubatus::core::classifier::passive_aggressive_1:
Inheritance graph
Collaboration diagram for jubatus::core::classifier::passive_aggressive_1:
Collaboration graph

Public Member Functions

std::string name () const
 
 passive_aggressive_1 (storage_ptr storage)
 
 passive_aggressive_1 (const classifier_config &config, storage_ptr storage)
 
void train (const common::sfv_t &fv, const std::string &label)
 
- Public Member Functions inherited from jubatus::core::classifier::linear_classifier
std::string classify (const common::sfv_t &fv) const
 
void classify_with_scores (const common::sfv_t &fv, classify_result &scores) const
 
void clear ()
 
bool delete_label (const std::string &label)
 
std::vector< std::string > get_labels () const
 
framework::mixableget_mixable ()
 
virtual void get_status (std::map< std::string, std::string > &status) const
 
jubatus::util::lang::shared_ptr< unlearner::unlearner_baselabel_unlearner () const
 
 linear_classifier (storage_ptr storage)
 
void pack (framework::packer &pk) const
 
bool set_label (const std::string &label)
 
void set_label_unlearner (jubatus::util::lang::shared_ptr< unlearner::unlearner_base > label_unlearner)
 
bool unlearn_label (const std::string &label)
 
void unpack (msgpack::object o)
 
virtual ~linear_classifier ()
 
- Public Member Functions inherited from jubatus::core::classifier::classifier_base
 classifier_base ()
 
virtual ~classifier_base ()
 

Private Attributes

classifier_config config_
 

Additional Inherited Members

- Protected Member Functions inherited from jubatus::core::classifier::linear_classifier
float calc_margin (const common::sfv_t &sfv, const std::string &label, std::string &incorrect_label) const
 
float calc_margin_and_variance (const common::sfv_t &sfv, const std::string &label, std::string &incorrect_label, float &variance) const
 
void check_touchable (const std::string &label)
 
std::string get_largest_incorrect_label (const common::sfv_t &sfv, const std::string &label, classify_result &scores) const
 
void touch (const std::string &label)
 
void update_weight (const common::sfv_t &sfv, float step_weigth, const std::string &pos_label, const std::string &neg_class)
 
- Static Protected Member Functions inherited from jubatus::core::classifier::linear_classifier
static float squared_norm (const common::sfv_t &sfv)
 
- Protected Attributes inherited from jubatus::core::classifier::linear_classifier
framework::linear_function_mixer mixable_storage_
 
storage_ptr storage_
 
jubatus::util::lang::shared_ptr< unlearner::unlearner_baseunlearner_
 

Detailed Description

Definition at line 28 of file passive_aggressive_1.hpp.

Constructor & Destructor Documentation

jubatus::core::classifier::passive_aggressive_1::passive_aggressive_1 ( storage_ptr  storage)
explicit

Definition at line 31 of file passive_aggressive_1.cpp.

32  : linear_classifier(storage) {
33 }
jubatus::core::classifier::passive_aggressive_1::passive_aggressive_1 ( const classifier_config config,
storage_ptr  storage 
)

Definition at line 35 of file passive_aggressive_1.cpp.

References JUBATUS_EXCEPTION, and jubatus::core::classifier::classifier_config::regularization_weight.

38  : linear_classifier(storage),
39  config_(config) {
40 
41  if (!(0.f < config.regularization_weight)) {
42  throw JUBATUS_EXCEPTION(
43  common::invalid_parameter("0.0 < regularization_weight"));
44  }
45 }
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79

Member Function Documentation

string jubatus::core::classifier::passive_aggressive_1::name ( ) const
virtual

Implements jubatus::core::classifier::linear_classifier.

Definition at line 72 of file passive_aggressive_1.cpp.

72  {
73  return string("passive_aggressive_1");
74 }
void jubatus::core::classifier::passive_aggressive_1::train ( const common::sfv_t fv,
const std::string &  label 
)
virtual

Implements jubatus::core::classifier::linear_classifier.

Definition at line 47 of file passive_aggressive_1.cpp.

References jubatus::core::classifier::linear_classifier::calc_margin(), jubatus::core::classifier::linear_classifier::check_touchable(), config_, jubatus::core::classifier::classifier_config::regularization_weight, jubatus::core::classifier::linear_classifier::squared_norm(), jubatus::core::classifier::linear_classifier::storage_, jubatus::core::classifier::linear_classifier::touch(), and jubatus::core::classifier::linear_classifier::update_weight().

48  {
49  check_touchable(label);
50 
51  string incorrect_label;
52  float margin = calc_margin(sfv, label, incorrect_label);
53  float loss = 1.f + margin;
54  if (loss < 0.f) {
55  storage_->register_label(label);
56  return;
57  }
58  float sfv_norm = squared_norm(sfv);
59  if (sfv_norm == 0.f) {
60  storage_->register_label(label);
61  return;
62  }
63 
65  sfv,
66  min(config_.regularization_weight, loss / (2 * sfv_norm)),
67  label,
68  incorrect_label);
69  touch(label);
70 }
static float squared_norm(const common::sfv_t &sfv)
void check_touchable(const std::string &label)
float calc_margin(const common::sfv_t &sfv, const std::string &label, std::string &incorrect_label) const
void update_weight(const common::sfv_t &sfv, float step_weigth, const std::string &pos_label, const std::string &neg_class)

Here is the call graph for this function:

Member Data Documentation

classifier_config jubatus::core::classifier::passive_aggressive_1::config_
private

Definition at line 37 of file passive_aggressive_1.hpp.

Referenced by train().


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