In a method proposed by N. Vlassis and A. Likas
, 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
Splitting modes (gmix_kurt.m)
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
is the -th column of , obtained
from the SVD of
(see discussion in section 13.2.5).
Thus, for each ,
, for any , split mode .
Split the mode by creating modes at
where is the -th singular value of
. The same covariance
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
Results of bottom up PDF estimation.
One mode (left), two modes (center), and
after convergence at 8 modes (right).
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.