Regras de associação e itens frequentes

Jacques Wainer

O mito das faldas e cerveja

Uma rede de supermercados (normalmente WallMart) usando mineração de dados descobre que há uma estranha correlação entre compra de cerveja e compra de fraldas. Em algumas versões a rede coloca um estande de cerveja ao lado das fraldas. http://www.theregister.co.uk/2006/08/15/beer_diapers/

As técnicas de mineração de regras de associação e de conjunto de itens (itemset) frequentes é que permitem tirar este tipo de conclusão.

Carrinho de compras

neste tipo de problema há um conjunto de itens (itens num supermercado - dado categorico) e há transações que contem um subconjunto dos itens (uma compra).

os itens podem ser paginas num site. a transação são as paginas visitadas em diferentes interações com o site.

o conceito de transação pode não ser localizado no tempo. Pode ser uma pessoa, e os itens aplicativos que ela instalou no seu celular (não necessariamente ao mesmo tempo).

ou pode ser proteinas ativas em diferentes tecidos de diferentes individuos (uma transação é a combinação de tecido e individuo).

Itemsets frequentes

Itemsets frequentes são conjunto de itens que aparecem juntos em pelo menos s% das transações. O número s, que precisa ser fornecido para o algoritmo é chamado de suporte

Vamos assumir as seguintes transações

Se o suporte é 1/3, ou seja queremos conjuntos de itens que aparecem em pelo menos 2 das 6 transações, então (A B) é um dos itemsets frequentes.

(A B) aparece como parte da primeira transação (mas (A B) não é a transação completa) e aparece como “parte” da 4 transação (e neste caso é a transação completa).

Há vários itemsets frequentes:

Portanto é necessario algumas restrições nos itemsets que serão retornados pelos algoritmos

ver https://towardsdatascience.com/how-to-find-closed-and-maximal-frequent-itemsets-from-fp-growth-861a1ef13e21

Regras de associação

Regras de associação A B => C D

onde A B C D são itens. A confiança da regra (c) é a proporção das transações que incluem A B e que também incluem C D. Assim se a confiança da regra acima é 60% a regra pode ser lida como

Regras de associação 60% das pessoas que compraram A e B também compraram C e D

A confiança de uma regra é formalmente

confianca( A B => C D) = \frac{\#(A B C D)}{\#(A B)}

onde \#(A B) é o numero de transações que incluem o itemset (A B).

portanto

confianca( A B => C D) = \frac{suporte(A B C D)}{suporte(A B)}

Como usar um regra de associação A B => C D?

Exemplo

uma enquete de 1000 pessoas sobre que bebida elas tomam (se uma pessoa bebe tanto cafe como cha é uma transação com as 2 bebidas).

café não café total
chá 150 50 200
não chá 650 150 800
total 800 200 1000

a regra \{ \} => Café tem confiança de 80%, isto é 80% das pessoas já bebem café. O fato delas tomarem chá diminue a probabilidade delas tomarem café!.

Medidas de interesse de regras

o lift mede o quanto não independentes são os 2 lados da regra A B => C D.

lift( A B => C D) = \frac{P(A B C D)}{P(A B) P(C D)}

onde P(A B) é a probabilidade de A B que é \#(A B)/n. lift =1 indica que A B e C D são independentes (o que usualmente não é nada interessante)

lift > 1 indica uma correlação positiva entre A B e C D.

Voce quer regras com lift >> 1 (ou muito perto do 0).

qual um valor minimo de lift?

há outras medidas de “quão interessante” é uma regra (um artigo que lista e compara 21 diferentes medidas )

Descobrindo regras de associação

Normalmente, para aplicações não automáticas de regras de associação, exige-se um suporte mínimo (para o itemset), uma confiança minima e talvez um lift mínimo.

Normalmente usa-se um algoritmo para achar itemsets frequentes (portanto que tem suporte mínimo) e destes itemsets gera-se as regras que tem confiança minima e talvez lift minimo.

há vários algoritmos para minerar itens frequentes: a priori, eclat, fp-grow

Regras e itemsets no R

Outras idéias em itens frequentes

Mineração de sequências frequentes

Itemsets minimalmente infrequentes: