SHOGUN
v2.0.0
|
Hidden Markov Model.
Structure and Function collection. This Class implements a Hidden Markov Model. For a tutorial on HMMs see Rabiner et.al A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition, 1989
Several functions for tasks such as training,reading/writing models, reading observations, calculation of derivatives are supplied.
Public Member Functions | |||||
CHMM () | |||||
bool | alloc_state_dependend_arrays () | ||||
allocates memory that depends on N | |||||
void | free_state_dependend_arrays () | ||||
free memory that depends on N | |||||
bool | linear_train (bool right_align=false) | ||||
estimates linear model from observations. | |||||
bool | permutation_entropy (int32_t window_width, int32_t sequence_number) | ||||
compute permutation entropy | |||||
virtual const char * | get_name () const | ||||
virtual int32_t | get_num_relevant_model_parameters () | ||||
virtual float64_t | get_log_likelihood_sample () | ||||
virtual SGVector< float64_t > | get_log_likelihood () | ||||
virtual float64_t | get_model_parameter (int32_t num_param) | ||||
virtual float64_t | get_derivative (int32_t num_param, int32_t num_example) | ||||
virtual float64_t | get_likelihood_example (int32_t num_example) | ||||
virtual void | set_features (CFeatures *f) | ||||
virtual CFeatures * | get_features () | ||||
virtual void | set_pseudo_count (float64_t pseudo) | ||||
virtual float64_t | get_pseudo_count () | ||||
virtual CSGObject * | shallow_copy () const | ||||
virtual CSGObject * | deep_copy () const | ||||
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="", int32_t param_version=VERSION_PARAMETER) | ||||
virtual bool | load_serializable (CSerializableFile *file, const char *prefix="", int32_t param_version=VERSION_PARAMETER) | ||||
DynArray< TParameter * > * | load_file_parameters (const SGParamInfo *param_info, int32_t file_version, CSerializableFile *file, const char *prefix="") | ||||
DynArray< TParameter * > * | load_all_file_parameters (int32_t file_version, int32_t current_version, CSerializableFile *file, const char *prefix="") | ||||
void | map_parameters (DynArray< TParameter * > *param_base, int32_t &base_version, DynArray< const SGParamInfo * > *target_param_infos) | ||||
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 () | ||||
SGStringList< char > | get_modelsel_names () | ||||
void | print_modsel_params () | ||||
char * | get_modsel_param_descr (const char *param_name) | ||||
index_t | get_modsel_param_index (const char *param_name) | ||||
void | build_parameter_dictionary (CMap< TParameter *, CSGObject * > &dict) | ||||
Constructor/Destructor and helper function | |||||
CHMM (int32_t N, int32_t M, Model *model, float64_t PSEUDO) | |||||
CHMM (CStringFeatures< uint16_t > *obs, int32_t N, int32_t M, float64_t PSEUDO) | |||||
CHMM (int32_t N, float64_t *p, float64_t *q, float64_t *a) | |||||
CHMM (int32_t N, float64_t *p, float64_t *q, int32_t num_trans, float64_t *a_trans) | |||||
CHMM (FILE *model_file, float64_t PSEUDO) | |||||
CHMM (CHMM *h) | |||||
Constructor - Clone model h. | |||||
virtual | ~CHMM () | ||||
Destructor - Cleanup. | |||||
virtual bool | train (CFeatures *data=NULL) | ||||
virtual int32_t | get_num_model_parameters () | ||||
virtual float64_t | get_log_model_parameter (int32_t num_param) | ||||
virtual float64_t | get_log_derivative (int32_t num_param, int32_t num_example) | ||||
virtual float64_t | get_log_likelihood_example (int32_t num_example) | ||||
bool | initialize (Model *model, float64_t PSEUDO, FILE *model_file=NULL) | ||||
probability functions. | |||||
forward/backward/viterbi algorithm | |||||
float64_t | forward_comp (int32_t time, int32_t state, int32_t dimension) | ||||
float64_t | forward_comp_old (int32_t time, int32_t state, int32_t dimension) | ||||
float64_t | backward_comp (int32_t time, int32_t state, int32_t dimension) | ||||
float64_t | backward_comp_old (int32_t time, int32_t state, int32_t dimension) | ||||
float64_t | best_path (int32_t dimension) | ||||
uint16_t | get_best_path_state (int32_t dim, int32_t t) | ||||
float64_t | model_probability_comp () | ||||
float64_t | model_probability (int32_t dimension=-1) | ||||
inline proxy for model probability. | |||||
float64_t | linear_model_probability (int32_t dimension) | ||||
convergence criteria | |||||
bool | set_iterations (int32_t num) | ||||
int32_t | get_iterations () | ||||
bool | set_epsilon (float64_t eps) | ||||
float64_t | get_epsilon () | ||||
bool | baum_welch_viterbi_train (BaumWelchViterbiType type) | ||||
model training | |||||
void | estimate_model_baum_welch (CHMM *train) | ||||
void | estimate_model_baum_welch_trans (CHMM *train) | ||||
void | estimate_model_baum_welch_old (CHMM *train) | ||||
void | estimate_model_baum_welch_defined (CHMM *train) | ||||
void | estimate_model_viterbi (CHMM *train) | ||||
void | estimate_model_viterbi_defined (CHMM *train) | ||||
output functions. | |||||
void | output_model (bool verbose=false) | ||||
void | output_model_defined (bool verbose=false) | ||||
performs output_model only for the defined transitions etc | |||||
model helper functions. | |||||
void | normalize (bool keep_dead_states=false) | ||||
normalize the model to satisfy stochasticity | |||||
void | add_states (int32_t num_states, float64_t default_val=0) | ||||
bool | append_model (CHMM *append_model, float64_t *cur_out, float64_t *app_out) | ||||
bool | append_model (CHMM *append_model) | ||||
void | chop (float64_t value) | ||||
set any model parameter with probability smaller than value to ZERO | |||||
void | convert_to_log () | ||||
convert model to log probabilities | |||||
void | init_model_random () | ||||
init model with random values | |||||
void | init_model_defined () | ||||
void | clear_model () | ||||
initializes model with log(PSEUDO) | |||||
void | clear_model_defined () | ||||
initializes only parameters in learn_x with log(PSEUDO) | |||||
void | copy_model (CHMM *l) | ||||
copies the the modelparameters from l | |||||
void | invalidate_model () | ||||
bool | get_status () const | ||||
float64_t | get_pseudo () const | ||||
returns current pseudo value | |||||
void | set_pseudo (float64_t pseudo) | ||||
sets current pseudo value | |||||
void | set_observations (CStringFeatures< uint16_t > *obs, CHMM *hmm=NULL) | ||||
void | set_observation_nocache (CStringFeatures< uint16_t > *obs) | ||||
CStringFeatures< uint16_t > * | get_observations () | ||||
return observation pointer | |||||
load/save functions. | |||||
for observations/model/traindefinitions | |||||
bool | load_definitions (FILE *file, bool verbose, bool initialize=true) | ||||
bool | load_model (FILE *file) | ||||
bool | save_model (FILE *file) | ||||
bool | save_model_derivatives (FILE *file) | ||||
bool | save_model_derivatives_bin (FILE *file) | ||||
bool | save_model_bin (FILE *file) | ||||
bool | check_model_derivatives () | ||||
numerically check whether derivates were calculated right | |||||
bool | check_model_derivatives_combined () | ||||
T_STATES * | get_path (int32_t dim, float64_t &prob) | ||||
bool | save_path (FILE *file) | ||||
bool | save_path_derivatives (FILE *file) | ||||
bool | save_path_derivatives_bin (FILE *file) | ||||
bool | save_likelihood_bin (FILE *file) | ||||
bool | save_likelihood (FILE *file) | ||||
access functions for model parameters | |||||
for all the arrays a,b,p,q,A,B,psi and scalar model parameters like N,M | |||||
T_STATES | get_N () const | ||||
access function for number of states N | |||||
int32_t | get_M () const | ||||
access function for number of observations M | |||||
void | set_q (T_STATES offset, float64_t value) | ||||
void | set_p (T_STATES offset, float64_t value) | ||||
void | set_A (T_STATES line_, T_STATES column, float64_t value) | ||||
void | set_a (T_STATES line_, T_STATES column, float64_t value) | ||||
void | set_B (T_STATES line_, uint16_t column, float64_t value) | ||||
void | set_b (T_STATES line_, uint16_t column, float64_t value) | ||||
void | set_psi (int32_t time, T_STATES state, T_STATES value, int32_t dimension) | ||||
float64_t | get_q (T_STATES offset) const | ||||
float64_t | get_p (T_STATES offset) const | ||||
float64_t | get_A (T_STATES line_, T_STATES column) const | ||||
float64_t | get_a (T_STATES line_, T_STATES column) const | ||||
float64_t | get_B (T_STATES line_, uint16_t column) const | ||||
float64_t | get_b (T_STATES line_, uint16_t column) const | ||||
T_STATES | get_psi (int32_t time, T_STATES state, int32_t dimension) const | ||||
functions for observations | |||||
management and access functions for observation matrix | |||||
float64_t | state_probability (int32_t time, int32_t state, int32_t dimension) | ||||
calculates probability of being in state i at time t for dimension | |||||
float64_t | transition_probability (int32_t time, int32_t state_i, int32_t state_j, int32_t dimension) | ||||
calculates probability of being in state i at time t and state j at time t+1 for dimension | |||||
derivatives of model probabilities. | |||||
computes log dp(lambda)/d lambda_i
| |||||
float64_t | linear_model_derivative (T_STATES i, uint16_t j, int32_t dimension) | ||||
float64_t | model_derivative_p (T_STATES i, int32_t dimension) | ||||
float64_t | model_derivative_q (T_STATES i, int32_t dimension) | ||||
float64_t | model_derivative_a (T_STATES i, T_STATES j, int32_t dimension) | ||||
computes log dp(lambda)/d a_ij. | |||||
float64_t | model_derivative_b (T_STATES i, uint16_t j, int32_t dimension) | ||||
computes log dp(lambda)/d b_ij. | |||||
derivatives of path probabilities. | |||||
computes d log p(lambda,best_path)/d lambda_i
| |||||
float64_t | path_derivative_p (T_STATES i, int32_t dimension) | ||||
computes d log p(lambda,best_path)/d p_i | |||||
float64_t | path_derivative_q (T_STATES i, int32_t dimension) | ||||
computes d log p(lambda,best_path)/d q_i | |||||
float64_t | path_derivative_a (T_STATES i, T_STATES j, int32_t dimension) | ||||
computes d log p(lambda,best_path)/d a_ij | |||||
float64_t | path_derivative_b (T_STATES i, uint16_t j, int32_t dimension) | ||||
computes d log p(lambda,best_path)/d b_ij |
Public Attributes | |
SGIO * | io |
Parallel * | parallel |
Version * | version |
Parameter * | m_parameters |
Parameter * | m_model_selection_parameters |
ParameterMap * | m_parameter_map |
uint32_t | m_hash |
Protected Member Functions | |
void | prepare_path_derivative (int32_t dim) |
initialization function that is called before path_derivatives are calculated | |
float64_t | forward (int32_t time, int32_t state, int32_t dimension) |
inline proxies for forward pass | |
float64_t | backward (int32_t time, int32_t state, int32_t dimension) |
inline proxies for backward pass | |
virtual TParameter * | migrate (DynArray< TParameter * > *param_base, const SGParamInfo *target) |
virtual void | one_to_one_migration_prepare (DynArray< TParameter * > *param_base, const SGParamInfo *target, TParameter *&replacement, TParameter *&to_migrate, char *old_name=NULL) |
virtual void | load_serializable_pre () throw (ShogunException) |
virtual void | load_serializable_post () throw (ShogunException) |
virtual void | save_serializable_pre () throw (ShogunException) |
virtual void | save_serializable_post () throw (ShogunException) |
virtual bool | update_parameter_hash () |
input helper functions. | |
for reading model/definition/observation files | |
bool | get_numbuffer (FILE *file, char *buffer, int32_t length) |
put a sequence of numbers into the buffer | |
void | open_bracket (FILE *file) |
expect open bracket. | |
void | close_bracket (FILE *file) |
expect closing bracket | |
bool | comma_or_space (FILE *file) |
expect comma or space. | |
void | error (int32_t p_line, const char *str) |
parse error messages |
Protected Attributes | |
float64_t * | arrayN1 |
float64_t * | arrayN2 |
T_ALPHA_BETA | alpha_cache |
cache for forward variables can be terrible HUGE O(T*N) | |
T_ALPHA_BETA | beta_cache |
cache for backward variables can be terrible HUGE O(T*N) | |
T_STATES * | states_per_observation_psi |
backtracking table for viterbi can be terrible HUGE O(T*N) | |
T_STATES * | path |
best path (=state sequence) through model | |
bool | path_prob_updated |
true if path probability is up to date | |
int32_t | path_prob_dimension |
dimension for which path_prob was calculated | |
CFeatures * | features |
float64_t | pseudo_count |
model specific variables. | |
these are p,q,a,b,N,M etc | |
int32_t | M |
number of observation symbols eg. ACGT -> 0123 | |
int32_t | N |
number of states | |
float64_t | PSEUDO |
define pseudocounts against overfitting | |
int32_t | line |
CStringFeatures< uint16_t > * | p_observations |
observation matrix | |
Model * | model |
float64_t * | transition_matrix_A |
matrix of absolute counts of transitions | |
float64_t * | observation_matrix_B |
matrix of absolute counts of observations within each state | |
float64_t * | transition_matrix_a |
transition matrix | |
float64_t * | initial_state_distribution_p |
initial distribution of states | |
float64_t * | end_state_distribution_q |
distribution of end-states | |
float64_t * | observation_matrix_b |
distribution of observations within each state | |
int32_t | iterations |
convergence criterion iterations | |
int32_t | iteration_count |
float64_t | epsilon |
convergence criterion epsilon | |
int32_t | conv_it |
float64_t | all_pat_prob |
probability of best path | |
float64_t | pat_prob |
probability of best path | |
float64_t | mod_prob |
probability of model | |
bool | mod_prob_updated |
true if model probability is up to date | |
bool | all_path_prob_updated |
true if path probability is up to date | |
int32_t | path_deriv_dimension |
dimension for which path_deriv was calculated | |
bool | path_deriv_updated |
true if path derivative is up to date | |
bool | loglikelihood |
bool | status |
bool | reused_caches |
Static Protected Attributes | |
static const int32_t | GOTN = (1<<1) |
static const int32_t | GOTM = (1<<2) |
static const int32_t | GOTO = (1<<3) |
static const int32_t | GOTa = (1<<4) |
static const int32_t | GOTb = (1<<5) |
static const int32_t | GOTp = (1<<6) |
static const int32_t | GOTq = (1<<7) |
static const int32_t | GOTlearn_a = (1<<1) |
static const int32_t | GOTlearn_b = (1<<2) |
static const int32_t | GOTlearn_p = (1<<3) |
static const int32_t | GOTlearn_q = (1<<4) |
static const int32_t | GOTconst_a = (1<<5) |
static const int32_t | GOTconst_b = (1<<6) |
static const int32_t | GOTconst_p = (1<<7) |
static const int32_t | GOTconst_q = (1<<8) |
CHMM | ( | ) |
CHMM | ( | CStringFeatures< uint16_t > * | obs, |
int32_t | N, | ||
int32_t | M, | ||
float64_t | PSEUDO | ||
) |
void add_states | ( | int32_t | num_states, |
float64_t | default_val = 0 |
||
) |
bool alloc_state_dependend_arrays | ( | ) |
appends the append_model to the current hmm, i.e. two extra states are created. one is the end state of the current hmm with outputs cur_out (of size M) and the other state is the start state of the append_model. transition probability from state 1 to states 1 is 1
bool append_model | ( | CHMM * | append_model | ) |
|
protected |
float64_t backward_comp | ( | int32_t | time, |
int32_t | state, | ||
int32_t | dimension | ||
) |
backward algorithm. calculates Pr[O_t+1,O_t+2, ..., O_T-1| q_time=S_i, lambda] for 0<= time <= T-1 Pr[O|lambda] for time >= T
time | t |
state | i |
dimension | dimension of observation (observations are a matrix, where a row stands for one dimension i.e. 0_0,O_1,...,O_{T-1} |
float64_t backward_comp_old | ( | int32_t | time, |
int32_t | state, | ||
int32_t | dimension | ||
) |
bool baum_welch_viterbi_train | ( | BaumWelchViterbiType | type | ) |
float64_t best_path | ( | int32_t | dimension | ) |
calculates probability of best state sequence s_0,...,s_T-1 AND path itself using viterbi algorithm. The path can be found in the array PATH(dimension)[0..T-1] afterwards
dimension | dimension of observation for which the most probable path is calculated (observations are a matrix, where a row stands for one dimension i.e. 0_0,O_1,...,O_{T-1} |
|
inherited |
Builds a dictionary of all parameters in SGObject as well of those of SGObjects that are parameters of this object. Dictionary maps parameters to the objects that own them.
dict | dictionary of parameters to be built. |
Definition at line 1204 of file SGObject.cpp.
bool check_model_derivatives | ( | ) |
void chop | ( | float64_t | value | ) |
void clear_model_defined | ( | ) |
|
protected |
|
protected |
void copy_model | ( | CHMM * | l | ) |
|
virtualinherited |
A deep copy. All the instance variables will also be copied.
Definition at line 131 of file SGObject.h.
|
protected |
void estimate_model_baum_welch | ( | CHMM * | train | ) |
void estimate_model_baum_welch_defined | ( | CHMM * | train | ) |
void estimate_model_viterbi | ( | CHMM * | train | ) |
void estimate_model_viterbi_defined | ( | CHMM * | train | ) |
|
protected |
float64_t forward_comp | ( | int32_t | time, |
int32_t | state, | ||
int32_t | dimension | ||
) |
forward algorithm. calculates Pr[O_0,O_1, ..., O_t, q_time=S_i| lambda] for 0<= time <= T-1 Pr[O|lambda] for time > T
time | t |
state | i |
dimension | dimension of observation (observations are a matrix, where a row stands for one dimension i.e. 0_0,O_1,...,O_{T-1} |
float64_t forward_comp_old | ( | int32_t | time, |
int32_t | state, | ||
int32_t | dimension | ||
) |
void free_state_dependend_arrays | ( | ) |
|
virtualinherited |
get partial derivative of likelihood function
num_param | partial derivative against which param |
num_example | which example |
Definition at line 129 of file Distribution.h.
|
virtualinherited |
|
inherited |
|
inherited |
|
inherited |
|
virtualinherited |
compute likelihood for example
num_example | which example |
Reimplemented in CGMM.
Definition at line 140 of file Distribution.h.
|
virtual |
get partial derivative of likelihood function (logarithmic)
abstract base method
num_param | derivative against which param |
num_example | which example |
Implements CDistribution.
compute log likelihood for each example
Definition at line 37 of file Distribution.cpp.
|
virtual |
compute log likelihood for example
abstract base method
num_example | which example |
Implements CDistribution.
|
virtualinherited |
compute log likelihood for whole sample
Definition at line 26 of file Distribution.cpp.
|
virtual |
get model parameter (logarithmic)
abstrac base method
Implements CDistribution.
int32_t get_M | ( | ) | const |
|
virtualinherited |
get model parameter
num_param | which param |
Definition at line 118 of file Distribution.h.
|
inherited |
Definition at line 1108 of file SGObject.cpp.
|
inherited |
Returns description of a given parameter string, if it exists. SG_ERROR otherwise
param_name | name of the parameter |
Definition at line 1132 of file SGObject.cpp.
|
inherited |
Returns index of model selection parameter with provided index
param_name | name of model selection parameter |
Definition at line 1145 of file SGObject.cpp.
T_STATES get_N | ( | ) | const |
|
virtual |
|
virtual |
get number of parameters in model
abstract base method
Implements CDistribution.
|
virtualinherited |
get number of parameters in model that are relevant, i.e. > ALMOST_NEG_INFTY
Definition at line 50 of file Distribution.cpp.
|
protected |
CStringFeatures<uint16_t>* get_observations | ( | ) |
|
virtualinherited |
bool get_status | ( | ) | const |
void init_model_defined | ( | ) |
void invalidate_model | ( | ) |
|
virtualinherited |
If the SGSerializable is a class template then TRUE will be returned and GENERIC is set to the type of the generic.
generic | set to the type of the generic if returning TRUE |
Definition at line 278 of file SGObject.cpp.
float64_t linear_model_probability | ( | int32_t | dimension | ) |
bool linear_train | ( | bool | right_align = false | ) |
|
inherited |
maps all parameters of this instance to the provided file version and loads all parameter data from the file into an array, which is sorted (basically calls load_file_parameter(...) for all parameters and puts all results into a sorted array)
file_version | parameter version of the file |
current_version | version from which mapping begins (you want to use VERSION_PARAMETER for this in most cases) |
file | file to load from |
prefix | prefix for members |
Definition at line 679 of file SGObject.cpp.
bool load_definitions | ( | FILE * | file, |
bool | verbose, | ||
bool | initialize = true |
||
) |
read definitions file (learn_x,const_x) used for training. -format specs: definition_file (train.def) % HMM-TRAIN - specification % learn_a - elements in state_transition_matrix to be learned % learn_b - elements in oberservation_per_state_matrix to be learned % note: each line stands for % state, observation(0), observation(1)...observation(NOW) % learn_p - elements in initial distribution to be learned % learn_q - elements in the end-state distribution to be learned % % const_x - specifies initial values of elements % rest is assumed to be 0.0 % % NOTE: IMPLICIT DEFINES: % define A 0 % define C 1 % define G 2 % define T 3
learn_a=[ [int32_t,int32_t]; [int32_t,int32_t]; [int32_t,int32_t]; ........ [int32_t,int32_t]; [-1,-1]; ];
learn_b=[ [int32_t,int32_t,int32_t,...,int32_t]; [int32_t,int32_t,int32_t,...,int32_t]; [int32_t,int32_t,int32_t,...,int32_t]; ........ [int32_t,int32_t,int32_t,...,int32_t]; [-1,-1]; ];
learn_p= [ int32_t, ... , int32_t, -1 ];
learn_q= [ int32_t, ... , int32_t, -1 ];
const_a=[ [int32_t,int32_t,float64_t]; [int32_t,int32_t,float64_t]; [int32_t,int32_t,float64_t]; ........ [int32_t,int32_t,float64_t]; [-1,-1,-1]; ];
const_b=[ [int32_t,int32_t,int32_t,...,int32_t,float64_t]; [int32_t,int32_t,int32_t,...,int32_t,float64_t]; [int32_t,int32_t,int32_t,...,int32_t,<DOUBLE]; ........ [int32_t,int32_t,int32_t,...,int32_t,float64_t]; [-1,-1,-1]; ];
const_p[]=[ [int32_t, float64_t], ... , [int32_t,float64_t], [-1,-1] ]; const_q[]=[ [int32_t, float64_t], ... , [int32_t,float64_t], [-1,-1] ];
file | filehandle to definitions file |
verbose | true for verbose messages |
initialize | true to initialize to underlying HMM |
|
inherited |
loads some specified parameters from a file with a specified version The provided parameter info has a version which is recursively mapped until the file parameter version is reached. Note that there may be possibly multiple parameters in the mapping, therefore, a set of TParameter instances is returned
param_info | information of parameter |
file_version | parameter version of the file, must be <= provided parameter version |
file | file to load from |
prefix | prefix for members |
Definition at line 523 of file SGObject.cpp.
bool load_model | ( | FILE * | file | ) |
read model from file. -format specs: model_file (model.hmm) % HMM - specification % N - number of states % M - number of observation_tokens % a is state_transition_matrix % size(a)= [N,N] % % b is observation_per_state_matrix % size(b)= [N,M] % % p is initial distribution % size(p)= [1, N]
N=int32_t; M=int32_t;
p=[float64_t,float64_t...float64_t]; q=[float64_t,float64_t...float64_t];
a=[ [float64_t,float64_t...float64_t]; [float64_t,float64_t...float64_t]; [float64_t,float64_t...float64_t]; [float64_t,float64_t...float64_t]; [float64_t,float64_t...float64_t]; ];
b=[ [float64_t,float64_t...float64_t]; [float64_t,float64_t...float64_t]; [float64_t,float64_t...float64_t]; [float64_t,float64_t...float64_t]; [float64_t,float64_t...float64_t]; ];
file | filehandle to model file |
|
virtualinherited |
Load this object from file. If it will fail (returning FALSE) then this object will contain inconsistent data and should not be used!
file | where to load from |
prefix | prefix for members |
param_version | (optional) a parameter version different to (this is mainly for testing, better do not use) |
Reimplemented in CModelSelectionParameters.
Definition at line 354 of file SGObject.cpp.
|
protectedvirtualinherited |
Can (optionally) be overridden to post-initialize some member variables which are not PARAMETER::ADD'ed. Make sure that at first the overridden method BASE_CLASS::LOAD_SERIALIZABLE_POST is called.
ShogunException | Will be thrown if an error occurres. |
Reimplemented in CKernel, CWeightedDegreePositionStringKernel, CList, CAlphabet, CLinearHMM, CGaussianKernel, CANOVAKernel, CInverseMultiQuadricKernel, CCircularKernel, and CExponentialKernel.
Definition at line 1033 of file SGObject.cpp.
|
protectedvirtualinherited |
Can (optionally) be overridden to pre-initialize some member variables which are not PARAMETER::ADD'ed. Make sure that at first the overridden method BASE_CLASS::LOAD_SERIALIZABLE_PRE is called.
ShogunException | Will be thrown if an error occurres. |
Definition at line 1028 of file SGObject.cpp.
|
inherited |
Takes a set of TParameter instances (base) with a certain version and a set of target parameter infos and recursively maps the base level wise to the current version using CSGObject::migrate(...). The base is replaced. After this call, the base version containing parameters should be of same version/type as the initial target parameter infos. Note for this to work, the migrate methods and all the internal parameter mappings have to match
param_base | set of TParameter instances that are mapped to the provided target parameter infos |
base_version | version of the parameter base |
target_param_infos | set of SGParamInfo instances that specify the target parameter base |
Definition at line 717 of file SGObject.cpp.
|
protectedvirtualinherited |
creates a new TParameter instance, which contains migrated data from the version that is provided. The provided parameter data base is used for migration, this base is a collection of all parameter data of the previous version. Migration is done FROM the data in param_base TO the provided param info Migration is always one version step. Method has to be implemented in subclasses, if no match is found, base method has to be called.
If there is an element in the param_base which equals the target, a copy of the element is returned. This represents the case when nothing has changed and therefore, the migrate method is not overloaded in a subclass
param_base | set of TParameter instances to use for migration |
target | parameter info for the resulting TParameter |
Definition at line 923 of file SGObject.cpp.
float64_t model_probability | ( | int32_t | dimension = -1 | ) |
float64_t model_probability_comp | ( | ) |
void normalize | ( | bool | keep_dead_states = false | ) |
|
protectedvirtualinherited |
This method prepares everything for a one-to-one parameter migration. One to one here means that only ONE element of the parameter base is needed for the migration (the one with the same name as the target). Data is allocated for the target (in the type as provided in the target SGParamInfo), and a corresponding new TParameter instance is written to replacement. The to_migrate pointer points to the single needed TParameter instance needed for migration. If a name change happened, the old name may be specified by old_name. In addition, the m_delete_data flag of to_migrate is set to true. So if you want to migrate data, the only thing to do after this call is converting the data in the m_parameter fields. If unsure how to use - have a look into an example for this. (base_migration_type_conversion.cpp for example)
param_base | set of TParameter instances to use for migration |
target | parameter info for the resulting TParameter |
replacement | (used as output) here the TParameter instance which is returned by migration is created into |
to_migrate | the only source that is used for migration |
old_name | with this parameter, a name change may be specified |
Definition at line 864 of file SGObject.cpp.
|
protected |
void output_model | ( | bool | verbose = false | ) |
void output_model_defined | ( | bool | verbose = false | ) |
bool permutation_entropy | ( | int32_t | window_width, |
int32_t | sequence_number | ||
) |
|
protected |
|
inherited |
prints all parameter registered for model selection and their type
Definition at line 1084 of file SGObject.cpp.
|
virtualinherited |
prints registered parameters out
prefix | prefix for members |
Definition at line 290 of file SGObject.cpp.
bool save_likelihood | ( | FILE * | file | ) |
bool save_likelihood_bin | ( | FILE * | file | ) |
bool save_model | ( | FILE * | file | ) |
bool save_model_bin | ( | FILE * | file | ) |
bool save_model_derivatives | ( | FILE * | file | ) |
bool save_model_derivatives_bin | ( | FILE * | file | ) |
bool save_path | ( | FILE * | file | ) |
bool save_path_derivatives | ( | FILE * | file | ) |
bool save_path_derivatives_bin | ( | FILE * | file | ) |
|
virtualinherited |
Save this object to file.
file | where to save the object; will be closed during returning if PREFIX is an empty string. |
prefix | prefix for members |
param_version | (optional) a parameter version different to (this is mainly for testing, better do not use) |
Reimplemented in CModelSelectionParameters.
Definition at line 296 of file SGObject.cpp.
|
protectedvirtualinherited |
Can (optionally) be overridden to post-initialize some member variables which are not PARAMETER::ADD'ed. Make sure that at first the overridden method BASE_CLASS::SAVE_SERIALIZABLE_POST is called.
ShogunException | Will be thrown if an error occurres. |
Reimplemented in CKernel.
Definition at line 1043 of file SGObject.cpp.
|
protectedvirtualinherited |
Can (optionally) be overridden to pre-initialize some member variables which are not PARAMETER::ADD'ed. Make sure that at first the overridden method BASE_CLASS::SAVE_SERIALIZABLE_PRE is called.
ShogunException | Will be thrown if an error occurres. |
Reimplemented in CKernel.
Definition at line 1038 of file SGObject.cpp.
|
virtualinherited |
|
inherited |
set generic type to T
Definition at line 41 of file SGObject.cpp.
|
inherited |
|
inherited |
set the parallel object
parallel | parallel object to use |
Definition at line 230 of file SGObject.cpp.
|
inherited |
set the version object
version | version object to use |
Definition at line 265 of file SGObject.cpp.
void set_observation_nocache | ( | CStringFeatures< uint16_t > * | obs | ) |
void set_observations | ( | CStringFeatures< uint16_t > * | obs, |
CHMM * | hmm = NULL |
||
) |
|
virtualinherited |
|
virtualinherited |
A shallow copy. All the SGObject instance variables will be simply assigned and SG_REF-ed.
Reimplemented in CGaussianKernel.
Definition at line 122 of file SGObject.h.
float64_t state_probability | ( | int32_t | time, |
int32_t | state, | ||
int32_t | dimension | ||
) |
|
virtual |
learn distribution
data | training data (parameter can be avoided if distance or kernel-based classifiers are used and distance/kernels are initialized with train data) |
Implements CDistribution.
float64_t transition_probability | ( | int32_t | time, |
int32_t | state_i, | ||
int32_t | state_j, | ||
int32_t | dimension | ||
) |
|
inherited |
unset generic type
this has to be called in classes specializing a template class
Definition at line 285 of file SGObject.cpp.
|
protectedvirtualinherited |
Updates the hash of current parameter combination.
Definition at line 237 of file SGObject.cpp.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protectedinherited |
feature vectors
Definition at line 180 of file Distribution.h.
|
protected |
|
inherited |
io
Definition at line 462 of file SGObject.h.
|
protected |
|
protected |
|
inherited |
Hash of parameter values
Definition at line 480 of file SGObject.h.
|
inherited |
model selection parameters
Definition at line 474 of file SGObject.h.
|
inherited |
map for different parameter versions
Definition at line 477 of file SGObject.h.
|
inherited |
parameters
Definition at line 471 of file SGObject.h.
|
protected |
|
protected |
|
protected |
|
protected |
|
inherited |
parallel
Definition at line 465 of file SGObject.h.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protectedinherited |
pseudo count
Definition at line 182 of file Distribution.h.
|
protected |
|
protected |
|
inherited |
version
Definition at line 468 of file SGObject.h.