L'extraction de concepts par treillis de Galois sur les relations binaires peut être vu comme une spécialisation d'une procédure d'élaboration des intents et extents plus générale.
Lorsqu'on traite un contexte binaire, chaque objet est décrit par la liste de ses attributs, soit sous forme de liste, soit sous forme d'un vecteur binaire ou logique indiquant pour chaque attribut présence ou absence. Les opérations de fermeture sont intersection pour les intentions et union pour les extensions.
Lorsqu'on traite un contexte multi-valué, chaque objet est décrit par la modalité de chaque attribut qui lui correspond. Une description est donc un vecteur de modalités, ou une liste de couples attribut-modalité. Souvent, le traitement est réalisé par “scaling” où chaque attribut est transformé en autant de attribut-modalité qu'il a de modalité, et la modalité que possède un objet est signifiée par un '1' dans la colonne attribut-modalité correspondant. Le contexte est ensuite traité comme un contexte binaire.
Lorsqu'on traite un context multi-valué flou, un objet est décrit par une liste de couples (modalité,affinité) pour chaque attribut (ou trait). Ceci peut être structuré comme un contexte multi-valué après scaling, mais avec plusieurs poids répartis sur les attribut-modalité d'un attribut au lieu d'un seul '1' et des '0' sur les autres modalités. Cependant, la structure des données en entrée sera différente car il faut indiquer les poids sur chaque modalité au lieu de prendre '1' (ou 100%) implicitement pour la modalité indiquée dans le cas d'une relation multi-valuée “normale.” Il faut donc définir un format de fichier adéquat. Qui plus est, on peut imaginer que tous les attributs n'auront pas le même nombre de modalités, au quel cas il faudrait aussi passer l'information “nombre de modalités.” Hormis un format XML, on pourrait utiliser soit un un format de ce type (avec une ligne par attribut dans un bloc par objet) :
object_name_1 aff_1_1 aff_1_2 aff_1_3 aff_1_4 // les poids des affinités pour les quatre modalités du premier attribut aff_2_1 aff_2_2 aff_2_3 ....aff_2_10 // les poids des affinités pour les 10 modalités du second attribut ... aff_k_1 // présence ou absence du k-ième attribut // ligne vide entre deux objets pour lisibilité (sinon, on compte les attributs) object_name_2 // début objet suivant
soit grouper par une (ou des) symbole (“démarquer”)
object_name_1 {aff_1_1 aff_1_2 aff_1_3 aff_1_4} { aff_2_1 aff_2_2 aff_2_3 ....aff_2_10} ...{aff_k_1 } object_name_1 aff_1_1 aff_1_2 aff_1_3 aff_1_4 | aff_2_1 aff_2_2 aff_2_3 ....aff_2_10 | ... | {aff_k_1 }
L'opérateur de fermeture à utiliser en premier pour les histogrammes est min-max, qui établit l'enveloppe dans laquelle un histogramme doit rentrer pour que son objet appartienne à l'extension (étendu). Dans une algorithme incrémental comme CbO, on commence avec un premier objet, on ferme son intention (qui ne change rien, min et max pour chaque modalité seront sa valeur pour la modalité), puis ferme l'extension de cette intention : on trouve d'éventuels autres objets qui sont identiques. Ensuite, on étend l'extension avec l'objet le plus proche qui n'est pas encore dans l'extension : on élargit l'intention , puis intègre à l'extension les objets nouvellement qualifiés. Mais on peut vouloir ne pas trop élargir les intentions pour ne s'intéresser qu'aux concepts pas trop généraux, d'où l'idée de contraindre l'élargissement des intentions avec des seuils.
Une intention (pour un attribut histogramme) aurait la forme
max | 10 | 20 | 30 | 20 | 40 |
---|---|---|---|---|---|
min | 0 | 10 | 10 | 0 | 20 |
Le seuil peut être appliqué modalité par modalité, mais il peut aussi être appliqué à la somme des largeurs sur les modalités d'un attribut ou au maximum de celles-ci (ou les deux, pas forcément avec deux mêmes valeurs du seuil).
etre du binaire.