Skip to content

a laboratory for model-based clustering with Gaussian mixture models

Notifications You must be signed in to change notification settings

ka-bu/gmm-laboratory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GMM Laboratory

a laboratory for model based clustering with Gaussian mixture models

gmmlab

  • automatic evaluation with respect to a large number of data sets (testlab)

Generation of Artificial Data Sets

We generate data sets by drawing points according to randomly generated GMMs. However, we control the following four properties of the GMMs:

  1. Gaussian components can either be spherical or elliptical. We describe the eccentricity of the k-th covariance matrix by

    where denotes the d-th eigenvalue of the k-th covariance matrix.

  2. Components can have different sizes, in terms of the smallest eigenvalue of the corresponding covariance matrices.

  3. The components can have (very) different or uniform mixture weights.

  4. The components can overlap more or less. Following the work of [Sanjoy Dasgupta: Learning Mixtures of Gaussians. FOCS 1999: 634-644], we define the separation parameter as follows:

separation

With these properties of a GMMs in mind, we generate the parameters of a GMM as follows: Initially,we draw K mean vectors independently uniformly at random from a cube with a fixed side length. For the weights, we fix some weight constant W ≥ 0, construct a set of weights

and assign these weights randomly to the components. To control the sizes and the eccentricity, we fix a minimum and maximum eigenvalue and draw the remaining values uniformly at random from the interval between them. Then, we draw a random orthonormal matrix Q and set .
Finally, the mean vectors are scaled as to fit the predefined separation parameter c.

Getting Started

Requirements

  • Compiler: gcc 4.7.1 (or higher)
  • Eigen3
    • available at http://eigen.tuxfamily.org
    • download and unzip Eigen3.1.4 (or higher)
    • copy subfolder "Eigen" somewhere where the compiler can find it, e.g., in /usr/local/include/
  • GLFW
   cd GLFWfolder
   cmake . 
   make
   sudo make install
  cd AntTweakBar/src
  make 
  • copy header files from AntTweakBar/include e.g. to /usr/local/include

  • copy libraries from AntTweakBar/lib e.g. to /usr/local/lib

  • premake4

Compile & Run

Sourcecode provided on this webpage comes without any warranty. Use at your own risk.

premake4 gmake 
cd build
make gmmlab
make testlab

./gmmlab --config config/gmmlab/gmmlab.cfg

About

a laboratory for model-based clustering with Gaussian mixture models

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages