C++ API Reference for Intel® Data Analytics Acceleration Library 2020 Update 1

multiclass_confusion_matrix_types.h
1 /* file: multiclass_confusion_matrix_types.h */
2 /*******************************************************************************
3 * Copyright 2014-2020 Intel Corporation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *******************************************************************************/
17 
18 /*
19 //++
20 // Declaration of data types for multi-class confusion matrix.
21 //--
22 */
23 
24 #ifndef __MULTICLASS_CONFUSION_MATRIX_TYPES_H__
25 #define __MULTICLASS_CONFUSION_MATRIX_TYPES_H__
26 
27 #include "algorithms/algorithm.h"
28 #include "data_management/data/homogen_numeric_table.h"
29 
30 namespace daal
31 {
32 namespace algorithms
33 {
34 namespace classifier
35 {
39 namespace quality_metric
40 {
50 namespace multiclass_confusion_matrix
51 {
56 enum Method
57 {
58  defaultDense = 0
59 };
60 
65 enum InputId
66 {
67  predictedLabels,
68  groundTruthLabels,
69  lastInputId = groundTruthLabels
70 };
71 
76 enum ResultId
77 {
78  confusionMatrix,
79  multiClassMetrics,
80  lastResultId = multiClassMetrics
81 };
82 
87 enum MultiClassMetricsId
88 {
89  averageAccuracy,
90  errorRate,
91  microPrecision,
92  microRecall,
93  microFscore,
94  macroPrecision,
95  macroRecall,
96  macroFscore
97 };
98 
102 namespace interface1
103 {
110 /* [Parameter source code] */
111 struct DAAL_EXPORT Parameter : public daal::algorithms::Parameter
112 {
113  Parameter(size_t nClasses = 0, double beta = 1.0);
114  virtual ~Parameter() {}
115 
116  size_t nClasses;
117  double beta;
119  services::Status check() const DAAL_C11_OVERRIDE;
120 };
121 /* [Parameter source code] */
122 
127 class DAAL_EXPORT Input : public daal::algorithms::Input
128 {
129 public:
130  Input();
131  Input(const Input& other) : daal::algorithms::Input(other){}
132 
133  virtual ~Input() {}
134 
140  data_management::NumericTablePtr get(InputId id) const;
141 
147  void set(InputId id, const data_management::NumericTablePtr &value);
148 
154  services::Status check(const daal::algorithms::Parameter *parameter, int method) const DAAL_C11_OVERRIDE;
155 };
156 typedef services::SharedPtr<Input> InputPtr;
157 
163 class DAAL_EXPORT Result : public daal::algorithms::Result
164 {
165 public:
166  DECLARE_SERIALIZABLE_CAST(Result);
167  Result();
168  virtual ~Result() {}
169 
175  data_management::NumericTablePtr get(ResultId id) const;
176 
182  void set(ResultId id, const data_management::NumericTablePtr &value);
183 
190  template<typename algorithmFPType>
191  DAAL_EXPORT services::Status allocate(const daal::algorithms::Input *input, const daal::algorithms::Parameter *parameter, const int method);
192 
199  services::Status check(const daal::algorithms::Input *input, const daal::algorithms::Parameter *parameter, int method) const DAAL_C11_OVERRIDE;
200 
201 protected:
203  template<typename Archive, bool onDeserialize>
204  services::Status serialImpl(Archive *arch)
205  {
206  return daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
207  }
208 };
209 typedef services::SharedPtr<Result> ResultPtr;
210 } // namespace interface1
211 using interface1::Parameter;
212 using interface1::Input;
213 using interface1::InputPtr;
214 using interface1::Result;
215 using interface1::ResultPtr;
216 
217 } // namespace daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix
219 } // namespace daal::algorithms::classifier::quality_metric
220 } // namespace daal::algorithms::classifier
221 } // namespace daal::algorithms
222 } // namespace daal
223 #endif
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::ResultId
ResultId
Definition: multiclass_confusion_matrix_types.h:76
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::macroFscore
Definition: multiclass_confusion_matrix_types.h:96
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::Method
Method
Definition: multiclass_confusion_matrix_types.h:56
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::errorRate
Definition: multiclass_confusion_matrix_types.h:90
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::interface1::Input
Base class for the input objects of the confusion matrix algorithm in the training stage of the class...
Definition: multiclass_confusion_matrix_types.h:127
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::defaultDense
Definition: multiclass_confusion_matrix_types.h:58
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::multiClassMetrics
Definition: multiclass_confusion_matrix_types.h:79
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::MultiClassMetricsId
MultiClassMetricsId
Definition: multiclass_confusion_matrix_types.h:87
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::confusionMatrix
Definition: multiclass_confusion_matrix_types.h:78
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::macroPrecision
Definition: multiclass_confusion_matrix_types.h:94
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::InputId
InputId
Definition: multiclass_confusion_matrix_types.h:65
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::interface1::Parameter
Parameters for the compute() method of the multi-class confusion matrix.
Definition: multiclass_confusion_matrix_types.h:111
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::interface1::Parameter::beta
double beta
Definition: multiclass_confusion_matrix_types.h:117
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::interface1::Result
Results obtained with the compute() method of the multi-class confusion matrix algorithm in the batch...
Definition: multiclass_confusion_matrix_types.h:163
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::microPrecision
Definition: multiclass_confusion_matrix_types.h:91
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::microFscore
Definition: multiclass_confusion_matrix_types.h:93
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::macroRecall
Definition: multiclass_confusion_matrix_types.h:95
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::averageAccuracy
Definition: multiclass_confusion_matrix_types.h:89
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::groundTruthLabels
Definition: multiclass_confusion_matrix_types.h:68
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::interface1::Parameter::nClasses
size_t nClasses
Definition: multiclass_confusion_matrix_types.h:116
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::microRecall
Definition: multiclass_confusion_matrix_types.h:92
daal::algorithms::classifier::quality_metric::multiclass_confusion_matrix::predictedLabels
Definition: multiclass_confusion_matrix_types.h:67
daal::algorithms::math::abs::value
Definition: abs_types.h:88

For more complete information about compiler optimizations, see our Optimization Notice.