¿Cuáles son los pasos específicos del algoritmo a priori en la minería de datos?
Entrada: D - base de datos de transacciones; min_sup - umbral mínimo de recuento de soporte
Salida: L - conjuntos de elementos frecuentes en D
Método:
L1=find_frequent_1-itemsets(D); // Encuentra todos los conjuntos de 1 elemento frecuentes
For(k=2; Lk-1!=null; k ){
Ck=apriori_gen(Lk-1); // Generar candidatos y podarlos
Para cada transacción t{ // Escanear D para el recuento de candidatos
Ct =subset(Ck, t ); // Obtiene el subconjunto de t
Para cada candidato c perteneciente a Ct
c.count;
}
Lk ={c pertenece a Ck | c.countgt;=min_sup}
}
Devuelve L=todos los conjuntos frecuentes;
Procedimiento apriori_gen(Lk-1: frecuentes(k-1)-itemsets)
Para cada elemento del conjunto l1 que pertenece a Lk-1
Para cada elemento que pertenece al conjunto de Lk-1 l2
Si((l1[1]=l2[1])amp;amp;(l1[2]=l2 [2])amp;amp;.....
amp;amp; (l1[k-2]=l2[k-2])amp;amp;(l1[k-1]lt;l2[k-1])) entonces{ p>
c=l1 se conecta a l2 //Paso de conexión: generar candidatos
si has_infrequent_subset(c, Lk -1) entonces
eliminar c //paso de poda: eliminar candidatos poco frecuentes
De lo contrario, agregue c a Ck;
}
Devuelve Ck;
Procedimiento has_infrequent_sub( c: k-itemsets candidatos; Lk-1: frecuente(k-1 )-itemsets)
Para cada (k-1) subconjunto s de c
Si s no pertenece a Lk-1, entonces
devuelve verdadero;
devuelve falso