C++ API Reference for Intel® Data Analytics Acceleration Library 2019

outlier_detection_multivariate_types.h
1 /* file: outlier_detection_multivariate_types.h */
2 /*******************************************************************************
3 * Copyright 2014-2018 Intel Corporation.
4 *
5 * This software and the related documents are Intel copyrighted materials, and
6 * your use of them is governed by the express license under which they were
7 * provided to you (License). Unless the License provides otherwise, you may not
8 * use, modify, copy, publish, distribute, disclose or transmit this software or
9 * the related documents without Intel's prior written permission.
10 *
11 * This software and the related documents are provided as is, with no express
12 * or implied warranties, other than those that are expressly stated in the
13 * License.
14 *******************************************************************************/
15 
16 /*
17 //++
18 // Outlier Detection algorithm parameter structure
19 //--
20 */
21 
22 #ifndef __OUTLIERDETECTION_MULTIVARIATE_TYPES_H__
23 #define __OUTLIERDETECTION_MULTIVARIATE_TYPES_H__
24 
25 #include "algorithms/algorithm.h"
26 #include "data_management/data/homogen_numeric_table.h"
27 
28 namespace daal
29 {
30 namespace algorithms
31 {
41 namespace multivariate_outlier_detection
42 {
47 enum Method
48 {
49  defaultDense = 0,
50  baconDense = 1
52 };
53 
59 enum BaconInitializationMethod
60 {
61  baconMedian = 0,
62  baconMahalanobis = 1
63 };
64 
69 enum InputId
70 {
71  data ,
72  location ,
73  scatter ,
74  threshold ,
75  lastInputId = threshold
76 };
77 
78 
83 enum ResultId
84 {
85  weights,
86  lastResultId = weights
87 };
88 
92 namespace interface1
93 {
98 struct InitIface
99 {
107  virtual void operator()(data_management::NumericTable *data,
108  data_management::NumericTable *location,
109  data_management::NumericTable *scatter,
110  data_management::NumericTable *threshold) = 0;
111 
112  virtual ~InitIface() {}
113 };
114 
119 struct DAAL_EXPORT DefaultInit : public InitIface
120 {
128  virtual void operator()(data_management::NumericTable *data,
129  data_management::NumericTable *location,
130  data_management::NumericTable *scatter,
131  data_management::NumericTable *threshold) {}
132 };
133 
137 template <Method method>
138 struct Parameter : public daal::algorithms::Parameter
139 {};
140 
147 /* [ParameterDefault source code] */
148 template <>
149 struct DAAL_EXPORT Parameter<defaultDense> : public daal::algorithms::Parameter
150 {
151  Parameter() {}
152  services::SharedPtr<InitIface> initializationProcedure;
154  virtual services::Status check() const DAAL_C11_OVERRIDE {return services::Status();}
155 };
156 /* [ParameterDefault source code] */
157 
165 /* [ParameterBacon source code] */
166 template <>
167 struct DAAL_EXPORT Parameter<baconDense> : public daal::algorithms::Parameter
168 {
169  Parameter(BaconInitializationMethod initMethod = baconMedian,
170  double alpha = 0.05, double toleranceToConverge = 0.005) {}
171 
172  BaconInitializationMethod initMethod;
173  double alpha;
176  double toleranceToConverge;
178  virtual services::Status check() const DAAL_C11_OVERRIDE {return services::Status();}
179 };
180 /* [ParameterBacon source code] */
181 
186 class DAAL_EXPORT Input : public daal::algorithms::Input
187 {
188 public:
189  Input();
190  Input(const Input& other);
191 
192  virtual ~Input() {}
193 
199  data_management::NumericTablePtr get(InputId id) const;
200 
206  void set(InputId id, const data_management::NumericTablePtr &ptr);
207 
215  services::Status check(const daal::algorithms::Parameter *par, int method) const DAAL_C11_OVERRIDE;
216 };
217 
222 class DAAL_EXPORT Result : public daal::algorithms::Result
223 {
224 public:
225  DECLARE_SERIALIZABLE_CAST(Result);
226  Result();
227 
228  virtual ~Result() {};
229 
239  template <typename algorithmFPType>
240  DAAL_EXPORT services::Status allocate(const daal::algorithms::Input *input, const daal::algorithms::Parameter *parameter, const int method);
241 
247  data_management::NumericTablePtr get(ResultId id) const;
248 
254  void set(ResultId id, const data_management::NumericTablePtr &ptr);
255 
264  services::Status check(const daal::algorithms::Input *input, const daal::algorithms::Parameter *par, int method) const DAAL_C11_OVERRIDE;
265 
266 protected:
268  template<typename Archive, bool onDeserialize>
269  services::Status serialImpl(Archive *arch)
270  {
271  return daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
272  }
273 };
274 typedef services::SharedPtr<Result> ResultPtr;
275 
277 } // namespace interface1
278 using interface1::InitIface;
279 using interface1::DefaultInit;
280 using interface1::Parameter;
281 using interface1::Input;
282 using interface1::Result;
283 using interface1::ResultPtr;
284 
285 } // namespace multivariate_outlier_detection
286 } // namespace algorithm
287 } // namespace daal
288 #endif
daal::algorithms::multivariate_outlier_detection::interface1::InitIface::operator()
virtual void operator()(data_management::NumericTable *data, data_management::NumericTable *location, data_management::NumericTable *scatter, data_management::NumericTable *threshold)=0
daal::algorithms::multivariate_outlier_detection::threshold
Definition: outlier_detection_multivariate_types.h:74
daal::algorithms::multivariate_outlier_detection::ResultId
ResultId
Definition: outlier_detection_multivariate_types.h:83
daal
Definition: algorithm_base_common.h:31
daal::algorithms::multivariate_outlier_detection::interface1::Parameter< baconDense >::alpha
double alpha
Definition: outlier_detection_multivariate_types.h:173
daal::algorithms::multivariate_outlier_detection::Method
Method
Definition: outlier_detection_multivariate_types.h:47
daal::algorithms::multivariate_outlier_detection::baconMahalanobis
Definition: outlier_detection_multivariate_types.h:62
daal::algorithms::multivariate_outlier_detection::interface1::InitIface
Abstract interface class that provides function for the initialization procedure. ...
Definition: outlier_detection_multivariate_types.h:98
daal::algorithms::multivariate_outlier_detection::interface1::Parameter< baconDense >::initMethod
BaconInitializationMethod initMethod
Definition: outlier_detection_multivariate_types.h:172
daal::algorithms::multivariate_outlier_detection::interface1::Parameter< defaultDense >::initializationProcedure
services::SharedPtr< InitIface > initializationProcedure
Definition: outlier_detection_multivariate_types.h:152
daal::algorithms::multivariate_outlier_detection::interface1::Input
Input objects for the multivariate outlier detection algorithm
Definition: outlier_detection_multivariate_types.h:186
daal::algorithms::multivariate_outlier_detection::baconDense
Definition: outlier_detection_multivariate_types.h:50
daal::algorithms::multivariate_outlier_detection::location
Definition: outlier_detection_multivariate_types.h:72
daal::algorithms::multivariate_outlier_detection::interface1::Parameter
Definition: outlier_detection_multivariate_types.h:138
daal::algorithms::multivariate_outlier_detection::InputId
InputId
Definition: outlier_detection_multivariate_types.h:69
daal::algorithms::multivariate_outlier_detection::weights
Definition: outlier_detection_multivariate_types.h:85
daal::algorithms::multivariate_outlier_detection::interface1::DefaultInit
Class that specifies the default method for the initialization procedure.
Definition: outlier_detection_multivariate_types.h:119
daal::algorithms::multivariate_outlier_detection::interface1::DefaultInit::operator()
virtual void operator()(data_management::NumericTable *data, data_management::NumericTable *location, data_management::NumericTable *scatter, data_management::NumericTable *threshold)
Definition: outlier_detection_multivariate_types.h:128
daal::algorithms::multivariate_outlier_detection::baconMedian
Definition: outlier_detection_multivariate_types.h:61
daal::algorithms::multivariate_outlier_detection::defaultDense
Definition: outlier_detection_multivariate_types.h:49
daal::algorithms::multivariate_outlier_detection::data
Definition: outlier_detection_multivariate_types.h:71
daal::algorithms::multivariate_outlier_detection::scatter
Definition: outlier_detection_multivariate_types.h:73
daal::algorithms::multivariate_outlier_detection::interface1::Result
Results obtained with the compute() method of the multivariate outlier detection algorithm in the bat...
Definition: outlier_detection_multivariate_types.h:222
daal::algorithms::multivariate_outlier_detection::interface1::Parameter< baconDense >::toleranceToConverge
double toleranceToConverge
Definition: outlier_detection_multivariate_types.h:176
daal::algorithms::multivariate_outlier_detection::BaconInitializationMethod
BaconInitializationMethod
Definition: outlier_detection_multivariate_types.h:59

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