11 #ifndef _MULTITASKKERNELNORMALIZER_H___
12 #define _MULTITASKKERNELNORMALIZER_H___
76 if (strcmp(k->
get_name(),
"WeightedDegree") == 0) {
77 SG_INFO(
"using first-element normalization\n");
80 SG_INFO(
"no inner normalization for non-WDK kernel\n");
106 std::sort(vec.begin(), vec.end());
109 std::vector<int32_t>::iterator endLocation = std::unique(vec.begin(), vec.end());
112 int32_t num_vec = std::distance(vec.begin(), endLocation);
149 SG_ERROR(
"normalize_lhs not implemented");
159 SG_ERROR(
"normalize_rhs not implemented");
204 ASSERT(task_lhs < num_tasks && task_lhs >= 0);
205 ASSERT(task_rhs < num_tasks && task_rhs >= 0);
220 ASSERT(task_lhs < num_tasks && task_lhs >= 0);
221 ASSERT(task_rhs < num_tasks && task_rhs >= 0);
230 return "MultitaskKernelNormalizer";
virtual const char * get_name() const =0
The MultitaskKernel allows Multitask Learning via a modified kernel function.
virtual const char * get_name() const
virtual float64_t compute(int32_t x, int32_t y)=0
virtual float64_t normalize(float64_t value, int32_t idx_lhs, int32_t idx_rhs)
virtual float64_t normalize_lhs(float64_t value, int32_t idx_lhs)
CMultitaskKernelNormalizer(std::vector< int32_t > task_vector)
CMultitaskKernelNormalizer()
float64_t get_task_similarity(int32_t task_lhs, int32_t task_rhs)
virtual bool init(CKernel *k)
std::vector< float64_t > similarity_matrix
std::vector< int32_t > get_task_vector_lhs() const
void set_task_vector_rhs(std::vector< int32_t > vec)
virtual int32_t get_num_vec_lhs()
std::vector< int32_t > task_vector_lhs
void set_task_vector_lhs(std::vector< int32_t > vec)
virtual ~CMultitaskKernelNormalizer()
virtual float64_t normalize_rhs(float64_t value, int32_t idx_rhs)
std::vector< int32_t > task_vector_rhs
void set_task_vector(std::vector< int32_t > vec)
The class Kernel Normalizer defines a function to post-process kernel values.
virtual int32_t get_num_vec_rhs()
void set_task_similarity(int32_t task_lhs, int32_t task_rhs, float64_t similarity)
CMultitaskKernelNormalizer * KernelNormalizerToMultitaskKernelNormalizer(CKernelNormalizer *n)
CFeatures * rhs
feature vectors to occur on right hand side
CFeatures * lhs
feature vectors to occur on left hand side
The class Features is the base class of all feature objects.
int32_t get_num_unique_tasks(std::vector< int32_t > vec)
std::vector< int32_t > get_task_vector_rhs() const