48 #ifndef __NAIVE_BAYES_MODEL_H__
49 #define __NAIVE_BAYES_MODEL_H__
51 #include "algorithms/algorithm.h"
52 #include "data_management/data/numeric_table.h"
53 #include "data_management/data/homogen_numeric_table.h"
54 #include "algorithms/classifier/classifier_model.h"
69 namespace multinomial_naive_bayes
84 struct DAAL_EXPORT Parameter :
public classifier::Parameter
92 Parameter(
size_t nClasses,
const data_management::NumericTablePtr &priorClassEstimates_ = data_management::NumericTablePtr(),
93 const data_management::NumericTablePtr &alpha_ = data_management::NumericTablePtr()) :
94 classifier::Parameter(nClasses), priorClassEstimates(priorClassEstimates_), alpha(alpha_) {}
96 data_management::NumericTablePtr priorClassEstimates;
97 data_management::NumericTablePtr alpha;
99 services::Status check() const DAAL_C11_OVERRIDE;
108 class DAAL_EXPORT Model : public classifier::Model
111 DECLARE_MODEL(Model, classifier::Model);
126 template<
typename modelFPType>
127 DAAL_EXPORT Model(
size_t nFeatures,
const Parameter ¶meter, modelFPType dummy);
135 template<
typename modelFPType>
136 DAAL_EXPORT
static services::SharedPtr<Model> create(
size_t nFeatures,
const Parameter ¶meter,
137 services::Status *stat = NULL);
146 data_management::NumericTablePtr getLogP() {
return _logP; }
152 data_management::NumericTablePtr getLogTheta() {
return _logTheta; }
158 data_management::NumericTablePtr getAuxTable() {
return _auxTable; }
164 size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE {
return (_logTheta ?_logTheta->getNumberOfColumns() : 0); }
167 data_management::NumericTablePtr _logP;
168 data_management::NumericTablePtr _logTheta;
169 data_management::NumericTablePtr _auxTable;
171 template<
typename modelFPType>
172 DAAL_EXPORT Model(
size_t nFeatures,
const Parameter ¶meter, modelFPType dummy, services::Status &st);
174 template<
typename Archive,
bool onDeserialize>
175 services::Status serialImpl(Archive *arch)
177 services::Status st = classifier::Model::serialImpl<Archive, onDeserialize>(arch);
180 arch->setSharedPtrObj(_logP );
181 arch->setSharedPtrObj(_logTheta);
182 arch->setSharedPtrObj(_auxTable);
188 typedef services::SharedPtr<Model> ModelPtr;
194 class DAAL_EXPORT PartialModel :
public classifier::Model
197 DECLARE_SERIALIZABLE_CAST(PartialModel);
211 template<
typename modelFPType>
212 DAAL_EXPORT PartialModel(
size_t nFeatures,
const Parameter ¶meter, modelFPType dummy);
221 template<
typename modelFPType>
222 DAAL_EXPORT
static services::SharedPtr<PartialModel> create(
size_t nFeatures,
const Parameter ¶meter,
223 services::Status *stat = NULL);
225 virtual ~PartialModel() {}
227 size_t getNObservations()
229 return _nObservations;
232 void setNObservations(
size_t nObservations )
234 _nObservations = nObservations;
241 size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE {
return (_classGroupSum ? _classGroupSum->getNumberOfColumns() : 0); }
247 size_t getNFeatures() const DAAL_C11_OVERRIDE {
return getNumberOfFeatures(); }
253 void setNFeatures(
size_t nFeatures) DAAL_C11_OVERRIDE {}
255 template<
typename modelFPType>
256 services::Status initialize()
258 _classSize->assign((
int)0);
259 _classGroupSum->assign((
int)0);
261 return services::Status();
264 data_management::NumericTablePtr getClassSize() {
return _classSize; }
265 data_management::NumericTablePtr getClassGroupSum() {
return _classGroupSum; }
268 data_management::NumericTablePtr _classSize;
269 data_management::NumericTablePtr _classGroupSum;
270 size_t _nObservations;
272 template<
typename modelFPType>
273 DAAL_EXPORT PartialModel(
size_t nFeatures,
const Parameter ¶meter,
274 modelFPType dummy, services::Status &st);
276 template<
typename Archive,
bool onDeserialize>
277 services::Status serialImpl(Archive *arch)
279 services::Status st = classifier::Model::serialImpl<Archive, onDeserialize>(arch);
282 arch->set(_nObservations);
283 arch->setSharedPtrObj(_classSize);
284 arch->setSharedPtrObj(_classGroupSum);
289 typedef services::SharedPtr<PartialModel> PartialModelPtr;
291 using interface1::Parameter;
292 using interface1::Model;
293 using interface1::ModelPtr;
294 using interface1::PartialModel;
295 using interface1::PartialModelPtr;
daal
Definition: algorithm_base_common.h:57
daal::algorithms::multinomial_naive_bayes::interface1::Parameter::alpha
data_management::NumericTablePtr alpha
Definition: multinomial_naive_bayes_model.h:97
daal::algorithms::multinomial_naive_bayes::interface1::Model::Model
Model()
Definition: multinomial_naive_bayes_model.h:117
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:92
daal::algorithms::multinomial_naive_bayes::interface1::Model
Multinomial naive Bayes model.
Definition: multinomial_naive_bayes_model.h:108
daal::algorithms::multinomial_naive_bayes::interface1::PartialModel::getNumberOfFeatures
size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_model.h:241
daal::algorithms::multinomial_naive_bayes::interface1::PartialModel
PartialModel represents partial multinomial naive Bayes model.
Definition: multinomial_naive_bayes_model.h:194
daal::algorithms::multinomial_naive_bayes::interface1::Model::getLogP
data_management::NumericTablePtr getLogP()
Definition: multinomial_naive_bayes_model.h:146
daal::algorithms::multinomial_naive_bayes::interface1::PartialModel::getNFeatures
size_t getNFeatures() const DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_model.h:247
daal::algorithms::multinomial_naive_bayes::interface1::Model::getNumberOfFeatures
size_t getNumberOfFeatures() const DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_model.h:164
daal::algorithms::multinomial_naive_bayes::interface1::Parameter
Naive Bayes algorithm parameters.
Definition: multinomial_naive_bayes_model.h:84
daal::algorithms::multinomial_naive_bayes::interface1::Model::getLogTheta
data_management::NumericTablePtr getLogTheta()
Definition: multinomial_naive_bayes_model.h:152
daal::algorithms::multinomial_naive_bayes::interface1::PartialModel::setNFeatures
void setNFeatures(size_t nFeatures) DAAL_C11_OVERRIDE
Definition: multinomial_naive_bayes_model.h:253
daal::algorithms::multinomial_naive_bayes::interface1::Parameter::priorClassEstimates
data_management::NumericTablePtr priorClassEstimates
Definition: multinomial_naive_bayes_model.h:96
daal::algorithms::multinomial_naive_bayes::interface1::Model::getAuxTable
data_management::NumericTablePtr getAuxTable()
Definition: multinomial_naive_bayes_model.h:158
daal::algorithms::covariance::nObservations
Definition: covariance_types.h:102