Calculando Métricas-Chave de Mineração
Deslize para mostrar o menu
Suporte: Definição, Cálculo e Interpretação
Suporte mede com que frequência um item ou conjunto de itens específico aparece em um conjunto de dados de transações.
Matematicamente, o suporte para um conjunto de itens é a proporção de transações que contêm todos os itens desse conjunto. Em um contexto de varejo, o suporte ajuda a entender quão comum é uma combinação de produtos entre todas as compras.
Support(itemset) = Number of transactions containing itemset / Total number of transactions
Um valor de suporte mais alto significa que o conjunto de itens é mais prevalente nos seus dados, tornando-o um candidato para análises adicionais ou promoções. Por exemplo, se "bread and butter" aparecem juntos em 30 de 100 transações, o suporte para {"bread", "butter"} é 0.3.
Confiança: Fórmula, Significado e Uso Prático
Confiança avalia a probabilidade de que um cliente que compra o item A também compre o item B.
É calculada como a razão entre o número de transações que contêm tanto A quanto B e o número de transações que contêm apenas A.
Confiança(A ⇒ B) = Número de transações contendo tanto A quanto B / Número de transações contendo A
Na prática, a confiança indica o quão confiável é a regra "se A, então B". Se a confiança for alta, é possível ter mais certeza de que clientes que compram A também comprarão B, o que é útil para recomendações direcionadas ou marketing.
Lift: Derivação, Medição e Importância
Lift avalia o quanto é mais provável que o item B seja comprado quando o item A é adquirido, em comparação com a hipótese de que as compras de A e B sejam eventos independentes.
É calculado dividindo a confiança da regra pelo suporte do consequente (B):
Lift(A ⇒ B) = Confiança(A ⇒ B) / Suporte(B)
Um valor de lift igual a 1 implica ausência de associação (independência), maior que 1 indica uma associação positiva e menor que 1 sugere uma associação negativa. O lift é fundamental porque ajusta para a popularidade do consequente, ajudando a distinguir relações realmente significativas de coincidências.
Exemplo Prático: Calculando Suporte, Confiança e Lift
Suponha que você tenha os seguintes dados de transações:
- Transação 1: Milk, Bread;
- Transação 2: Milk, Diaper, Beer, Bread;
- Transação 3: Milk, Diaper, Beer, Cola;
- Transação 4: Bread, Butter.
Vamos calcular as métricas para a regra: Milk ⇒ Bread.
-
Support(Milk, Bread): Aparece nas Transações 1 e 2 (2 de 4) ⇒ 0.5;
-
Support(Milk): Aparece nas Transações 1, 2 e 3 (3 de 4) ⇒ 0.75;
-
Support(Bread): Aparece nas Transações 1, 2 e 4 (3 de 4) ⇒ 0.75.
-
Confidence(Milk ⇒ Bread): Support(Milk, Bread) / Support(Milk) = 0.5 / 0.75 = 0.6667;
-
Lift(Milk ⇒ Bread): Confidence(Milk ⇒ Bread) / Support(Bread) = 0.6667 / 0.75 = 0.8889.
Isso significa que, embora "Milk" e "Bread" frequentemente apareçam juntos, comprar "Milk" não aumenta a probabilidade de comprar "Bread" em relação ao padrão de base.
123456789101112131415161718192021222324252627282930import pandas as pd from mlxtend.preprocessing import TransactionEncoder # Sample transaction data data = [ ['Milk', 'Bread'], ['Milk', 'Diaper', 'Beer', 'Bread'], ['Milk', 'Diaper', 'Beer', 'Cola'], ['Bread', 'Butter'] ] # Converting to DataFrame with one-hot encoding te = TransactionEncoder() te_ary = te.fit(data).transform(data) df = pd.DataFrame(te_ary, columns=te.columns_) # Calculating support support_milk = df['Milk'].mean() support_bread = df['Bread'].mean() support_milk_bread = (df['Milk'] & df['Bread']).mean() # Calculating confidence for rule: Milk => Bread confidence = support_milk_bread / support_milk # Calculating lift for rule: Milk => Bread lift = confidence / support_bread print(f"Support (Milk & Bread): {support_milk_bread:.2f}") print(f"Confidence (Milk ⇒ Bread): {confidence:.2f}") print(f"Lift (Milk ⇒ Bread): {lift:.2f}")
Este código demonstra como calcular as principais métricas de regras de associação—suporte, confiança e lift—utilizando um pequeno conjunto de dados de transações. Veja como cada parte funciona:
-
Preparar os Dados de Transação:
- A lista
datacontém as transações, cada uma como uma lista de itens comprados; - Cada sublista representa uma transação (cesta) de um cliente.
- A lista
-
One-Hot Encoding das Transações:
- O código utiliza o
TransactionEncoderda bibliotecamlxtendpara converter a lista de listas de itens em um formato adequado para análise; - O método
fitaprende todos os itens únicos, e otransformcria um array booleano (True se o item está presente na transação, False caso contrário); - Esse array é convertido em um DataFrame do pandas, onde cada coluna é um item e cada linha é uma transação.
- O código utiliza o
-
Calcular o Suporte:
support_milk = df['Milk'].mean()calcula a proporção de transações que contêm "Milk";support_bread = df['Bread'].mean()calcula a proporção que contém "Bread";support_milk_bread = (df['Milk'] & df['Bread']).mean()calcula a proporção de transações que contêm tanto "Milk" quanto "Bread" (a interseção das duas colunas).
-
Calcular a Confiança:
confidence = support_milk_bread / support_milkcalcula a confiança para a regra "Milk ⇒ Bread";- Isso mede com que frequência "Bread" é comprado quando "Milk" é comprado.
-
Calcular o Lift:
lift = confidence / support_breadcalcula o lift para a regra;- O lift compara a confiança observada com a confiança esperada caso as compras de "Milk" e "Bread" fossem independentes.
-
Imprimir e Interpretar os Resultados:
- O código imprime os valores de suporte, confiança e lift para "Milk & Bread";
- Um suporte de 0,50 significa que "Milk" e "Bread" são comprados juntos em metade das transações;
- Uma confiança de 0,67 significa que, quando "Milk" é comprado, "Bread" também é comprado em dois terços das vezes;
- Um lift de 0,89 sugere que comprar "Milk" na verdade torna a compra de "Bread" ligeiramente menos provável em comparação ao acaso (já que lift < 1).
1. Suponha que em um conjunto de dados com 1.000 transações, 150 transações contenham tanto "apples" quanto "bananas". Qual é o suporte para o conjunto de itens {"apples", "bananas"}?
2. Qual afirmação melhor distingue confiança de lift na mineração de regras de associação?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo