SHOGUN v0.9.0
|
The Weighted Degree Position String kernel (Weighted Degree kernel with shifts).
The WD-shift kernel of order d compares two sequences and
of length L by summing all contributions of k-mer matches of lengths
, weighted by coefficients
allowing for a positional tolerance of up to shift s.
It is formally defined as
where are the weighting coefficients of the j-mers,
is a weighting over the position in the sequence,
is the weight assigned to shifts (in either direction) of extent s, and S(l) determines the shift range at position l.
公有成员 | |
CWeightedDegreePositionStringKernel (void) | |
CWeightedDegreePositionStringKernel (int32_t size, int32_t degree, int32_t max_mismatch=0, int32_t mkl_stepsize=1) | |
CWeightedDegreePositionStringKernel (int32_t size, float64_t *weights, int32_t degree, int32_t max_mismatch, int32_t *shift, int32_t shift_len, int32_t mkl_stepsize=1) | |
CWeightedDegreePositionStringKernel (CStringFeatures< char > *l, CStringFeatures< char > *r, int32_t degree) | |
virtual | ~CWeightedDegreePositionStringKernel () |
virtual bool | init (CFeatures *l, CFeatures *r) |
virtual void | cleanup () |
virtual EKernelType | get_kernel_type () |
virtual const char * | get_name () const |
virtual bool | init_optimization (int32_t p_count, int32_t *IDX, float64_t *alphas) |
virtual bool | init_optimization (int32_t count, int32_t *IDX, float64_t *alphas, int32_t tree_num, int32_t upto_tree=-1) |
virtual bool | delete_optimization () |
virtual float64_t | compute_optimized (int32_t idx) |
virtual void | compute_batch (int32_t num_vec, int32_t *vec_idx, float64_t *target, int32_t num_suppvec, int32_t *IDX, float64_t *alphas, float64_t factor=1.0) |
virtual void | clear_normal () |
virtual void | add_to_normal (int32_t idx, float64_t weight) |
virtual int32_t | get_num_subkernels () |
void | compute_by_subkernel (int32_t idx, float64_t *subkernel_contrib) |
const float64_t * | get_subkernel_weights (int32_t &num_weights) |
void | set_subkernel_weights (float64_t *weights2, int32_t num_weights2) |
float64_t * | compute_abs_weights (int32_t &len) |
bool | is_tree_initialized () |
int32_t | get_max_mismatch () |
int32_t | get_degree () |
float64_t * | get_degree_weights (int32_t &d, int32_t &len) |
float64_t * | get_weights (int32_t &num_weights) |
float64_t * | get_position_weights (int32_t &len) |
bool | set_shifts (int32_t *shifts, int32_t len) |
virtual bool | set_weights (float64_t *weights, int32_t d, int32_t len=0) |
virtual bool | set_wd_weights () |
virtual bool | set_position_weights (float64_t *pws, int32_t len) |
bool | set_position_weights_lhs (float64_t *pws, int32_t len, int32_t num) |
bool | set_position_weights_rhs (float64_t *pws, int32_t len, int32_t num) |
bool | init_block_weights () |
bool | init_block_weights_from_wd () |
bool | init_block_weights_from_wd_external () |
bool | init_block_weights_const () |
bool | init_block_weights_linear () |
bool | init_block_weights_sqpoly () |
bool | init_block_weights_cubicpoly () |
bool | init_block_weights_exp () |
bool | init_block_weights_log () |
bool | delete_position_weights () |
bool | delete_position_weights_lhs () |
bool | delete_position_weights_rhs () |
virtual float64_t | compute_by_tree (int32_t idx) |
virtual void | compute_by_tree (int32_t idx, float64_t *LevelContrib) |
float64_t * | compute_scoring (int32_t max_degree, int32_t &num_feat, int32_t &num_sym, float64_t *target, int32_t num_suppvec, int32_t *IDX, float64_t *weights) |
char * | compute_consensus (int32_t &num_feat, int32_t num_suppvec, int32_t *IDX, float64_t *alphas) |
float64_t * | extract_w (int32_t max_degree, int32_t &num_feat, int32_t &num_sym, float64_t *w_result, int32_t num_suppvec, int32_t *IDX, float64_t *alphas) |
float64_t * | compute_POIM (int32_t max_degree, int32_t &num_feat, int32_t &num_sym, float64_t *poim_result, int32_t num_suppvec, int32_t *IDX, float64_t *alphas, float64_t *distrib) |
void | prepare_POIM2 (float64_t *distrib, int32_t num_sym, int32_t num_feat) |
void | compute_POIM2 (int32_t max_degree, CSVM *svm) |
void | get_POIM2 (float64_t **poim, int32_t *result_len) |
void | cleanup_POIM2 () |
cleanup POIM2 | |
静态公有成员 | |
static void * | compute_batch_helper (void *p) |
保护成员 | |
void | create_empty_tries () |
virtual void | add_example_to_tree (int32_t idx, float64_t weight) |
void | add_example_to_single_tree (int32_t idx, float64_t weight, int32_t tree_num) |
virtual float64_t | compute (int32_t idx_a, int32_t idx_b) |
float64_t | compute_with_mismatch (char *avec, int32_t alen, char *bvec, int32_t blen) |
float64_t | compute_without_mismatch (char *avec, int32_t alen, char *bvec, int32_t blen) |
float64_t | compute_without_mismatch_matrix (char *avec, int32_t alen, char *bvec, int32_t blen) |
float64_t | compute_without_mismatch_position_weights (char *avec, float64_t *posweights_lhs, int32_t alen, char *bvec, float64_t *posweights_rhs, int32_t blen) |
virtual void | remove_lhs () |
virtual void | load_serializable_post (void) throw (ShogunException) |
保护属性 | |
float64_t * | weights |
int32_t | weights_degree |
int32_t | weights_length |
float64_t * | position_weights |
int32_t | position_weights_len |
float64_t * | position_weights_lhs |
int32_t | position_weights_lhs_len |
float64_t * | position_weights_rhs |
int32_t | position_weights_rhs_len |
bool * | position_mask |
float64_t * | weights_buffer |
int32_t | mkl_stepsize |
int32_t | degree |
int32_t | length |
int32_t | max_mismatch |
int32_t | seq_length |
int32_t * | shift |
int32_t | shift_len |
int32_t | max_shift |
bool | block_computation |
float64_t * | block_weights |
EWDKernType | type |
int32_t | which_degree |
CTrie< DNATrie > | tries |
CTrie< POIMTrie > | poim_tries |
bool | tree_initialized |
bool | use_poim_tries |
float64_t * | m_poim_distrib |
float64_t * | m_poim |
int32_t | m_poim_num_sym |
int32_t | m_poim_num_feat |
int32_t | m_poim_result_len |
CAlphabet * | alphabet |
CWeightedDegreePositionStringKernel | ( | void | ) |
default constructor
CWeightedDegreePositionStringKernel | ( | int32_t | size, |
int32_t | degree, | ||
int32_t | max_mismatch = 0 , |
||
int32_t | mkl_stepsize = 1 |
||
) |
constructor
size | cache size |
degree | degree |
max_mismatch | maximum mismatch |
mkl_stepsize | MKL stepsize |
CWeightedDegreePositionStringKernel | ( | int32_t | size, |
float64_t * | weights, | ||
int32_t | degree, | ||
int32_t | max_mismatch, | ||
int32_t * | shift, | ||
int32_t | shift_len, | ||
int32_t | mkl_stepsize = 1 |
||
) |
constructor
size | cache size |
weights | weights |
degree | degree |
max_mismatch | maximum mismatch |
shift | position shifts |
shift_len | number of shifts |
mkl_stepsize | MKL stepsize |
CWeightedDegreePositionStringKernel | ( | CStringFeatures< char > * | l, |
CStringFeatures< char > * | r, | ||
int32_t | degree | ||
) |
constructor
l | features of left-hand side |
r | features of right-hand side |
degree | degree |
~CWeightedDegreePositionStringKernel | ( | ) | [virtual] |
void add_example_to_single_tree | ( | int32_t | idx, |
float64_t | weight, | ||
int32_t | tree_num | ||
) | [protected] |
add example to single tree
idx | index |
weight | weight |
tree_num | which tree |
void add_example_to_tree | ( | int32_t | idx, |
float64_t | weight | ||
) | [protected, virtual] |
virtual void add_to_normal | ( | int32_t | idx, |
float64_t | weight | ||
) | [virtual] |
void cleanup | ( | ) | [virtual] |
void cleanup_POIM2 | ( | ) |
cleanup POIM2
virtual void clear_normal | ( | ) | [virtual] |
float64_t compute | ( | int32_t | idx_a, |
int32_t | idx_b | ||
) | [protected, virtual] |
compute kernel function for features a and b idx_{a,b} denote the index of the feature vectors in the corresponding feature object
idx_a | index a |
idx_b | index b |
实现了CKernel。
float64_t * compute_abs_weights | ( | int32_t & | len | ) |
compute abs weights
len | len |
void compute_batch | ( | int32_t | num_vec, |
int32_t * | vec_idx, | ||
float64_t * | target, | ||
int32_t | num_suppvec, | ||
int32_t * | IDX, | ||
float64_t * | alphas, | ||
float64_t | factor = 1.0 |
||
) | [virtual] |
compute batch
num_vec | number of vectors |
vec_idx | vector index |
target | target |
num_suppvec | number of support vectors |
IDX | IDX |
alphas | alphas |
factor | factor |
重载CKernel。
void * compute_batch_helper | ( | void * | p | ) | [static] |
void compute_by_subkernel | ( | int32_t | idx, |
float64_t * | subkernel_contrib | ||
) | [virtual] |
float64_t compute_by_tree | ( | int32_t | idx | ) | [virtual] |
void compute_by_tree | ( | int32_t | idx, |
float64_t * | LevelContrib | ||
) | [virtual] |
compute by tree
idx | index |
LevelContrib | level contribution |
char * compute_consensus | ( | int32_t & | num_feat, |
int32_t | num_suppvec, | ||
int32_t * | IDX, | ||
float64_t * | alphas | ||
) |
compute consensus string
num_feat | number of features |
num_suppvec | number of support vectors |
IDX | IDX |
alphas | alphas |
virtual float64_t compute_optimized | ( | int32_t | idx | ) | [virtual] |
float64_t * compute_POIM | ( | int32_t | max_degree, |
int32_t & | num_feat, | ||
int32_t & | num_sym, | ||
float64_t * | poim_result, | ||
int32_t | num_suppvec, | ||
int32_t * | IDX, | ||
float64_t * | alphas, | ||
float64_t * | distrib | ||
) |
compute POIM
max_degree | maximum degree |
num_feat | number of features |
num_sym | number of symbols |
poim_result | poim |
num_suppvec | number of support vectors |
IDX | IDX |
alphas | alphas |
distrib | distribution |
void compute_POIM2 | ( | int32_t | max_degree, |
CSVM * | svm | ||
) |
compute POIM2
max_degree | maximum degree |
svm | SVM |
float64_t * compute_scoring | ( | int32_t | max_degree, |
int32_t & | num_feat, | ||
int32_t & | num_sym, | ||
float64_t * | target, | ||
int32_t | num_suppvec, | ||
int32_t * | IDX, | ||
float64_t * | weights | ||
) |
compute positional scoring function, which assigns a weight per position, per symbol in the sequence
max_degree | maximum degree |
num_feat | number of features |
num_sym | number of symbols |
target | target |
num_suppvec | number of support vectors |
IDX | IDX |
weights | weights |
float64_t compute_with_mismatch | ( | char * | avec, |
int32_t | alen, | ||
char * | bvec, | ||
int32_t | blen | ||
) | [protected] |
compute with mismatch
avec | vector a |
alen | length of vector a |
bvec | vector b |
blen | length of vector b |
float64_t compute_without_mismatch | ( | char * | avec, |
int32_t | alen, | ||
char * | bvec, | ||
int32_t | blen | ||
) | [protected] |
compute without mismatch
avec | vector a |
alen | length of vector a |
bvec | vector b |
blen | length of vector b |
float64_t compute_without_mismatch_matrix | ( | char * | avec, |
int32_t | alen, | ||
char * | bvec, | ||
int32_t | blen | ||
) | [protected] |
compute without mismatch matrix
avec | vector a |
alen | length of vector a |
bvec | vector b |
blen | length of vector b |
float64_t compute_without_mismatch_position_weights | ( | char * | avec, |
float64_t * | posweights_lhs, | ||
int32_t | alen, | ||
char * | bvec, | ||
float64_t * | posweights_rhs, | ||
int32_t | blen | ||
) | [protected] |
compute without mismatch position weights
avec | vector a |
posweights_lhs | position weights left-hand side |
alen | length of vector a |
bvec | vector b |
posweights_rhs | position weights right-hand side |
blen | length of vector b |
void create_empty_tries | ( | ) | [protected] |
create emtpy tries
bool delete_optimization | ( | ) | [virtual] |
bool delete_position_weights | ( | ) |
delete position weights
bool delete_position_weights_lhs | ( | ) |
delete position weights left-hand side
bool delete_position_weights_rhs | ( | ) |
delete position weights right-hand side
float64_t * extract_w | ( | int32_t | max_degree, |
int32_t & | num_feat, | ||
int32_t & | num_sym, | ||
float64_t * | w_result, | ||
int32_t | num_suppvec, | ||
int32_t * | IDX, | ||
float64_t * | alphas | ||
) |
extract w
max_degree | maximum degree |
num_feat | number of features |
num_sym | number of symbols |
w_result | w |
num_suppvec | number of support vectors |
IDX | IDX |
alphas | alphas |
int32_t get_degree | ( | ) |
float64_t* get_degree_weights | ( | int32_t & | d, |
int32_t & | len | ||
) |
get degree weights
d | degree weights will be stored here |
len | number of degree weights will be stored here |
virtual EKernelType get_kernel_type | ( | ) | [virtual] |
return what type of kernel we are
int32_t get_max_mismatch | ( | ) |
virtual const char* get_name | ( | void | ) | const [virtual] |
return the kernel's name
virtual int32_t get_num_subkernels | ( | ) | [virtual] |
void get_POIM2 | ( | float64_t ** | poim, |
int32_t * | result_len | ||
) |
get POIM2
poim | POIMs (returned) |
result_len | (returned) |
float64_t* get_position_weights | ( | int32_t & | len | ) |
get position weights
len | number of position weights will be stored here |
const float64_t* get_subkernel_weights | ( | int32_t & | num_weights | ) | [virtual] |
get subkernel weights
num_weights | number of weights will be stored here |
重载CKernel。
float64_t* get_weights | ( | int32_t & | num_weights | ) |
get weights
num_weights | number of weights will be stored here |
initialize kernel
l | features of left-hand side |
r | features of right-hand side |
bool init_block_weights | ( | ) |
initialize block weights
bool init_block_weights_const | ( | ) |
initialize block weights constant
bool init_block_weights_cubicpoly | ( | ) |
initialize block weights cubic polynomial
bool init_block_weights_exp | ( | ) |
initialize block weights exponential
bool init_block_weights_from_wd | ( | ) |
initialize block weights from weighted degree
bool init_block_weights_from_wd_external | ( | ) |
initialize block weights from external weighted degree
bool init_block_weights_linear | ( | ) |
initialize block weights linear
bool init_block_weights_log | ( | ) |
initialize block weights logarithmic
bool init_block_weights_sqpoly | ( | ) |
initialize block weights squared polynomial
bool init_optimization | ( | int32_t | count, |
int32_t * | IDX, | ||
float64_t * | alphas, | ||
int32_t | tree_num, | ||
int32_t | upto_tree = -1 |
||
) | [virtual] |
initialize optimization do initialization for tree_num up to upto_tree, use tree_num=-1 to construct all trees
count | count |
IDX | IDX |
alphas | alphas |
tree_num | which tree |
upto_tree | up to this tree |
virtual bool init_optimization | ( | int32_t | p_count, |
int32_t * | IDX, | ||
float64_t * | alphas | ||
) | [virtual] |
initialize optimization
p_count | count |
IDX | index |
alphas | alphas |
重载CKernel。
bool is_tree_initialized | ( | ) |
check if tree is initialized
void load_serializable_post | ( | void | ) | throw (ShogunException) [protected, virtual] |
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. |
重载CKernel。
void prepare_POIM2 | ( | float64_t * | distrib, |
int32_t | num_sym, | ||
int32_t | num_feat | ||
) |
prepare POIM2
num_feat | number of features |
num_sym | number of symbols |
distrib | distribution |
void remove_lhs | ( | ) | [protected, virtual] |
bool set_position_weights | ( | float64_t * | pws, |
int32_t | len | ||
) | [virtual] |
set position weights
pws | new position weights |
len | number of position weights |
bool set_position_weights_lhs | ( | float64_t * | pws, |
int32_t | len, | ||
int32_t | num | ||
) |
set position weights for left-hand side
pws | new position weights |
len | len |
num | num |
bool set_position_weights_rhs | ( | float64_t * | pws, |
int32_t | len, | ||
int32_t | num | ||
) |
set position weights for right-hand side
pws | new position weights |
len | len |
num | num |
bool set_shifts | ( | int32_t * | shifts, |
int32_t | len | ||
) |
set shifts
shifts | new shifts |
len | number of shifts |
void set_subkernel_weights | ( | float64_t * | weights2, |
int32_t | num_weights2 | ||
) | [virtual] |
bool set_wd_weights | ( | ) | [virtual] |
bool set_weights | ( | float64_t * | weights, |
int32_t | d, | ||
int32_t | len = 0 |
||
) | [virtual] |
set weights
weights | new weights |
d | degree |
len | number of weights |
alphabet of features
bool block_computation [protected] |
if block computation is used
float64_t* block_weights [protected] |
(internal) block weights
int32_t degree [protected] |
degree
int32_t length [protected] |
length
temporary memory for the interface to the poim functions
float64_t* m_poim_distrib [protected] |
temporary memory for the interface to the poim functions
int32_t m_poim_num_feat [protected] |
length of string (==num_feat)
int32_t m_poim_num_sym [protected] |
number of symbols
int32_t m_poim_result_len [protected] |
total size of poim array
int32_t max_mismatch [protected] |
maximum mismatch
int32_t max_shift [protected] |
maximum shift
int32_t mkl_stepsize [protected] |
MKL stepsize
CTrie<POIMTrie> poim_tries [protected] |
POIM tries
bool* position_mask [protected] |
position mask
float64_t* position_weights [protected] |
position weights
int32_t position_weights_len [protected] |
position weights len
float64_t* position_weights_lhs [protected] |
position weights left-hand side
int32_t position_weights_lhs_len [protected] |
position weights len
float64_t* position_weights_rhs [protected] |
position weights right-hand side
int32_t position_weights_rhs_len [protected] |
position weights len
int32_t seq_length [protected] |
length of sequence
int32_t* shift [protected] |
shifts
int32_t shift_len [protected] |
length of shifts
bool tree_initialized [protected] |
if tree is initialized
tries
EWDKernType type [protected] |
WeightedDegree kernel type
bool use_poim_tries [protected] |
makes add_example_to_tree (ONLY!) use POIMTrie
weights
float64_t* weights_buffer [protected] |
weights buffer
int32_t weights_degree [protected] |
degree
int32_t weights_length [protected] |
length
int32_t which_degree [protected] |
which degree