Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Cálculo de Métricas Clave de Minería | Fundamentos de las Reglas de Asociación y Análisis Transaccional
Análisis de Canasta de Mercado y Sistemas de Recomendación

Cálculo de Métricas Clave de Minería

Desliza para mostrar el menú

Soporte: definición, cálculo e interpretación

Note
Definición

Soporte mide la frecuencia con la que un artículo o conjunto de artículos aparece en un conjunto de datos de transacciones.

Matemáticamente, el soporte para un conjunto de artículos es la proporción de transacciones que contienen todos los artículos de ese conjunto. En un contexto minorista, el soporte ayuda a comprender cuán común es una combinación de productos entre todas las compras.

Support(itemset) = Number of transactions containing itemset / Total number of transactions

Un valor de soporte más alto indica que el conjunto de artículos es más frecuente en los datos, lo que lo convierte en candidato para análisis adicionales o promociones. Por ejemplo, si "bread and butter" aparecen juntos en 30 de 100 transacciones, el soporte para {"bread", "butter"} es 0.3.

Confianza: fórmula, significado y uso práctico

Note
Definición

Confianza evalúa la probabilidad de que un cliente que compra el artículo A también compre el artículo B.

Se calcula como la proporción de transacciones que contienen tanto A como B respecto al número de transacciones que contienen solo A.

Confianza(A ⇒ B) = Número de transacciones que contienen tanto A como B / Número de transacciones que contienen A

En la práctica, la confianza indica cuán fiable es la regla "si A, entonces B". Si la confianza es alta, se puede estar más seguro de que los clientes que compran A también comprarán B, lo cual es útil para recomendaciones o marketing dirigido.

Lift: Derivación, Medición e Importancia

Note
Definición

Lift evalúa cuánto más probable es que se compre el artículo B cuando se compra el artículo A, en comparación con si las compras de A y B fueran eventos independientes.

Se calcula dividiendo la confianza de la regla entre el soporte del consecuente (B):

Lift(A ⇒ B) = Confianza(A ⇒ B) / Soporte(B)

Un valor de lift igual a 1 implica que no hay asociación (independencia), mayor que 1 indica una asociación positiva y menor que 1 sugiere una asociación negativa. El lift es fundamental porque ajusta según la popularidad del consecuente, ayudando a distinguir relaciones realmente significativas de las coincidencias.

Ejemplo práctico: cálculo de soporte, confianza y lift

Supón que tienes los siguientes datos de transacciones:

  • Transacción 1: Milk, Bread;
  • Transacción 2: Milk, Diaper, Beer, Bread;
  • Transacción 3: Milk, Diaper, Beer, Cola;
  • Transacción 4: Bread, Butter.

Vamos a calcular las métricas para la regla: Milk ⇒ Bread.

  • Soporte(Milk, Bread): Aparece en las Transacciones 1 y 2 (2 de 4) ⇒ 0.5;

  • Soporte(Milk): Aparece en las Transacciones 1, 2 y 3 (3 de 4) ⇒ 0.75;

  • Soporte(Bread): Aparece en las Transacciones 1, 2 y 4 (3 de 4) ⇒ 0.75.

  • Confianza(Milk ⇒ Bread): Soporte(Milk, Bread) / Soporte(Milk) = 0.5 / 0.75 = 0.6667;

  • Lift(Milk ⇒ Bread): Confianza(Milk ⇒ Bread) / Soporte(Bread) = 0.6667 / 0.75 = 0.8889.

Esto significa que, aunque "Milk" y "Bread" suelen aparecer juntos, comprar "Milk" no incrementa la probabilidad de comprar "Bread" en comparación con la línea 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 muestra cómo calcular las métricas clave de reglas de asociación—soporte, confianza y lift—utilizando un pequeño conjunto de datos de transacciones. Así funciona cada parte:

  1. Preparar los datos de transacciones:

    • La lista data contiene transacciones, cada una como una lista de artículos comprados;
    • Cada sublista representa una sola transacción (cesta) de un cliente.
  2. Codificación one-hot de las transacciones:

    • El código utiliza TransactionEncoder de la librería mlxtend para convertir la lista de listas de artículos en un formato adecuado para el análisis;
    • fit aprende todos los artículos únicos y transform crea un array booleano (True si el artículo está presente en la transacción, False en caso contrario);
    • Este array se convierte en un DataFrame de pandas, donde cada columna es un artículo y cada fila es una transacción.
  3. Cálculo del soporte:

    • support_milk = df['Milk'].mean() calcula la proporción de transacciones que contienen "Milk";
    • support_bread = df['Bread'].mean() calcula la proporción que contiene "Bread";
    • support_milk_bread = (df['Milk'] & df['Bread']).mean() calcula la proporción de transacciones que contienen ambos, "Milk" y "Bread" (la intersección de ambas columnas).
  4. Cálculo de la confianza:

    • confidence = support_milk_bread / support_milk calcula la confianza para la regla "Milk ⇒ Bread";
    • Esto mide con qué frecuencia se compra "Bread" cuando se compra "Milk".
  5. Cálculo del lift:

    • lift = confidence / support_bread calcula el lift para la regla;
    • El lift compara la confianza observada con la confianza esperada si las compras de "Milk" y "Bread" fueran independientes.
  6. Impresión e interpretación de resultados:

    • El código imprime los valores de soporte, confianza y lift para "Milk & Bread";
    • Un soporte de 0.50 significa que "Milk" y "Bread" se compran juntos en la mitad de las transacciones;
    • Una confianza de 0.67 significa que cuando se compra "Milk", también se compra "Bread" dos tercios de las veces;
    • Un lift de 0.89 sugiere que comprar "Milk" en realidad hace que comprar "Bread" sea ligeramente menos probable en comparación con el azar (ya que lift < 1).

1. Supón que en un conjunto de datos de 1,000 transacciones, 150 transacciones contienen tanto "apples" como "bananas". ¿Cuál es el soporte para el conjunto de artículos {"apples", "bananas"}?

2. ¿Qué afirmación distingue mejor la confianza del lift en la minería de reglas de asociación?

question-icon

Supón que en un conjunto de datos de 1,000 transacciones, 150 transacciones contienen tanto "apples" como "bananas". ¿Cuál es el soporte para el conjunto de artículos {"apples", "bananas"}?

question mark

¿Qué afirmación distingue mejor la confianza del lift en la minería de reglas de asociación?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 2

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 1. Capítulo 2
some-alt