SHOGUN
v1.1.0
|
The class TOPFeatures implements TOP kernel features obtained from two Hidden Markov models.
It was used in
K. Tsuda, M. Kawanabe, G. Raetsch, S. Sonnenburg, and K.R. Mueller. A new discriminative kernel from probabilistic models. Neural Computation, 14:2397-2414, 2002.
which also has the details.
Note that TOP-features are computed on the fly, so to be effective feature caching should be enabled.
It inherits its functionality from CSimpleFeatures, which should be consulted for further reference.
Definition at line 68 of file TOPFeatures.h.
Public Member Functions | |
CTOPFeatures () | |
CTOPFeatures (int32_t size, CHMM *p, CHMM *n, bool neglin, bool poslin) | |
CTOPFeatures (const CTOPFeatures &orig) | |
virtual | ~CTOPFeatures () |
void | set_models (CHMM *p, CHMM *n) |
virtual float64_t * | set_feature_matrix () |
int32_t | compute_num_features () |
bool | compute_relevant_indizes (CHMM *hmm, T_HMM_INDIZES *hmm_idx) |
virtual const char * | get_name () const |
![]() | |
CSimpleFeatures (int32_t size=0) | |
CSimpleFeatures (const CSimpleFeatures &orig) | |
CSimpleFeatures (SGMatrix< float64_t > matrix) | |
CSimpleFeatures (float64_t *src, int32_t num_feat, int32_t num_vec) | |
CSimpleFeatures (CFile *loader) | |
virtual CFeatures * | duplicate () const |
virtual | ~CSimpleFeatures () |
void | free_feature_matrix () |
void | free_features () |
float64_t * | get_feature_vector (int32_t num, int32_t &len, bool &dofree) |
SGVector< float64_t > | get_feature_vector (int32_t num) |
void | set_feature_vector (SGVector< float64_t > vector, int32_t num) |
void | free_feature_vector (float64_t *feat_vec, int32_t num, bool dofree) |
void | free_feature_vector (SGVector< float64_t > vec, int32_t num) |
void | vector_subset (int32_t *idx, int32_t idx_len) |
void | feature_subset (int32_t *idx, int32_t idx_len) |
void | get_feature_matrix (float64_t **dst, int32_t *num_feat, int32_t *num_vec) |
SGMatrix< float64_t > | get_feature_matrix () |
float64_t * | get_feature_matrix (int32_t &num_feat, int32_t &num_vec) |
SGMatrix< float64_t > | steal_feature_matrix () |
void | set_feature_matrix (SGMatrix< float64_t > matrix) |
virtual void | set_feature_matrix (float64_t *fm, int32_t num_feat, int32_t num_vec) |
CSimpleFeatures< float64_t > * | get_transposed () |
float64_t * | get_transposed (int32_t &num_feat, int32_t &num_vec) |
virtual void | copy_feature_matrix (SGMatrix< float64_t > src) |
void | obtain_from_dot (CDotFeatures *df) |
virtual bool | apply_preprocessor (bool force_preprocessing=false) |
virtual int32_t | get_size () |
virtual int32_t | get_num_vectors () const |
int32_t | get_num_features () |
void | set_num_features (int32_t num) |
void | set_num_vectors (int32_t num) |
void | initialize_cache () |
virtual EFeatureClass | get_feature_class () |
virtual EFeatureType | get_feature_type () |
virtual bool | reshape (int32_t p_num_features, int32_t p_num_vectors) |
virtual int32_t | get_dim_feature_space () const |
virtual float64_t | dot (int32_t vec_idx1, CDotFeatures *df, int32_t vec_idx2) |
virtual float64_t | dense_dot (int32_t vec_idx1, const float64_t *vec2, int32_t vec2_len) |
virtual void | add_to_dense_vec (float64_t alpha, int32_t vec_idx1, float64_t *vec2, int32_t vec2_len, bool abs_val=false) |
virtual int32_t | get_nnz_features_for_vector (int32_t num) |
virtual bool | Align_char_features (CStringFeatures< char > *cf, CStringFeatures< char > *Ref, float64_t gapCost) |
virtual void | load (CFile *loader) |
virtual void | save (CFile *saver) |
virtual void * | get_feature_iterator (int32_t vector_index) |
virtual bool | get_next_feature (int32_t &index, float64_t &value, void *iterator) |
virtual void | free_feature_iterator (void *iterator) |
virtual CFeatures * | copy_subset (SGVector< index_t > indices) |
![]() | |
CDotFeatures (int32_t size=0) | |
CDotFeatures (const CDotFeatures &orig) | |
CDotFeatures (CFile *loader) | |
virtual | ~CDotFeatures () |
virtual void | dense_dot_range (float64_t *output, int32_t start, int32_t stop, float64_t *alphas, float64_t *vec, int32_t dim, float64_t b) |
virtual void | dense_dot_range_subset (int32_t *sub_index, int32_t num, float64_t *output, float64_t *alphas, float64_t *vec, int32_t dim, float64_t b) |
float64_t | get_combined_feature_weight () |
void | set_combined_feature_weight (float64_t nw) |
SGMatrix< float64_t > | get_computed_dot_feature_matrix () |
SGVector< float64_t > | get_computed_dot_feature_vector (int32_t num) |
void | benchmark_add_to_dense_vector (int32_t repeats=5) |
void | benchmark_dense_dot_range (int32_t repeats=5) |
virtual SGVector< float64_t > | get_mean () |
virtual SGMatrix< float64_t > | get_cov () |
![]() | |
CFeatures (int32_t size=0) | |
CFeatures (const CFeatures &orig) | |
CFeatures (CFile *loader) | |
virtual | ~CFeatures () |
virtual int32_t | add_preprocessor (CPreprocessor *p) |
set preprocessor | |
virtual CPreprocessor * | del_preprocessor (int32_t num) |
del current preprocessor | |
CPreprocessor * | get_preprocessor (int32_t num) |
get current preprocessor | |
void | set_preprocessed (int32_t num) |
bool | is_preprocessed (int32_t num) |
int32_t | get_num_preprocessed () |
get whether specified preprocessor (or all if num=1) was/were already applied | |
int32_t | get_num_preprocessors () const |
void | clean_preprocessors () |
int32_t | get_cache_size () |
void | list_feature_obj () |
bool | check_feature_compatibility (CFeatures *f) |
bool | has_property (EFeatureProperty p) |
void | set_property (EFeatureProperty p) |
void | unset_property (EFeatureProperty p) |
virtual void | set_subset (CSubset *subset) |
virtual void | remove_subset () |
virtual void | subset_changed_post () |
index_t | subset_idx_conversion (index_t idx) const |
bool | has_subset () const |
![]() | |
CSGObject () | |
CSGObject (const CSGObject &orig) | |
virtual | ~CSGObject () |
virtual bool | is_generic (EPrimitiveType *generic) const |
template<class T > | |
void | set_generic () |
void | unset_generic () |
virtual void | print_serializable (const char *prefix="") |
virtual bool | save_serializable (CSerializableFile *file, const char *prefix="") |
virtual bool | load_serializable (CSerializableFile *file, const char *prefix="") |
void | set_global_io (SGIO *io) |
SGIO * | get_global_io () |
void | set_global_parallel (Parallel *parallel) |
Parallel * | get_global_parallel () |
void | set_global_version (Version *version) |
Version * | get_global_version () |
SGVector< char * > | get_modelsel_names () |
char * | get_modsel_param_descr (const char *param_name) |
index_t | get_modsel_param_index (const char *param_name) |
Protected Member Functions | |
virtual float64_t * | compute_feature_vector (int32_t num, int32_t &len, float64_t *target=NULL) |
void | compute_feature_vector (float64_t *addr, int32_t num, int32_t &len) |
Protected Attributes | |
CHMM * | pos |
CHMM * | neg |
bool | neglinear |
bool | poslinear |
T_HMM_INDIZES | pos_relevant_indizes |
T_HMM_INDIZES | neg_relevant_indizes |
![]() | |
int32_t | num_vectors |
number of vectors in cache | |
int32_t | num_features |
number of features in cache | |
float64_t * | feature_matrix |
int32_t | feature_matrix_num_vectors |
int32_t | feature_matrix_num_features |
CCache< float64_t > * | feature_cache |
![]() | |
float64_t | combined_weight |
feature weighting in combined dot features | |
![]() | |
CSubset * | m_subset |
Additional Inherited Members | |
![]() | |
static void * | dense_dot_range_helper (void *p) |
![]() | |
SGIO * | io |
Parallel * | parallel |
Version * | version |
Parameter * | m_parameters |
Parameter * | m_model_selection_parameters |
CTOPFeatures | ( | ) |
default constructor
Definition at line 18 of file TOPFeatures.cpp.
CTOPFeatures | ( | int32_t | size, |
CHMM * | p, | ||
CHMM * | n, | ||
bool | neglin, | ||
bool | poslin | ||
) |
constructor
size | cache size |
p | positive HMM |
n | negative HMM |
neglin | if negative HMM is of linear shape |
poslin | if positive HMM is of linear shape |
Definition at line 23 of file TOPFeatures.cpp.
CTOPFeatures | ( | const CTOPFeatures & | orig | ) |
copy constructor
Definition at line 34 of file TOPFeatures.cpp.
|
virtual |
Definition at line 44 of file TOPFeatures.cpp.
|
protectedvirtual |
compute feature vector
num | num |
len | len |
target |
Reimplemented from CSimpleFeatures< float64_t >.
Definition at line 88 of file TOPFeatures.cpp.
|
protected |
computes the feature vector to the address addr
addr | address |
num | num |
len | len |
Definition at line 104 of file TOPFeatures.cpp.
int32_t compute_num_features | ( | ) |
compute number of features
Definition at line 335 of file TOPFeatures.cpp.
bool compute_relevant_indizes | ( | CHMM * | hmm, |
T_HMM_INDIZES * | hmm_idx | ||
) |
compute relevant indices
hmm | HMM to compute for |
hmm_idx | HMM index |
Definition at line 232 of file TOPFeatures.cpp.
|
virtual |
Reimplemented from CSimpleFeatures< float64_t >.
Definition at line 117 of file TOPFeatures.h.
|
virtual |
|
protected |
negative HMM
Definition at line 145 of file TOPFeatures.h.
|
protected |
negative relevant indices
Definition at line 154 of file TOPFeatures.h.
|
protected |
if negative HMM is a LinearHMM
Definition at line 147 of file TOPFeatures.h.
|
protected |
positive HMM
Definition at line 143 of file TOPFeatures.h.
|
protected |
positive relevant indices
Definition at line 152 of file TOPFeatures.h.
|
protected |
if positive HMM is a LinearHMM
Definition at line 149 of file TOPFeatures.h.