SHOGUN  v3.2.0
BinnedDotFeatures.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation; either version 3 of the License, or
5  * (at your option) any later version.
6  *
7  * Copyright (C) 2012 Soeren Sonnenburg
8  */
9 
10 #ifndef _BINNED_DOTFEATURES_H___
11 #define _BINNED_DOTFEATURES_H___
12 
13 #include <shogun/lib/common.h>
16 
17 namespace shogun
18 {
19  template <class T> class CDenseFeatures;
20 
42 {
43  public:
48  CBinnedDotFeatures(int32_t size=0);
49 
52 
60 
61  virtual ~CBinnedDotFeatures();
62 
70  virtual int32_t get_dim_feature_space() const;
71 
79  virtual float64_t dot(int32_t vec_idx1, CDotFeatures* df, int32_t vec_idx2);
80 
87  virtual float64_t dense_dot(int32_t vec_idx1, const float64_t* vec2, int32_t vec2_len);
88 
97  virtual void add_to_dense_vec(float64_t alpha, int32_t vec_idx1, float64_t* vec2, int32_t vec2_len, bool abs_val=false);
98 
106  virtual int32_t get_nnz_features_for_vector(int32_t num);
107 
117  virtual void* get_feature_iterator(int32_t vector_index);
118 
129  virtual bool get_next_feature(int32_t& index, float64_t& value, void* iterator);
130 
136  virtual void free_feature_iterator(void* iterator);
137 
138 
143  bool get_fill();
144 
149  void set_fill(bool fill);
150 
155  bool get_norm_one();
156 
161  void set_norm_one(bool norm_one);
162 
168 
174 
184  void set_bins(SGMatrix<float64_t> bins);
185 
191 
195  virtual const char* get_name() const;
196 
201  virtual CFeatures* duplicate() const;
202 
207  virtual EFeatureType get_feature_type() const;
208 
213  virtual EFeatureClass get_feature_class() const;
214 
219  virtual int32_t get_num_vectors() const;
220 
221  private:
222  void init();
223 
228  void assert_shape(int32_t vec2_len);
229 
230  protected:
233 
236 
238  bool m_fill;
239 
242 };
243 }
244 #endif // _BINNED_DOTFEATURES_H___
245 
CDenseFeatures< float64_t > * get_simple_features()
virtual float64_t dense_dot(int32_t vec_idx1, const float64_t *vec2, int32_t vec2_len)
virtual EFeatureClass get_feature_class() const
void set_norm_one(bool norm_one)
virtual int32_t get_num_vectors() const
CDenseFeatures< float64_t > * m_features
underlying features
void set_simple_features(CDenseFeatures< float64_t > *features)
Features that support dot products among other operations.
Definition: DotFeatures.h:41
virtual bool get_next_feature(int32_t &index, float64_t &value, void *iterator)
virtual CFeatures * duplicate() const
EFeatureClass
shogun feature class
Definition: FeatureTypes.h:35
The class BinnedDotFeatures contains a 0-1 conversion of features into bins.
virtual int32_t get_nnz_features_for_vector(int32_t num)
double float64_t
Definition: common.h:48
SGMatrix< float64_t > m_bins
bins with limits
virtual void add_to_dense_vec(float64_t alpha, int32_t vec_idx1, float64_t *vec2, int32_t vec2_len, bool abs_val=false)
void set_bins(SGMatrix< float64_t > bins)
bool m_fill
fill up with 1&#39;s or flag just one column
virtual EFeatureType get_feature_type() const
EFeatureType
shogun feature type
Definition: FeatureTypes.h:16
virtual void free_feature_iterator(void *iterator)
all of classes and functions are contained in the shogun namespace
Definition: class_list.h:16
virtual int32_t get_dim_feature_space() const
The class Features is the base class of all feature objects.
Definition: Features.h:62
bool m_norm_one
normalize vectors to have norm one
virtual const char * get_name() const
SGMatrix< float64_t > get_bins()
virtual float64_t dot(int32_t vec_idx1, CDotFeatures *df, int32_t vec_idx2)
virtual void * get_feature_iterator(int32_t vector_index)

SHOGUN Machine Learning Toolbox - Documentation