[mlpack-svn] [MLPACK] #211: Suggested additional functionality to GMM

MLPACK Trac trac at coffeetalk-1.cc.gatech.edu
Mon Mar 26 15:43:00 EDT 2012


#211: Suggested additional functionality to GMM
-----------------------------------+----------------------------------------
  Reporter:  Adam                  |        Owner:     
      Type:  enhancement           |       Status:  new
  Priority:  major                 |    Milestone:     
 Component:  mlpack                |   Resolution:     
  Keywords:  GMM, EM, IGMM, DPGMM  |     Blocking:     
Blocked By:                        |  
-----------------------------------+----------------------------------------

Comment (by rcurtin):

 The way to do this would be to modify the GMM class to take a template
 class for the clustering:

 {{{
 class GMM {
   // ...

   template<typename ClusteringMethod = EMCluster> // or some similar name
   void Estimate(const arma::mat& observations);

   // ...
 }
 }}}

 and then in the class,

 {{{
 template<typename ClusteringMethod>
 void GMM::Estimate(const arma::mat& observations)
 {
   // All of the hard work is done by the clustering method.
   // Maybe some other administrivia goes in this method.
   // We should have to tell the clustering method where to store its
 results.
   ClusteringMethod::Cluster(observations, means, covariances, weights);
 }
 }}}

 or something similar to that.  I can easily split off the EM algorithm
 into its own file, but I don't have time to implement the IGMM training as
 a separate class, unfortunately.  If you are interested in doing that
 implementation, we'll just have to agree on a uniform API call to
 `ClusteringMethod::Cluster()` and then you'll need to write the
 `IGMMClustering` class (or whatever name might suit it better) and I'll
 take care of integrating it all.

 There is a very old L2 loss implementation of GMM training floating around
 this lab somewhere; if we move forward with this I'll have to see if I can
 dig it out of its grave.

-- 
Ticket URL: <http://trac.research.cc.gatech.edu/fastlab/ticket/211#comment:1>
MLPACK <www.fast-lab.org>
MLPACK is an intuitive, fast, and scalable C++ machine learning library developed by the FASTLAB at Georgia Tech under Dr. Alex Gray.


More information about the mlpack-svn mailing list