< Return to Video

MLM CAP06 2025 VA03 IMPLEMENTACAO DO METODO A PRIORI

  • 0:08 - 0:11
    Como nós construímos
    regras de associação?
  • 0:11 - 0:14
    Existem diversas formas de você
    encontrar uma associação
  • 0:14 - 0:16
    entre um produto e outro.
  • 0:16 - 0:18
    Aqui nosso objetivo é olhar
    para produtos, de fato.
  • 0:18 - 0:21
    Nós não estamos interessados
    no perfil dos usuários.
  • 0:21 - 0:23
    Não me interessa saber quem está
    comprando o quê.
  • 0:23 - 0:27
    Eu quero saber qual produto
    está relacionado com quais outros.
  • 0:27 - 0:29
    Basicamente, nós vamos minerar regras.
  • 0:29 - 0:31
    É aqui que aparece o tal do Data Mining.
  • 0:31 - 0:34
    Data Mining fica muito evidente
    nesse tipo de algoritmo.
  • 0:34 - 0:37
    Quando estamos tentando encontrar
    relações de produtos
  • 0:37 - 0:41
    e vamos verificar se essa relação
    procede ou não procede.
  • 0:41 - 0:44
    Portanto, a nossa base de dados
    deve ser sempre uma transação,
  • 0:44 - 0:46
    um histórico de transações de vendas,
    por exemplo.
  • 0:46 - 0:48
    Eu posso pensar o seguinte.
  • 0:48 - 0:51
    Em um mercado,
    quais são os produtos
  • 0:51 - 0:53
    comprados em conjunto
    ao longo do tempo?
  • 0:53 - 0:59
    Eu quero minerar regras
    de compras similares entre esse histórico.
  • 0:59 - 1:01
    Para essa simulação,
    vou utilizar uma base de dados disponível
  • 1:01 - 1:07
    no Kaggle que está imitando
    um histórico de compras no supermercado.
  • 1:07 - 1:09
    Então,
    aqui já estou na mente do Colab
  • 1:09 - 1:11
    com uma instância inicializada.
  • 1:11 - 1:15
    Eu já subi a base também aqui
    no nosso ambiente
  • 1:15 - 1:17
    e vou começar a executar os códigos.
  • 1:17 - 1:20
    O primeiro passo é rodar
    essa célula que está instalando
  • 1:20 - 1:24
    a biblioteca "apyori",
    que é uma brincadeira
  • 1:24 - 1:28
    com o nome de Python
    e o método em si.
  • 1:28 - 1:30
    Pronto,
    já está instalado aqui nesse ambiente.
  • 1:30 - 1:33
    Agora eu posso fazer alguns imports
    necessários,
  • 1:33 - 1:35
    que é pandas,
    numpy para limpeza de dados.
  • 1:35 - 1:39
    E de fato, o algoritmo biblioteca
    é apyori.
  • 1:39 - 1:42
    Aqui vou ler essa base
    que está salva como um CSV
  • 1:42 - 1:45
    e nesse caso específico,
    ela não tem nenhum cabeçalho.
  • 1:45 - 1:48
    Não é um CSV tradicional,
    digamos assim.
  • 1:48 - 1:53
    Tanto que na execução já mostra
    como se fosse um dataframe
  • 1:53 - 1:54
    com as linhas lidas.
  • 1:54 - 1:57
    O que me interessa é linha a linha,
    o que foi adquirido.
  • 1:57 - 2:01
    Então nós temos aqui colunas sem nome,
    porque a coluna
  • 2:01 - 2:04
    Zero, por exemplo, contém o primeiro
    produto que passou nessa.
  • 2:04 - 2:08
    Nessa compra,
    a coluna contém o segundo produto,
  • 2:08 - 2:10
    a dois o terceiro e por aí vai.
  • 2:10 - 2:13
    Então pode ser que eu compro
    apenas um produto
  • 2:13 - 2:16
    ou uma sequência de produtos também.
  • 2:16 - 2:17
    Esses não indicam.
  • 2:17 - 2:22
    Esse produto aqui não foi
    comprado, ou seja, nem vi o produto em si.
  • 2:22 - 2:27
    Mas essa cesta de compras teve apenas três
    produtos, dois e por aí vai.
  • 2:28 - 2:31
    É normal ter uma matriz bem esparsa
    nesse tipo de dado,
  • 2:32 - 2:35
    portanto temos que
    prepará la para implementar o método.
  • 2:35 - 2:38
    Nessa preparação
    nós temos que eliminar esse tanto de Nan.
  • 2:38 - 2:41
    Basicamente, nós queremos
    que uma lista de lista, ou seja,
  • 2:41 - 2:45
    para cada compra,
    cada transação de fato, cada cesta.
  • 2:45 - 2:47
    Eu quero criar uma listinha
  • 2:47 - 2:51
    onde apenas produtos comprados
    sejam de fato presentes nessa lista.
  • 2:51 - 2:54
    Quem sabe com valor eu possa ignorá lo.
  • 2:54 - 2:58
    Vou fazer isso com Python puro mesmo
    a partir do código da próxima célula.
  • 2:58 - 3:03
    Então, aqui embaixo nós temos um código
    que está fazendo o seguinte.
  • 3:03 - 3:06
    Basicamente,
    nós temos aqui uma lista de transações
  • 3:06 - 3:10
    de uma lista vazia
    e eu vou estar de sanando essa lista.
  • 3:10 - 3:11
    Uma outra lista
  • 3:12 - 3:13
    fica numa lista de
  • 3:13 - 3:16
    listas
    onde cada linha que compõe a lista externa
  • 3:16 - 3:20
    ela é um dos produtos que foram adquiridos
  • 3:20 - 3:24
    e se ele for, não estou melhorando
    e só vou por dentro da lista mesmo.
  • 3:24 - 3:27
    A palavra que representa
    o nome daquele produto.
  • 3:27 - 3:31
    Então eu estou percorrendo
    o dado da primeira linha
  • 3:31 - 3:34
    até a última, criando
    essa nova representação, esse novo dado.
  • 3:35 - 3:38
    Aqui temos aqui um exemplo que unificou.
  • 3:38 - 3:41
    Então cada listinha dessa
    é uma cesta de compras.
  • 3:41 - 3:43
    Ela pode ser menor, maior e por aí vai.
  • 3:43 - 3:47
    Notem que me interessa saber
    e a relação de um produto com o outro?
  • 3:47 - 3:49
    A quantidade não é relevante no caso.
  • 3:49 - 3:52
    Então, saber que existe uma relação,
    por exemplo, entre
  • 3:53 - 3:56
    frango e ovo já é relevante para mim.
  • 3:56 - 3:57
    Me interessa saber
  • 3:57 - 4:00
    quantos ovos são associados a compra,
    de quantos quilos de frango, por exemplo,
  • 4:01 - 4:02
    ou vice versa.
  • 4:02 - 4:05
    Então, como aquela que é grandinha,
    vou lá pra baixo
  • 4:05 - 4:07
    para começar a construir
    a regra de associação.
  • 4:08 - 4:11
    O uso do método a priori é muito direto.
  • 4:11 - 4:16
    Basicamente, ele espera esses recordes,
    que são aquela lista de listas,
  • 4:16 - 4:21
    a lista dos produtos comprados de fato
    e aqui alguns fatores de parametrização.
  • 4:21 - 4:25
    Essa parametrização depende muito do que
    a gente quer, como é o tipo de negócio.
  • 4:25 - 4:28
    Aqui nós estamos a fazer
    uma parametrização do método baseado
  • 4:28 - 4:32
    em algumas métricas de avaliação
    da recomendação, ou seja, avaliar
  • 4:33 - 4:37
    o poder, digamos assim, daquela associação
    de um produto com outro.
  • 4:37 - 4:39
    Esse poder está ligado
  • 4:39 - 4:42
    às métricas de avaliação da relação
    entre um produto e outro.
  • 4:43 - 4:47
    Eu posso adicionar métricas
    como confiança, alavancagem entre
  • 4:47 - 4:48
    tantas outras.
  • 4:48 - 4:51
    Eu posso limitar inclusive,
    o tamanho da regra a ser criada.
  • 4:51 - 4:56
    Eu posso limitar, por exemplo,
    que as regras envolvam pelo -2 produtos,
  • 4:57 - 5:00
    mas eu posso criar regras que envolvem
    pelo -3, quatro, cinco produtos também.
  • 5:01 - 5:05
    Método a priori não tem certo ou errado,
    mas vamos fazer combinações
  • 5:05 - 5:09
    de produtos e produtos e verificar
    se existem dados evidências reais
  • 5:09 - 5:13
    que comprovem a eficácia eficiência,
    o poder de fato daquela associação.
  • 5:13 - 5:17
    Por exemplo,
    um lift é uma métrica interessante
  • 5:17 - 5:22
    que mostra alavancagem quando eu
    tenho um produto que leva a compra do B,
  • 5:22 - 5:26
    o quanto que o produto está alavancando
    a venda do B.
  • 5:26 - 5:28
    Por exemplo, a métrica do suporte.
  • 5:28 - 5:31
    Imagine que era verificar uma associação
    entre maçã e banana,
  • 5:31 - 5:35
    então o suporte dessa regra indica
    quantas vezes
  • 5:35 - 5:38
    maçãs e bananas
    foram compradas em conjunto
  • 5:38 - 5:40
    em todo o histórico de transações
    que estão analisando,
  • 5:42 - 5:44
    e eu posso verificar o suporte mínimo
  • 5:44 - 5:47
    assim que eu posso especificar um lift,
    uma alavancagem mínima.
  • 5:47 - 5:48
    O que isso quer dizer?
  • 5:48 - 5:52
    Eu estou minerando as regras
    e gerando combinações entre produtos.
  • 5:53 - 5:55
    Eu quero ter
  • 5:55 - 5:59
    uma regra que tenha no mínimo
    uma alavancagem de três, por exemplo.
  • 5:59 - 6:02
    Ou seja, essa é produto.
  • 6:02 - 6:06
    A compra dele alavanca
    a compra do bem em pelo -3 vezes.
  • 6:06 - 6:09
    Ou então, supondo nessa associação
  • 6:09 - 6:12
    entre produção de maçãs e bananas,
  • 6:12 - 6:17
    eu quero ter um suporte mínimo, ou seja,
    quero regras que indicam
  • 6:17 - 6:20
    que a parte que aparece no histórico
    pelo menos número mínimo de vezes.
  • 6:21 - 6:24
    Portanto, uma vez configurado
    o que a gente quer do ponto de vista de
  • 6:24 - 6:28
    regras mínimas, nós podemos rodar aqui
    o apriori para fazer essa mineração
  • 6:29 - 6:31
    sobre o conjunto de dados
    já pré preparado.
  • 6:31 - 6:33
    Então rodar o algoritmo
  • 6:34 - 6:35
    e veja que ele
  • 6:35 - 6:38
    rodou muito rápido,
    porque uma base de dados pequena de fato.
  • 6:39 - 6:40
    E aqui estou criando uma lista, forçando
  • 6:40 - 6:44
    a criação de uma lista da associação
    e verificando seu tamanho.
  • 6:44 - 6:47
    Foram geradas 24 regras.
  • 6:47 - 6:50
    Claro que se tivessem histórico de dados
    maior, com mais produtos,
  • 6:50 - 6:53
    teriam sido muito mais métricas
    serem geradas.
  • 6:53 - 6:56
    Ou caso tivessem relaxado essas métricas,
  • 6:56 - 7:00
    eu poderia ter regras
    um pouco mais fracas, mas mais abundantes.
  • 7:00 - 7:03
    Vamos entender a como
    que o apriori funciona para
  • 7:03 - 7:05
    como que ele gera essas regras.
  • 7:05 - 7:08
    Aqui eu posso puxar a primeira regra
    gerada por meio
  • 7:08 - 7:11
    no seguinte comando Association Round zero
  • 7:11 - 7:15
    Olhando a lista de regras,
    quero pegar primeiro
  • 7:16 - 7:19
    e aqui está mostrando os itens de fato.
  • 7:19 - 7:22
    Então é um creme com frango.
  • 7:23 - 7:25
    Qual é o item a ser colocado?
  • 7:25 - 7:28
    Qual o item que gerou a compra
    e posteriormente
  • 7:28 - 7:31
    essa regra tem qual lifetime mínimo?
  • 7:32 - 7:35
    Qual é a confiança apoiada dessa regra?
  • 7:35 - 7:35
    Também?
  • 7:38 - 7:41
    Eu posso pegar o seguinte é o segundo item
  • 7:41 - 7:45
    dessa composição, dessa regra,
    que é de fato a lista de recomendações.
  • 7:45 - 7:48
    Então to pegando a lista
    Association Rules,
  • 7:48 - 7:52
    o primeiro item ou zero e vou pegar agora
    a lista de recomendação em si.
  • 7:52 - 7:56
    Então o segundo item eu posso pegar aqui
    como uma lista de fato.
  • 7:57 - 8:01
    E se eu quiser pegar qual o produto
    personalizado,
  • 8:01 - 8:04
    eu vou fazer uma outra indexação
    baseado aqui
  • 8:05 - 8:09
    na posição zero dois na zero e novamente.
  • 8:09 - 8:12
    Então aqui eu tenho exatamente os produtos
  • 8:12 - 8:13
    configurados.
  • 8:13 - 8:17
    Note que a saída da regra anterior
    é dessa,
  • 8:17 - 8:20
    até mesmo porque essa regra aqui
    é bem simples tem dois produtos
  • 8:20 - 8:23
    apenas, ou seja, nesse ponto
    a regra já está melhorada.
  • 8:23 - 8:24
    O que tenho que fazer
  • 8:24 - 8:27
    é simplesmente passar por essas regras
    explorando que regras são essas?
  • 8:27 - 8:30
    Construindo aquele motor, digamos assim.
  • 8:30 - 8:32
    Quem compra a compra? A parte B.
  • 8:32 - 8:36
    A gente pode fazer isso com um laço
    que está iterando por essas regras também
  • 8:36 - 8:38
    começando na tela.
  • 8:38 - 8:40
    As principais métricas
    é que regras que foram geradas.
  • 8:40 - 8:41
    Vamos ver.
  • 8:41 - 8:44
    A próxima tela faz exatamente isso,
  • 8:45 - 8:45
    criando aqui.
  • 8:45 - 8:49
    Até mesmo o numerador da regra
    está aí um, dois, três
  • 8:49 - 8:52
    e está separando
    uma impressão da outra por uma.
  • 8:53 - 8:57
    Uma sequência de 15 iguais,
    digamos assim, impressas na tela.
  • 8:57 - 9:00
    Então vem naquele isso.
  • 9:03 - 9:06
    A primeira regra tem aqui na sexta
  • 9:07 - 9:09
    um creme também e frango.
  • 9:09 - 9:13
    E a segunda regra temos aqui escalope.
  • 9:13 - 9:16
    É uma carne também
    com o molho de cogumelo.
  • 9:17 - 9:21
    A terceira regra está colocando
    a carne também é massa.
  • 9:21 - 9:22
    E por aí vai.
  • 9:22 - 9:24
    Então nós podemos verificar
    quais são os produtos
  • 9:24 - 9:29
    que foram comprados em conjunto
    às vezes com umas regras pequenas.
  • 9:29 - 9:31
    Tá com o tamanho de dois?
  • 9:31 - 9:34
    Como nós configuramos
    o tamanho mínimo da regra para dois
  • 9:34 - 9:35
    envolvendo dois produtos,
  • 9:35 - 9:39
    nós temos várias regras que foram criadas
    com apenas dois produtos.
  • 9:40 - 9:41
    Mas olhando um pouco mais,
  • 9:41 - 9:44
    quais dessas regras
    que foram impressas com essas 24 criadas?
  • 9:44 - 9:47
    Isso em regras um pouco maiores, com três,
    com quatro produtos também.
  • 9:48 - 9:51
    No entanto, elas são menos
    comuns do que regras menores.
  • 9:53 - 9:53
    Então, aqui embaixo
  • 9:53 - 9:56
    nós temos também um exemplo
    com três produtos
  • 9:57 - 10:00
    ou com outros seis produtos diferentes
  • 10:00 - 10:02
    com outros seis produtos também,
  • 10:02 - 10:05
    que pode ser simplesmente
    uma combinação entre eles.
  • 10:05 - 10:08
    Eu posso tirando um produto
    e colocando outro no lugar,
  • 10:09 - 10:12
    mas essa base nos permitiu
    gerar esse conjunto de regras
  • 10:13 - 10:17
    e a pergunta que fica é como é que
    nós vamos entregar essas regras?
  • 10:17 - 10:20
    Se for, por exemplo, uma loja física,
    nós podemos pegar produtos
  • 10:20 - 10:23
    que tem uma relação
    e colocar próximo dos outros.
  • 10:23 - 10:26
    É claro que isso pode não ser viável.
  • 10:26 - 10:32
    Por exemplo, eu vou colocar um enlatado
    próximo de uma carne que está no açougue.
  • 10:32 - 10:36
    Talvez levar uma prateleira do enlatado
    para próximo do açougue faz sentido.
  • 10:36 - 10:39
    Ao levar a carne
    para um outro lugar, pode não ser viável
  • 10:40 - 10:41
    agora, no cenário
  • 10:41 - 10:45
    digital, quando, por exemplo,
    uma compra num e-commerce e nesse mercado,
  • 10:45 - 10:49
    ou até mesmo no aplicativo
    de relacionamento com os usuários,
  • 10:49 - 10:52
    com os clientes dessa loja,
    nós podemos verificar
  • 10:52 - 10:54
    baseado em qual produto
    a pessoa está interagindo,
  • 10:54 - 10:57
    colocou na compra, Pode ter algum card
    que indica por que não fizeram compra
  • 10:57 - 11:00
    também tal produto e esse outro aqui
    como nos conta alguma coisa do gênero?
  • 11:01 - 11:05
    Assim, o objetivo principal da regra
    de associação é achar a associação
  • 11:05 - 11:08
    uma relação de produtos
    que devem ser combinados.
  • 11:08 - 11:11
    A forma como nós vamos entregar
    essa inteligência
  • 11:11 - 11:14
    que a máquina gerou para a gente
    depende muito do negócio
  • 11:14 - 11:18
    a ser impactado
    e como ele quer implementar essa regra.
  • 11:18 - 11:19
    De fato, no mundo real.
Title:
MLM CAP06 2025 VA03 IMPLEMENTACAO DO METODO A PRIORI
Video Language:
Portuguese, Brazilian
Duration:
11:23

Portuguese, Brazilian subtitles

Incomplete

Revisions Compare revisions