# Règle d'association

Dans le domaine du data mining la recherche des règles d'association est une méthode populaire étudiée d'une manière approfondie dont le but est de découvrir des relations ayant un intérêt pour le statisticien entre deux ou plusieurs variables stockées dans de très importantes bases de données. Piatetsky-Shapiro présentent des règles d'association extrêmement fortes découvertes dans des bases de données en utilisant différentes mesures d’intérêt. En se basant sur le concept de relations fortes, Rakesh Agrawal et son équipe présente des règles d'association dont le but est de découvrir des similitudes entre des produits dans des données saisies sur une grande échelle dans les systèmes informatiques des points de vente des chaînes de supermarchés. Par exemple, une règle découverte dans les données de ventes dans un supermarché pourrait indiquer qu'un client achetant des oignons et des pommes de terre simultanément, serait susceptible d'acheter un hamburger. Une telle information peut être utilisée comme base pour prendre des décisions marketing telles que par exemple des promotions ou des emplacements bien choisis pour les produits associés. En plus des exemples ci-dessus concernant le panier des ménages, les règles d'association sont employées aujourd'hui dans plusieurs domaines incluant celui de la fouille du web, de la détection d'intrusion et de la bio-informatique.

## Histoire

Le concept de règle d'association a été popularisé, en particulier, par un article de Rakesh Agrawal de 1993. Mais il est possible que cette notion ait été découverte sous le nom de GUHA en 1966 par Petr Hájek et ses collègues.

## Principes
### Définition

Une règle d'association peut être définie formellement comme ceci$^,$ :
* Définition : Soit $\mathrm {I} =\left\{i_{1},i_{2},...,i_{m}\right\}$ un ensemble d'indices (items) et $\mathrm {T} =\left\{t_{1},t_{2},...,t_{n}\right\}$ un ensemble de transactions, telles que $t_{i}$ contient un sous-ensemble de $\mathrm {I}$ (ie $t_{i}\subseteq \mathrm {I}$). Une règle d'association, qui peut-être vraie ou fausse, s'exprime sous la forme :
$\mathrm {X} \rightarrow Y$
$\mathrm {X} \in \mathrm {T} ,~Y\in \mathrm {T} ,$
$\mathrm {X} \cap Y=\emptyset$

### Notions utiles

Pour un sous-ensemble $X$ d'indices $X\subseteq \mathrm {I}$ (appelé itemset) :
* Le recouvrement ou la couverture de $X$ (dans $T$) est l'ensemble des transactions observées contenant $X$ : $\mathrm {K} _{T}{\biglX{\bigr )}=\left\{k={1,2,..n}|X\subseteq t_{k}\right\}$.
On remarquera que $\mathrm {K} _{T}{\biglX\cup Y{\bigr )}=\mathrm {K} _{T}{\biglX{\bigr )}\cap \mathrm {K} _{T}{\biglY{\bigr )}$, traduisant le fait que $X\cup Y\subseteq t$ si et seulement si $X\subseteq t$ et $Y\subseteq t$.
* Le compteur de support (« support count ») de $\mathrm {X}$ dans $\mathrm {T}$ est le nombre de transactions de $\mathrm {T}$ qui contiennent $\mathrm {X}$. On le note $\mathrm {X} .count=|\mathrm {K} _{\mathrm {T} }{\bigl\mathrm {X} {\bigr )}|$ .
* Le support (« support ») est alors la proportion des transactions de $\mathrm {T}$ contenant $\mathrm {X}$, soit $Supp(\mathrm {X} )={\frac {\mathrm {X} .count}{Card(\mathrm {T} )}}$ . Celui-ci peut être vu comme une estimation de la probabilité $\Pr(\mathrm {X} )$.
* La force d'une règle d'association est mesurée par son indice de support et son indice de confiance.
** L'indice de support (« support ») d'une règle $\mathrm {X} \rightarrow Y$ est défini par la proportion de transactions de $\mathrm {T}$ qui contiennent $\mathrm {X} \cap Y$ (à la fois X et Y, et non X ou Y), soit $Supp(\mathrm {X} \cap Y)$. Il s'agit donc d'une estimation de la probabilité $\Pr(\mathrm {X} \cap Y)$.
** L'indice de confiance (« confidence ») d'une règle $\mathrm {X} \rightarrow Y$ est défini par la proportion de transactions de $\mathrm {T}$ contenant $\mathrm {X}$ qui contiennent aussi $Y$, soit ${\frac {(\mathrm {X} \cap Y).count}{\mathrm {X} .count}}$. Il peut être vu comme une estimation de la probabilité conditionnelle $\Pr(Y|\mathrm {X} )$. Remarque : $Conf(\mathrm {X} \rightarrow Y)={\frac {Supp(\mathrm {X} \cap Y)}{Supp(\mathrm {X} )}}$.
* Le « lift » d'une règle $\mathrm {X} \rightarrow Y$ mesure l'amélioration apportée par la règle d'association par rapport à un jeu de transactions aléatoire (où X et Y seraient indépendants). Il est défini par ${\frac {Supp(\mathrm {X} \cap Y)}{Supp(\mathrm {X} ).Supp(Y)}}$. Un « lift » supérieur à 1 traduit une corrélation positive de X et Y, et donc le caractère significatif de l'association.

## Algorithmes
### Apriori

REQUIRE : Un support seuil S
ENSURE : La liste des itemsets fréquents
L1 ‹— Liste des items dont le support est supérieur à S; i ‹— i+1;
REPEAT
UNTIL L1 ==

### Eclat

Eclat est un algorithme de recherche d'associations utilisant les intersections d'ensembles.

### FP-growth

FP-growth (frequent pattern growth) utilise une structure d'arbre (FP-tree) pour stocker une forme compressée d'une base de données. FP-growth adopte une stratégie de découpage pour décomposer les tâches d'exploration de données et les bases de données. Il utilise une méthode « pattern fragment growth » pour éviter le coûteux processus de génération et de test des candidats, utilisé par Apriori.

### GUHA procedure ASSOC

GUHA (« General Unary Hypotheses Automaton ») est une méthode de génération automatique d'hypothèses à partir de données empiriques, c'est donc une méthode d'exploration de données. La procédure ASSOC est une méthode GUHA qui explore les données en vue de trouver rapidement des règles d'association généralisées en utilisant des structures de données en tableau (« Bit array »).

### One-attribute-rule

L'idée qui préside à la conception de l'algorithme OneR (one-attribute-rule) consiste à trouver un attribut à utiliser qui fait le moins d'erreurs de prédiction possibles. Peter Ross à découvert que les règles simples avec un seul attribut dans la condition fonctionnent réellement bien.

### OPUS

OPUS est un algorithme efficace pour la recherche de règles d'association, qui, par opposition à d'autres, ne nécessite pas de contraintes anti-monotones et monotones tels que le support minimum. Initialement utilisé pour trouver des règles pour une conclusion donnée$^,$, il a par la suite été étendu pour trouver des règles avec n'importe quel item comme conclusion. Le moteur de recherche OPUS est la technologie centrale dans le populaire système de recherche d'association Magnum Opus.