
2  L’algorithme Croeuc 
Dans la suite, la matrice des données est définie par x = { j
i
x; i ∈ I et j ∈ J}, où I est l'ensemble des 
n  instances  (lignes,  objets,  observations),  et  J  est  l'ensemble  des  d  attributs  (colonnes,  attributs).  On 
cherche à optimiser un critère W(z, w, g), où z = (z1,…,zs) est une partition de I en s classes, w = (w1,…,wm) 
est une partition de J en m classes et g = ( l
k
g) est une matrice s x m, qui peut être vue comme un résumé 
de la matrice de données x. Une définition plus précise de ce résumé et du critère W dépendra de la nature 
des données. La recherche des partitions optimales z et w est effectuée en utilisant un algorithme itératif. 
Lorsque les données sont continues, en prenant la somme des distances euclidiennes au carré comme une 
mesure de la déviation entre la matrice x, et la structure décrite par z, w et g, l’algorithme Croeuc consiste 
à  trouver  une  paire  de  partition  (z,  w)  et  le  paramètre  g  correspondant,  tel  que  le  critère  suivant  soit 
minimisé : 
( )
,),,(
1 1
2
∑∑ ∑ ∑
= = ∈ ∈ −= s
k
m
zi wj
k
j
i
k
gxW
l
l
l
gwz  
où  l
k
g est le centre du bloc  l
k
x. Il est facile de voir que pour z et w fixés, la valeur optimale de  l
k
g 
est donnée par la moyenne de tous les  j
i
x du bloc (k,ℓ). Les différentes étapes de Croeuc sont : 
1.  Les  paramètres initiaux (z(0), w(0), g(0)) peuvent être choisis au hasard. 
2.  Calculer (z(q+1), w(q+1), g(q+1)) à partir de (z(q), w(q), g(q)) : 
a.  Calculer (z(q+1), w(q), g(q+0.5)) à partir de (z(q), w(q), g(q)). 
b.  Calculer (z(q+1), w(q+1), g(q+1)) à partir de (z(q+1), w(q), g(q+0.5)). 
3.  Répéter l'étape 2 jusqu'à la convergence 
Dans  les  étapes  2(a)  et  2(b),  pour  trouver  z(q+1)  et  w(q+1)  optimaux,  nous  cherchons  à  minimiser 
alternativement le critère en ligne 
( ) ( )
∑∑∑
= ∈ = −= s
k zi
m
k
i
k
guwW
1 1
2
#/,
l
ll
lwgz , avec 
l
ll
x
uwj
j
i
i
∈
=, et le critère en 
colonne 
( )
( )
∑∑∑
= ∈ = −= m
wj
s
k
k
j
k
kgvzW
1 1
2
#/,
l
l
l
zgw  avec  k
zi
j
i
j
k
x
vk
∈
=. Ici, # représente la cardinalité. L'étape 2(a) 
est effectuée par l'application de l'algorithme k-means, utilisant la matrice n x m ( l
i
u). Alternativement, 
l'étape  2(b)  est  obtenue  par  l'application  de  l'algorithme  k-means  utilisant  cette  fois-ci  la  matrice  s  x  d 
(j
k
v).  Ainsi,  à  la  convergence,  nous  obtenons  des  blocs  homogènes  en  réorganisant  les  lignes  et  les 
colonnes selon les partitions z et w. De cette manière, chaque bloc (k,ℓ), défini par les éléments  j
i
x pour i 
∈ k
z et j ∈ l
w, est caractérisé par  l
k
g.  
L'intérêt  de  cet  algorithme  a  été  mis  en  évidence  par  comparaison  avec  k-means  appliqué 
séparément sur les instances et les attributs [NAD 04]. Par sa simplicité et sa rapidité, cet algorithme peut 
s'appliquer sur des données comparables de grande taille. Malheureusement, il requiert la connaissance du 
nombre de classes en lignes et en colonnes. 
3  L’algorithme Two-way splitting 
Lorsque  les  données  sont  directement  comparables  d'un  attribut  à  un  autre,  Hartigan  [HAR  75] 
propose  un  algorithme  divisif,  Two-way  splitting,  qui  choisit  à  chaque  étape  entre  une  division  de 
l’ensemble des instances et une division de l’ensemble des attributs. Ce choix est basé sur la réduction au 
maximum de l'hétérogénéité du groupe d'instances ou de variables divisé. Afin de respecter les contraintes 
hiérarchiques imposées pour cet algorithme, les divisions effectuées à une étape ne sont jamais remises en 
cause aux étapes suivantes. Cet algorithme ne nécessite pas de savoir à l'avance le nombre de blocs que 
l'on veut obtenir. Il peut être décrit succinctement de la manière suivante :