22 #ifndef __NAIVE_BAYES_MODEL_H__
23 #define __NAIVE_BAYES_MODEL_H__
25 #include "algorithms/algorithm.h"
26 #include "data_management/data/numeric_table.h"
27 #include "data_management/data/homogen_numeric_table.h"
28 #include "algorithms/classifier/classifier_model.h"
43 namespace multinomial_naive_bayes
58 struct DAAL_EXPORT Parameter :
public classifier::Parameter
66 Parameter(
size_t nClasses,
const data_management::NumericTablePtr &priorClassEstimates_ = data_management::NumericTablePtr(),
67 const data_management::NumericTablePtr &alpha_ = data_management::NumericTablePtr()) :
68 classifier::Parameter(nClasses), priorClassEstimates(priorClassEstimates_), alpha(alpha_) {}
70 data_management::NumericTablePtr priorClassEstimates;
71 data_management::NumericTablePtr alpha;
73 services::Status check() const DAAL_C11_OVERRIDE;
82 class DAAL_EXPORT Model : public classifier::Model
85 DECLARE_MODEL(Model, classifier::Model);
100 template<
typename modelFPType>
101 DAAL_EXPORT Model(
size_t nFeatures,
const Parameter ¶meter, modelFPType dummy);
109 template<
typename modelFPType>
110 DAAL_EXPORT
static services::SharedPtr<Model> create(
size_t nFeatures,
const Parameter ¶meter,
111 services::Status *stat = NULL);
120 data_management::NumericTablePtr getLogP() {
return _logP; }
126 data_management::NumericTablePtr getLogTheta() {
return _logTheta; }
132 data_management::NumericTablePtr getAuxTable() {
return _auxTable; }
138 size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE {
return (_logTheta ?_logTheta->getNumberOfColumns() : 0); }
141 data_management::NumericTablePtr _logP;
142 data_management::NumericTablePtr _logTheta;
143 data_management::NumericTablePtr _auxTable;
145 template<
typename modelFPType>
146 DAAL_EXPORT Model(
size_t nFeatures,
const Parameter ¶meter, modelFPType dummy, services::Status &st);
148 template<
typename Archive,
bool onDeserialize>
149 services::Status serialImpl(Archive *arch)
151 services::Status st = classifier::Model::serialImpl<Archive, onDeserialize>(arch);
154 arch->setSharedPtrObj(_logP );
155 arch->setSharedPtrObj(_logTheta);
156 arch->setSharedPtrObj(_auxTable);
162 typedef services::SharedPtr<Model> ModelPtr;
168 class DAAL_EXPORT PartialModel :
public classifier::Model
171 DECLARE_SERIALIZABLE_CAST(PartialModel);
185 template<
typename modelFPType>
186 DAAL_EXPORT PartialModel(
size_t nFeatures,
const Parameter ¶meter, modelFPType dummy);
195 template<
typename modelFPType>
196 DAAL_EXPORT
static services::SharedPtr<PartialModel> create(
size_t nFeatures,
const Parameter ¶meter,
197 services::Status *stat = NULL);
199 virtual ~PartialModel() {}
201 size_t getNObservations()
203 return _nObservations;
206 void setNObservations(
size_t nObservations )
208 _nObservations = nObservations;
215 size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE {
return (_classGroupSum ? _classGroupSum->getNumberOfColumns() : 0); }
221 size_t getNFeatures() const DAAL_C11_OVERRIDE {
return getNumberOfFeatures(); }
227 void setNFeatures(
size_t nFeatures) DAAL_C11_OVERRIDE {}
229 template<
typename modelFPType>
230 services::Status initialize()
232 _classSize->assign((
int)0);
233 _classGroupSum->assign((
int)0);
235 return services::Status();
238 data_management::NumericTablePtr getClassSize() {
return _classSize; }
239 data_management::NumericTablePtr getClassGroupSum() {
return _classGroupSum; }
242 data_management::NumericTablePtr _classSize;
243 data_management::NumericTablePtr _classGroupSum;
244 size_t _nObservations;
246 template<
typename modelFPType>
247 DAAL_EXPORT PartialModel(
size_t nFeatures,
const Parameter ¶meter,
248 modelFPType dummy, services::Status &st);
250 template<
typename Archive,
bool onDeserialize>
251 services::Status serialImpl(Archive *arch)
253 services::Status st = classifier::Model::serialImpl<Archive, onDeserialize>(arch);
256 arch->set(_nObservations);
257 arch->setSharedPtrObj(_classSize);
258 arch->setSharedPtrObj(_classGroupSum);
263 typedef services::SharedPtr<PartialModel> PartialModelPtr;
265 using interface1::Parameter;
266 using interface1::Model;
267 using interface1::ModelPtr;
268 using interface1::PartialModel;
269 using interface1::PartialModelPtr;
daal
Definition: algorithm_base_common.h:31
daal::algorithms::multinomial_naive_bayes::interface1::Parameter::alpha
data_management::NumericTablePtr alpha
Definition: multinomial_naive_bayes_model.h:71
daal::algorithms::multinomial_naive_bayes::interface1::Model::Model
Model()
Definition: multinomial_naive_bayes_model.h:91
daal::algorithms::multinomial_naive_bayes::interface1::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:66
daal::algorithms::multinomial_naive_bayes::interface1::Model
Multinomial naive Bayes model.
Definition: multinomial_naive_bayes_model.h:82
daal::algorithms::multinomial_naive_bayes::interface1::PartialModel::getNumberOfFeatures
size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_model.h:215
daal::algorithms::multinomial_naive_bayes::interface1::PartialModel
PartialModel represents partial multinomial naive Bayes model.
Definition: multinomial_naive_bayes_model.h:168
daal::algorithms::multinomial_naive_bayes::interface1::Model::getLogP
data_management::NumericTablePtr getLogP()
Definition: multinomial_naive_bayes_model.h:120
daal::algorithms::multinomial_naive_bayes::interface1::PartialModel::getNFeatures
size_t getNFeatures() const DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_model.h:221
daal::algorithms::multinomial_naive_bayes::interface1::Model::getNumberOfFeatures
size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_model.h:138
daal::algorithms::multinomial_naive_bayes::interface1::Parameter
Naive Bayes algorithm parameters.
Definition: multinomial_naive_bayes_model.h:58
daal::algorithms::multinomial_naive_bayes::interface1::Model::getLogTheta
data_management::NumericTablePtr getLogTheta()
Definition: multinomial_naive_bayes_model.h:126
daal::algorithms::multinomial_naive_bayes::interface1::PartialModel::setNFeatures
void setNFeatures(size_t nFeatures) DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_model.h:227
daal::algorithms::multinomial_naive_bayes::interface1::Parameter::priorClassEstimates
data_management::NumericTablePtr priorClassEstimates
Definition: multinomial_naive_bayes_model.h:70
daal::algorithms::multinomial_naive_bayes::interface1::Model::getAuxTable
data_management::NumericTablePtr getAuxTable()
Definition: multinomial_naive_bayes_model.h:132
daal::algorithms::covariance::nObservations
Definition: covariance_types.h:76