sábado, 18 de diciembre de 2010

Proyecto Final

Este es el video para el pryecto final de la materia de soporte para la toma de decisiones.

viernes, 17 de diciembre de 2010

Herramienta de minería de datos (Analizando un Carrito de compras)

Este ejemplo muestra cómo aplicar un análisis sencillo para analizar un carrito de compras, para lo cual se utilizo SQL Server 2008 con la base de datos de prueba de AdventureWorks y los complementos de Minería de datos add-In de Excel.
Para hacer el análisis del carrito de compras se usara el algoritmo de reglas de asociación de Microsoft para detecta la relación de elementos que con frecuencia se compran juntos, esta análisis le puede ayudar a crear recomendaciones para  grupos asociados, a diseñar la posición del producto y a avaluar el impacto sobre su cuenta de resultados.
Por ejemplo, si está analizando todos los pedidos recibidos mediante un sitio web, cada pedido tendría un identificador de pedido o un identificador de transacción asociado con uno o más elementos de compras.
Los elementos que se ocupan para hacer este análisis generalmente son el Id de la Transacción (Número de Orden), ítem (Categoría del producto) y opcionalmente se puede utilizar el valor del artículo.
Al ejecutar el análisis con el add-in de Excel se puede observar que éste arroja dos resultados
·         Elementos incluidos en la cesta de la compra.
·         Recomendaciones para la cesta de la compra.
Elementos incluidos en la cesta de la compra
Este reporte identifica los patrones de los datos y enumera los elementos que aparecen frecuentemente en las transacciones, también muestra que elementos están comprando juntos los clientes y el valor para su compañía.

La primera fila podemos observar los clientes que compran conjuntamente bicicletas de carretera y cascos. El resultado muestra el primer elemento, porque es el de más valor (Número de ventas en relación al valor promedio de venta, lo cual nos da valor global del lote).
La fila nos indica que 805 clientes unieron estos dos elementos con un valor promedio por venta de $1,570.00 con un valor total para la compañía de $1,263,850.00
La segunda fila nos indica que 569 clientes unieron bicicletas de montaña de poleas y neumáticos, con un valor de venta de $2,208.00 con un valor total para la compañía de aproximadamente $1,250,000.00
Podemos observar que este lote tiene un valor por venta superior al primero, pero se produce con menos frecuencia y por tanto tiene menos valor para la compañía.
Una manera que tiene la compañía de usar esta información es que cuando un cliente compra una bicicleta de carretera, el sitio web puede recomendar automáticamente un casco.
Además, cuando un cliente compra una bicicleta de montaña, el sitio web puede recomendar automáticamente poleas y neumáticos.
Recomendaciones para el carrito de compras
El siguiente informe usa los datos estadísticos derivados del análisis para crear reglas acerca de cómo se relacionan los elementos.

Por ejemplo, una regla podría ser que si los clientes compran limpiadores es muy probable que compren poleas y neumáticos. Las reglas se pueden usar para crear recomendaciones.
Cada regla tiene datos estadísticos de apoyo que le ayudan a evaluar la fuerza potencial de la regla, para que pueda hacer una recomendación solamente si la regla supera un determinado umbral de probabilidad.
Al revisar este informe, resulta interesante que unir poleas y neumáticos sea la recomendación de máximo valor en cuatro productos diferentes.
Hay que tener muy en cuenta que los lotes se clasifican en función al valor general de las ventas, por lo que el valor promedio más grande no es necesariamente la recomendación más elevada.

Supercómputo



El supercómputo es la tecnología informática más avanzada de cálculo numérico que existe actualmente para desarrollar investigaciones complejas de alto nivel de especialización; es la única herramienta que le permite al investigador llevar a cabo, con certeza y velocidad, billones de cálculos matemáticos para estudiar problemas de gran magnitud; su altísima capacidad para procesar simultáneamente grandes volúmenes de información facilita el estudio de fenómenos y condiciones que tan sólo hace menos 30 años eran imposible; sus aplicaciones abrieron en todo el mundo, nuevas líneas de investigación científica.

OLAP

OLAP (On-Line Analytical Processing) en español procesamiento analítico en línea, es una solución utilizada en el campo de la Inteligencia empresarial que tiene por objetivo agilizar la consulta de grandes cantidades de datos.
Para ello utiliza estructuras multidimensionales (o Cubos OLAP) que contienen datos resumidos de grandes Bases de datos o Sistemas Transaccionales (OLTP). Se usa en informes de negocios de ventas, marketing, informes de dirección, minería de datos y áreas similares.
Un cubo OLAP es una base de datos multidimensional, en la cual el almacenamiento físico de los datos se realiza en un vector multidimensional. Los cubos OLAP se pueden considerar como una ampliación de las dos dimensiones de una hoja de cálculo.
La razón de usar OLAP para las consultas es la velocidad de respuesta. Una base de datos relacional almacena entidades en tablas discretas si han sido normalizadas. Esta estructura es buena en un sistema OLTP pero para las complejas consultas multitabla es relativamente lenta. Un modelo mejor para búsquedas (aunque peor desde el punto de vista operativo) es una base de datos multidimensional.
La principal característica que potencia a OLAP, es que es lo más rápido a la hora de ejecutar sentencias SQL de tipo SELECT, en contraposición con OLTP que es la mejor opción para operaciones de tipo INSERT, UPDATE Y DELETE.

Aplicaciones de OLAP

Tendremos como ejemplo, la aplicación de OLAP en el proceso de facturación. Las aplicaciones que le podemos dar a esta técnica se enlistan a continuación:
  • Análisis de facturación por: tipo de cliente, producto, categoría de producto, tipo de envío, depósito de origen, ciudad de destino, por fecha, día de la semana, hora, etc.
  • Drill Back: identificación de los clientes que cumplen la condición obtenida del análsis del cubo multidimensional
  • Cuáles son los n clientes top y que productos compran
  • Gráficos varios automáticamente encadenados a las tablas de datos, para visualizar inmediatamente los resultados de la exploración a distintos niveles de detalle (drill down – mayor detalle, drill up – menor detalle) para explorar el origen de las diferencias.
  • Cuáles son los clientes que tienen una facturación superior a $n
  • Cuáles son los clientes que componen el n% de la facturación
  • Cálculos totales o por categoría de cliente
  • Cruces de clientes top con productos y/o zonas top.
  • Cuáles son los n productos top, en ventas o contribución al margen bruto
  • Cuáles son los productos que tienen una facturación superior a $n
  • Cuáles son los productos cuya facturación o contribución al margen bruto componen el n% del volumen
  • Análisis por propiedades de los productos, como color, tamaño, material, etc.
  • Que otros productos compran los clientes que compran un determinado producto o canasta de productos (Basket Analysis - Cross selling)
  • Análisis por clientes individuales distintos en contraposición al análisis por transacción. Que clientes compraron, que productos compraron, que clientes no compraron.
  • Control de gestión: presupuestado vs. ejecutado. Por totales, al comienzo de ejercicio, al final. Comparaciones con período anterior, con igual período del año anterior, etc.
  • Análisis de marketing, efectividad de los distintos medios, campañas y promociones.
  • Análisis de Cuadros Tarifarios: cálculo del efecto de cambios o rebalanceos tarifarios. Análisis de variaciones en parámetros, impacto detallado por categoría de cliente, zona, nivel de ingresos, etc.
  • Impactos de la re categorización de clientes Análisis de deudas, antigüedad, categorización, análisis de políticas para incrementar la cobrabilidad.
  • Análisis de patrones de consumo a lo largo del tiempo, de productos o servicios, por categoría de cliente, región, grupo demográfico, etc.
  • Asignación de costo y Análisis de la contribución al margen bruto de facturas pequeñas, clientes de baja facturación, productos de baja facturación
  • Proyecciones simples y econométricas de ventas, consumos, etc.
  • Asignación automática de costos y presupuestos de unidades mayores a menores
  • Análisis de canales de suministro
  • Análisis de Inventarios
  • Análisis de canales de distribución
  • Seguimiento de vendedores
  • Análisis financieros.  Análisis de Inversiones.
  • Análisis y Optimización de ruteo / mantenimiento / logística
  • Análisis de competencia
  • Análisis de Producción y Ventas
  • Cadena de distribución
  • Marketing
Volúmenes de información
Siguiendo el análisis del proceso de facturación, damos por ejemplo a la CFE, la cual emite 200 millones de facturas al año. La información requiere más de un servidor central para generar la facturación

Visualización en Minería de Datos


La interpretación de los resultados de minería de datos es de suma importancia. Para ello debe de existir una manera de poder visualizar los patrones descubiertos. Debido a esto un sistema de minería de datos debe ser capaz de desplegar los patrones descubiertos de diferentes maneras según se acople a la información que fue representada, por ejemplo en forma de grafos, diagramas, entre otros.
Ejemplo de Visualización
Para ver un ejemplo real de la visualización de los datos del sitio de CÓDICE del Catálogo Electrónico utilizaremos la herramienta Google Analytics la cual muestra la cantidad de visitas que surgieron en este Año (01/01/2010 – 01/08/2010), distribuidas por la ubicación(País/territorio), la cual se muestra en la siguiente figura.

Esta grafica muestra la cantidad de visitas del periodo Enero’10 a Agosto’10 la cual fue de 95,163 en 43 países/territorios, en la que podemos observar con mayor intensidad (verde intenso) la cantidad de visitas.
Por ejemplo para México la cantidad de visitas fue de 94,226 la cual se muestra más enmarcado.
En la tabla siguiente se muestra el top 10 de los países donde usuarios visitaron el sitio en el período de la cual se obtuvieron los datos para visualizarlos en el mapa de ubicación.
País/territorio
Visitas
Mexico
94226
United States
375
Spain
103
Colombia
56
Peru
56
Argentina
53
Venezuela
45
Chile
27
Ecuador
25
Germany
18

En la siguiente grafica podemos ver como ha sido el comportamiento de las visitas en el período mencionado arriba. Este es otro tipo de visualización de los datos pero ahí la relación que existe es la cantidad de visitas al Catálogo Electrónico por día.
La siguiente grafica muestra  la cantidad de visitas por semana.

Y esta última gráfica es la cantidad de visitas por mes.
Como se pudo observar anteriormente se hicieron dos tipos de visualización para representar los datos:
1.       Cantidad de visitas por ubicación, donde se ocupo un mapa y marcación con diferente intensidad de colores dependiendo la la cantidad de visitas provenientes de diferentes países.
2.       Cantidad de visitas por lapsos de tiempo (día, mes, año) donde ocupamos un grafica de polígonos.

jueves, 16 de diciembre de 2010

Algoritmos en línea


Los algoritmos en línea pueden procesar pedazo-por-pedazo sobre un conjunto de datos que están siendo procesados, sin tener un historial de datos. En cambio los algoritmos fuera de línea trabajan con  datos históricos para dar respuesta a la toma de decisiones.
Se dice que un algoritmo es en línea  (en inglés on line) cuando es capaz de ponerse a trabajar en el problema para el que fue diseñado sin necesidad de disponer de todos los datos de entrada antes de empezar, es decir, que puede trabajar a medida que va recibiendo los datos de entrada.
Por ejemplo, el algoritmo de ordenación BubbleSort no es un algoritmo en línea (podría decirse que es fuera de línea u offline), porque si tiene que trabajar sobre 10 valores, necesita que los diez valores estén disponibles al comienzo del algoritmo. Sin embargo, el algoritmo de ordenación InsertionSort sí es un algoritmo en línea, porque si tiene que trabajar sobre 10 valores, puede leer el primero y procesarlo, y luego el segundo y procesarlo, y luego el tercero y procesarlo... ý así hasta el último. Puede realizar parte de su trabajo con una entrada parcial de los datos, ya que el procesamiento de los datos sólo depende de los datos de entrada leídos hasta el momento, y no de la totalidad.

La siguiente tabla muestra los dos tipos de algoritmos:
ON-LINE
OFF-LINE
Búsqueda Secuencial
Búsqueda Binaria
Ordenación por Inserción
QuickSort

Ordenación por Selección

Merge Sort

Debido a que no conoce la entrada de  todo, un algoritmo en línea se ve obligado a tomar decisiones que luego pueden resultar  no ser óptima, y el  estudio de los algoritmos  en línea se ha centrado en  la calidad de la toma de decisiones que es posible en este contexto. El algoritmo de análisis competitivo formaliza  esta idea al comparar el rendimiento relativo de un algoritmo en línea y sin conexión para la instancia del mismo problema. Para otros puntos de vista sobre las entradas en línea a los algoritmos,  ver Algoritmo de flujo (centrado  en la cantidad de memoria  necesaria para representar con precisión las entradas anteriores),  el algoritmo dinámico (centrado  en la complejidad de tiempo de  mantenimiento de soluciones a  los problemas con las entradas de línea) y la máquina de aprendizaje en línea.
Ejemplo de un algoritmo en línea:
El ordenamiento por inserción (insertion sort en inglés) es una manera muy natural de ordenar para un ser humano, y puede usarse fácilmente para ordenar un mazo de cartas numeradas en forma arbitraria. Requiere O(n²) operaciones para ordenar una lista de n elementos.

Si vieramos el procedimiento de este algoritmo, mas o menos tendría el siguiente comportamiento:



Inicialmente se tiene un solo elemento, que obviamente es un conjunto ordenado. Después, cuando hay k elementos ordenados de menor a mayor, se toma el elemento k+1 y se compara con todos los elementos ya ordenados, deteniéndose cuando se encuentra un elemento menor (todos los elementos mayores han sido desplazados una posición a la derecha). En este punto se inserta el elemento k+1 debiendo desplazarse los demás elementos.
En el siguiente ejemplo, 32 debe ser insertado entre 26 y 47, y por lo tanto 47, 59 y 96 deben ser desplazados.
k+1
11 26 47 59 96 32 
11 26    47 59 96
11 26 32 47 59 96

En la implementación computacional, el elemento k+1 va comparándose de atrás para adelante, deteniéndose con el primer elemento menor. Simultáneamente se van haciendo los desplazamientos.
11 26 47 59 96 32
11 26 47 59    96
11 26 47    59 96
11 26    47 59 96
11 26 32 47 59 96

El algoritmo  en pseudocódigo (con listas que empiezan por 0) debería ser como el siguiente:


algoritmo insertSort( A : lista de elementos ordenables )
    para i=1 hasta longitud(A) hacer
         index=A[i]
         j=i-1
         mientras j>=0 y A[j]>index hacer
              A[j+1] = A[j]
              j = j - 1
         fin mientras
         A[j+1] = index
    fin para
fin algoritmo


Aunque este algoritmo tiene un mejor orden de complejidad que el de burbuja, es muy ineficiente al compararlo con otros algoritmos como quicksort. Sin embargo, para listas relativamente pequeñas el orden por inserción es una buena elección, no sólo porque puede ser más rápido para cantidades pequeñas de elementos sino particularmente debido a su facilidad de programación. 
Implementación en JavaScript
void insertionSort(int numbers[], int array_size) {
   int i, a, index;
   for (i=1; i < array_size; i++) {
      index = numbers[i];
      a = i-1; 
      while (a >= 0 && numbers[a] > index) {
         numbers[a + 1] = numbers[a];
         a--;
      }
      numbers[a+1] = index;
   }
}



miércoles, 15 de diciembre de 2010

Búsqueda Tabú



Introducción
“Los procedimientos meta-heurísticos son una clase de métodos aproximados que están diseñados para resolver problemas difíciles de optimización combinatorio, en los que los heurísticos clásicos no son ni efectivos ni eficientes. Las meta-heurística proporcionan un marco general para crear nuevos algoritmos híbridos combinando diferentes conceptos derivados de: inteligencia artificial, evolución biológica y mecanismos estadísticos.”
Búsqueda Tabú (Tabu Search)
La Búsqueda Tabú (Tabu Search - TS) es un procedimiento meta-heurístico cuya característica distintiva es el uso de memoria adaptativa y de estrategias especiales de resolución de problemas. Su filosofía se basa en la explotación de diversas estrategias inteligentes para la resolución de problemas, basadas en procedimientos de aprendizaje. El marco de memoria adaptativa de TS explota la historia del proceso de resolución del problema haciendo referencia a cuatro dimensiones principales, consistentes en la propiedad de ser reciente, en frecuencia, en calidad, y en influencia.
La búsqueda tabú sirve para resolver problemas que estén relacionados con los siguientes ámbitos:
·         planificación de los recursos,
·         telecomunicaciones,
·         diseño VLSI,
·         análisis financiero,
·         programación, planificación del espacio,
·         la distribución de energía,
·         moleculares ingeniería, logística,
·         clasificación de patrones,
·         de fabricación flexible,
·         la gestión de residuos,
·         la exploración de minerales,
·         análisis biomédico,
·         la conversación del medio ambiente y
·         decenas de otros problemas.
Optimización de ruteo aplicando métodos heurísticos con el uso de búsqueda tabú
El problema de ruteo de vehículos es uno de los problemas más analizados en la actualidad. Una gran cantidad de técnicas, heurísticas han sido empleadas para darle solución a este problema, entre ellas Búsqueda Tabú.
Búsqueda Tabú
Son muchas las técnicas existentes para la optimización de problemas. Esta técnica emplea métodos que pueden ser globales o locales. Los globales, como global de un problema, mientras que los locales se concentran en la vecindad de las solución generada inicialmente, por lo que necesitan de otras técnicas adicionales para encontrar el óptimo global.
Los métodos de búsqueda global lo que persiguen es no caer en óptimos locales, explorando con más eficiencia el espacio de la búsqueda. Esto lo hacen trabajando generalmente con un componente aleatorio de búsqueda, que hace que si se encuentran en un óptimo local, salten a otro punto del espacio de búsqueda, donde pueden encontrar otro óptimo local o posiblemente global
La búsqueda tabú es un procedimiento iterativo y heurístico para resolver problemas discretos de optimización combinatoria y de gran escala. Fue propuesta inicialmente por Fred Glover, y desde entonces ha sido aplicada en la solución de una gran cantidad de problemas de optimización.
Esta técnica busca escapar de óptimos locales, empleando algunas metodologías como el uso de memorias flexibles. Además esta técnica impone y relaja restricciones con el fin de explorar áreas prohibidas, y de hacer cortes de la región factible, al tener en cuenta las restricciones que la limitan.
La Búsqueda Tabú se cimienta en tres puntos principales:
1.       El uso de estructuras de memoria basadas en atributos diseñados para permitir criterios de evaluación e información de búsqueda histórica, la cual se explota más a fondo que las estructuras de memoria rígida (como en ramificación y acotamiento) o por sistemas de periódica de memoria (como recorrido simulado y otro métodos aleatorizados.)
2.       Un mecanismo asociado de control, mediante el empleo de estructuras de memoria, basado en el interjuego entre las condiciones que registren y liberan al proceso de búsqueda (envuelto en las restricciones tabú y el criterio de aspiración.)
3.       La incorporación de funciones de memoria de diferentes lapsos de tiempo, para implantar estrategias que refuercen la combinación de movimientos y las características de solución que históricamente se han encontrado buenas, mientras que las estrategias de diversificación manejan la búsqueda dentro de nuevas regiones.
La búsqueda tabú se basa en dos procesos principales clave que son: restringir la búsqueda al clasificar un movimiento como tabú o prohibido, y liberar la búsqueda empelando una función de memoria de término corto que proporciona una estrategia de olvido. Estos últimos debido a que después de varias interacciones se pueden levantar la clasificación de tabú para un movimiento según el nivel de aspiraciones como se menciono anteriormente.
La búsqueda tabú emplea dos estrategias para encontrar el óptimo local, las cuales están relacionadas con la memoria a largo plazo, que son la intensificación (a término medio) y la diversificación (a término largo). La primera de ellas consiste en regresar a regiones catalogadas como buenas, con el fin de explorarlas mejor; mientras que la otra consiste en analizar nueva áreas no exploradas del espacio de soluciones.
Hay que tener en cuenta que el tamaño de la lista tabú es un parámetro, el cual no puede ser muy pequeño para evitar el ciclado, ni muy grande para no restringir la búsqueda, pues se puede impedir llegar a valles profundos, es decir, obtener el óptimo local. Este tamaño puede determinar mediante pruebas empíricas preliminares. También existen las listas tabú múltiples, cada una desarrollada para un atributo en particular, cada uno de los cuales puede tener un peso, para determinar el status tabú de los movimientos que contiene.

Nota: El contenido de esta entrada esta basado en el atrículo de una tesis "Optimización de ruteo de vehiculos empleando búsqueda tabú" el cual recomiento  apliamente ya que ahi se expone un algoritmo para esta optimización.

Reglas de Asociación



En minería de datos hay diferentes tipos de algoritmos que nos ayudan a la toma de decisiones.
Introducción
·      Algoritmos de clasificación, estos nos ayudan a predecir una o más variables discretas, basándose en otros atributos del conjunto de datos.
·      Algoritmos de regresión, que predicen una o más variables continuas, como las pérdidas o los beneficios, basándose en otros atributos del conjunto de datos.
·      Algoritmos de segmentación, que dividen los datos en grupos, o clústeres, de elementos que tienen propiedades similares.
·       Algoritmos de asociación, que buscan correlaciones entre diferentes atributos de un conjunto de datos. La aplicación más común de esta clase de algoritmo es la creación de reglas de asociación, que pueden utilizarse en un análisis de la cesta de compra. Un ejemplo serían el algoritmo que utiliza Amazon para establecer la relación de las preferencias de los libros de los usuarios del sitio, en base a búsquedas o compras realizadas.
·       Algoritmos de análisis de secuencias, que resumen secuencias o episodios frecuentes en los datos, como un flujo de rutas Web.
En este pequeño artículo tratara solamente de las reglas de asociación.
Las reglas de asociación se utilizan para descubrir hechos que ocurren en común dentro de un determinado conjunto de datos.
Se han investigado ampliamente diversos métodos para aprendizaje de reglas de asociación que han resultado ser muy interesantes para descubrir relaciones entre variables en grandes conjuntos de datos.
Algoritmo Piatetsky-Shapiro
Describe el análisis y la presentación de reglas 'fuertes' descubiertas en bases de datos utilizando diferentes medidas de interés. Basado en el concepto de regla fuerte, Agrawal et al en su libro “Mining Association Rules Between Sets of Items in Large Databases”, presentó un trabajo en el que indicaban las reglas de asociación que descubrían las relaciones entre los datos recopilados a gran escala en los sistemas de terminales de punto de venta de unos supermercados. Por ejemplo, la siguiente regla:
{Cebollas,Vegetables}=>{Carne}
Encontrada en los datos de ventas de un supermercado, indicaría que un consumidor que compra cebollas y vegetales a la vez, es probable que compre también carne. Esta información se puede utilizar como base para tomar decisiones sobre marketing como precios promocionales para ciertos productos o donde ubicar éstos dentro del supermercado. Además del ejemplo anterior aplicado al análisis de la cesta de la compra, hoy en día, las reglas de asociación también son de aplicación en otras muchas áreas como el Web Mining, la detección de intrusos o la bio-informática.
Un Ejemplo muy popular
Un caso muy famoso sobre reglas de asociación es el de la "cerveza y los pañales", basado en el comportamiento de los compradores en el supermercado. Se descubrió que muchos hombres acaban comprando pañales por encargo de sus esposas. En la cadena de supermercados Wal-Mart, donde se descubrió este hecho, se adoptó la medida de colocar la cerveza junto a los pañales. De esta manera consiguió aumentar la venta de cerveza.
Definiendo el problema
Según la definición original de Agrawal et al el problema de minería de reglas de asociación se define como:
I={i1, i2, i3,…,in} un conjunto de n atributos binarios llamados ítems.
D={t1, t2,t3,…tn} un conjunto de transacciones almacenadas en una base de datos.
Cada transacción en D tienen un Id (identificador) único y contiene un subconjunto de ítems de I. Una regla se define como una implicación de la forma:
X=>Y
Donde:


Los conjuntos de items X y Y se denominan respectivamente “antecedente” (o parte izquierda) y “Consecuente” (o parte derecha) de la regla.
Caso Práctico
Para ilustrar estos conceptos véase el siguiente ejemplo sobre ventas en un supermercado. El conjunto de ítems es:

 En la siguiente grafica se muestra una base de datos contiene los ítems, donde el código '1' se interpreta como que el producto (ítem) correspondiente está presenta en la transacción y el código '0' significa que dicho producto no está presente. Un ejemplo de regla para el supermercado podría ser:
Ejemplo:
Base de datos con 4 items y 5 transacciones
ID
Leche
Pan
Mantequilla
Cerveza
1
1
1
0
0
2
0
1
1
0
3
0
0
0
1
4
1
1
1
0
5
0
1
0
0


Significaría que si el cliente compró 'leche' y 'pan' también compró 'mantequilla', es decir, según la especificación formal anterior se tendría que:
X={Leche, Pan}
Y={Mantequilla}
Reglas significativas, 'soporte' y 'confianza'
Nótese que el ejemplo anterior es muy pequeño, en la práctica, una regla necesita un soporte de varios cientos de registros (transacciones) antes de que ésta pueda considerarse significativa desde un punto de vista estadístico. A menudo las bases de datos contienen miles o incluso millones de registros.
Para seleccionar reglas interesantes del conjunto de todas las reglas posibles que se pueden derivar de un conjunto de datos se pueden utilizar restricciones sobre diversas medidas de "significancia" e "interés". Las restricciones más conocidas son los umbrales mínimos de "soporte" y "confianza".
El 'soporte' de un conjunto de ítems X en una base de datos  se define como la proporción de transacciones en la base de datos D que contiene dicho conjunto de ítems:

En el ejemplo anterior el conjunto {Leche, Pan} tiene un soporte de:

Es decir, el soporte es del 40% (2 de cada 5 transacciones).
La 'confianza' de una regla se define como:

Por ejemplo, para la regla:
{Leche, Pan}=>{Mantequilla}
La confianza sería:

Este cálculo significa que el 50% de las reglas de la base de datos que contienen 'leche' y 'pan' en el antecedente la también tienen 'mantequilla' en el consecuente; en otras palabras, que la regla:
{Leche, Pan}=>{Mantequilla} 
Es cierta en el 50% de los casos


La confianza puede interpretarse como un estimador de P(Y | X), la probabilidad de encontrar la parte derecha de una regla condicionada a que se encuentre también la parte izquierda.
Las reglas de asociación deben satisfacer las especificaciones del usuario en cuanto a umbrales mínimos de soporte y confianza. Para conseguir esto el proceso de generación de reglas de asociación se realiza en dos pasos. Primero se aplica el soporte mínimo para encontrar a los conjuntos de ítems más frecuentes en la base de datos. En segundo lugar se forman las reglas partiendo de estos conjuntos frecuentes de ítems y de la restricción de confianza mínima.
Encontrar todos los subconjuntos frecuentes de la base de datos es difícil ya que esto implica considerar todos los posibles subconjuntos de ítems (combinaciones de ítems). El conjunto de posibles conjuntos de ítems es el conjunto potencia de I y su tamaño es de 2n − 1 (excluyendo el conjunto vacío que no es válido como conjunto de ítems). Aunque el tamaño del conjunto potencia crece exponencialmente con el número de ítems n de I, es posible hacer una búsqueda eficiente utilizando la propiedad "downward-closure" del soporte (también llamada anti-monótona) que garantiza que para un conjunto de ítems frecuente, todos sus subconjuntos también son frecuentes, y del mismo modo, para un conjunto de ítems infrecuente, todos sus super-conjuntos deben ser infrecuentes.