# \donttest{
## Toy example using a simple partially-labelled dataset
set.seed(1)
## 1) Construct an n x (p+2) partially-labelled dataset:
## first p columns = features, then 'missing' and 'z'
n <- 100; p <- 2; g <- 2
X <- matrix(rnorm(n * p), nrow = n, ncol = p)
## missing: 0 = labelled, 1 = unlabelled
missing <- rbinom(n, size = 1, prob = 0.3)
## z: observed class labels for labelled rows, NA for unlabelled
z <- rep(NA_integer_, n)
z[missing == 0] <- sample(1:g, sum(missing == 0), replace = TRUE)
sim_dat <- data.frame(X, missing = missing, z = z)
## 2) Warm-up initialisation using the complete-data initializer
init <- EM_FMM_SemiSupervised_Complete_Initial(
data = sim_dat,
g = g,
ncov = 1
)
## 3) Run the main EM algorithm (small number of iterations)
fit <- EM_FMM_SemiSupervised(
data = sim_dat,
g = g,
init_res = init,
ncov = 1,
max_iter = 5,
verbose = FALSE
)
str(fit)
# }
Run the code above in your browser using DataLab