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::services::interface1::Status
Class that holds the results of API calls. In case of API routine failure it contains the list of err...
Definition: error_handling.h:491
daal
Definition: algorithm_base_common.h:57
daal::algorithms::classifier::interface1::Parameter
Base class for the parameters of the classification algorithm.
Definition: classifier_model.h:81
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::services::interface1::SharedPtr
Shared pointer that retains shared ownership of an object through a pointer. Several SharedPtr object...
Definition: daal_shared_ptr.h:187
daal::algorithms::classifier::interface1::Model
Base class for the model of the classification algorithm.
Definition: classifier_model.h:95
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