Package csb :: Package statistics :: Module mixtures :: Class GaussianMixture
[frames] | no frames]

Class GaussianMixture

source code

object --+
         |
        GaussianMixture
Known Subclasses:

Gaussian mixture model for multi-dimensional data.

Instance Methods
 
__init__(self, X, K, train=True, axis=None)
x.__init__(...) initializes x; see help(type(x)) for signature
source code
 
anneal(self, betas)
Deterministic annealing
source code
numpy array
datapoint(self, m, k)
Training point number m as if it would belong to component k
source code
 
del_cache(self)
Clear model parameter cache (force recalculation)
source code
 
e_step(self, beta=1.0)
Expectation step for EM
source code
 
em(self, n_iter=100, eps=1e-30)
Expectation maximization
source code
 
estimate_means(self)
Update means from current model and samples
source code
 
estimate_scales(self, beta=1.0)
Update scales from current model and samples
source code
GaussianMixture subclass
increment_K(self, train=True)
Split component with largest sigma
source code
 
m_step(self)
Maximization step for EM
source code
float in interval [0.0, 1.0]
overlap(self, other)
Similarity of two mixtures measured in membership overlap
source code
 
randomize_means(self)
Pick K samples from X as means
source code
 
randomize_scales(self, ordered=True)
Random scales initialization
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Methods
GaussianMixture subclass
new(cls, X, K=0)
Factory method with optional K.
source code
generator
series(cls, X, start=1, stop=9)
Iterator with mixture instances for K in range(start, stop)
source code
Class Variables
  ALPHA_SIGMA = 0.0001
  BETA_SIGMA = 0.01
  MIN_SIGMA = 0.0
  use_cache = True
Properties
float BIC
Bayesian information criterion, calculated as BIC = M * ln(sigma_e^2) + K * ln(M)
int K
Number of components
int M
Number of data points
int N
Length of component axis
(N, K) numpy array delta
Squared "distances" between data and components
int dimension
Dimensionality of the mixture domain
float log_likelihood
Log-likelihood of the extended model (with indicators)
float log_likelihood_reduced
Log-likelihood of the marginalized model (no auxiliary indicator variables)
(K, ...) numpy array means
(N,) numpy array membership
Membership array
(K, N) numpy array scales
(K,) numpy array sigma
Component variations
(K,) numpy array w
Component weights

Inherited from object: __class__

Method Details

__init__(self, X, K, train=True, axis=None)
(Constructor)

source code 

x.__init__(...) initializes x; see help(type(x)) for signature

Parameters:
  • X ((M,...) numpy array) - multi dimensional input vector with samples along first axis
  • K (int) - number of components
  • train (bool) - train model
  • axis (int) - component axis in X
Overrides: object.__init__

anneal(self, betas)

source code 

Deterministic annealing

Parameters:
  • betas (iterable of floats) - sequence of inverse temperatures

e_step(self, beta=1.0)

source code 

Expectation step for EM

Parameters:
  • beta (float) - inverse temperature

em(self, n_iter=100, eps=1e-30)

source code 

Expectation maximization

Parameters:
  • n_iter (int) - maximum number of iteration steps
  • eps (float) - log-likelihood convergence criterion

estimate_scales(self, beta=1.0)

source code 

Update scales from current model and samples

Parameters:
  • beta (float) - inverse temperature

increment_K(self, train=True)

source code 

Split component with largest sigma

Returns: GaussianMixture subclass
new instance of mixture with incremented K

new(cls, X, K=0)
Class Method

source code 

Factory method with optional K. If K=0, guess best K according to BIC.

Parameters:
  • X ((M,...) numpy array) - multi dimensional input vector with samples along first axis
Returns: GaussianMixture subclass
Mixture instance

overlap(self, other)

source code 

Similarity of two mixtures measured in membership overlap

Parameters:
Returns: float in interval [0.0, 1.0]
segmentation overlap

series(cls, X, start=1, stop=9)
Class Method

source code 

Iterator with mixture instances for K in range(start, stop)

Parameters:
  • X ((M,...) numpy array)
  • stop (int)
  • start (int)
Returns: generator

Property Details

BIC

Bayesian information criterion, calculated as BIC = M * ln(sigma_e^2) + K * ln(M)

Get Method:
unreachable.BIC(self) - Bayesian information criterion, calculated as BIC = M * ln(sigma_e^2) + K * ln(M)
Type:
float

K

Number of components

Get Method:
unreachable.K(self) - Number of components
Type:
int

M

Number of data points

Get Method:
unreachable.M(self) - Number of data points
Type:
int

N

Length of component axis

Get Method:
unreachable.N(self) - Length of component axis
Type:
int

delta

Squared "distances" between data and components

Get Method:
unreachable.delta(self) - Squared "distances" between data and components
Type:
(N, K) numpy array

dimension

Dimensionality of the mixture domain

Get Method:
unreachable.dimension(self) - Dimensionality of the mixture domain
Type:
int

log_likelihood

Log-likelihood of the extended model (with indicators)

Get Method:
unreachable.log_likelihood(self) - Log-likelihood of the extended model (with indicators)
Type:
float

log_likelihood_reduced

Log-likelihood of the marginalized model (no auxiliary indicator variables)

Get Method:
unreachable.log_likelihood_reduced(self) - Log-likelihood of the marginalized model (no auxiliary indicator variables)
Type:
float

means

Get Method:
unreachable.means(self)
Set Method:
unreachable.means(self, means)
Type:
(K, ...) numpy array

membership

Membership array

Get Method:
unreachable.membership(self) - Membership array
Type:
(N,) numpy array

scales

Get Method:
unreachable.scales(self)
Set Method:
unreachable.scales(self, scales)
Type:
(K, N) numpy array

sigma

Component variations

Get Method:
unreachable.sigma(self) - Component variations
Type:
(K,) numpy array

w

Component weights

Get Method:
unreachable.w(self) - Component weights
Type:
(K,) numpy array