gmm | R Documentation |
This function creates a Gaussian mixture model as an object of S3 class
gmm
. A Gaussian mixture model is a weighted sum of multivariate
Gaussian distributions:
p(x) = ∑_{i = 1}^M α_i \mathcal{N}(x | μ_i, Σ_i)
where α_i is the ith mixture proportion such that
α_i > 0 and ∑_{i = 1}^M α_i = 1, μ_i the
mean vector and Σ_i the covariance matrix of the ith mixture
component (Bilmes, 1998). Since conditional distributions can be derived from
joint distributions, the gmm
class is also used to work with
conditional Gaussian mixture models (see function conditional
to explicit their parameters). Finally, note that a one-component Gaussian
mixture model can be created with function add_var
(by passing
NULL
as argument gmm
), which allows to quickly initialize a
gmm
object that can be passed to a learning function.
gmm(alpha, mu, sigma, var = rownames(mu))
alpha |
A positive numeric vector containing the mixture proportions. If the sum of these proportions is not 1, a normalization is performed by dividing them by this sum. |
mu |
A numeric matrix containing the mean vectors bound by column. |
sigma |
A list containing the covariance matrices. |
var |
A character vector containing the variable names (by default the
row names of |
A list of class gmm
containing the elements alpha
,
mu
and sigma
passed as arguments (completed with the variable
names passed as argument var
).
Bilmes, J. A. (1998). A Gentle Tutorial of the EM Algorithm and its Application to Parameter Estimation for Gaussian Mixture and Hidden Markov Models. Technical report, International Computer Science Institute.
gmbn
, gmdbn
gmm_1 <- gmm(alpha = c(0.2, 0.5, 0.3), mu = matrix(c(109, 91, 44, 160, 41, 99, 87, 27, 173, 40, 86, 65, 35, 161, 40), nrow = 5), sigma = list(matrix(c(208, 240, 32, 17, -6, 240, 378, 40, 55, -38, 32, 40, 15, -2, 1, 17, 55, -2, 47, -13, -6, -38, 1, -13, 127), nrow = 5), matrix(c(242, 270, 82, 10, 49, 270, 363, 83, 44, 19, 82, 83, 38, -2, 15, 10, 44, -2, 45, -7, 49, 19, 15, -7, 137), nrow = 5), matrix(c(109, 102, 41, 11, 29, 102, 128, 34, 38, 10, 41, 34, 36, -9, 16, 11, 38, -9, 56, -5, 29, 10, 16, -5, 138), nrow = 5)), var = c("WAIST", "WEIGHT", "FAT", "HEIGHT", "AGE"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.