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

multinomial_naive_bayes_training_online.h
1 /* file: multinomial_naive_bayes_training_online.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 // Implementation of the interface for multinomial naive Bayes model-based training
21 // in the online processing mode
22 //--
23 */
24 
25 #ifndef __NAIVE_BAYES_TRAINING_ONLINE_H__
26 #define __NAIVE_BAYES_TRAINING_ONLINE_H__
27 
28 #include "algorithms/algorithm.h"
29 #include "multinomial_naive_bayes_training_types.h"
30 #include "algorithms/classifier/classifier_training_online.h"
31 
32 namespace daal
33 {
34 namespace algorithms
35 {
36 namespace multinomial_naive_bayes
37 {
38 namespace training
39 {
40 
41 namespace interface1
42 {
55 template<typename algorithmFPType, Method method, CpuType cpu>
56 class OnlineContainer : public TrainingContainerIface<online>
57 {
58 public:
64  DAAL_DEPRECATED OnlineContainer(daal::services::Environment::env *daalEnv);
66  DAAL_DEPRECATED ~OnlineContainer();
67 
74  DAAL_DEPRECATED services::Status compute() DAAL_C11_OVERRIDE;
81  DAAL_DEPRECATED services::Status finalizeCompute() DAAL_C11_OVERRIDE;
82 };
83 
97 template<typename algorithmFPType = DAAL_ALGORITHM_FP_TYPE, Method method = defaultDense>
98 class DAAL_EXPORT Online : public classifier::training::interface1::Online
99 {
100 public:
101  typedef classifier::training::interface1::Online super;
102 
103  typedef typename super::InputType InputType;
104  typedef algorithms::multinomial_naive_bayes::interface1::Parameter ParameterType;
105  typedef algorithms::multinomial_naive_bayes::training::Result ResultType;
106  typedef algorithms::multinomial_naive_bayes::training::PartialResult PartialResultType;
107 
112  DAAL_DEPRECATED Online(size_t nClasses) : parameter(nClasses)
113  {
114  initialize();
115  }
116 
123  DAAL_DEPRECATED Online(const Online<algorithmFPType, method> &other) :
124  classifier::training::interface1::Online(other), parameter(other.parameter)
125  {
126  initialize();
127  }
128 
129  DAAL_DEPRECATED_VIRTUAL virtual ~Online() {}
130 
135  DAAL_DEPRECATED_VIRTUAL virtual int getMethod() const DAAL_C11_OVERRIDE { return(int)method; }
136 
141  DAAL_DEPRECATED ResultPtr getResult()
142  {
143  return services::staticPointerCast<ResultType, classifier::training::Result>(_result);
144  }
145 
152  DAAL_DEPRECATED services::Status setResult(const ResultPtr& result)
153  {
154  DAAL_CHECK(result, services::ErrorNullResult)
155  _result = result;
156  _res = _result.get();
157  return services::Status();
158  }
159 
163  DAAL_DEPRECATED void resetResult()
164  {
165  _result.reset(new ResultType());
166  _res = NULL;
167  }
168 
173  DAAL_DEPRECATED PartialResultPtr getPartialResult() { return PartialResultType::cast(_partialResult); }
174 
180  DAAL_DEPRECATED services::SharedPtr<interface1::Online<algorithmFPType, method> > clone() const
181  {
182  return services::SharedPtr<interface1::Online<algorithmFPType, method> >(cloneImpl());
183  }
184 
185  ParameterType parameter;
187 protected:
188 
189  virtual Online<algorithmFPType, method> * cloneImpl() const DAAL_C11_OVERRIDE
190  {
191  return new Online<algorithmFPType, method>(*this);
192  }
193 
194  services::Status allocateResult() DAAL_C11_OVERRIDE
195  {
196  PartialResultPtr pres = getPartialResult();
197  ResultPtr res = services::staticPointerCast<ResultType, classifier::training::Result>(_result);
198  services::Status s = res->template allocate<algorithmFPType>(pres.get(), &parameter, (int)method);
199  _res = _result.get();
200  return s;
201  }
202 
203  services::Status allocatePartialResult() DAAL_C11_OVERRIDE
204  {
205  PartialResultPtr pres = getPartialResult();
206  services::Status s = pres->template allocate<algorithmFPType>((classifier::training::InputIface *)(&input), &parameter, (int)method);
207  _pres = _partialResult.get();
208  return s;
209  }
210 
211  services::Status initializePartialResult() DAAL_C11_OVERRIDE
212  {
213  PartialResultPtr pres = getPartialResult();
214  services::Status s = pres->template initialize<algorithmFPType>((classifier::training::InputIface *)(&input), &parameter, (int)method);
215  _pres = _partialResult.get();
216  return s;
217  }
218 
219  void initialize()
220  {
221  _ac = new __DAAL_ALGORITHM_CONTAINER(online, OnlineContainer, algorithmFPType, method)(&_env);
222  _par = &parameter;
223  _result.reset(new ResultType());
224  _partialResult.reset(new PartialResultType());
225  }
226 };
228 } // namespace interface1
229 
230 namespace interface2
231 {
244 template<typename algorithmFPType, Method method, CpuType cpu>
245 class OnlineContainer : public TrainingContainerIface<online>
246 {
247 public:
253  OnlineContainer(daal::services::Environment::env *daalEnv);
255  ~OnlineContainer();
256 
263  services::Status compute() DAAL_C11_OVERRIDE;
270  services::Status finalizeCompute() DAAL_C11_OVERRIDE;
271 };
272 
286 template<typename algorithmFPType = DAAL_ALGORITHM_FP_TYPE, Method method = defaultDense>
287 class DAAL_EXPORT Online : public classifier::training::Online
288 {
289 public:
290  typedef classifier::training::Online super;
291 
292  typedef algorithms::multinomial_naive_bayes::training::Input InputType;
293  typedef algorithms::multinomial_naive_bayes::Parameter ParameterType;
294  typedef algorithms::multinomial_naive_bayes::training::Result ResultType;
295  typedef algorithms::multinomial_naive_bayes::training::PartialResult PartialResultType;
296 
297  InputType input;
302  Online(size_t nClasses) : parameter(nClasses), input()
303  {
304  initialize();
305  }
306 
313  Online(const Online<algorithmFPType, method> &other) :
314  super(other), parameter(other.parameter), input(other.input)
315  {
316  initialize();
317  }
318 
319  virtual ~Online() {}
320 
325  InputType * getInput() DAAL_C11_OVERRIDE { return &input; }
326 
331  virtual int getMethod() const DAAL_C11_OVERRIDE { return(int)method; }
332 
337  ResultPtr getResult()
338  {
339  return services::staticPointerCast<ResultType, classifier::training::Result>(_result);
340  }
341 
348  services::Status setResult(const ResultPtr& result)
349  {
350  DAAL_CHECK(result, services::ErrorNullResult)
351  _result = result;
352  _res = _result.get();
353  return services::Status();
354  }
355 
359  void resetResult()
360  {
361  _result.reset(new ResultType());
362  _res = NULL;
363  }
364 
369  PartialResultPtr getPartialResult() { return PartialResultType::cast(_partialResult); }
370 
376  services::SharedPtr<Online<algorithmFPType, method> > clone() const
377  {
378  return services::SharedPtr<Online<algorithmFPType, method> >(cloneImpl());
379  }
380 
381  ParameterType parameter;
383 protected:
384 
385  virtual Online<algorithmFPType, method> * cloneImpl() const DAAL_C11_OVERRIDE
386  {
387  return new Online<algorithmFPType, method>(*this);
388  }
389 
390  services::Status allocateResult() DAAL_C11_OVERRIDE
391  {
392  PartialResultPtr pres = getPartialResult();
393  ResultPtr res = services::staticPointerCast<ResultType, classifier::training::Result>(_result);
394  services::Status s = res->template allocate<algorithmFPType>(pres.get(), &parameter, (int)method);
395  _res = _result.get();
396  return s;
397  }
398 
399  services::Status allocatePartialResult() DAAL_C11_OVERRIDE
400  {
401  PartialResultPtr pres = getPartialResult();
402  services::Status s = pres->template allocate<algorithmFPType>((classifier::training::InputIface *)(&input), &parameter, (int)method);
403  _pres = _partialResult.get();
404  return s;
405  }
406 
407  services::Status initializePartialResult() DAAL_C11_OVERRIDE
408  {
409  PartialResultPtr pres = getPartialResult();
410  services::Status s = pres->template initialize<algorithmFPType>((classifier::training::InputIface *)(&input), &parameter, (int)method);
411  _pres = _partialResult.get();
412  return s;
413  }
414 
415  void initialize()
416  {
417  _ac = new __DAAL_ALGORITHM_CONTAINER(online, OnlineContainer, algorithmFPType, method)(&_env);
418  _in = &input;
419  _par = &parameter;
420  _result.reset(new ResultType());
421  _partialResult.reset(new PartialResultType());
422  }
423 };
425 } // namespace interface2
426 using interface2::OnlineContainer;
427 using interface2::Online;
428 
429 } // namespace training
430 } // namespace multinomial_naive_bayes
431 } // namespace algorithms
432 } // namespace daal
433 #endif
daal::algorithms::multinomial_naive_bayes::training::interface1::Online::getPartialResult
DAAL_DEPRECATED PartialResultPtr getPartialResult()
Definition: multinomial_naive_bayes_training_online.h:173
daal::algorithms::classifier::training::interface1::Online
Algorithm class for training the classifier model in the online processing mode.
Definition: classifier_training_online.h:57
daal::algorithms::multinomial_naive_bayes::training::interface1::Online::clone
DAAL_DEPRECATED services::SharedPtr< interface1::Online< algorithmFPType, method > > clone() const
Definition: multinomial_naive_bayes_training_online.h:180
daal::algorithms::multinomial_naive_bayes::training::interface2::Online::setResult
services::Status setResult(const ResultPtr &result)
Definition: multinomial_naive_bayes_training_online.h:348
daal::algorithms::multinomial_naive_bayes::training::interface2::Online::getInput
InputType * getInput() DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_training_online.h:325
daal::algorithms::multinomial_naive_bayes::training::interface2::Online::getResult
ResultPtr getResult()
Definition: multinomial_naive_bayes_training_online.h:337
daal::algorithms::multinomial_naive_bayes::training::interface2::Online::getMethod
virtual int getMethod() const DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_training_online.h:331
daal::algorithms::multinomial_naive_bayes::training::interface2::OnlineContainer::compute
services::Status compute() DAAL_C11_OVERRIDE
daal::algorithms::multinomial_naive_bayes::training::interface1::Online::parameter
ParameterType parameter
Definition: multinomial_naive_bayes_training_online.h:185
daal::algorithms::multinomial_naive_bayes::training::interface2::OnlineContainer::~OnlineContainer
~OnlineContainer()
daal::algorithms::multinomial_naive_bayes::interface1::Parameter
Naive Bayes algorithm parameters.
Definition: multinomial_naive_bayes_model.h:60
daal::algorithms::multinomial_naive_bayes::training::interface1::Online::Online
DAAL_DEPRECATED Online(size_t nClasses)
Definition: multinomial_naive_bayes_training_online.h:112
daal::algorithms::multinomial_naive_bayes::training::interface1::Online
Algorithm class for training naive Bayes model.
Definition: multinomial_naive_bayes_training_online.h:98
daal::services::ErrorNullResult
Definition: error_indexes.h:98
daal::algorithms::multinomial_naive_bayes::training::interface2::Online::parameter
ParameterType parameter
Definition: multinomial_naive_bayes_training_online.h:381
daal::algorithms::multinomial_naive_bayes::training::interface2::Online::getPartialResult
PartialResultPtr getPartialResult()
Definition: multinomial_naive_bayes_training_online.h:369
daal::algorithms::multinomial_naive_bayes::training::interface1::OnlineContainer
Class containing computation methods for naive Bayes training in the online processing mode...
Definition: multinomial_naive_bayes_training_online.h:56
daal::algorithms::multinomial_naive_bayes::training::interface1::Online::resetResult
DAAL_DEPRECATED void resetResult()
Definition: multinomial_naive_bayes_training_online.h:163
daal::algorithms::multinomial_naive_bayes::training::interface1::Online::Online
DAAL_DEPRECATED Online(const Online< algorithmFPType, method > &other)
Definition: multinomial_naive_bayes_training_online.h:123
daal::algorithms::multinomial_naive_bayes::training::interface1::OnlineContainer::finalizeCompute
DAAL_DEPRECATED services::Status finalizeCompute() DAAL_C11_OVERRIDE
daal::algorithms::multinomial_naive_bayes::training::interface2::Online::resetResult
void resetResult()
Definition: multinomial_naive_bayes_training_online.h:359
daal::online
Definition: daal_defines.h:114
daal::algorithms::multinomial_naive_bayes::training::interface2::OnlineContainer
Class containing computation methods for naive Bayes training in the online processing mode...
Definition: multinomial_naive_bayes_training_online.h:245
daal::algorithms::multinomial_naive_bayes::training::interface1::OnlineContainer::~OnlineContainer
DAAL_DEPRECATED ~OnlineContainer()
daal::algorithms::multinomial_naive_bayes::training::interface2::Online::clone
services::SharedPtr< Online< algorithmFPType, method > > clone() const
Definition: multinomial_naive_bayes_training_online.h:376
daal::algorithms::multinomial_naive_bayes::training::interface1::Online::getMethod
virtual DAAL_DEPRECATED_VIRTUAL int getMethod() const DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_training_online.h:135
daal::algorithms::multinomial_naive_bayes::training::interface1::Online::setResult
DAAL_DEPRECATED services::Status setResult(const ResultPtr &result)
Definition: multinomial_naive_bayes_training_online.h:152
daal::algorithms::classifier::interface1::Parameter
Base class for the parameters of the classification algorithm.
Definition: classifier_model.h:69
daal::algorithms::multinomial_naive_bayes::training::interface2::OnlineContainer::OnlineContainer
OnlineContainer(daal::services::Environment::env *daalEnv)
daal::algorithms::multinomial_naive_bayes::training::interface2::Online
Algorithm class for training naive Bayes model.
Definition: multinomial_naive_bayes_training_online.h:287
daal::algorithms::multinomial_naive_bayes::training::interface2::OnlineContainer::finalizeCompute
services::Status finalizeCompute() DAAL_C11_OVERRIDE
daal::algorithms::multinomial_naive_bayes::training::interface2::Online::Online
Online(const Online< algorithmFPType, method > &other)
Definition: multinomial_naive_bayes_training_online.h:313
daal::algorithms::multinomial_naive_bayes::training::interface1::OnlineContainer::OnlineContainer
DAAL_DEPRECATED OnlineContainer(daal::services::Environment::env *daalEnv)
daal::algorithms::multinomial_naive_bayes::training::interface1::OnlineContainer::compute
DAAL_DEPRECATED services::Status compute() DAAL_C11_OVERRIDE
daal::algorithms::multinomial_naive_bayes::training::interface1::Online::getResult
DAAL_DEPRECATED ResultPtr getResult()
Definition: multinomial_naive_bayes_training_online.h:141
daal::algorithms::TrainingContainerIface
Abstract interface class that provides virtual methods to access and run implementations of the model...
Definition: training.h:52
daal::algorithms::multinomial_naive_bayes::training::interface2::Online::Online
Online(size_t nClasses)
Definition: multinomial_naive_bayes_training_online.h:302

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