angle_iteration function

Angle-based iteration

Angle-based iteration

Angle-based iteration for multiway spherical clustering under degree-corrected tensor block model. This function takes the tensor/matrix observation, initial clustering assignment, and a logic variable indicating the symmetry as input. Output is the refined clustering assignment.

angle_iteration(Y, z0, max_iter, alpha1 = 0.01, asymm)

Arguments

  • Y: array/matrix, order-3 tensor/matrix observation
  • z0: a list of vectors, initial clustering assignment; see "details"
  • max_iter: integer, max number of iterations if update does not converge
  • alpha1: number, substitution of degenerate core tensor; see "details"
  • asymm: logic variable, if "TRUE", assume the clustering assignment differs in different modes; if "FALSE", assume all the modes share the same clustering assignment

Returns

a list containing the following:

z a list of vectors recording the estimated clustering assignment

s_deg logic variable, if "TRUE", degenerate estimated core tensor/matrix occurs during the iteration; if "FALSE", otherwise

Details

z0 should be a length 2 list for matrix and length 3 list for tensor observation; observations with non-identical dimension on each mode are only applicable with asymm = T;

When the estimated core tensor has a degenerate slice, i.e., a slice with all zero elements, randomly pick an entry in the degenerate slice with value alpha1.

Examples

test_data = sim_dTBM(seed = 1, imat = FALSE, asymm = FALSE, p = c(50,50,50), r = c(3,3,3), core_control = "control", s_min = 0.05, s_max = 1, dist = "normal", sigma = 0.5, theta_dist = "pareto", alpha = 4, beta = 3/4) initialization <- wkmeans(test_data$Y, r = c(3,3,3), asymm = FALSE) iteration <- angle_iteration(test_data$Y, initialization$z0, max_iter = 20, asymm = FALSE)
  • Maintainer: Jiaxin Hu
  • License: GPL (>= 2)
  • Last published: 2023-06-18

Useful links