Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

47 48 class Indexes extends CI_Controller 49 public 50 { function 51 construct() 52 parent : : 53 $this $this - > > config- load construct(); model load( model 55 public function 7 time 300): TEMA DE APRENDIZAGEM 3 IMPLEMENTAÇÃO DE ALGORITMOS DE REGRAS DE ASSOCIAÇÃO: APRIORI MINHAS METAS Compreender os fundamentos do algoritmo Apriori, incluindo a sua abordagem de busca por itens frequentes em conjuntos de dados. Familiarizar-se com o conceito de suporte em regras de associação. Dominar a equação do suporte e sua aplicação prática na análise de padrões de compra dos clientes. Explorar processo de geração de regras de associação a partir dos conjuntos de itens frequentes. Entender o conceito de confiança em regras de associação. Dominar a equação da confiança e sua utilização na avaliação de regras de associação. Aplicar algoritmo Apriori e as métricas de suporte e confiança em uma base de dados de transações de supermercado 5 0UNIASSELVI INICIE SUA JORNADA Imagine que você é um gerente de uma grande rede de supermercados e está inte- ressado em aumentar as vendas adicionais entre os produtos da sua loja. Você perce- be que os clientes que compram determinados produtos tendem a comprar outros itens em conjunto, e deseja identificar padrões de compra para otimizar a disposição dos produtos nas prateleiras e criar estratégias de marketing mais eficazes. A resolução dessa problemática é de extrema importância para a maximiza- ção das vendas e a satisfação dos clientes. Ao identificar os padrões de compra dos clientes, é possível agrupar produtos complementares e posicioná-los estra- tegicamente nas prateleiras, aumentando a probabilidade de vendas cruzadas. Isso não apenas aumenta a receita da loja, mas também melhora a experiência de compra dos clientes, que encontram os produtos que desejam mais facilmente. Para resolver essa questão, você decide implementar o algoritmo Apriori para identificar as regras de associação entre os produtos mais vendidos na sua loja. Você coleta dados de transações de vendas e utiliza o algoritmo Apriori para identificar conjuntos de itens frequentes e derivar regras de associação a partir desses conjuntos. Por exemplo, você pode descobrir que os clientes que compram pão também tendem a comprar queijo. Com base nessa informação, você pode colocar o queijo próximo ao pão para incentivar as vendas cruzadas. A implementação do algoritmo Apriori em Regras de Associação nos permite extrair insights valiosos dos dados de transações de vendas e tomar decisões estratégicas informadas para melhorar o desempenho do negócio. No entanto, é importante considerar que a análise de regras de associação pode ser complexa e requer uma compreensão profunda do domínio do problema e das métricas de avaliação. Além disso, é fundamental atualizar continuamente as análises à medida que os padrões de compra dos clientes mudam ao longo do tempo. PLAY NO CONHECIMENTO Antes de iniciarmos a implementação do algoritmo A Priori vamos ouvir um po- dcast que vai discorrer sobre os principais conceitos que serão utilizados na sua implementação. Recursos de mídia disponíveis no conteúdo digital do ambiente virtual de aprendizagem.TEMA DE APRENDIZAGEM 3 VAMOS RECORDAR? Vamos recordar os principais conceitos presentes na Mineração de Dados, revendo eventos e conceitos como: grande crescimento da produção de dados; tipos de dados e as aplicações correspondentes; ferramentas de mineração de dados e a diferença entre dado, informação e conhecimento. DESENVOLVA SEU POTENCIAL Vamos implementar o algoritmo A Priori utilizando a linguagem Python e o pacote Apyori disponível através da ferramenta de gerenciamento de pacotes de software PIP e desenvolvida em Python 2.7 e 3.3 3.5, sendo disponibilizada através de APIs e interfaces de linha de comando (Apyori, c2019). Nessa implementação, usaremos o algoritmo Apriori em uma base de dados contendo transações de compra em um supermercado. Dados: Cada linha representa uma transação e cada coluna corresponde a um pro- duto comprado. As células contêm uma sequência dos produtos comprados em cada transação, caso contrário o valor é nulo. Os dados foram obtidos do Kaggle e estão disponíveis neste link: https://www. kaggle.com/datasets/ayushish12/market-basket-optimisation Certifique-se que tem Python instalado no seu computador. Você pode utilizar a distribuição do Anacondahttps://www.anaconda.com/download(Anaconda, ou PyCharm https://www.jetbrains.com/pycharm/download/?section=windows (Pycharm, 2023) ou acessar diretamente site do Python https://www.python.org/ downloads/ (Python, 2024). Para usar Jupyter notebook, veja as instruções em https://jupyter.org/install (Jupyter, 5UNIASSELVI EU INDICO Google Colab é um serviço gratuito oferecido pelo Google que permite escre- ver e executar códigos Python diretamente no navegador. É amplamente utilizado para aprendizado de máquina, análise de dados e ensino de pois oferece GPUs gratuitas e integração com Google Drive. Para utilizá-lo, basta aces- sar Google Colab: https://colab.research.google.com/, criar um novo notebook e começar a codificar, sem necessidade de instalação de software. 1. Inicialmente, vamos criar um novo Jupyter notebook e incluir uma des- crição para ele. 2. Nessa atividade, além das bibliotecas pandas e numpy, vamos importar as bibliotecas apyori para usar o algoritmo apriori, e a matplotlib para gerar gráficos. pandas as pd import matplotlib.pyplot as plt import numpy as np (15,10) 3. Instale e importe a biblioteca apyori !pip -qq install apyori import apyori 4. Importando a base de dados. Cada objeto representa uma compra ou transação, e contém o nome de um ou mais produtos que fazem parte da compra. url = main/market-basket-optimisation.csv mercado = pd.read_csv(url, header=None) :5])TEMA DE APRENDIZAGEM 3 Após a execução dessa célula, os seguintes dados serão exibidos: apenas as 10 primeiras transações e as 5 primeiras colunas, onde podemos observar que na primeira transação, exibida na linha 0 temos os produtos que foram adquiridos nessa transação como: shrimp, almonds, avocado, vegetables mix e green grapes. Na segunda transação, indicada pela linha 1, temos os produtos: burgers, mea- tballs, eggs. O termo NaN indica ausência de ítem comprado. E assim temos a indicação dos ítens comprados nas demais transações. print 0 1 2 3 4 0 shrimp almonds avocado vegetables mix green grapes 1 burgers meatballs eggs NaN NaN 2 chutney NaN NaN NaN NaN 3 turkey avocado NaN NaN NaN 4 mineral water milk energy bar whole wheat rice green tea 5 low fat yogurt NaN NaN NaN NaN 6 whole wheat pasta french fries NaN NaN NaN 7 soup light cream shallot NaN NaN 8 frozen vegetables spaghetti green tea NaN NaN 9 french fries NaN NaN NaN NaN Figura 1 Tela com as 10 primeiras transações constantes na base de dados / Fonte: o autor. Descrição da Imagem: tabela com os itens presentes nas 10 primeiras transações, sendo a primeira transação com os seguintes ítens: almonds, avocado,vegetables mix e green grapes Na segunda burgers, meatballs e eggs. E nas demais transações diversos outros produtos do mix de produtos constante nos dados carregados. O tamanho total da base de dados pode ser feito com o comando: len(mercado) Que retornará a saída: 7501 5. Nesse momento será preciso fazer uma limpeza nos dados, removendo espaços em branco de alguns produtos for index in mercado.columns = 4UNIASSELVI 6. Vamos fazer uma análise exploratória inicial vendo os produtos existentes na base de dados. A função melt() permite modificar o formato original do dataframe. Nesse caso, estamos pegando os valores, excluindo os nulos e ordenando. itens = print(f'Existem {itens.nunique()} produtos itens.unique()) Após a execução dessa célula, os seguintes dados serão exibidos (lista dos pro- dutos distintos nas transações: Existem 119 produtos distintos: ['almonds' 'asparagus' 'babies food' sauce' 'black 'blueberries' body 'brownies' 'bug burger sauce' 'burgers' 'butter' 'cake' bars' 'carrots' 'cereals' 'champagne' 'chocolate' bread' 'cider' 'clothes 'cookies' 'corn' cottage cheese' 'cream' 'dessert bar 'extra dark flax seed' 'french french 'fresh bread' 'fresh 'fromage 'frozen smoothie' 'frozen 'gluten free bar' 'grated 'green 'green 'hand protein & pepper 'honey' 'hot 'light mayo' 'low fat 'mashed 'mayonnaise' 'meatballs' 'melons' 'milk' 'mint' 'mint green 'muffins' cream sauce' 'napkins' 'oatmeal' 'oil' oil 'parmesan cheese' 'pasta' 'pepper' 'pet food' 'protein 'red wine' 'rice' 'salad' 'salmon' 'salt' 'shallot' 'shrimp' 'soda' 'soup' 'sparkling water' 'strawberries' 'strong cheese' 'tea' 'tomato juice' sauce' 'tomatoes' 'turkey' 'vegetables mix' spray' 'white weat flour' 'whole wheat pasta' wheat rice' 'yams' 'yogurt Figura 2 Tela com a lista dos produtos distintos nas transações / Fonte: o autor. Descrição da Imagem: impressão dos 199 produtos distintos em ordem alfabética, iniciando com o produto almonds e encerrando com o produto zucchini. Fim da descrição.TEMA DE APRENDIZAGEM 3 7. Vamos verificar os itens mais vendidos qtde_itens = itens.value_counts() barra = barra.set_title("Itens mais vendidos", size=20, weight=500, pad=15) barra.set_ylabel("Qtde") plt.show() Após a execução dessa célula, os seguintes dados serão exibidos (gráfico dos itens mais vendidos): Itens mais vendidos 1750 1500 1250 1000 750 500 250 0 Figura 3 - Tela com os itens mais vendidos / Fonte: o autor. Descrição da Imagem: gráfico de barras verticais de totais de vendas, por tipo de produto que mostra que produto mais vendido foi água mineral com mais 1.750 unidades vendidas, vindo a seguir o produto ovos com mais de 1.250 unidades vendidas, seguido por batatas fritas, chá verde, leite, carne vegetais congelados e panquecas. da 6 5UNIASSELVI 8. E também os itens menos vendidos. barra = barra.set_title("Itens menos vendidos", size=20, weight=500, pad=15) barra.set_ylabel("Qtde") plt.show() Após a execução dessa célula, os seguintes dados serão exibidos (gráfico dos itens menos vendidos): Itens menos vendidos 1500 1250 1000 750 500 250 0 de de de Figura 4 Tela com os itens menos vendidos / Fonte: o autor. Descrição da Imagem: "gráfico de barras verticais de totais de vendas, por tipo de produto que mostra que o produto menos vendido foi spray de água com menos de 5 unidades vendidas, vindo a seguir o produto guarda- napos com 5 unidades vendidas, seguido por creme, ameixa, chá, purê de batata, molho picante, pão de chocolate, ketchup e aveia. Fim da descrição 7TEMA DE APRENDIZAGEM 3 9. Pré-processamento: vamos contar os itens de cada transação para iden- tificar objetos com mais de um item por transação. #conta a qtde de itens não nulos em cada objeto qtde_por_cesta = mercado.notna().apply(sum axis=1) 10. No Apriori, é necessário haver ao menos 2 itens em cada transação, então vamos eliminar transações com um único produto. #separando os objetos com mais de um item na transação cestas = [set(linha.dropna()) for linha in > cestas[:5] Após a execução dessa célula, os seguintes dados serão exibidos (relação dos objetos com mais de um ítem na transação): 'cottage energy 'frozen smoothie', 'green green tea', 'honey', fat yogurt', 'olive 'tomato juice', weat flour' {'burgers' 'eggs', 'meatballs'}, 'turkey'}, 'mineral wheat rice'}, {'french fries', wheat Figura 5 - Tela com os objetos com mais de um ítem na transação / Fonte: o autor. Descrição da Imagem: listagem das transações que possuem mais de um Iniciando com a transação com 20 ítens, cujo primeiro item é almond e o último é o yams, seguindo as demais transações que contém mais de um ítem na transação. Fim da descrição.UNIASSELVI Podemos agora verificar o total das combinações (cestas): len(cestas) Que exibirá o resultado: 5747 11. Vamos rodar o Apriori, definindo os valores mínimos de suporte e con- fiança. resultado mostra as regras de associação que atendem aos ní- veis de suporte e confiança que escolhemos. Nesse exemplo, os níveis de suporte são baixos. O item mais vendido (água mineral) aparece na maioria das relações. Os resultados podem ser usados para a criação de promoções de itens relacionados, ou então para reorganizar os produtos de forma a facilitar as compras que os clientes fazem. minsup 0.04 minconf 0.3 regras_associacao = apyori.apriori(cestas, min_support=minsup min_confidence=min- conf) for regra in regras_associacao: itens list(regra.items) print( --> [{itens[-1]}] Suporte: f" Confiança: ) Após a execução dessa célula, os seguintes dados serão exibidos (relação das regras geradas):TEMA DE APRENDIZAGEM 3 [mineral water] Suporte: 0.069 0.342 [mineral water] Suporte: 0.066 0.304 ['frozen [mineral water] Suporte: 0.047 0.385 ['mineral --> [ground beef] Suporte: 0.053 0.429 [ground beef] Suporte: 0.051 Confiança: 0.411 ['mineral water'] [milk] Suporte: 0.063 0.383 --> [mineral water] Suporte: 0.044 Confiança: 0.375 ['mineral water'] [spaghetti] Suporte: 0.078 0.357 Figura 6 Tela com as regras geradas / Fonte: a outor. Descrição da Imagem: impressão da tela com as regras geradas, iniciando com a regra: chocolate então mineral water com suporte de 0.069 e confianca de segunda regra é eggs então mineral water com suporte de 0.066 e confiança de 0.304 e assim sucessivamente até a oitava regra que é mineral water então spaghetti com suporte de 0.078 e confiança de Fim da descrição. O mesmo algoritmo pode ser utilizado em outras bases de dados como por exem- plo uma base de dados de preferências de leitores por seus autores favoritos. Substitua o trecho de leitura da base dados do exemplo anterior no item 4 por: create sample dataset columns mercado [[1, [2, [3, Cervantes [4, np.nan, [6, np.nan, [7, [8, np.nan, [9, np.man, Figura 7 Tela com dados de leitores / Fonte: o autor. Descrição da Imagem: impressão da tela com informações sobre leitores, tendo a primeira linha os dados: 1, Cervantes, Shakespeare, Hemingway, na linha seguinte: 2, Hemingway, e assim sucessivamente até a linha 10 com os dados: Neruda Fim da descrição. E, a seguir, crie um dataframe com esses dados: 6 0UNIASSELVI print (n) 0 1 2 3 4 5 6 0 1 Cervantes Shakespeare Hemingway nan nan nan nan nan nan 1 2 Goethe Shakespeare Hemingway nan nan nan nan nan 2 3 Shakespeare nan nan nan nan nan nan 3 4 Goethe Cervantes Shakespeare Neruda nan nan nan nan 4 5 Dostoievski Neruda nan nan nan nan nan nan nan 6 Hemingway Neruda nan nan nan nan nan nan 6 7 Shakespeare Meireles Amado nan nan nan nan nan 7 8 Hemingway Lispector nan nan nan nan nan nan 8 9 Neruda Lispector nan nan nan nan nan nan nan 9 10 Neruda nan nan nan nan nan nan Figura 8 Tela com dataframe criado / Fonte: o autor. Descrição da Imagem: impressão com o dataframe criado, tendo a primeira linha os dados: Cervantes, Shakes- peare, na linha seguinte: 2, Goethe, Dostoievski, Shakespeare, Hemingway, e assim sucessivamente até a linha 10 com os dados: Neruda, Amado, da descrição. Agora basta executar as células a seguir (do exemplo anterior), que teremos as regras de associação geradas: #conta a qtde de itens não nulos em cada objeto qtde_por_cesta = n.notna().apply(sum, axis=1) #separando os objetos com mais de um item na transação cestas = for linha in > cestas[:5] minsup 0.3 minconf 0.5 regras_associacao = apyori.apriori(cestas, min_support=minsup, min_confidence=min- conf) for regra in itens = list(regra.items) # Verifica se todos os itens são diferentes de 'nan' if all(item for item in itens): print( --> Suporte: f' Confiança: ) As regras de associação geradas desse exemplo são: 6 1TEMA DE APRENDIZAGEM 3 ['Shakespeare'] [Cervantes] Suporte: 0.300 Confiança: 1.000 ['Dostoievski'] --> [Shakespeare] Suporte: 0.300 Confiança: 0.600 Figura 9 Tela com regras geradas / Fonte: o autor. Descrição da Imagem: tela com a impressão das duas regras criadas sendo a primeira: Shakespeare então Cervantes com suporte de 0.300 e confiança de 1.000 e a segunda regra: Dostoiévski então Shakespeare com suporte de 0.300 e confiança de Fim da descrição. EU INDICO Acesso ao código Para conferir todo o processo desenvolvido até momento, bem como editar e executar passo a passo do algoritmo, acesse o link a seguir: https://colab. sharing. No Google você pode executar códigos Python diretamente no navegador, colaborar em tempo real com outros usuários e utilizar GPUs gratuitas para acelerar suas tarefas. Esta ferramenta é ideal para aprendizado de máquina, análise de dados e ensino de programação, proporcionando um ambiente intera- tivo e eficiente. Fatores que afetam a complexidade do algoritmo A Priori A escolha do limiar de suporte mínimo diminuir o suporte resulta em mais conjuntos frequentes de itens isso pode aumentar o número de candidatos e tamanho máximo dos conjuntos frequentes de itens. A dimensionalidade (número de itens) mais espaço é necessário para guardar a contagem de suporte de cada item se o número de itens frequen- tes também aumenta, tanto custos de computação como I/O aumentam. tamanho da base de dados como Apriori faz múltiplas varreduras, o tempo de execução do algoritmo pode aumentar com o número de transações. o tamanho médio da transação tamanho da transação aumenta com conjuntos de dados mais densos isso pode aumentar o comprimento máximo de conjuntos frequentes de itens e varreduras por subconjuntos em uma transação (maior quantidade de subconjuntos). 6 2UNIASSELVI Chegamos ao final da implementação do algoritmo A Priori. Você pode utilizar outras bases de dados que desejar para extrair as possíveis regras de associação dependendo dos valores informados para os fatores de suporte e confiança. A utilização de técnicas de mineração de dados pode até ser utilizada em previsões de cotação na Bolsa de Valores e também em sugestões de apostas em jogos de azar. INDICAÇÃO DE FILME Filme: Quebrando a banca Ben Campbell (Jim Sturgess) é um jovem tímido e superdota- do do MIT que, precisando pagar a faculdade, busca a quantia necessária em jogos de cartas. Ele é chamado para integrar um grupo de alunos que, liderado por Micky Rosa (Kevin Spacey), um professor de matemática e gênio em estatística, conse- guem montar um código infalível. Contando cartas e usando um complexo sistema de sinais, eles conseguem quebrar di- versos cassinos. EM FOCO Confira aqui uma aula referente a este assunto. Recursos de mídia disponíveis no conteúdo digital do ambiente virtual de aprendizagem. NOVOS DESAFIOS A teoria por trás da implementação do algoritmo Apriori em regras de associa- ção fornece as bases fundamentais para entender como o algoritmo funciona e como ele pode ser aplicado na prática. O algoritmo Apriori é uma técnica amplamente utilizada na mineração de dados para identificar padrões de asso- ciação entre itens em grandes conjuntos de dados, como transações de vendas em supermercados ou registros de cliques em sites. A teoria por trás do Apriori, como o princípio Apriori e as métricas de suporte, confiança e lift, proporciona uma compreensão profunda dos conceitos subjacentes à geração e avaliação de regras de associação. 6 3TEMA DE APRENDIZAGEM 3 Na prática, a implementação do algoritmo Apriori envolve a aplicação desses conceitos teóricos a conjuntos de dados do mundo real. No mercado de trabalho, profissionais que possuem habilidades em implementar e interpretar o Apriori são altamente valorizados, especialmente em setores como varejo, marketing digital, e-commerce e análise de dados. Esses profissionais são responsáveis por extrair insights valiosos dos dados transacionais e ajudar as empresas a tomarem decisões estratégicas informadas. Ao aplicar o Apriori no mercado de trabalho, os profissionais podem: 1. IDENTIFICAR PADRÕES DE COMPRA DOS CLIENTES: ao analisar os dados de transações de vendas, os profissionais podem usar Apriori para identificar quais produtos são frequentemente comprados juntos. Isso permite que as empresas criem estratégias de cross-selling e posicionem os produtos de for- ma mais eficaz nas prateleiras. 2. OTIMIZAR CAMPANHAS DE utilizando as regras de associação geradas pelo Apriori, as empresas podem segmen- tar melhor seus clientes e personalizar suas campanhas de marketing para atender às necessidades e preferências específicas de cada segmento. 3. AUMENTAR A EFICIÊNCIA OPERACIONAL: ao entender os padrões de compra dos clientes, as empresas podem otimizar seus processos de estoque, logística e distribuição para garantir que os produtos certos estejam disponíveis no momento certo e no local certo. Em suma, a conexão entre teoria e prática na implementação do algoritmo Aprio- ri é fundamental para aproveitar ao máximo o poder dos dados e impulsionar o sucesso nos negócios. Os profissionais que dominam tanto os fundamentos teóricos quanto as aplicações práticas do Apriori têm uma vantagem significativa no mercado de trabalho, pois são capazes de traduzir insights de dados em ações tangíveis que impulsionam o crescimento e a inovação nas empresas. 6 4

Mais conteúdos dessa disciplina