Publicado: 9 de junio de 2024
Colaborador: Joshua Noble
El algoritmo Apriori es un algoritmo de aprendizaje automático no supervisado que se utiliza para el aprendizaje de reglas de asociación. El aprendizaje de reglas de asociación es una técnica de minería de datos que identifica patrones frecuentes, conexiones y dependencias entre distintos grupos de elementos denominados itemsets en los datos. Algunos casos de uso habituales son el pronóstico de enfermedades y los sistemas de recomendación, como el análisis de la cesta de la compra para plataformas de comercio electrónico.
Introducido en 1994 por Rakesh Agrawal y Ramakrishnan Srikant (enlace externo a ibm.com) el nombre, 'Apriori' reconoce el conocimiento previo de los conjuntos de elementos frecuentes que el algoritmo utiliza en el cálculo. El algoritmo ejecuta iteraciones sobre los datos para identificar conjuntos de k elementos, es decir, k elementos que aparecen juntos con frecuencia. A continuación, utiliza los k elementos para identificar los k+1 elementos. El algoritmo Apriori se basa en la idea de que añadir artículos a un grupo que se compra con frecuencia sólo puede hacerlo menos frecuente, no más. El proceso se basa en la propiedad Apriori, que establece que si un conjunto de elementos aparece con frecuencia en un conjunto de datos, todos sus subconjuntos también deben ser frecuentes. A la inversa, si un conjunto de elementos se identifica como infrecuente, entonces todos sus superconjuntos se consideran infrecuentes.
El algoritmo Apriori es aplicable a todo tipo de conjuntos de datos, especialmente a los generados por bases de datos transaccionales, y se suele utilizar para el análisis de cestas de mercado para respaldar los sistemas de recomendación. Por ejemplo, cuando se utiliza una plataforma de comercio electrónico que vende ropa y zapatos, un comprador busca zapatos y decide añadir un par de zapatos negros de vestir a su carrito de la compra. El comprador se da cuenta de que la interfaz recomienda otros artículos para comprar, como calcetines. Una de las formas en las que funciona este sistema de recomendación es conocer los patrones de compra de los clientes y asociar artículos que probablemente se hayan comprado juntos.
Una de las mayores ventajas de utilizar el algoritmo Apriori es su sencillez y adaptabilidad. Sin embargo, los algoritmos Apriori no son tan eficientes cuando se gestionan grandes conjuntos de datos. El proceso de iteración múltiple de generación de candidatos a itemset puede llegar a ser costoso desde el punto de vista computacional e intensivo en memoria. Apriori se suele combinar con otras técnicas para mitigar estos problemas.
La función Apriori está integrada en muchos lenguajes de programación populares, como Python, Java y R, lo que facilita la generación de reglas de asociación de calidad junto con conjuntos de elementos frecuentes en aplicaciones o sistemas existentes.
Cada uno de los pasos clave del algoritmo Apriori busca identificar conjuntos de elementos y todos sus posibles superconjuntos en busca de los más frecuentes para crear las reglas de asociación.
Paso 1: Generación de conjuntos de elementos frecuentes
En primer lugar, el algoritmo identifica los elementos únicos, a veces denominados conjuntos de 1 elemento, del conjunto de datos junto con sus frecuencias. Luego, combina los elementos que aparecen juntos con una probabilidad superior a un umbral especificado en conjuntos de elementos candidatos y filtra los conjuntos de elementos poco frecuentes para reducir el coste de cálculo en los pasos siguientes. Este proceso, conocido como minería frecuente de conjuntos de elementos, busca únicamente conjuntos de elementos con frecuencias significativas.
Paso 2: Expansión y posterior eliminación de conjuntos de elementos
Al utilizar la propiedad Apriori, el algoritmo combina conjuntos de elementos frecuentes para formar conjuntos de elementos más grandes. Se eliminan las combinaciones de conjuntos de elementos más grandes con una probabilidad menor. Esto reduce aún más el espacio de búsqueda y hace que el cálculo sea más eficiente.
Paso 3: Repetición de los pasos 1 y 2
El algoritmo repite los pasos 1 y 2 hasta que se generan exhaustivamente todos los conjuntos de elementos frecuentes que cumplen con el umbral de probabilidad definido. Cada iteración genera asociaciones más complejas y completas en los conjuntos de elementos.
Una vez que Apriori ha creado los conjuntos de elementos, se puede investigar la fuerza de las asociaciones y relaciones generadas.
Conozca los obstáculos para la adopción de la IA, en particular la falta de soluciones de gestión de riesgos y gobierno de la IA.
Regístrese para recibir la guía sobre modelos fundacionales
El algoritmo Apriori utiliza las métricas de soporte, confianza y elevación para definir sus criterios operativos y mejorar la eficiencia del rendimiento.
El soporte se define como la relación entre el número de veces que aparece un elemento en las transacciones y el número total de transacciones. Por lo tanto, esta métrica define la probabilidad de ocurrencia de cada elemento individual en las transacciones. La misma lógica se puede extender a los conjuntos de elementos,
donde IA es el elemento A, Occ(IA) es el número de apariciones del elemento A y S(IA) = soporte del elemento A
Por ejemplo, en una tienda minorista, 250 de 2000 transacciones realizadas en un día podrían incluir una compra de manzanas. Usando la fórmula:
Este resultado implica que hay un 12,5 % de probabilidades de que se hayan comprado manzanas ese día.
Puede indicar un umbral de soporte mínimo requerido al aplicar el algoritmo Apriori. Esto significa que cualquier elemento o conjunto de elementos con soporte inferior al soporte mínimo especificado se considerará poco frecuente.
La métrica de confianza identifica la probabilidad de que los elementos o conjuntos de elementos aparezcan juntos en los conjuntos de elementos. Por ejemplo, si hay dos elementos en una transacción, se supone que la existencia de un elemento conduce al otro. El primer elemento o conjunto de elementos es el antecedente y el segundo es el consecuente. Por lo tanto, la confianza se define como la relación entre el número de transacciones que tienen tanto el antecedente como el consecuente, y el número de transacciones que solo tienen el antecedente. Este escenario se representa como:
donde A es el antecedente, B es el consecuente y C(A,B) es la confianza de que A conduce a B.
Si ampliamos el ejemplo anterior, supongamos que hay 150 transacciones en las que se han comprado manzanas y plátanos juntos. La confianza se calcula como:
Este resultado indica un 60 % de posibilidades de que una compra de manzanas de lugar a una compra de plátanos. Del mismo modo, si suponemos un total de 500 transacciones de plátanos, la confianza de que una compra de plátanos lleve a una compra de manzanas se calcula como:
Aquí, solo hay un 30 % de posibilidades de que una compra de plátanos de lugar a una compra de manzanas.
Aunque la confianza es una buena medida de probabilidad, no es garantía de una asociación clara entre elementos. El valor de la confianza podría ser alto por otras razones. Por este motivo, se aplica un umbral de confianza mínimo para filtrar asociaciones débilmente probables durante la minería con reglas de asociación.
El aumento es el factor con el que la probabilidad de que el elemento A conduzca al elemento B es mayor que la probabilidad del elemento A. Esta métrica cuantifica la fuerza de la asociación entre A y B. Puede ayudar a indicar si existe una relación real entre los elementos del conjunto de elementos o se están agrupando por coincidencia.
Donde LA,B es el aumento del elemento A que conduce al elemento B, CA,B es la confianza de que el elemento A conduce al elemento B, SA es el soporte del elemento A.
Para el ejemplo anterior, podemos ver que:
El alto valor de elevación indica que la probabilidad de que las manzanas y los plátanos se compren juntos es 4,8 veces mayor que la de comprar manzanas solas. Además, se puede observar que:
El bajo valor de elevación aquí indica que una compra de plátanos que lleva a una compra de manzanas podría ser sólo una coincidencia.
En muchos casos, aplicar un enfoque de fuerza bruta (enlace externo a ibm.com) para calcular los umbrales de soporte y confianza de cada regla y, a continuación, eliminar las reglas que no cumplen con un umbral puede resultar prohibitivo desde el punto de vista computacional. Para que la aplicación del algoritmo Apriori sea más eficiente, a menudo se combina con otras técnicas de minería de reglas de asociación. Dos de los más comunes son el algoritmo FP-growth (enlace externo a ibm.com) y su variante FP-Max para reducir las restricciones de memoria y cálculo. El algoritmo Apriori también se puede combinar con árboles de decisión, donde el algoritmo Apriori identifica el conjunto de elementos frecuente y la técnica de decision trees ayuda a identificar las reglas de asociación.
Otra variante popular del algoritmo Apriori es el recuento dinámico de conjuntos de elementos (DIC) (enlace externo a ibm.com), que comienza a contar los conjuntos de elementos potenciales antes de tiempo, sin esperar a que se registren todas las transacciones. DIC divide el conjunto de datos en segmentos más pequeños y procesa cada segmento por separado. Esta segmentación permite detener el algoritmo con antelación cuando no es capaz de identificar ningún conjunto de elementos frecuentes, pero la partición de los datos también ayuda a reducir significativamente el coste computacional.
Los algoritmos Apriori también pueden ser útiles en aplicaciones de inteligencia artificial basadas en aprendizaje no supervisado como algoritmos de agrupamiento cuando los datos lo admiten. Ayuda a identificar relaciones y asociaciones entre entidades aparentemente independientes, agrupándolas en posibles grupos.
Descubrir y agrupar conjuntos de elementos tiene múltiples aplicaciones y, a veces, se hace referencia al algoritmo Apriori como lo primero que prueban los mineros de datos debido a su versatilidad. Veremos algunos de los casos de uso más comunes en diferentes sectores.
Una de las aplicaciones más comunes del algoritmo Apriori es la realización de análisis de cestas de la compra. Los minoristas analizan el historial de compras de los clientes y optimizan la disposición de las tiendas colocando los artículos más comprados cerca unos de otros o en el mismo estante. Las plataformas de comercio electrónico utilizan algoritmos Apriori para estudiar las relaciones entre productos en función de las preferencias de los usuarios y análisis de minería de patrones de compra para crear sistemas eficaces de recomendación de clientes. El mismo tipo de análisis puede utilizarse para optimizar la compra de servicios, por ejemplo, eligiendo cursos de formación de un catálogo, o recomendando otros tipos de cobertura al seleccionar un seguro.
El algoritmo Apriori se puede utilizar para encontrar reglas de asociación sólidas entre síntomas y enfermedades para mejorar la eficiencia del diagnóstico y diseñar planes de tratamiento específicos. Por ejemplo, qué pacientes tienen probabilidades de desarrollar diabetes (enlace externo a ibm.com) o el papel que desempeñan la dieta o el estilo de vida en la enfermedad (enlace externo a ibm.com). También puede ayudar a identificar los factores asociados con las reacciones adversas a los medicamentos.
Los algoritmos a priori también son aplicables en bases de datos no transaccionales. Los analistas de datos suelen utilizar Apriori para la minería de uso de la web, para analizar los datos de clickstream y para interpretar el comportamiento de los usuarios.
Otra aplicación común del algoritmo Apriori es identificar patrones fraudulentos en transacciones financieras. La identificación de patrones de compra específicos como posiblemente fraudulentos permite a una entidad financiera actuar con rapidez para suspender las transacciones o ponerse en contacto con el titular de una cuenta.
Aprenda a implementar el algoritmo Apriori en Python con watsonx
Aprenda a implementar el algoritmo Apriori con el lenguaje de programación R utilizando watsonx.
Aprenda sobre la agrupación, un algoritmo de aprendizaje automático no supervisado que organiza y clasifica diferentes objetos, puntos de datos u observaciones en grupos o clústeres basados en similitudes o patrones.