UNIJUI - UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL
DCEEng – DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS
APLICAÇÃO DE PROCESSOS DE DESCOBERTA DE CONHECIMENTO EM BANCO DE DADOS
PROVENIENTE DE UM ERP
PABLO BOFF PIGOZZO
Ijuí
UNIJUI - UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL
DCEEng – DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS
APLICAÇÃO DE PROCESSOS DE DESCOBERTA DE CONHECIMENTO EM BANCO DE DADOS
PROVENIENTE DE UM ERP
PABLO BOFF PIGOZZO
Trabalho de Conclusão de Curso apresentado ao Curso de Ciência da Computação do Departamento de Ciências Exatas e Engenharias (DCEEng), da Universidade Regional do Noroeste do Estado do Rio Grande do Sul (UNIJUÍ), como requisito para a obtenção do título Bacharel em Ciência da Computação.
Orientador: Prof. Me. Vinícius Maran
Ijuí
APLICAÇÃO DE PROCESSOS DE DESCOBERTA DE CONHECIMENTO EM BANCO DE DADOS
PROVENIENTE DE UM ERP
PABLO BOFF PIGOZZO
Trabalho de Conclusão de Curso apresentado ao Curso de Ciência da Computação do Departamento de Ciências Exatas e Engenharias (DCEEng), da Universidade Regional do Noroeste do Estado do Rio Grande do Sul (UNIJUÍ), como requisito para a obtenção do título Bacharel em Ciência da Computação.
________________________________ Orientador: Prof. Me. Vinícius Maran
BANCA EXAMINADORA
________________________________ Prof. Me. Rogério Samuel de Moura
Martins
Ijuí
“A menos que modifiquemos a nossa maneira de pensar, não seremos capazes de resolver os problemas causados pela forma como nos acostumamos a ver o mundo”.
AGRADECIMENTOS
A Deus, por ter iluminado e mostrado o caminho para chegar até aqui.
Aos meus pais, Loreno e Terezinha, exemplo de pessoas, ensinaram-me acima de tudo que, impossível e desistência, são duas palavras que não devem fazer parte do cotidiano. Todo o apoio, incondicional, diga-se de passagem, pois nunca mediram esforços para me ajudar a realizar este sonho, dedicação, amor, paciência, compreensão e carinho passado foram fundamentais.
A minha irmã, Paola, que acompanhou de perto, sempre presente e apoiadora.
A todos os meus familiares, especialmente o tio Vilmar, que esteve junto em todos os momentos.
Aos amigos e colegas.
A todos os meus professores pelo direcionamento e por contribuir diretamente nessa conquista, em especial, ao professor Vinícius pela paciência, dedicação e empenho durante o desenvolvimento do presente trabalho de conclusão de curso.
E a todos que participaram, direta ou indiretamente, desta grande conquista.
LISTA DE SIGLAS
ACID Atomicidade, Consistência, Isolamento e Durabilidade DCBD Descoberta de Conhecimento em Banco de Dados MD Mineração de Dados
DM Data Mining DW Data Warehouse ODM Oracle Data Miner
KDD Knowledge Discovery in Databases
CRISP-DM Cross-Industry Standard Processo of Data Mining MBA Market Basket Analysis
ERP Enterprise Resource Planning
WEKA Waikato Environment for Knowledge Analysis SGBD Sistema Gerenciador de Banco de Dados ETL Extract Transform Load
SSL Secure Sockets Layer SQL Structured Query Language
LISTA DE TABELAS
Tabela 1: Campos necessários dos Clientes e suas Categorias...46 Tabela 2: Amostra dos dados extraídos dos Clientes...47 Tabela 3: Campos necessários das Vendas, Produtos e Categorias de Produtos...49 Tabela 4: Primeira parte da amostra dos dados exportados das Vendas...50 Tabela 5: Segunda parte da amostra dos dados exportados das Vendas...50 Tabela 6: Resultados da Associação de Produtos, gerado pelo algoritmo Apriori...64 Tabela 7: Resultado da Associações de Categorias de produtos nas Vendas...68
LISTA DE FIGURAS
Figura 1: Etapas do processo de melhoria na qualidade dos dados
(SCHREIBER et al., 2000)...16
Figura 2: Etapas do Processo de DCBD (Adaptada de Fayyad et al.,1996)..18
Figura 3: Processo CRISP-DM (CRISP-DM, 2000)...20
Figura 4: Fases do conceito de CRISP-DM (Camilo et al., 2009)...23
Figura 5: Etapas da implementação...37
Figura 6: Interface de usuário do Oracle Data Miner...42
Figura 7: Exemplo de Fluxo de Trabalho do Oracle Data Miner ...42
Figura 8: Análise de um modelo de árvore de decisão...43
Figura 9: Interface de usuário do Aqua Data Studio...44
Figura 10: Diagrama Entidade-Relacionamento das tabelas de Clientes e Grupo de Clientes...46
Figura 11: Diagrama Entidade-Relacionamento das tabelas envolvidas em uma Venda...48
Figura 12: Modelo de objeto usado pelo ODM para MD...52
Figura 13: Fluxo de trabalho do problema de Analise de Risco à Inadimplência...54
Figura 14: Fluxo de trabalho da busca por Associação de Produtos nas Vendas ...56
Figura 15: Resultado da implementação do algoritmo Árvore de Decisão...59
Figura 16: Resultado gerado para o Nó 2...59
Figura 17: Resultado gerado para o Nó 8...60
Figura 18: Resultado gerado para o Nó 1...60
Figura 19: Exemplo de Regras Associativas geradas pelo algoritmo Apriori.65 Figura 20: Variação do suporte com relação ao Lift...66
Figura 21: Resultado das Regras Associativas satisfatórias geradas pelo algoritmo Apriori ...68
RESUMO
As empresas estão necessitando aprimorar, cada vez mais, seus negócios devido a alta competitividade, e esta não é uma tarefa fácil. Uma alternativa que tem se mostrado muito viável parte do conceito de que, quanto maior for o conhecimento de causa, mais precisas e otimizadas serão as decisões sobre o domínio. Como as empresas armazenam, comumente, grandes quantidades de dados, parte destes, oriundos de suas atividades administrativas diárias, é possível obter conhecimento útil através de técnicas específicas e direcionadas a este propósito. Diante deste contexto, o principal objetivo deste trabalho é aplicar processos de Descoberta de Conhecimento em Banco de Dados, mais especificamente, Mineração de Dados e seus algoritmos, visando agregar conhecimento relevante e decisório para a empresa. O projeto foi desenvolvido com o auxílio de diversas ferramentas direcionadas a para este fim, as quais, serviram para tarefas que partiram desde a extração de dados até a análise dos resultados e submissão à empresa para aproveitamento e posterior feedback.
Palavras-chave: Data Warehouse, Mineração de Dados, Apriori, Árvore de Decisão, Processo de Descoberta de Conhecimento em Banco de Dados.
ABSTRACT
Companies, more often, need to improve their business due to high competitively, and that is not an easily accomplished task. An alternative that has been showing highly viable considers that, the more you know about the case, more precise the decisions can be. As the companies stores, usually, big chunks of data, some of them derived from daily administrative tasks, it is possible to obtain useful knowledge by using specific and directed techniques for that purpose. With this context, the main goal of this project is to implement processes of Knowledge Discovery in Databases, more specifically, Data Mining and its algorithms, to gather relevant knowledge and decisions for the company. The project was developed with the help of various tools, its were used from tasks like the data extraction to the analysis of the results and the submission to the company for approval and future feedback.
Keywords: Data Warehuse, Data Mining, Apriori, Decision Tree, Knowledge Discovery in Databases.
SUMÁRIO
1 INTRODUÇÃO ... 13
1.1 PROBLEMA ... 13
1.2 ORGANIZAÇÃO DO TEXTO ... 14
2 DESCOBERTA DE CONHECIMENTO EM BANCO DE DADOS (DCBD) ... 15
2.1 TRATAMENTO DOS DADOS ... 16
2.2 CONCEITOS DE DCBD ... 18
2.2.1 Processo de Fayyad ... 18
2.2.2 Etapas do conceito CRISP-‐DM ... 20
3 DATAWAREHOUSE E MINERAÇÃO DE DADOS ... 24
3.1 DATAWAREHOUSE ... 24
3.2 MINERAÇÃO DE DADOS (MD) ... 24
3.2.1 Classificação ... 26
3.2.2 Associação ... 27
3.2.3 Agrupamento ou Categorização ... 29
3.2.4 Padrões Sequenciais ... 29
3.3 ALGORITMOS DE MINERAÇÃO ... 30
3.3.1 Algoritmo Apriori ... 30
3.3.2 Algoritmo de Árvores de Decisão ... 32
4 PROCESSO DE DESCOBERTA DE CONHECIMENTO EM BANCO DE DADOS DE UM ERP . 34 4.1 CONTEXTO DA APLICAÇÃO ... 34
4.1.1 Análise e Identificação de Grupos de Risco à Inadimplência. ... 35
4.1.2 Cesta de Produtos e Vendas Associadas ... 36
4.2 APLICAÇÃO DA MINERAÇÃO DE DADOS ... 37
4.3 AMBIENTE DE TRABALHO UTILIZADO ... 38
4.4 FERRAMENTAS ... 38
4.4.1 PostgreSQL e PgAdmin ... 40
4.4.2 Oracle Database ... 41
4.4.3 Oracle Data Mining (ODM) ... 41
4.4.4 Aqua Data Studio ... 43
4.5 EXTRAÇÃO E PROCESSAMENTO DOS DADOS ... 44
4.6 IMPLEMENTAÇÃO DE UM DATA WAREHOUSE ... 50
4.7 APLICAÇÃO DOS MODELOS DE MINERAÇÃO DE DADOS E SEUS ALGORITMOS ... 51
4.7.1 Aplicação do algoritmo de Árvore de Decisão na análise de grupos de risco à inadimplência ... 52
4.7.2 Aplicação do algoritmo Apriori na busca de novos padrões associativos nas vendas de produtos ... 54
5 ANÁLISE DOS RESULTADOS E FEEDBACK ... 56
5.1 ANÁLISE DE GRUPOS DE RISCO À INADIMPLÊNCIA ... 57
5.2 ANÁLISE DE RESULTADOS DA BUSCA DE PADRÕES ASSOCIATIVOS DE PRODUTOS E SUAS CATEGORIAS NAS VENDAS ... 63
6 CONCLUSÕES E TRABALHOS FUTUROS ... 70 REFERÊNCIAS BIBLIOGRÁFICAS ... 71
1 INTRODUÇÃO
Com a crescente e necessária utilização e evolução de sistemas informatizados nos diversos ramos empresariais, tem-se a consequência de um significativo aumento na quantidade de dados manipulados e armazenados. Também considera-se como um agravante, o custo de armazenamento atualmente barato, tornando-se assim um facilitador deste processo de geração de grandes massas de dados.
Emergindo às dificuldades em recuperar estes através do uso de métodos convencionais, sejam eles estatísticos, em formato de planilhas e/ou relatórios, exige-se então procedimentos mais avançados e complexos para a descoberta de novos conhecimentos em bancos de dados, conhecidos como Processos de Descoberta de Conhecimento em Banco de Dados (KDD - Knowledge Discovery in Databases).
No contexto de um ambiente coorporativo, é de fundamental importância obter informações relevantes e detalhadas, auxiliando os diversos níveis gerenciais na difícil tarefa de tomada de decisões, melhorando os índices de acerto e criando um diferencial em relação as concorrentes do mesmo ramo (ELMASRI; NAVATHE, 2000, pg. 699).
1.1 Problema
Segundo Fayyad et al (1996), corporações tem promovido um crescimento em larga escala de seus bancos de dados, ultrapassando os limites usuais e incapacitando-as de posteriormente, extrair estas informações para análise, gerando a necessidade de novas técnicas e ferramentas para fazer esta tarefa.
Diante desse problema, uma das alternativas mais adequadas é a utilização de Processos de Descoberta de Conhecimento em Banco de Dados, mais especificamente, Mineração de Dados. Suas técnicas e ferramentas para a obtenção e extração de conjuntos de informações são capazes de servir de apoio nas áreas estratégicas e de tomada de decisões de uma empresa, auxiliando no negócio como um todo e otimizando seus respectivos processos e resultados.
Desta forma, o principal objetivo deste trabalho é classificar e catalogar dados para a aplicação de uma técnica de mineração visando obter novas informações relevantes e conhecimento implícito no domínio de um ERP comercial. As informações resultantes do processo serão utilizadas para auxiliar a tomada de decisões nas áreas de negócios de uma organização empresarial.
1.2 Organização do Texto
Este trabalho está estruturado da seguinte forma: o Capítulo 2 apresenta o referencial teórico, descrevendo as tecnologias e conhecimentos envolvidos na realização do trabalho. No capítulo 3 é apresentada a escolha das técnicas, algoritmos e ferramentas de análise, demonstrando como é feito o desenvolvimento e aplicação dos conhecimentos obtidos. O Capítulo 4 apresenta o processo de descoberta de conhecimento em uma base de dados utilizada por um ERP comercial. O Capítulo 5 apresenta a análise dos resultados e o feedback apresentado à empresa. O Capítulo 6 apresenta as conclusões deste trabalho.
2 DESCOBERTA DE CONHECIMENTO EM BANCO DE
DADOS (DCBD)
O Processo de Descoberta de Conhecimento em Banco de Dados (KDD) é um conjunto de passos para efetuar a extração de coleções de dados onde as técnicas comuns não conseguem efetividade à frente de grandes quantidades de dados, transformando esses dados em informações úteis e conhecimento.
Para Goldschmidt (2005), independentemente do campo de estudo e também da quantidade de dados que tem-se sobre um determinado domínio, nada significa quando não se pode interpretá-los a fim de obter conhecimentos úteis. Com o constante aumento na quantidade de dados armazenados, indaga-se cada vez mais sobre o que são, para que servem esses e qual é o seu valor no contexto que está alocado.
Tanto no universo corporativo, no qual serão focados os estudos do presente trabalho e os processos de mineração, como em diversos outros, conhecer os dados que se está manipulando é extremamente importante. A visão obtida sobre uma análise de dados de má qualidade compromete diretamente o resultado do processo como um todo, portanto é fundamental definir os tipos de dados que serão utilizados.
Assim, podemos classificar os dados em dois tipos: quantitativos e qualitativos. Os dados quantitativos são representados utilizando valores numéricos, podendo ter valores discretos e contínuos. Define-se para esse tipo, dados nos quais apontam informações que representam quantidade propriamente dita. A qualitativa sempre é apresentada por valores nominais ou ordinais, sendo que o último é geralmente representado em forma categórica.
Fayyad (1997) afirma que nos ramos de negócios, os dados detêm importantes informações mercadológicas. Através destes dados então, tem-se a oportunidade de melhorar o detem-sempenho, otimizar processos e resolver problemas da organização, tornando-a mais eficiente e competitiva.
Entendendo-se que os conjuntos de dados puros não são informações e precisam ser transformados, pode-se então definir informação como um conjunto de dados que tem sentido e valor em um determinado contexto. O
objetivo de trabalhar com esses dados, é a obtenção do conhecimento que venha a auxiliar na prática, as pessoas a tomarem uma decisão ou criar novos conhecimentos sobre o domínio em questão.
2.1 Tratamento dos Dados
Para conseguir dados mais claros e úteis, tem-se formas de normalizá-los antes de qualquer análise. Segundo Han et al. (2006), pode-se chamar esse trabalho de pré-processamento e é constituído basicamente de quatro etapas (Figura 1):
Figura 1: Etapas do processo de melhoria na qualidade dos dados (SCHREIBER et al., 2000)
• Limpeza dos Dados
A primeira etapa no processo de tratamento de dados é a de limpeza, na qual verifica-se dados com diversas inconsistências, como valores errados, nulos e inválidos. As formas de corrigir esses problemas vão desde remoção de registros com problema, até a substituição e aplicação de métodos de agrupamento para descoberta de conhecimento comum. Toda e
qualquer atividade executada nessa etapa, tem que ser feita de forma que não altere o resultado final e nem descaracterize o dado.
• Integração dos Dados
A etapa de integração tem um nível de dificuldade e trabalho elevado, pois geralmente tem-se dados de diversas fontes e dos mais variados tipos, portanto deve-se unificá-los em um lugar só de forma concisa e que não prejudique a integridade dos mesmos.
• Transformação dos Dados
Esta etapa visa ajustar os valores para que tenham sentido diante da técnica aplicada, por exemplo, transformando valores numéricos em categóricos e vice-versa.
Algumas tarefas que são feitas neste etapa são: remoção de valores errados, agrupamentos e classificações, conversão de diversos valores diferentes em valores padronizados e geração de novos dados a partir dos já existentes, visando melhorar a qualidade destes. (HAN; KAMBER, 2006).
• Redução dos Dados
A última etapa visa reduzir as quantidades de dados pois, geralmente, quando se objetiva a aplicação de mineração de dados, o volume de dados é alto, consequentemente demorando mais tempo e consumindo mais recursos no processamento dos mesmos. Com uma boa redução de dados, tem-se ganhos significativos nos resultados finais, tornando o processo todo mais ágil, eficiente e exato.
Para fazer a redução de dados, podemos utilizar estruturas de dados otimizadas, seleção de subconjuntos de atributos, buscas por duplicidades e dimensionalidade.
Através dos processos de melhoria da qualidade dos dados, tem-se uma probabilidade maior de transformá-los em conhecimento, sendo este então, um dos bens mais valiosos para os processos decisórios e estratégicos das empresas, portanto, tem-se como foco principal a obtenção do mesmo. Este conhecimento pode ser obtido através de ferramentas, metodologias e processos, nas quais serão vistas a seguir (WEISS; INDURKHYA, 1998).
2.2 Conceitos de DCBD
Após ter os dados trabalhados a fim de obter melhor qualidade, deve-se aplicar os processos de DCBD. Serão abordados dois conceitos de processos, um definido por Fayyad et al. (1996) e o CRISP-DM.
2.2.1 Processo de Fayyad
As etapas do processo definido por Fayyad et al. (1996) são: Seleção, Pré-processamento, Transformação, Mineração de Dados e por fim a Interpretação. A Figura 2 apresenta uma representação das etapas definidas por Fayyad et al. (1996).
Figura 2: Etapas do Processo de DCBD (Adaptada de Fayyad et al.,1996)
• Seleção de Dados
Como no primeiro passo, faz-se a seleção de dados que interessam ao objetivo à partir do(s) banco(s) de dados disponíveis. Os dados resultantes desta etapa são de extrema importância para o alcance dos resultados adequados, visto que se não forem os corretos pré-selecionados, as análises e aplicações das técnicas propostas não farão sentido.
A fim de reafirmar a importância dessa etapa, Brauner (2003), define que “[...] o sucesso do processo depende da escolha correta dos dados que formam o conjunto de dados alvo, pois é neste subconjunto que, mais adiante
no processo, serão aplicados os algoritmos para descoberta de conhecimento.”
• Pré-processamento
Esta fase do processo consiste em pegar os dados fornecidos pela etapa de seleção e efetuar um pré-processamento, eliminando possíveis problemas de redundância, falta de formatação, dados incompletos, ruído e qualquer anormalidade que possa comprometer os resultados, ou seja, efetuando uma espécie de limpeza da seleção dos dados.
• Transformação
Neste momento os dados podem ser padronizados de acordo com as necessidades das técnicas de mineração de dados e seus algoritmos, pois estas podem exigir uma formatação para conseguir obter melhores resultados.
Normalmente, são realizados agrupamentos de dados e consequentemente, uma melhora na disposição dos dados, como a criação de coleções de informações repetidas para otimizar o desempenho e execução do algoritmo proposto. Aqui, pode-se também, realizar a transformação de dados para reduzir a sua quantidade (ELSAMRI; NAVATHE, 2000).
• Mineração de Dados (MD)
Esta etapa é considerada como a mais importante do processo de DCBD e é a caracterização e busca de padrões nas informações. Aplica-se técnicas e algoritmos em busca de conhecimento implícito e útil no resultado de todos os passos anteriores (BRAUNER, 2003).
• Interpretação dos Resultados
Sendo a última etapa do processo, cabe a ela fazer a interpretação do resultado gerado pelo processo de mineração de dados. Os resultados podem ser exibidos de diversas formas, relatórios, demonstrativos ou arquivos de texto, desde que atendam o objeto de propiciar uma análise minuciosa destes.
Quando não atinge a meta prevista, é possível que se volte à qualquer uma das etapas anteriores para refazê-la, gerando um novo conjunto de informações que serão reanalisadas.
2.2.2 Etapas do conceito CRISP-DM
O método de CRISP-DM (Cross-Industry Standard Processo of Data Mining) é um dos métodos mais utilizados e documentados do processo de KDD. Consiste em 6 fases, separando algumas etapas (Figura 3) como a Distribuição da Interpretação (Olson et al., 2008).
Figura 3: Processo CRISP-DM (CRISP-DM, 2000)
A Figura 3 apresenta os fluxos multidirecionais, ou seja, podemos ir e voltar entre algumas fases. As fases são descritas a seguir.
• Entendimento do Negócio
Nesta etapa, tem-se como principal objetivo a concepção do problema e qual é a necessidade da utilização de mineração de dados. Visa portanto, definir claramente o que se deseja ter como resultado palpável e
compreensível e, qual é o nível de sucesso que deseja-se atingir. A clara compreensão do negócio irá auxiliar bastante nas próximas etapas.
• Entendimento dos Dados
A fase de entendimento dos dados começa com a coleta e extração, e prossegue com atividades que visam familiarizar-se com os dados obtidos. Busca-se juntamente com isso, identificar problemas de qualidade, descobrir os primeiros resultados ou sinais, detectar subconjuntos interessantes para formar hipóteses sobre informações ocultas.
Existe uma estreita ligação entre o entendimento do negócio e compreensão dos dados. A formulação do problema de mineração de dados e plano do projeto, requerem, pelo menos, alguma compreensão dos dados disponíveis.
• Preparação dos Dados
A fase de preparação de dados abrange todas as atividades necessárias para construir os conjuntos de dados que serão usados para alimentar as ferramentas de modelagem, a partir dos dados iniciais. A tarefa de preparação de dados pode ser executada diversas vezes e não necessita de uma ordem pré-estabelecida. As tarefas incluem, seleção de tabelas, registros e atributos, bem como a transformação e limpeza para normalizar, corrigir e melhorar ao máximo a qualidade dos dados.
• Modelagem
Depois de ter os dados compreendidos e preparados para uso, começa a fase de modelagem, na qual várias técnicas de modelagem são selecionadas, aplicadas e feito a calibragem dos parâmetros. Normalmente existem diversas técnicas para o mesmo tipo de problema, porém algumas delas requerem tipos de dados em formatos específicos, o que agrega um pouco de complexidade e trabalho ao processo.
Existe uma forte ligação entre a etapa de Preparação de Dados e a Modelagem, visto que na Modelagem pode-se idealizar novos formatos e conjuntos de dados para a etapa anterior, alterando-a em busca de melhora no processo e resultado.
• Avaliação
Esta fase, segundo Camilo et al., (2009) é “considerada uma fase crítica do processo de mineração, nesta etapa é necessária a participação de especialistas nos dados, conhecedores do negócio e tomadores de decisão”. Faz-se uso de ferramentas gráficas para ajudar na visualização e análise dos resultados e modelos.
Antes de executar os processamentos finais, é necessário fazer uma reavaliação e teste de confiabilidade do modelo e os passos utilizados ao logo de todo o seu processo de construção, para estar seguro e certo que serão atingidos os objetivos do negócio.
Os testes que podem ser executados são cross validation, suplied test set, use training set, percentage Split (Camilo et al., 2009). Após a realização dos testes, é necessário verificar os indicadores de análise de resultados obtidos para auxiliar na análise dos mesmos. Também de acordo com Camilo et al., (2009), estes indicadores são: matriz de confusão; índice de correção e incorreção de instâncias mineradas; estatísticas kappa; erro médio absoluto; erro relativo médio; precisão, F-measure dentre outros.
• Distribuição
Criação do modelo não é necessariamente o fim do projeto. Mesmo que o propósito do modelo é aumentar o conhecimento dos dados, o conhecimento adquirido terá de ser organizado e apresentado de uma forma que o cliente possa usá-lo.
Isso, na maioria das vezes, envolve a aplicação de modelos dinâmicos nos processos de na tomada de decisões de uma organização, por exemplo, a personalização em tempo real de páginas da Web ou de pontuação repetida de bases de dados de marketing.
Dependendo dos requisitos, a fase de distribuição pode ser tão simples como gerar um relatório, ou tão complexo, como a implementação de um processo de mineração de dados em toda a empresa.
Em muitos casos, é o cliente, não o analista de dados, que realiza as etapas de distribuição, no entanto, mesmo quando o analista a fizer, é importante para o cliente entender para saber quais ações devem ser tomadas e também escolher quais dos modelos criados devem ser seguidos.
A Figura 4 apresenta o resumo de todas as fases do CRISP-DM, acompanhadas das tarefas genéricas e seus resultados.
Figura 4: Fases do conceito de CRISP-DM (Camilo et al., 2009)
Após o estudo do processo de KDD, foi realizado um estudo sobre os principais algoritmos e ferramentas que implementam os algoritmos de mineração. Este estudo é apresentado no capítulo a seguir.
3 DATAWAREHOUSE E MINERAÇÃO DE DADOS
3.1 DatawarehouseOs dados cabíveis de aplicação dos processos de DCBD são dos mais variados tipos e origens, desde bancos de dados operacionais, até Data Warehouse (DW) e Data Marts. Quando se usa as duas últimas opções, consequentemente é possível ter uma qualidade melhor de dados, pois já foram anteriormente trabalhados e melhorados, sendo este um preceito desses sistemas de armazenamento.
Um Data Warehouse (DW) é um conjunto de dados baseado em assuntos, integrado, não-volátil e variante em relação ao tempo, de apoio às decisões gerenciais segundo (INMON, 1997, pg. 33).
A proposta inicial de um DW, em sua concepção, era ser simplesmente um depósito de dados, ou seja, armazém de informações captadas ao longo do tempo. No entanto, foram surgindo usos e necessidades para essas informações, resultando no incremento e criação de conjuntos de ferramentas, metodologias e técnicas para se utilizar em um DW.
Atualmente ele é muito mais que armazém de dados, é responsável por prover dados transformados em informações, que suportam e auxiliam facilmente áreas estratégicas de tomada de decisões e tornando-se invariavelmente um diferencial de competitividade, quando bem extraído.
Ao comparar-se um banco de dados transacional comum e um Data Warehouse, tem-se claramente a visão de que o segundo é um conjunto de dados com histórico, não atualizável e estático, já um banco de dados comum está em constante atualização e manipulação, perdendo a capacidade temporal, visto que ao alterar um registro, perde-se seu estado anterior. O conceito de Data Mart, é exatamente o mesmo que Data Warehouse, porém é voltado para uma área específica.
3.2 Mineração de Dados (MD)
Para Silva (2000), Mineração de Dados é uma técnica para determinar padrões de comportamento em grandes bases de dados, auxiliando na tomada de decisão. Para Guizzo (2000), mineração de dados “é a extração
de informações potencialmente uteis e previamente desconhecidas de grandes bancos de dados, servindo de forma prática para a descoberta perfis de consumidores e outros comportamentos que não seriam identificados nem por especialistas em processos típicos”.
Baseando-se nas definições acima, pode-se afirmar que MD é um procedimento para a extração de conhecimento implícito e útil de um banco de dados, no qual, métodos comuns não atingem os objetivos, considerando-se que é a parte fundamentas das transformações de dados em informações significativas. A mineração de dados difere de técnicas estatísticas, porque, ao invés de verificar padrões hipotéticos, utiliza os próprios dados para descobrir tais padrões.
Acredita-se também que o volume de informações e dados no mundo duplique a cada 20 meses. O crescimento em tamanho e em quantidade dos bancos de dados, é provavelmente, ainda mais rápido (FRAWLEY et al., 1992).
Para extrair informações dos mais variados tipos e áreas, precisa-se de diversas técnicas e algoritmos, portanto, pode-se dizer, que cada objeto de estudo, enquadra-se melhor em determinada técnica.
O processo de escolha da melhor técnica, e também, a mais adequada, depende então do conhecimento a respeito dos dados e resultados a serem visados, ou seja: quais atributos, quais relacionamentos são importantes e possíveis, o que é mais útil ao usuário, padrões já conhecidos e assim por diante. O processo de escolha, se deve ao fato de que não existe um método de MD universal, que possa ser aplicado a todas as situações (FAYYAD et al., 1996).
Segundo Witten et al. (2005), Olson et al. (2008) e Bramer (2007), a mineração de dados pode ser usada, entre tantas outras, nas seguintes áreas:
• Retenção de clientes: identificação de perfis para determinados produtos e venda cruzada;
• Bancos: identificar padrões para auxiliar no gerenciamento de relacionamento com o cliente;
• Cesta de Supermercado: identificar associações de produtos em vendas;
• Cartão de Crédito: identificar segmentos de mercado, identificar padrões de rotatividade;
• Cobrança: detecção de fraudes;
• Telemarketing: acesso facilitado aos dados do cliente; • Eleitoral: identificação de um perfil para possíveis votantes; • Medicina: indicação de diagnósticos mais precisos;
• Segurança: na detecção de atividades terroristas e criminais; • Auxílio em pesquisas biométricas;
• RH: identificação de competências em currículos;
• Tomada de Decisão: filtrar as informações relevantes, fornecer indicadores de probabilidade.
Diante das várias tarefas desenvolvidas em Data Mining, tem-se claro que seu objetivo primário é a predição ou a descrição. A predição usa atributos para predizer os valores futuros de uma ou mais variáveis (atributos) de interesse. A descrição contempla o que foi descoberto nos dados sob o ponto de vista da interpretação humana.
Existem diversas técnicas que atingem os mais variados objetivos e propósitos. Serão descritas as mais utilizadas somente, dentre estas, foram escolhidas duas para utilização e obtenção dos resultados no presente trabalho. Estas duas terão seus algoritmos explicados de forma mais detalhada e as outras somente uma breve introdução a respeito. Dentre as técnicas mais utilizadas tem-se:
3.2.1 Classificação
Segundo Elmasri e Navathe, (2000), “classificação é o processo de encontrar um modelo que descreva classes de diferentes dados. As classes são predeterminadas.”
Pode-se chamar isso de atividade de aprendizado supervisionado, pois quando o modelo é construído, ele serve para classificar diversos outros dados. As etapas para o aprendizado são claras, começam com um treinamento baseado em conjuntos de dados que já foram trabalhados,
sendo que os registros rotulados, que indicam qual a classe pertencem, resultam comumente no modelo de árvore de decisão. Deve-se considerar a habilidade de prever a classificação de novos dados, bem como o custo computacional e sua escalabilidade na hora de aplicar.
Por ser o mais conhecido e largamente utilizado dentro do conceito de Associação, o algoritmo de Árvore de Decisão explicado adiante.
3.2.2 Associação
A técnica de Associação consiste em correlacionar a presença de itens que pertencem a um intervalo de valores ou conjunto de parâmetros. “Uma regra de associação caracteriza o quanto a presença de um conjunto de itens nos registros de uma base de dados implica na presença de algum outro conjunto distinto de itens nos mesmos registros.” (AGRAWAL; SRIKANT, 2004).
A definição clara para as regras de associação, é determinística e também simples, pois seu processamento é mais simples e não preditivo como a classificação.
Uma regra de associação é da forma X=>Y, na qual X={X1, X2, ..., Xn} e Y = {Y1, Y2, ..., Yn} são conjuntos de itens, com Xi e Yj sendo itens distintos para todos os i e todos os j. Essa associação de acordo com Elmasri e Navathe (2000, pg. 715), afirma que por exemplo, se um consumidor compra X, provavelmente comprará também Y, ou seja, a regra de associação {carne, sal} -> {carvão} significa que: Todo o cliente que comprar carne e sal, tem a tendência de comprar carvão. É importante observar que o inverso da regra não é válido, pois não se pode afirmar que todo cliente que vai ao estabelecimento comercial comprar carne e sal, compra também carvão e todo cliente que vai comprar carvão, compra mais carne e sal. Para saber equiparar as situações, é necessário avaliar os resultados aplicando as duas regras: {carne, sal} -> {carvao} e {carvao} -> {carne, sal}.
As regras de associação, quase sempre tem o formato LE (lado esquerdo) => LD(lado direito), onde estes formam conjuntos associativos. Toda e qualquer regra de associação tem que fornecer um grau de suporte e confiabilidade, garantindo a segurança da aplicação da regra.
As medidas de suporte e confiança são extremamente importantes na análise de resultados. Sendo que uma regra que tenha baixo suporte pode simplesmente ser um fato do acaso e também possui grande probabilidade de não ter interesse a partir de uma perspectiva de negócio porque pode não ser lucrativo promover itens que os clientes raramente compram juntos. Por estas razões, o suporte é muitas vezes usado para desclassificar regras que não apresentem níveis de interesse satisfatórios. O cálculo para obtenção do grau de suporte é relativamente simples:
𝑠𝑢𝑝𝑜𝑟𝑡𝑒 {𝑋 → 𝑌} = 𝑛ú𝑚. 𝑑𝑒 𝑟𝑒𝑔𝑖𝑠𝑡𝑟𝑜𝑠 𝑑𝑒 𝑋 𝑎𝑠𝑠𝑜𝑐𝑖𝑎𝑑𝑜𝑠 𝑎 𝑌 𝑡𝑜𝑡𝑎𝑙 𝑑𝑒 𝑟𝑒𝑔𝑖𝑠𝑡𝑟𝑜𝑠
A confiança, por sua vez, sinaliza quão confiável é a inferência feita por uma regra. Para uma determinada regra X→Y, quanto maior a confiança, maior a probabilidade de que Y esteja presente em transações que contenham X. Para calcular a confiança faz o seguinte:
𝑐𝑜𝑛𝑓. {𝑋 → 𝑌} = 𝑛ú𝑚. 𝑑𝑒 𝑟𝑒𝑔𝑖𝑠𝑡𝑟𝑜𝑠 𝑑𝑒 𝑋 𝑎𝑠𝑠𝑜𝑐𝑖𝑎𝑑𝑜𝑠 𝑎 𝑌 𝑛ú𝑚. 𝑑𝑒 𝑟𝑒𝑔𝑖𝑠𝑡𝑟𝑜𝑠 𝑑𝑒 𝑋
Para uma regra ser interessante, o grau mínimo de suporte e confiança deve ser: suporte {X -> Y} >= Z e conf. {X -> Y} >= K, onde Z e K são medidas definidas como satisfatórias pelo usuário.
Outra medida na qual foi adotada e auxiliará na obtenção de conhecimento é o lift. Segundo Brin et al. (1998), lift também conhecida como interest, é uma das mais utilizadas para avaliar dependências. Essa medida significa que dada a regra de associação X->Y, sabe-se quão frequente é o Y quando X ocorre. Esse valor é obtido através das seguinte equação:
𝑙𝑖𝑓𝑡 {𝑋 → 𝑌} = 𝑐𝑜𝑛𝑓(𝑋 → 𝑌) 𝑠𝑢𝑝𝑜𝑟𝑡𝑒(𝑌)
Considera-se que se lif(X->Y) = 1, então afirma-se que X e Y são independentes, caso seja maior, são positivamente dependentes e menor, negativamente dependentes. Sua interpretação é relativamente simples,
quanto maior o lift melhor a regra, pois entende-se que X aumento a probabilidade de ocorrência de Y.
Existem maneiras de otimizar o trabalho em grandes quantidades de dados da seguinte forma. Para conjuntos de dados muito grandes, um modo de melhorar a eficiência é através da amostragem. Se é possível encontrar uma amostra representativa que verdadeiramente representa as propriedades dos dados originais, então a maioria das regras pode ser encontrada e o problema se reduz a planejar um procedimento de amostragem apropriado. (ELMASRI; NAVATHE, 2000)
3.2.3 Agrupamento ou Categorização
Agrupamento ou Categorização é, basicamente, caracterizada pela possibilidade de agrupar os dados em subconjuntos com características em comum, formando um modelo descritivo. Esses agrupamentos são chamados de categorias, e também identifica grupos de registros correlatos, que serão usados como base para futuras aplicações.
Através da tarefa de agrupamento, pode-se dividir os dados em subconjuntos homogêneos, fáceis de descrever e visualizar. Estes, por sua vez, podem ser mostrados para o usuário, em vez de tentar mostrar todos os dados, o que usualmente resultaria na perda de padrões embutidos (FAYYAD, 1997).
3.2.4 Padrões Sequenciais
A técnica de associação por padrões sequenciais, define-se por grupos de itens oriundos de transações diferentes, ou seja, os dados de entrada são tipicamente, listas de transações sequenciais.
As sequências visam determinar padrões de ordenação entre dados, tais como: ordenação temporais ou ordenação por classificação. A ordenação por séries de tempo visa definir grupos com séries de tempo similares, ou seja, mesmo padrão de comportamento num determinado intervalo de tempo. A análise de sequências pode identificar padrões temporais utilizados para predizer acontecimentos futuros. (BRAUNER, 2003).
3.3 Algoritmos de Mineração 3.3.1 Algoritmo Apriori
O algoritmo Apriori é um dos algoritmos mais conhecidos no universo da mineração de dados e regras de associação. Foi proposto em 1994 pelos pesquisadores do projeto QUEST, da IBM. Ele basicamente serve para identificar grupos de dados associados chamados itemsets, e categorizá-los por frequência de ocorrência, resultando em itemsets frequentes(Ls). É caracterizado pela entrada dos dados, regra e parâmetros de suporte e saída de itemsets frequentes, bem como sintetizado abaixo:
INPUT: Banco de dados de m transações, D, e um suporte mínimo,
mins, representando como uma fração de m.
OUTPUT: Conjunto de itemsets frequentes, L1, L2,...Lk.
Segundo Elmasri e Navate (2000), o fluxo de processamento do algoritmo é o seguinte:
1. Início;
2. Calcula suporte (𝑖!) = contar 𝑖!/m para cada item individual, 𝑖!, 𝑖!, … 𝑖 lendo o banco de
dados uma vez e contando o número de trançaões em que o item 𝑖! aparace;
3. O candidato a frequente o conjunto de itens-1, 𝐶!, será o conjunto de iten 𝑖!, 𝑖!, … , 𝑖!;
4. O subconjunto de itens contendo 𝑖! de 𝐶! onde o suporte de (𝑖!) >= mins torna-se
frequente conjunto de itens-1, 𝐿!;
5. K=1;
6. Terminação = Falso; 7. Repetir;
8. 𝐿!!!= 𝐿! ;
9. Criar o candidato a frequente, o conjunto de itens-(K+1), 𝐶!!!,combinando os membros
de 𝐿!, que tenham K-1 itens em comum;
10. Considerar somente elementos de 𝐶!!!, aqueles K+1 itens em que cada conjunto de
tamanho k que apareça em 𝐿!;
11. Pesquisar o banco de dados uma vez e calcular o suporte para cada membro de 𝐶!!!; se
o suporte para um membro de 𝐶!!!≥ 𝑚𝑖𝑛𝑠, então adicionar aquele membro a 𝐿!!!;
12. Se 𝐿!!! é vazio então terminação = verdadeiro senão k = k +1;
13. Até terminação; 14. Fim;
O algoritmo trabalha basicamente com três fases principais: geração dos candidatos; poda dos candidatos; calculo do suporte (validação). É importante observar que somente a ultima etapa necessita ativamente do banco de dados, as outras rodam diretamente na memória, a não ser que os conjuntos de dados sejam grandes e não caibam nesta, então apela-se para o BD.
• Geração de candidatos
Nesta fase, como o nome já sugere, são gerados os itemsets candidatos de tamanho k, a partir do conjunto 𝐿!!!. Como estamos querendo gerar itemsets que possam ser frequentes, considerando-se que todos os itemsets de tamanho k-1 contidos nos candidatos de tamanho k deverão ser frequentes, portanto, deverão pertencer ao conjunto 𝐿!!!. Com isso, 𝐶! de
itemsets candidatos de tamanho K constitui-se de pares de itemsets de tamanho k-1 que tenham k-1 elementos em comum. Sabe-se desta forma que um itemset de tamanho k onde minimamente dois de seus subconjuntos de tamanho k-1 são frequentes.
• Poda
A poda é basicamente uma restrição na qual um itemset 𝐶! com subconjunto de itens de tamanho k-1 que não está contido em 𝐿!!! tem a possibilidade de ser desconsiderado, visto que não será frequente. Pode ser identificado pelo cálculo do conjunto 𝐶! com a fórmula:
• Cálculo de Suporte e Validação
Finalmente, nesta fase é calculado o suporte de cada um dos itemsets do conjunto 𝐶!. Isto pode ser feito varrendo-se uma única vez o banco de dados, e para cada transação t do banco de dados, analisa-se quais candidatos são suportados por t e incrementa-se o contador de suporte para este.
3.3.2 Algoritmo de Árvores de Decisão
Segundo Nock (1998), uma árvore de decisão é uma representação simples de um classificador utilizada por diversos sistemas de aprendizado de máquina, como por exemplo o C4.5. Pode-se dizer então, que um árvore de decisão, é guiada a partir de amostras previamente conhecidas de classes e é composta por regras, sendo que uma regra qualifica-se como uma condição que torna fácil o entendimento e a identificação de conjuntos de registos.
Pode-se afirmar que uma árvore de decisão é basicamente uma série de declarações if-elses, que quando alimentado com um registro oriundo de uma fonte de dados, classifica-o de forma simples e clara. Um fator extremamente interessante sobre árvores de decisão, é o fato de suas regras serem originadas a partir da sua habilidade de aprendizado e não de uma predefinição. Quinlan (1993), afirma que os resultados obtidos, após a construção de uma árvore de decisão, são dados organizados de maneira compacta, com a árvore podendo ser utilizada para classificar novos casos.
Segundo Elmasri e Navate (2000), o algoritmo de Árvore de Decisão segue a seguinte linha de implementação:
INPUT: Conjuntos de dados de treinamento Registros: R1, R2...Rn e
conjunto de Atributos: A1, A2...An.
OUTPUT: Árvore de decisão.
1. Início;
2. Criar um nó N;
3. Se todos os registos pertencem à mesma classe, C, então retorna N como um nó folha
com rótulo de classe C;
4. Se Atributos está vazio, então retorna N como um nó-folha com rótulo de classe C; 5. Seleciona o atributo A (com maior ganho de informação) de Atributos;
6. Rotula o nó N como 𝐴!;
7. Para cada valor conhecido, 𝑉!, de 𝐴! faça: 8. Inicio
9. Some uma marca do nó N para a condição 𝐴!= 𝑉!; 10. 𝑆!= subconjunto de Registros onde 𝐴!= 𝑉!; 11. Se 𝑆! está vazio, então:
12. Adicione uma folha, L, com rótulo de classe C, como a maioria dos registros
pertencentes a ela e retorna L se não some o nó retornado por Constrói_árvore (𝑆!, 𝐴𝑡𝑟𝑖𝑏𝑢𝑡𝑜𝑠 − 𝐴!);
13. fim 14. fim
• Entropia
A Entropia é um conceito de medida de informações obtidas pelas probabilidades de ocorrência de eventos singulares ou combinados. Também vale afirmar que é uma medida de impureza em um conjunto definido de amostras de treinamento.
• Ganho de Informação
Pode-se dizer que o ganho de informação é uma medida de correlação de dois atributos. Esses atributos basicamente são a soma das medidas de entropia singulares subtraídos pela entropia conjunta. Em síntese, ela mede como as amostras são separadas no treinamento, baseado nos seus atributos de classificação e também quantifica a eficácia de um atributo em classificar os dados de treinamento.
Um dos objetivos da construção de árvores de decisão é diminuir o valor da entropia. A medida do ganho de informação representa a redução esperada na entropia de um atributo preditivo, considerando que um atributo classe já tenha sido determinado. Ou seja, o valor do ganho de informação fornece uma redução esperada na entropia causada pela partição das amostras de acordo com este atributo classe conhecido previamente. No processo de construção da árvore de decisão, o atributo preditivo que possuir o maior ganho de informação deve ser colocado como raiz da árvore, pois é este atributo que fornecerá a maior redução na entropia, classificando os dados de forma mais rápida. (CASTANHEIRA, 2008)
4 PROCESSO DE DESCOBERTA DE CONHECIMENTO EM
BANCO DE DADOS DE UM ERP
A forte competitividade, a necessidade de diferenciais mercadológicos, a otimização dos negócios, a redução de custos, são os principais motivos que levaram as empresas a partirem para a utilização cada vez, mais intrusiva de soluções sistêmicas eficientes, entrando assim em cena, então, os softwares ERP (Enterprise Resource Planning), um conceito de sistema informatizado, criado para atender as necessidades gerenciais de uma empresa, no seu âmbito total, ou seja, compras, vendas, estoque, faturamento, recursos humanos, produção e outras.
Segundo Hicks (1997), um ERP “é uma arquitetura de software que facilita o fluxo de informação entre todas as funções dentro de uma companhia, tais como logística, finanças e recursos humanos”.
Com o uso de um ERP, passa-se a ter menos entrada de dados, consequentemente um maior controle sobre o fluxo das informações que é mais ativo, coerência e dados em tempo real confiáveis. Uma outra característica peculiar de um ERP é sua densidade de detalhes e controles sobre os fluxos e processos, armazenando de forma rica e consistente, muitas e muitas informações sobre tudo o que ocorre, registrando temporalmente eventos, transações e modificações, consequentemente enriquecendo o banco de dados.
4.1 Contexto da Aplicação
O grupo de empresas na qual a pesquisa é focada, está localizada no noroeste do Rio Grande do Sul e é composta por 4 lojas de materiais de construção e ferragens. Todas utilizam um ERP para controlar desde compras, vendas, clientes, produtos, marketing, informações financeiras até estoque.
O ERP é OpenSource e pode ser encontrado em http://sourceforge.net/projects/adempiere. Desenvolvido quase que totalmente em Java, possui também um interface web para acesso remoto, replicando todas as funcionalidades da versão desktop. É mantido por uma
comunidade centralizada na Alemanha e tem auxílio e membros no mundo todo.
Por ter seu código aberto e ótima qualidade, expandiu mercado rapidamente e ganhou localizações (adaptações específicas para cada país no qual é implantado) para diversos países. Ele possui todos os módulos necessários para as empresas de médio grande porte, é totalmente integrado, contém um banco de dados centralizado independente de quantas empresas o utilizam. Todo sistema desse porte, é fortemente baseado em regras de negócios e sua estrutura de banco de dados é por consequência, complexa.
Atualmente não há nenhuma ferramenta relacionada a descoberta de conhecimento em banco de dados e/ou mineração de dados, então os resultados, serão de grande valia. É importantíssimo salientar que os padrões e resultados exibidos nesta pesquisa não necessariamente significam alguma generalização e ou regra de negócios, pois podem se alterar de acordo com diversos fatores, como: localização geográfica, diretivas administrativas; e outras características peculiares de cada empresa. Também serão mostrados de forma com que não comprometam a confidencialidade e as estratégias de negócios das empresas, que foi uma imposição feita por seu diretor no momento da solicitação do banco de dados, para o presente projeto de pesquisa.
Um fator importante que pode justificar, talvez por si só, a utilização de DCBD, é que as empresas tem crescido e se desenvolvido bastante ao longo do tempo, chegando a um patamar, no qual exige um nível elevado de criatividade para continuar crescendo em um ritmo satisfatório, afrontando-se assim, com a necessidades de diferenciais mercadológicos e a otimização dos processos de negócios.
Tem-se abaixo alguns dos problemas analisados e que, os quais métodos convencionais não conseguem resolver, atualmente.
4.1.1 Análise e Identificação de Grupos de Risco à Inadimplência.
Recentemente foi adotado um sistema de crediário próprio em todas as lojas, trazendo facilidades aos clientes para comprar parceladamente e também alavancar as vendas para a empresa. Sabe-se que ao vender, ou
melhor, financiar a venda para o cliente, tem-se alguns agravantes que, após um tempo, podem ser impeditivos diante de todo o negócio, acarretando em prejuízos. Tais agravantes são basicamente, a inadimplência e a falta de ferramentas para análise e concepção de crédito.
Uma oportunidade para o empresário ampliar seus negócios está nas vendas a prazo: o pagamento pelo cliente ocorre após a entrega da mercadoria ou da prestação do serviço – e isso se torna um crédito concedido. Apesar de essa ser uma prática bastante difundida, é importante se basear em uma análise de crédito bem estruturada e alinhada com a estratégia de vendas para que a inadimplência não pegue o empresário de surpresa na hora de receber os pagamentos. (SANCHEZ, 2010).
Com a necessidade de identificar e criar metodologias para melhorar todo esse processo, tornou-se imprescindível levantar informações de cunho decisório. A identificação de grupos de clientes com maior propensão à inadimplência, se enquadra nesse conjunto de informações, pois é relevante na liberação de crédito. Para sintetizar o problema, questionou-se o seguinte: - Quais são os grupos de clientes e quais as faixas de valores possuem maior propensão a inadimplência?
4.1.2 Cesta de Produtos e Vendas Associadas
O conceito de cesta de produtos, conhecido comumente por Market Basket Analysis (MBA) serve para identificar padrões de comportamento de itens em uma venda. Groth (2000) afirma que o MBA pode ser aplicado em: análise de vendas cruzadas; definição de layout; projeto de catálogos de produtos; análise de perda de liderança de mercado; definição de preço e promoções de produtos; dentre outros.
Li (2008) afirma que os dados das transações mantêm as melhores e mais valiosas informações sobre a associação de produtos e são elas que ditam uma coordenação eficiente das atividades, provendo suporte para aplicação dos conceitos de MBA e mineração de dados.
Estes bons conjuntos de dados em uma campanha de marketing por exemplo, na qual terá mudanças nos preços ou promoções de determinadas categorias de produtos podem afetar não apenas as vendas destas, mas de outras, então levamos a afirmar que existe uma forte possibilidade de uma promoção de cervejas aumentar a venda de amendoins.
Com a utilização de vendas cruzadas pela empresa, surgiu o desafio de fazer esses grupos de produtos, de acordo com as necessidade dos consumidores e também aumentar a precisão das campanhas de marketing, ou seja, aplicação de MBA, não oferecendo produtos pouco visados ou fora de contexto.
A identificação das categorias de produtos que mais vendem em conjunto também é importante, pois de acordo com elas, pode-se aprimorar o leiaute físico das lojas, hoje organizadas por setores, hidráulico, elétrico e outros, que são associados diretamente com as categorias. Duas categorias que tem bastante vendas juntas, devem, diante deste cenário, estar próximas para facilitar sua venda.
Com a análise feita, chegou-se a conclusão que as seguintes perguntas, neste caso são:
- Quais são os produtos que mais se vende de forma associada ? - As categorias, de acordo com as vendas já efetuas, estão
apropriadamente organizadas, dentro das lojas, para promover mais precisamente as vendas associadas ?
4.2 Aplicação da Mineração de Dados
Nesta etapa realizou-se todo o processo de Mineração de Dados e foi segmentado em outras três outras etapas menores, para facilitar a aplicação, sendo elas a Extração e Processamento dos Dados; Aplicação dos Algoritmos de Mineração de Dados, e por fim, Análise dos Resultados. A Figura 5 apresenta uma síntese geral das etapas.
Figura 5: Etapas da implementação
ERP CRM ETL (Extração, Transformação e Carga) dos Dados DW Mineração de Dados Resultados
Os algoritmos definidos para aplicação foram escolhidos dentre uma série de opções baseando-se em: Pesquisas e estudos de todas os algoritmos enquadrados nos métodos necessários (Associação e Classificação) considerando-se fatores como custo computacional, tempo de processamento, eficiência na análise, capacidade de processamento de grandes quantidades de dados, e por fim, precisão nos resultados; Testes práticos, voltados especificamente para a capacidade de implementação com as ferramentas escolhidas considerando todos os fatores acima descritos, chegou-se a conclusão que as soluções mais adequadas de algoritmos de mineração de dados são: Para análise de grupos de risco à inadimplência, técnicas de Classificação e algoritmo de Árvore de Decisão; Para Cesta de Produtos e Vendas Associadas, técnicas de Associação com seu algoritmo Apriori.
4.3 Ambiente de trabalho utilizado
O presente trabalho foi implementado na sua totalidade em um notebook MacBook Pro, com a seguinte configuração de hardware: Processador Core i7 2.2 Ghz com 4 núcleos físicos; 8GB de Memória RAM; SSD 256 GB. O sistema operacional é o Mac OS X Mavericks, rodando quase todas as ferramentas necessárias nativamente, com exceção do SGBD Oracle, no qual foi utilizado o software VirtualBox (software virtualizador que permite a criação de máquinas virtuais com diferentes sistemas operacionais em um único computador) para criar uma máquina virtual rodando Oracle Linux 5 e então instalar o SGBD Oracle.
Foi obtida uma cópia do banco de dados da empresa, com as devidas autorizações, restaurado em uma instancia do SGBD PostgreSQL executada no próprio notebook.
4.4 Ferramentas
As ferramentas escolhidas foram baseadas em um levantamento de critérios, visando melhores resultados e uma posterior utilização em ambientes reais mais segura. Os critérios são:
• Capacidade para armazenar dados temporais para análise (implementação de um data warehouse);
• Possibilidade de recuperação fácil desses dados; • Suporte a linguagem SQL;
• Arquitetura de banco de dados deve ser relacional; • Capacidade de lidar com grandes volumes de dados; • Estabilidade e maturidade;
• Possibilidade de utilização em ambientes coorporativos;
• Suporte aos sistemas operacionais Linux, Windows e se possível, em MacOS X;
• Segurança;
• Qualidade dos resultados e formas de exibição dos mesmo; • Custo x Benefício para um ambiente coorporativo;
De acordo com os critérios acima, optou-se pela utilização do banco de dados Oracle Database na sua versão 11g2 e o conjunto ferramentas de mineração de dados Oracle Data Mining versão 3.2, por dois motivos principais. O primeiro é a prévia familiaridade com ferramentas da Oracle e a outra é que diante do levantamento abordado, todos os critérios foram satisfeitos.
Avaliou-se outras ferramentas da IBM e Microsoft nas quais se enquadram em alguns dos critérios acima também, porém obteve-se uma certa equivalência entre todos na análise superficial dessas ferramentas e assim o fator preponderante da decisão, foi o conhecimento prévio das ferramentas da Oracle. É importante mencionar que em alguns pontos uma ferramenta se sobressai a outra, porém no contexto geral, mostraram-se equivalentes e também os métodos de análise foram basicamente pesquisas e opiniões encontradas pela internet, não sendo realizados testes práticos.
Uma outra ferramenta largamente utilizada é a WEKA (Waikato Environment for Knowledge Analysis), que se destaca por ser de código aberto e possuir grande aderência no universo acadêmico, mas não teve sua adoção consolidada devido a instabilidades identificadas em alguns testes realizados no período de avaliação, principalmente ao manipular grandes massas de dados de entrada.
Foi utilizado o sistema gerenciador de banco de dados (SGBD) PostgreSQL para extrair os dados da empresa. Este está instalado atualmente na empresa e trabalhando em conjunto com seu ERP. Sua ferramenta gráfica de administração, chamada PgAdmin, utilizada para efetuar todo o processo de extração e pré-processamento dos dados.
4.4.1 PostgreSQL e PgAdmin
O PostgreSQL (2013) é um banco de dados de código aberto largamente utilizado no mundo.
O PostgreSQL é um poderoso sistema gerenciador de banco de dados objeto-relacional de código aberto. Tem mais de 15 anos de desenvolvimento ativo e uma arquitetura que comprovadamente ganhou forte reputação de confiabilidade, integridade de dados e conformidade a padrões. Roda em todos os grandes sistemas operacionais, incluindo GNU/Linux, Unix (AIX, BSD, HP-UX, SGI
IRIX, Mac OS X, Solaris, Tru64), e MS Windows. É totalmente
compatível com ACID, tem suporte completo a chaves estrangeiras, junções (JOINs), visões, gatilhos e procedimentos armazenados (em múltiplas linguagens). (POSTGRESSQL, 2013)
Quando considera-se sua utilização em ambientes corporativos ele também ganha força, pois é composto por diversas funcionalidades sofisticadas, voltadas para esse ambiente.
Controle de concorrência multiversionado (MVCC, em inglês), recuperação em um ponto no tempo (PITR em inglês), tablespaces, replicação assíncrona, transações agrupadas (savepoints), cópias de segurança a quente (online/hot backup), um sofisticado planejador de consultas (otimizador) e registrador de transações sequencial (WAL) para tolerância a falhas. (POSTGRESSQL, 2013)
Já o PgAdmin é uma ferramenta administração de banco de dados desenvolvida especialmente para o PostgreSQL. Esta lhe permite fazer, desde simples consultas, até a criação de um banco de dados complexo. Seu principal objetivo é fazer com que sua interface gráfica possibilite gerenciar este SGBD, de forma mais simples não perdendo funcionalidades.
Algumas destas merecem destaque, bem como o editor de consultas SQL, no qual possui uma agradável coloração de sintaxe (syntax highlighting, em inglês), gerenciamento de replicação do banco de dados com o Slony-I,
conexão a banco de dados remotos com suporte a SSL, agendamento de execução de tarefas e muitas outras.
4.4.2 Oracle Database
O Oracle Database é um dos sistemas gerenciadores de banco de dados mais utilizados no mundo. É considerado extremamente maduro, seguro e estável. Detém a liderança no mercado de SGBDs, desde sua criação no ano de 1977 quando Larry Ellisson, Bob Miner e Ed Oates e originado da oportunidade de comercialização da ferramenta, que, na época, não existia nenhuma com mesma finalidade no mercado. (SILBERSCHATZ et al., 1999).
A Oracle disponibiliza suas ferramentas de banco de dados e mineração de dados, de forma gratuita, para utilização em ambientes acadêmicos, porém, exige que sejam adquiridas licenças, para uso coorporativo.
4.4.3 Oracle Data Mining (ODM)
De acordo com Oacle Data Miner (2013), o Oracle Data Mining é um poderoso conjunto de ferramentas criado pela Oracle, nas quais se integram perfeitamente com o Oracle DataBase, um dos melhores bancos de dados relacionais criados pela própria empresa. Com essas ferramentas e funcionalidades, é possível efetuar diversos tipos de extração de conhecimentos sobre base de dados Oracle. Segundo a Oracle (2013), é possível construir e aplicar modelos preditivos que auxiliam na identificação de melhores clientes, perfis de clientes e prevenção de fraudes e muitos outros padrões.
O principal objetivo do Oracle Data Mining é auxiliar as empresas na constante busca e analise apurada de informações competentes. Para auxiliar e facilitar o trabalho, e utilizar de forma mais simplificada, as funcionalidades da suíte Data Mining, a Oracle criou uma GUI (Interface de Usuário), chamada Oracle Data Miner, e acoplou este, na ferramenta SQLDeveloper, que serve para acessar e manipular os bancos de dados Oracle. Ela permite a criação de fluxos de trabalho voltados para processos de mineração de dados, aplicação de modelos e analise de resultados, tudo
de forma gráfica. Além da interface gráfica, essa ferramenta possui API’s SQL, nas quais permitem desenvolvedores acoplarem e criar soluções de mineração e analise de dados em seus softwares e obter resultados em tempo real destes. A versão do software utilizada é a 3.2 e o banco de dados Oracle 11g2.
Algumas imagens do Oracle Data Miner estão abaixo (Figura 6, 7, 8):
Figura 6: Interface de usuário do Oracle Data Miner
Figura 8: Análise de um modelo de árvore de decisão
4.4.4 Aqua Data Studio
Aqua Data Studio é um ambiente de desenvolvimento integrado para a administração de banco de dados.
Aqua Data Studio 10.0 é um software completo de Ambiente de Desenvolvimento Integrado (IDE) para consulta de banco de dados, administração e desenvolvimento. Ele suporta todos os principais fornecedores de banco de dados, funciona em vários sistemas operacionais e está configurado para 21 idiomas. (AQUAFOLD, 2013),
As suas principais funcionalidades são: consultas em banco de dados; ferramentas de administração; suíte de comparação de ferramentas para bases de dados; controle de fontes e sistemas de arquivos; suporte completo e integrado aos mecanismo de controle de versão Subversion (SVN) e CVS (ambas ferramentas responsáveis pela atualização de pacotes de forma automática). A figura 9 a sua interface de uso da ferramenta.
Figura 9: Interface de usuário do Aqua Data Studio
4.5 Extração e Processamento dos Dados
As informações para a aplicação da pesquisa são oriundas, como supracitadas, de uma base de dados sob domínio do grupo de empresas e alimentada pelo seu ERP. O SGBD utilizado pela empresa é o PostgreSQL. Junto com este, tem-se o PgAdmin, uma ferramenta gráfica para sua administração, e que, no presente trabalho, foi utilizado para a exportação dos dados.
O escopo para esta extração de dados foi definido, baseado na análise do contexto da empresa e sua necessidade de conhecimento, localizada no capítulo anterior. Destacou-se um ponto de extrema relevância para a viabilização deste projeto que exigiu uma certa criatividade para poder prosseguir.
Como as informações alvo, bem como seus resultados, impactam diretamente em questões de confidencialidade de dados e estratégias de negócios, com necessidade de se encontrar uma forma para prosseguir, chegou-se a uma solução simples que consistiu em mascarar os conjuntos de registros impeditivos durante a extração.