CPolyFeatures Class Reference


Detailed Description

implement DotFeatures for the polynomial kernel

see DotFeatures for further discription

Definition at line 23 of file PolyFeatures.h.

Inheritance diagram for CPolyFeatures:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 CPolyFeatures (CSimpleFeatures< float64_t > *feat, int32_t degree, bool normalize)
virtual ~CPolyFeatures ()
 CPolyFeatures (const CPolyFeatures &orig)
virtual int32_t get_dim_feature_space ()
virtual int32_t get_nnz_features_for_vector (int32_t num)
virtual EFeatureType get_feature_type ()
virtual EFeatureClass get_feature_class ()
virtual int32_t get_num_vectors ()
virtual float64_t dot (int32_t vec_idx1, int32_t vec_idx2)
virtual int32_t get_size ()
CFeaturesduplicate () const
virtual const char * get_name () const
float64_t dense_dot (int32_t vec_idx1, const float64_t *vec2, int32_t vec2_len)
void add_to_dense_vec (float64_t alpha, int32_t vec_idx1, float64_t *vec2, int32_t vec2_len, bool abs_val)

Protected Member Functions

void store_normalization_values ()
void store_multi_index ()
void enumerate_multi_index (const int32_t feat_idx, uint16_t **index, uint16_t *exponents, const int32_t degree)
void store_multinomial_coefficients ()
int32_t bico2 (int32_t n, int32_t k)
int32_t bico (int32_t n, int32_t k)
int32_t calc_feature_space_dimensions (int32_t N, int32_t D)
int32_t multinomialcoef (int32_t *exps, int32_t len)
float64_t gammln (float64_t xx)
float64_t factln (int32_t n)

Protected Attributes

CSimpleFeatures< float64_t > * m_feat
int32_t m_degree
bool m_normalize
int32_t m_input_dimensions
int32_t m_output_dimensions
uint16_t * m_multi_index
float64_tm_multinomial_coefficients
float32_tm_normalization_values

Constructor & Destructor Documentation

CPolyFeatures ( CSimpleFeatures< float64_t > *  feat,
int32_t  degree,
bool  normalize 
)

constructor

Parameters:
feat real features
degree degree of the polynomial kernel
normalize normalize kernel

Definition at line 5 of file PolyFeatures.cpp.

~CPolyFeatures (  )  [virtual]

Definition at line 24 of file PolyFeatures.cpp.

CPolyFeatures ( const CPolyFeatures orig  ) 

copy constructor

not implemented!

Parameters:
orig original PolyFeature

Definition at line 42 of file PolyFeatures.h.


Member Function Documentation

void add_to_dense_vec ( float64_t  alpha,
int32_t  vec_idx1,
float64_t vec2,
int32_t  vec2_len,
bool  abs_val 
) [virtual]

compute alpha*x+vec2

Parameters:
alpha alpha
vec_idx1 index of first vector x
vec2 vec2
vec2_len length of vec2
abs_val if true add the absolute value

Implements CDotFeatures.

Definition at line 90 of file PolyFeatures.cpp.

int32_t bico ( int32_t  n,
int32_t  k 
) [protected]

efficient implementation for the binomial coefficient function for larger values of k

Definition at line 290 of file PolyFeatures.cpp.

int32_t bico2 ( int32_t  n,
int32_t  k 
) [protected]

simple recursive implementation of binomial coefficient which is very efficient if k is small, otherwise it calls a more sophisticated implementation

Definition at line 211 of file PolyFeatures.cpp.

int32_t calc_feature_space_dimensions ( int32_t  N,
int32_t  D 
) [protected]

recursion to calculate the dimensions of the feature space: A(N, D)= sum_d=0^D A(N-1, d) A(1, D)==1 A(N, 0)==1 where N is the dimensionality of the input space and D is the degree

Definition at line 236 of file PolyFeatures.cpp.

float64_t dense_dot ( int32_t  vec_idx1,
const float64_t vec2,
int32_t  vec2_len 
) [virtual]

compute dot product of vector with index arg1 with an given second vector

Parameters:
vec_idx1 index of first vector
vec2 second vector
vec2_len length of second vector

Implements CDotFeatures.

Definition at line 62 of file PolyFeatures.cpp.

float64_t dot ( int32_t  vec_idx1,
int32_t  vec_idx2 
) [virtual]

compute dot product between vector1 and vector2, appointed by their indices

Parameters:
vec_idx1 index of first vector
vec_idx2 index of second vector

Implements CDotFeatures.

Definition at line 32 of file PolyFeatures.cpp.

CFeatures * duplicate (  )  const [virtual]

duplicate feature object

Returns:
feature object

Implements CFeatures.

Definition at line 295 of file PolyFeatures.cpp.

void enumerate_multi_index ( const int32_t  feat_idx,
uint16_t **  index,
uint16_t *  exponents,
const int32_t  degree 
) [protected]

recursive function enumerating all multi-indices that sum up to the degree of the polynomial kernel

Definition at line 155 of file PolyFeatures.cpp.

float64_t factln ( int32_t  n  )  [protected]

implementation of the ln(x!) function

Definition at line 280 of file PolyFeatures.cpp.

float64_t gammln ( float64_t  xx  )  [protected]

efficient implementation of the ln(gamma(x)) function

Definition at line 264 of file PolyFeatures.cpp.

virtual int32_t get_dim_feature_space (  )  [virtual]

get dimensions of feature space

Returns:
dimensions of feature space

Implements CDotFeatures.

Definition at line 50 of file PolyFeatures.h.

virtual EFeatureClass get_feature_class (  )  [virtual]

get feature class

Returns:
feature class

Implements CFeatures.

Definition at line 78 of file PolyFeatures.h.

virtual EFeatureType get_feature_type (  )  [virtual]

get feature type

Returns:
feature type

Implements CFeatures.

Definition at line 69 of file PolyFeatures.h.

virtual const char* get_name (  )  const [virtual]
Returns:
name of class

Implements CSGObject.

Definition at line 123 of file PolyFeatures.h.

virtual int32_t get_nnz_features_for_vector ( int32_t  num  )  [virtual]

get number of non-zero features in vector

Parameters:
num index of vector
Returns:
number of non-zero features in vector

Implements CDotFeatures.

Definition at line 60 of file PolyFeatures.h.

virtual int32_t get_num_vectors (  )  [virtual]

get number of vectors

Returns:
number of vectors

Implements CFeatures.

Definition at line 87 of file PolyFeatures.h.

virtual int32_t get_size (  )  [virtual]
Returns:
size

Implements CFeatures.

Definition at line 108 of file PolyFeatures.h.

int32_t multinomialcoef ( int32_t *  exps,
int32_t  len 
) [protected]

calculate the multinomial coefficient

Definition at line 250 of file PolyFeatures.cpp.

void store_multi_index (  )  [protected]

caller function for the recursive function enumerate_multi_index

Definition at line 139 of file PolyFeatures.cpp.

void store_multinomial_coefficients (  )  [protected]

function calculating the multinomial coefficients for all multi indices

Definition at line 183 of file PolyFeatures.cpp.

void store_normalization_values (  )  [protected]

store the norm of each training example

Definition at line 120 of file PolyFeatures.cpp.


Member Data Documentation

int32_t m_degree [protected]

degree of the polynomial kernel

Definition at line 190 of file PolyFeatures.h.

features in original space

Definition at line 188 of file PolyFeatures.h.

int32_t m_input_dimensions [protected]

dimensions of the input space

Definition at line 194 of file PolyFeatures.h.

uint16_t* m_multi_index [protected]

flattened matrix of all multi indices that sum do the degree of the polynomial kernel

Definition at line 199 of file PolyFeatures.h.

multinomial coefficients for all multi-indices

Definition at line 201 of file PolyFeatures.h.

store norm of each training example

Definition at line 203 of file PolyFeatures.h.

bool m_normalize [protected]

normalize

Definition at line 192 of file PolyFeatures.h.

int32_t m_output_dimensions [protected]

dimensions of the feature space of the polynomial kernel

Definition at line 196 of file PolyFeatures.h.


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

SHOGUN Machine Learning Toolbox - Documentation