23 #ifndef __MLPACK_METHODS_MOG_MOG_EM_HPP
24 #define __MLPACK_METHODS_MOG_MOG_EM_HPP
88 template<
typename FittingType = EMFit<> >
116 Log::Debug <<
"GMM::GMM(): no parameters given; Estimate() may fail "
117 <<
"unless parameters are set." << std::endl;
128 gaussians(gaussians),
129 dimensionality(dimensionality),
130 means(gaussians, arma::vec(dimensionality)),
131 covariances(gaussians, arma::mat(dimensionality, dimensionality)),
149 gaussians(gaussians),
150 dimensionality(dimensionality),
151 means(gaussians, arma::vec(dimensionality)),
152 covariances(gaussians, arma::mat(dimensionality, dimensionality)),
169 covariances(covariances),
190 covariances(covariances),
197 template<
typename OtherFittingType>
209 template<
typename OtherFittingType>
224 void Load(
const std::string& filename);
231 void Save(
const std::string& filename)
const;
246 const std::vector<arma::vec>&
Means()
const {
return means; }
271 double Probability(
const arma::vec& observation)
const;
281 const size_t component)
const;
306 double Estimate(
const arma::mat& observations,
307 const size_t trials = 1);
326 double Estimate(
const arma::mat& observations,
327 const arma::vec& probabilities,
328 const size_t trials = 1);
346 void Classify(
const arma::mat& observations,
347 arma::Col<size_t>& labels)
const;
360 const std::vector<arma::vec>&
means,
361 const std::vector<arma::mat>& covars,
362 const arma::vec&
weights)
const;
375 #include "gmm_impl.hpp"