24 #ifndef __NAIVE_BAYES_MODEL_H__
25 #define __NAIVE_BAYES_MODEL_H__
27 #include "algorithms/algorithm.h"
28 #include "data_management/data/numeric_table.h"
29 #include "data_management/data/homogen_numeric_table.h"
30 #include "algorithms/classifier/classifier_model.h"
45 namespace multinomial_naive_bayes
60 struct DAAL_EXPORT Parameter :
public classifier::interface1::Parameter
68 DAAL_DEPRECATED Parameter(
size_t nClasses,
const data_management::NumericTablePtr &priorClassEstimates_ = data_management::NumericTablePtr(),
69 const data_management::NumericTablePtr &alpha_ = data_management::NumericTablePtr()) :
70 classifier::interface1::Parameter(nClasses), priorClassEstimates(priorClassEstimates_), alpha(alpha_) {}
72 data_management::NumericTablePtr priorClassEstimates;
73 data_management::NumericTablePtr alpha;
75 DAAL_DEPRECATED services::Status check() const DAAL_C11_OVERRIDE;
92 struct DAAL_EXPORT Parameter :
public classifier::Parameter
100 Parameter(
size_t nClasses,
const data_management::NumericTablePtr &priorClassEstimates_ = data_management::NumericTablePtr(),
101 const data_management::NumericTablePtr &alpha_ = data_management::NumericTablePtr()) :
102 classifier::Parameter(nClasses), priorClassEstimates(priorClassEstimates_), alpha(alpha_) {}
104 data_management::NumericTablePtr priorClassEstimates;
105 data_management::NumericTablePtr alpha;
107 services::Status check() const DAAL_C11_OVERRIDE;
119 class DAAL_EXPORT Model :
public classifier::Model
122 DECLARE_MODEL(Model, classifier::Model);
137 template<
typename modelFPType>
138 DAAL_EXPORT Model(
size_t nFeatures,
const interface1::Parameter ¶meter, modelFPType dummy);
147 template<
typename modelFPType>
148 DAAL_EXPORT Model(
size_t nFeatures,
const interface2::Parameter ¶meter, modelFPType dummy);
156 template<
typename modelFPType>
157 DAAL_EXPORT
static services::SharedPtr<Model> create(
size_t nFeatures,
const interface1::Parameter ¶meter,
158 services::Status *stat = NULL);
166 template<
typename modelFPType>
167 DAAL_EXPORT
static services::SharedPtr<Model> create(
size_t nFeatures,
const interface2::Parameter ¶meter,
168 services::Status *stat = NULL);
176 data_management::NumericTablePtr getLogP() {
return _logP; }
182 data_management::NumericTablePtr getLogTheta() {
return _logTheta; }
188 data_management::NumericTablePtr getAuxTable() {
return _auxTable; }
194 size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE {
return (_logTheta ?_logTheta->getNumberOfColumns() : 0); }
197 data_management::NumericTablePtr _logP;
198 data_management::NumericTablePtr _logTheta;
199 data_management::NumericTablePtr _auxTable;
201 template<
typename modelFPType>
202 DAAL_EXPORT Model(
size_t nFeatures,
const interface1::Parameter ¶meter, modelFPType dummy, services::Status &st);
204 template<
typename modelFPType>
205 DAAL_EXPORT Model(
size_t nFeatures,
const interface2::Parameter ¶meter, modelFPType dummy, services::Status &st);
207 template<
typename Archive,
bool onDeserialize>
208 services::Status serialImpl(Archive *arch)
210 services::Status st = classifier::Model::serialImpl<Archive, onDeserialize>(arch);
213 arch->setSharedPtrObj(_logP );
214 arch->setSharedPtrObj(_logTheta);
215 arch->setSharedPtrObj(_auxTable);
221 typedef services::SharedPtr<Model> ModelPtr;
227 class DAAL_EXPORT PartialModel :
public classifier::Model
230 DECLARE_SERIALIZABLE_CAST(PartialModel);
244 template<
typename modelFPType>
245 DAAL_EXPORT PartialModel(
size_t nFeatures,
const interface1::Parameter ¶meter, modelFPType dummy);
254 template<
typename modelFPType>
255 DAAL_EXPORT PartialModel(
size_t nFeatures,
const interface2::Parameter ¶meter, modelFPType dummy);
264 template<
typename modelFPType>
265 DAAL_EXPORT
static services::SharedPtr<PartialModel> create(
size_t nFeatures,
const interface1::Parameter ¶meter,
266 services::Status *stat = NULL);
275 template<
typename modelFPType>
276 DAAL_EXPORT
static services::SharedPtr<PartialModel> create(
size_t nFeatures,
const interface2::Parameter ¶meter,
277 services::Status *stat = NULL);
279 virtual ~PartialModel() {}
281 size_t getNObservations()
283 return _nObservations;
286 void setNObservations(
size_t nObservations )
288 _nObservations = nObservations;
295 size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE {
return (_classGroupSum ? _classGroupSum->getNumberOfColumns() : 0); }
301 size_t getNFeatures() const DAAL_C11_OVERRIDE {
return getNumberOfFeatures(); }
307 void setNFeatures(
size_t nFeatures) DAAL_C11_OVERRIDE {}
309 template<
typename modelFPType>
310 services::Status initialize()
312 _classSize->assign((
int)0);
313 _classGroupSum->assign((
int)0);
315 return services::Status();
318 data_management::NumericTablePtr getClassSize() {
return _classSize; }
319 data_management::NumericTablePtr getClassGroupSum() {
return _classGroupSum; }
322 data_management::NumericTablePtr _classSize;
323 data_management::NumericTablePtr _classGroupSum;
324 size_t _nObservations;
326 template<
typename modelFPType>
327 DAAL_EXPORT PartialModel(
size_t nFeatures,
const interface1::Parameter ¶meter,
328 modelFPType dummy, services::Status &st);
330 template<
typename modelFPType>
331 DAAL_EXPORT PartialModel(
size_t nFeatures,
const interface2::Parameter ¶meter,
332 modelFPType dummy, services::Status &st);
334 template<
typename Archive,
bool onDeserialize>
335 services::Status serialImpl(Archive *arch)
337 services::Status st = classifier::Model::serialImpl<Archive, onDeserialize>(arch);
340 arch->set(_nObservations);
341 arch->setSharedPtrObj(_classSize);
342 arch->setSharedPtrObj(_classGroupSum);
347 typedef services::SharedPtr<PartialModel> PartialModelPtr;
349 using interface2::Parameter;
350 using interface1::Model;
351 using interface1::ModelPtr;
352 using interface1::PartialModel;
353 using interface1::PartialModelPtr;
daal::algorithms::multinomial_naive_bayes::interface1::Model::Model
Model()
Definition: multinomial_naive_bayes_model.h:128
daal::algorithms::multinomial_naive_bayes::interface1::Model
Multinomial naive Bayes model.
Definition: multinomial_naive_bayes_model.h:119
daal::algorithms::multinomial_naive_bayes::interface1::Parameter::alpha
data_management::NumericTablePtr alpha
Definition: multinomial_naive_bayes_model.h:73
daal::algorithms::covariance::nObservations
Definition: covariance_types.h:78
daal::algorithms::multinomial_naive_bayes::interface2::Parameter
Naive Bayes algorithm parameters.
Definition: multinomial_naive_bayes_model.h:92
daal::algorithms::multinomial_naive_bayes::interface1::Parameter
Naive Bayes algorithm parameters.
Definition: multinomial_naive_bayes_model.h:60
daal::algorithms::multinomial_naive_bayes::interface1::PartialModel::setNFeatures
void setNFeatures(size_t nFeatures) DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_model.h:307
daal::algorithms::multinomial_naive_bayes::interface1::Parameter::priorClassEstimates
data_management::NumericTablePtr priorClassEstimates
Definition: multinomial_naive_bayes_model.h:72
daal::algorithms::multinomial_naive_bayes::interface1::PartialModel::getNFeatures
size_t getNFeatures() const DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_model.h:301
daal::algorithms::multinomial_naive_bayes::interface2::Parameter::alpha
data_management::NumericTablePtr alpha
Definition: multinomial_naive_bayes_model.h:105
daal::algorithms::multinomial_naive_bayes::interface2::Parameter::priorClassEstimates
data_management::NumericTablePtr priorClassEstimates
Definition: multinomial_naive_bayes_model.h:104
daal::algorithms::multinomial_naive_bayes::interface1::Model::getLogP
data_management::NumericTablePtr getLogP()
Definition: multinomial_naive_bayes_model.h:176
daal::algorithms::multinomial_naive_bayes::interface1::Parameter::Parameter
DAAL_DEPRECATED Parameter(size_t nClasses, const data_management::NumericTablePtr &priorClassEstimates_=data_management::NumericTablePtr(), const data_management::NumericTablePtr &alpha_=data_management::NumericTablePtr())
Definition: multinomial_naive_bayes_model.h:68
daal::algorithms::classifier::interface1::Parameter
Base class for the parameters of the classification algorithm.
Definition: classifier_model.h:69
daal::algorithms::multinomial_naive_bayes::interface1::PartialModel
PartialModel represents partial multinomial naive Bayes model.
Definition: multinomial_naive_bayes_model.h:227
daal::algorithms::multinomial_naive_bayes::interface2::Parameter::Parameter
Parameter(size_t nClasses, const data_management::NumericTablePtr &priorClassEstimates_=data_management::NumericTablePtr(), const data_management::NumericTablePtr &alpha_=data_management::NumericTablePtr())
Definition: multinomial_naive_bayes_model.h:100
daal::algorithms::multinomial_naive_bayes::interface1::PartialModel::getNumberOfFeatures
size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_model.h:295
daal::algorithms::multinomial_naive_bayes::interface1::Model::getLogTheta
data_management::NumericTablePtr getLogTheta()
Definition: multinomial_naive_bayes_model.h:182
daal::algorithms::multinomial_naive_bayes::interface1::Model::getAuxTable
data_management::NumericTablePtr getAuxTable()
Definition: multinomial_naive_bayes_model.h:188
daal::algorithms::multinomial_naive_bayes::interface1::Model::getNumberOfFeatures
size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_model.h:194