gmm.GMM( K, itr=100, name="gmm", category=None, mode="learn" )
gmm.GMM
is a module for unsupervised classification based on a Gaussian mixture model.
It computes the probabilities that each data element is classified into each class and the means of the distributions and sends them to the connected modules.
Parameter | Type | Description |
---|---|---|
K | int | Number of clusters |
itr | int | Number of iterations |
name | string | Module name |
category | array | Correct class labels |
mode | string | Choose from learning mode (“learn”) or recognition mode (“recog”) |
module{n}_gmm
directory is created.
The following files are saved in the directory ({mode} contains the selected mode (learn or recog)):
model.pickle
: The model parameters.acc_{mode}.txt
: The accuracy computed if the optional argument category
is set.class_{mode}.txt
: The classes into which each data element is classified.mu_{mode}.txt
: The means of the distributions of each class.Pdz_{mode}.txt
: The probabilities that each data element is classified into a class.# import necessary modules
import serket as srk
import gmm
import numpy as np
data = np.loadtxt( "data.txt" ) # load data
data_category = np.loadtxt( "category.txt" ) # load correct labels
# define the modules
obs = srk.Observation( data ) # send the observation to the connected module
gmm1 = gmm.GMM( 10, catogory=data_category ) # classify into ten classes
# construct the model
gmm1.connect( obs ) # connect obs to gmm1
gmm1.update() # train gmm1