Description Usage Arguments Details Value Author(s) References See Also Examples
Select the number of clusters K
along with tuning parameter lambda
through BIC in DEEM.
1 |
X |
Input tensor (or matrix) list of length n, where n is the number of observations. Each element of the list is a tensor or matrix. The order of tensor can be any positive integer not less than 2. |
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 |
The tune_K
function runs tune_lamb
function length(seqK)
times to choose the tuning parameter λ and number of clusters K simultaneously. Let \widehat{\bm{θ}}^{\{λ,K\}} be the output of DEEM
with the tuning parameter and number of clusters fixed at λ and K respectively, tune_K
looks for the values of λ and K that minimizes
\mathrm{BIC}(λ,K)=-2∑_{i=1}^n\log(∑_{k=1}^K\widehat{π}^{\{λ,K\}}_kf_k(\mathbf{X}_i;\widehat{\bm{θ}}_k^{\{λ,K\}}))+\log(n)\cdot |\widehat{\mathcal{D}}^{\{λ,K\}}|,
where \widehat{\mathcal{D}}^{\{λ,K\}}=\{(k, {\mathcal{J}}): \widehat b_{k,{\mathcal{J}}}^{λ} \neq 0 \} is the set of nonzero elements in \widehat{\bm{B}}_2^{\{λ,K\}},…,\widehat{\bm{B}}_K^{\{λ,K\}}. The tune_K
function intrinsically selects the initial point and return the optimal estimated labels.
opt_K |
Selected number of clusters that leads to optimal BIC. |
opt_lamb |
Tuned |
Krank |
A selection summary. |
Kai Deng, Yuqing Pan, Xin Zhang and Qing Mai
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.