Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Calculando Métricas-Chave de Mineração | Fundamentos de Regras de Associação e Análise Transacional
Análise de Cesta de Mercado e Sistemas de Recomendação

Calculando Métricas-Chave de Mineração

Deslize para mostrar o menu

Suporte: Definição, Cálculo e Interpretação

Note
Definiçã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

Note
Definição

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

Note
Definição

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.

123456789101112131415161718192021222324252627282930
import 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:

  1. Preparar os Dados de Transação:

    • A lista data contém as transações, cada uma como uma lista de itens comprados;
    • Cada sublista representa uma transação (cesta) de um cliente.
  2. One-Hot Encoding das Transações:

    • O código utiliza o TransactionEncoder da biblioteca mlxtend para converter a lista de listas de itens em um formato adequado para análise;
    • O método fit aprende todos os itens únicos, e o transform cria 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.
  3. 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).
  4. Calcular a Confiança:

    • confidence = support_milk_bread / support_milk calcula a confiança para a regra "Milk ⇒ Bread";
    • Isso mede com que frequência "Bread" é comprado quando "Milk" é comprado.
  5. Calcular o Lift:

    • lift = confidence / support_bread calcula 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.
  6. 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?

question-icon

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"}?

question mark

Qual afirmação melhor distingue confiança de lift na mineração de regras de associação?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 1. Capítulo 2
some-alt