SHOGUN  3.2.1
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
MultilabelSOLabels.h
浏览该文件的文档.
1 /*
2  * This software is distributed under BSD 3-clause license (see LICENSE file).
3  *
4  * Written (W) 2013 Thoralf Klein
5  * Written (W) 2014 Abinash Panda
6  * Copyright (C) 2013 Thoralf Klein and Zuse-Institute-Berlin (ZIB)
7  * Copyright (C) 2014 Abinash Panda
8  */
9 
10 #ifndef _MULTILABEL_SO_LABELS__H__
11 #define _MULTILABEL_SO_LABELS__H__
12 
13 #include <shogun/lib/config.h>
14 
16 #include <shogun/lib/SGVector.h>
20 
21 namespace shogun
22 {
23 
24 class CMultilabelSOLabels;
25 
29 {
30 public:
33 
36 
42 
45 
51  {
53  {
54  return (CSparseMultilabel *) base_data;
55  }
56  else
57  {
58  SG_SERROR("base_data must be of dynamic type CSparseMultilabel\n");
59  }
60 
61  return NULL;
62  }
63 
65  virtual const char * get_name() const
66  {
67  return "SparseMultilabel";
68  }
69 
71  {
72  return m_label;
73  }
74 
75 protected:
78 }; /* class CSparseMultilabel */
79 
86 {
87 public:
90 
95  CMultilabelSOLabels(int32_t num_classes);
96 
102  CMultilabelSOLabels(int32_t num_labels, int32_t num_classes);
103 
108  CMultilabelSOLabels(CMultilabelLabels * multilabel_labels);
109 
112 
114  virtual const char * get_name() const
115  {
116  return "MultilabelSOLabels";
117  }
118 
120  virtual int32_t get_num_labels() const;
121 
123  virtual int32_t get_num_classes() const;
124 
127 
132  virtual void set_sparse_labels(SGVector<int32_t> * labels);
133 
139  virtual void set_sparse_label(int32_t j, SGVector<int32_t> label);
140 
146  virtual bool set_label(int32_t j, CStructuredData * label);
147 
153  virtual void add_label(CStructuredData * label);
154 
159  virtual SGVector<int32_t> get_sparse_label(int32_t j);
160 
165  virtual CStructuredData * get_label(int32_t j);
166 
171  virtual void ensure_valid(const char * context = NULL);
172 
185  int32_t dense_dim, float64_t d_true, float64_t d_false);
186 
187 private:
188  CMultilabelLabels * m_multilabel_labels;
189  int32_t m_last_set_label;
190 
191 private:
192  void init();
193 
194 }; /* class CMultilabelSOLabels */
195 
196 } /* namespace shogun */
197 
198 #endif /* _MULTILABEL_SO_LABELS__H__ */
Base class of the labels used in Structured Output (SO) problems.
virtual const char * get_name() const
Class CMultilabelSOLabels used in the application of Structured Output (SO) learning to Multilabel Cl...
virtual void set_sparse_label(int32_t j, SGVector< int32_t > label)
virtual bool set_label(int32_t j, CStructuredData *label)
virtual EStructuredDataType get_structured_data_type() const
double float64_t
Definition: common.h:50
SGVector< int32_t > m_label
CSparseMultilabel(SGVector< int32_t > label)
Class CSparseMultilabel to be used in the application of Structured Output (SO) learning to Multilabe...
virtual void set_sparse_labels(SGVector< int32_t > *labels)
virtual void add_label(CStructuredData *label)
#define SG_SERROR(...)
Definition: SGIO.h:180
static SGVector< float64_t > to_dense(CStructuredData *label, int32_t dense_dim, float64_t d_true, float64_t d_false)
virtual int32_t get_num_labels() const
virtual SGVector< int32_t > get_sparse_label(int32_t j)
virtual CStructuredData * get_label(int32_t j)
virtual int32_t get_num_classes() const
STRUCTURED_DATA_TYPE(SDT_SPARSE_MULTILABEL)
Multilabel Labels for multi-label classification.
Base class of the components of StructuredLabels.
static CSparseMultilabel * obtain_from_generic(CStructuredData *base_data)
SGVector< int32_t > get_data() const
virtual void ensure_valid(const char *context=NULL)
virtual CMultilabelLabels * get_multilabel_labels()
virtual const char * get_name() const

SHOGUN 机器学习工具包 - 项目文档