### Splitting modes (gmix_kurt.m)

In a method proposed by N. Vlassis and A. Likas [54], the number of modes in a Gaussian mixture is determined by monitoring the weighted kurtosis for each mode. Putting their equation for one-dimensional in our notation, Vlassis et al define

where

If is too high for any mode , they split the mode into two. We modify this for higher dimension and use the skew in addition to the kurtosis. Extending to higher dimension is done by projecting each data sample onto the -th principal axis of in turn. Let where is the -th column of , obtained from the SVD of (see discussion in section 13.2.5). Thus, for each ,
1. Let

2. Let

3. Let

where

Now, if , for any , split mode . Split the mode by creating modes at

and

where is the -th singular value of . The same covariance is used for each new mode. Of course, the decision of whether to split or not depends on the mixing proportion as well. No splitting occurs if is too small.

In the following example, we create data with a gap in it. We begin iterating with a single mode. The kurtosis/skew algorithm above is able to assign modes until it is finally happy after 8 modes (Figure 13.5).

The calling syntax for software/gmix_kurt.m is
	gparm = gmix_kurt(gparm,x,[kurt_thresh],[debug]);

The optional threshold parameter (default=1.0) allows control over splitting. A higher threshold is less likely to split. The optional debug parameter, if set to 1, will print out kurtosis and skew information.

Baggenstoss 2017-05-19