SHOGUN  3.2.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MultilabelSOLabels.h
Go to the documentation of this file.
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__ */

SHOGUN Machine Learning Toolbox - Documentation