tune_K {TensorClustering} | R Documentation |
Select the number of clusters K
in DEEM
Description
Select the number of clusters K
along with tuning parameter lambda
through BIC in DEEM.
Usage
tune_K(X, seqK, seqlamb, initial = TRUE, vec_x = NULL)
Arguments
X |
Input tensor (or matrix) list of length |
seqK |
A sequence of user-specified number of clusters. |
seqlamb |
A sequence of user-specified |
initial |
Whether to initialize algorithm with K-means clustering. Default value is |
vec_x |
Vectorized tensor data. Default value is |
Details
The tune_K
function runs tune_lamb
function length(seqK)
times to choose the tuning parameter and number of clusters
simultaneously. Let
be the output of
DEEM
with the tuning parameter and number of clusters fixed at and
respectively,
tune_K
looks for the values of and
that minimizes
where is the set of nonzero elements in
. The
tune_K
function intrinsically selects the initial point and return the optimal estimated labels.
Value
opt_K |
Selected number of clusters that leads to optimal BIC. |
opt_lamb |
Tuned |
Krank |
A selection summary. |
Author(s)
Kai Deng, Yuqing Pan, Xin Zhang and Qing Mai
References
Mai, Q., Zhang, X., Pan, Y. and Deng, K. (2021). A Doubly-Enhanced EM Algorithm for Model-Based Tensor Clustering. Journal of the American Statistical Association.
See Also
Examples
dimen = c(5,5,5)
nvars = prod(dimen)
K = 2
n = 100
sigma = array(list(),3)
sigma[[1]] = sigma[[2]] = sigma[[3]] = diag(5)
B2=array(0,dim=dimen)
B2[1:3,1,1]=2
y = c(rep(1,50),rep(2,50))
M = array(list(),K)
M[[1]] = array(0,dim=dimen)
M[[2]] = B2
vec_x=matrix(rnorm(n*prod(dimen)),ncol=n)
X=array(list(),n)
for (i in 1:n){
X[[i]] = array(vec_x[,i],dim=dimen)
X[[i]] = M[[y[i]]] + X[[i]]
}
mytune = tune_K(X, seqK=2:4, seqlamb=seq(0.01,0.1,by=0.01))