1: Input: Data matrix (D) |
No. of row clusters (κ) |
No. of column clusters (ℓ) |
No. of optimized co-clusters (K) |
2: Output:: A set of K co-clusters ({X}) |
3: Procedure:
|
4: Step 1 : initialization |
5: i ← 1, j ← 1 |
6: ρ(g) ← i, ∀
|
7: γ(c) ← j, ∀
|
8: while
i < κ
or
j < ℓ do
|
9: if
i < κ
then
|
10: i ← i + 1 |
11:
|
12: Partition
α using bisecting clustering algorithm |
13: end if
|
14: if
j < ℓ then
|
15: j ← j + 1 |
16:
|
17: Partition
β using bisecting clustering algorithm |
18: end if
|
19: end while
|
20: Step 2 : core co_clustering |
21: repeat
|
22: / * Row clustering * / |
23: for
a = 1 : M
do
|
24: ρ(a) = arg maxu∈{−κ,…,−1,0,1,…,κ}
HP(ρ(a) = u, γ) |
25: end for
|
26: / * Column clustering * / |
27: for
b = 1 : N
do
|
28: γ(b) = arg maxb∈{0,1,…,ℓ}
HP(ρ, γ(b) = v) |
29: end for
|
30: until convergence |
31: Step 3 : Merging similar co_clusters and refinement |
32: Step 4 : Pruning |