Algoritmo a priori em inglês simples?

9

Eu li um artigo wiki sobre Apriori. Tenho problemas para entender a ameixa e a etapa de ingresso. Alguém pode me explicar como o algoritmo Apriori funciona em termos simples (para que iniciantes como eu possam entender facilmente)?

Será bom se alguém explicar o processo passo a passo envolvido nele.

Formigas
fonte
Você pode estar interessado na minha implementação do Python .
Martin Thoma

Respostas:

11

O artigo da Wikipedia não é particularmente impressionante. Você pode achar esses slides mais úteis: 1 , 2 , 3 .

Em cada nível , você tem conjuntos de itens que são frequentes (têm suporte suficiente). kk

No próximo nível, os conjuntos de itens + você precisa considerar devem ter a propriedade que cada um de seus subconjuntos deve ser frequente (ter suporte suficiente). Esta é a propriedade apriori : qualquer subconjunto de itens frequentes deve ser frequente.k1

Portanto, se você souber no nível 2 que os conjuntos , , e são os únicos conjuntos com suporte suficiente, então no nível 3, você os une para produzir , , e mas você só precisa considerar : os outros possuem subconjuntos com suporte insuficiente (como ou ).{1,2}{1,3}{1,5}{3,5}{1,2,3}{1,2,5}{1,3,5}{2,3,5}{1,3,5}{2,3}{2,5}

Henry
fonte
2

O algoritmo Apriori é um algoritmo de mineração de regras de associação usado na mineração de dados. É usado para encontrar o conjunto de itens frequentes entre o número especificado de transações.

Consiste basicamente em duas etapas

  1. Auto-junção
  2. Poda

Repetindo essas etapas k vezes, em que k é o número de itens, na última iteração, você obtém conjuntos de itens frequentes que contêm k itens.

Procure aqui uma explicação muito simples com um exemplo detalhado http://nikhilvithlani.blogspot.com/2012/03/apriori-algorithm-for-data-mining-made.html .

Tem uma explicação simples, sem equações complicadas.

user1239631
fonte
2
Deixei este aviso de publicação porque geralmente é melhor fornecer um resumo dos pontos principais que você deseja enfatizar, em vez de vincular a um blog sem explicações adicionais. Além disso, o objetivo deste site é criar uma coleção de respostas bem fundamentadas para perguntas específicas com dependências mínimas de links pendentes ou efêmeros. Portanto, a menos que você possa garantir que o link acima ainda esteja ativo em 10 anos, digamos, eu o incentivaria fortemente a resumir seus principais pontos na presente resposta.
chl
1

Apriori em inglês simples.

A Apriori emprega uma abordagem iterativa conhecida como pesquisa em nível, em que os conjuntos de itens-k são usados ​​para explorar os conjuntos de itens (k + 1) . Primeiro, o conjunto de conjuntos de 1 item frequentes é encontrado, varrendo o banco de dados para acumular a contagem de cada item e coletando os itens que satisfazem o suporte mínimo. O conjunto resultante é indicado como L1 . Em seguida, L1 é usado para encontrar L2 , o conjunto de conjuntos de 2 itens frequentes , que é usado para encontrar L3 e assim por diante, até que não sejam encontrados conjuntos de itens k mais frequentes . A descoberta de cada Lk requer uma varredura completa do banco de dados.

Na iteração final, você terá muitos conjuntos de itens-k, basicamente chamados de regras de associação . Para selecionar regras interessantes do conjunto de todas as regras possíveis, várias medidas de restrição , como suporte e confiança, são aplicadas.

Termos e Terminologias

  • Conjuntos de 1 item significa {a}, {b}, {c}
  • Conjuntos de 2 itens significa {a, b}, {d, d}, {a, c}
  • K-itemsets significa {i1, i2, i3, ... ik}, {j1, j2, j3, .... jk}

Etapa de junção: o significado de 1 conjunto de itens é feito para se associar automaticamente para gerar conjuntos de 2 itens.

Etapa de remoção: aqui o conjunto resultante da junção é filtrado com o limite mínimo de suporte.

conjunto de cardinalidade: conjunto resultante da etapa de remoção.

Suporte = no.de transcrições contendo 'a' e 'b' / no total de transações.

Suporte => supp (a, b) => p (a U b)

Confiável = Nº de transações que contêm 'a' e 'b' / não de transação que contém 'a'.

Confiante => con (a, b) ==> P (b | a) nada além de probabilidade condicional.

shakthydoss
fonte