Baixe o app para aproveitar ainda mais
Prévia do material em texto
ANA LUIZA CERCHIARI DE ANDRADE AUTORIA MINERAÇÃO DE DADOS Mineração de dados - Unidade1.indd 1 08/07/19 16:35 © Ser Educacional 2019 Rua Treze de Maio, nº 254, Santo Amaro Recife-PE – CEP 50100-160 *Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência. Informamos que é de inteira responsabilidade da autoria a emissão de conceitos. Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. A violação dos direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do Código Penal. Imagens de ícones/capa: © Shutterstock Presidente do Conselho de Administração Diretor-presidente Diretoria Executiva de Ensino Diretoria Executiva de Serviços Corporativos Diretoria de Ensino a Distância Autoria Projeto Gráfico e Capa Janguiê Diniz Jânyo Diniz Adriano Azevedo Joaldo Diniz Enzo Moreira Profa. Ana Luiza Cerchiari de Andrade DP Content DADOS DO FORNECEDOR Análise de Qualidade, Edição de Texto, Design Instrucional, Edição de Arte, Diagramação, Design Gráfico e Revisão. Mineração de dados - Unidade1.indd 2 08/07/19 16:35 Boxes CURIOSIDADE Informação que revela algo desconhecido e interessante sobre o assunto tratado. ASSISTA Indicação de filmes, vídeos ou similares que trazem informações complementares ou aprofundadas sobre o conteúdo estudado. DICA Um detalhe específico da informação, um breve conselho, um alerta, uma informação privilegiada sobre o conteúdo trabalhado. CITANDO Dados essenciais e pertinentes sobre a vida de uma determinada pessoa relevante para o estudo do conteúdo abordado. CONTEXTUALIZANDO Dados que retratam onde e quando aconteceu determinado fato; demonstra-se a situação histórica do assunto. EXPLICANDO Explicação, elucidação sobre uma palavra ou expressão específica da área de conhecimento trabalhada. EXEMPLIFICANDO Informação que retrata de forma objetiva determinado assunto. MINERAÇÃO DE DADOS 3 Mineração de dados - Unidade1.indd 3 08/07/19 16:35 Unidade 1 - Introdução e aplicações de Mineração de Dados Objetivos da unidade ............................................................................................................................12 Técnicas e tarefas de Mineração de Dados ....................................................................................13 Dados, informação e conhecimento .............................................................................................13 Filtros em Excel ................................................................................................................................14 Filtros em SQL ...................................................................................................................................17 Exemplos de aplicações ......................................................................................................................22 Várias formas de aplicação ...........................................................................................................23 Data warehouse ...............................................................................................................................24 Exibindo dashboards no Excel .......................................................................................................26 Processo de descoberta de conhecimento em bases de dados ..................................................31 O que é KDD? ....................................................................................................................................32 Macroetapas do KDD ......................................................................................................................32 Sintetizando ............................................................................................................................................36 Referências bibliográficas ..................................................................................................................37 Sumário MINERAÇÃO DE DADOS 4 Mineração de dados - Unidade1.indd 4 08/07/19 16:35 Sumário Unidade 2 - Pré-processamento de dados e classificações Objetivos da unidade ............................................................................................................................39 Pré-processamento de dados .............................................................................................................40 Limpeza de dados ............................................................................................................................43 Integração de dados .......................................................................................................................45 Transformação de dados, redução e discretização ........................................................................47 Transformação ................................................................................................................................47 Redução .............................................................................................................................................50 Discretização ....................................................................................................................................52 Regras de associação: cálculo de suporte, de confiança e de Lift ............................................55 Cálculo de suporte ..........................................................................................................................56 Cálculo de confiança .......................................................................................................................58 Cálculo de Lift ...................................................................................................................................60 Tipos de regras de associação e algoritmos ...................................................................................61 Algoritmo Apriori ..............................................................................................................................61 Algoritmo Partition ...........................................................................................................................65 Sintetizando ............................................................................................................................................67 Referências bibliográficas ..................................................................................................................68 MINERAÇÃO DE DADOS 5 Mineração de dados - Unidade1.indd 5 08/07/19 16:35 Sumário Unidade 3 - Classificação, regressão e agrupamento Objetivos da unidade ............................................................................................................................70 Classificações........................................................................................................................................71 Classificação por árvore de decisão ............................................................................................71 Classificação por regressão linear ...............................................................................................75 Classificação por regressão linear múltipla ................................................................................78 Clusterização e sumarização ..............................................................................................................80 Clusterização pelo Weka ................................................................................................................81 Análises temporais e desvio-padrão ............................................................................................82 Outros métodos de classificação .......................................................................................................84Classificação bayesiana .................................................................................................................85 Classificação por vizinho mais próximo .......................................................................................86 K-Means ............................................................................................................................................89 Sintetizando ............................................................................................................................................93 Referências bibliográficas ..................................................................................................................94 MINERAÇÃO DE DADOS 6 Mineração de dados - Unidade1.indd 6 08/07/19 16:35 Sumário Unidade 4 - Ferramentas práticas em Data Mining e Data Science Objetivos da unidade ............................................................................................................................96 Utilização da linguagem Python na prática .....................................................................................97 Variáveis, type, len e conceitos iniciais .......................................................................................98 Tuplas, listas e sets ........................................................................................................................102 Conjuntos, dicionários e funções ................................................................................................104 Condicionais – if else e for ...........................................................................................................104 Datasets e NumPy ...............................................................................................................................105 Array e Slicing Array .....................................................................................................................108 Importar textos, ler CSV e manipular datasets .........................................................................110 Utilizando a biblioteca Matplotlib em Python ...............................................................................117 Visualizar gráficos com plot .........................................................................................................117 Title, legend, show e grid ..............................................................................................................119 Markers ...........................................................................................................................................120 Font size, color ................................................................................................................................121 Utilizando a biblioteca Pandas em Python .....................................................................................122 Índices, séries e quadros de dados ............................................................................................122 Datasets com Python, CSV e Excel .............................................................................................124 Manipulação de dados, agrupamento, junção e pivots ..........................................................125 Visualizações de gráficos .............................................................................................................127 Sintetizando ..........................................................................................................................................130 Referências bibliográficas ................................................................................................................131 MINERAÇÃO DE DADOS 7 Mineração de dados - Unidade1.indd 7 08/07/19 16:35 MINERAÇÃO DE DADOS 8 Mineração de dados - Unidade1.indd 8 08/07/19 16:35 Este material foi criado para dirigir a Mineração de Dados e utilizará diversas ferramentas. A ferramenta SQL vai ser usada para criar e fi ltrar tabelas através dos comandos create e select, e posteriormente será mostrado como exportar seleções para Excel. O programa Excel, com sua riqueza, possui fi ltros, gráfi cos, tabelas dinâmicas e extensões add-in, as quais serão utilizadas para selecionar dados. Em pré-processamento de dados, será mostrado como fazer limpeza de dados ruidosos, ausentes e outliers, além disso, será mostra- do como reduzir dados a intervalos e substituir dados faltantes. Conceitos de cálculo de suporte, que é a repetição de dados ou conjuntos em tabelas, serão mostrados e explicados de forma teórica e prática através do Weka. Conceitos de cálculo de confi ança serão explicados para mostrar a relação de compras combinadas (se o cliente leva um produto, ela leva outro?). E, para analisar a veracidade dos cálculos de suporte e confi ança, será mostrado como fazer o cálculo de Lift. O algoritmo a priori será apresentado e, no fi nal, será mostrado como fazer em Python. Conceitos de classifi cação com vizinhos mais próximos (KNN), com árvore de decisão e com classifi cadores bayesianos, serão explicados tanto na teoria quanto na prática. Além de classi- fi cação, o conceito de clusterização será visto de maneira aplicada. Com o objetivo de passar programação voltada à mineração, será explicado como mexer em Python e nas suas bibliotecas Matplotlib, Pandas e NumPy, mostrando como fazer fi ltros, misturas (mergê), visualizações (plot), importações de arquivos (com extensões .csv, .xlsx, .data e .txt) e algumas classifi cações. Apresentação MINERAÇÃO DE DADOS 9 Mineração de dados - Unidade1.indd 9 08/07/19 16:35 Este trabalho é dedicado aos programadores em SQL, aos estudantes de Excel avançado e às pessoas que trabalham com dados diariamente, através de recursos lógicos e visuais. É dedicado, também, para pessoas que trabalham com decisões e estatística e, por fi m, para pessoas que pretendem mudar o rumo de uma empresa no sentido positivo. A Professora Ana Luiza Cerchiari de Andrade é mestre em Estudos Analíticos de Dados em Engenharia e Tecnologia de Energia pela Univer- sidad Europea del Atlántico – Espanha (2017). Possui especialização em Análise Estatística para Auditorias de Ambientes e Sistemas pela Universidade Estácio de Sá (2016), formação específi ca em Redes pela Impacta (2018) e em Cisco pelo Senac (2018). Possui formação conti- nuada em Sql, PHP, jQuery, DataScience, Html5 e CSS3 pela 4Linux (2017). Tem graduação em TI pela Universidade Anhembi Morumbi (2006). Ministrou aulas em Planejamento Estratégico (2011) e aulas de Tecnologia da Informação e Gestão (2013). Foi professora de linguagens de programação para aplicativos e sites, de redes e de administração (2013) e trabalhou com de- senvolvimento de sites e sistemas tanto em em- presas como para empresas (2011-2018). Currículo Lattes: http://buscatextual.cnpq.br/buscatextual/vi- sualizacv.do?id=K4321448H1 A autora MINERAÇÃO DE DADOS 10 Mineração de dados - Unidade1.indd 10 08/07/19 16:35 INTRODUÇÃO E APLICAÇÕES DE MINERAÇÃO DE DADOS 1 UNIDADE Mineração de dados - Unidade1.indd 11 08/07/19 16:36 Objetivos da unidade Tópicos de estudo Compreender funcionamentos de SQL; Compreender filtros e gráficos em Excel; Introdução à mineração com teorias introdutórias; Conhecer conceitos de data warehouse. Técnicas e tarefas de Mineração de Dados Dados, informação e conhecimento Filtros em Excel Filtros em SQL Exemplos de aplicações Várias formas de aplicação Data warehouse Exibindo dashboards no Excel Processo de descoberta de conheci- mento em bases de dados O que é KDD? Macroetapas do KDD MINERAÇÃO DE DADOS 12 Mineração de dados - Unidade1.indd 12 08/07/19 16:36 Técnicas e tarefas de Mineração de Dados A quantidade de dados que são registrados é gigante. A todo instante ocorrem registros em autoatendimento, aplicaçõesde mapas, celulares, sensores, redes sociais, ligações e conversas digitais que deixam informações em todos os lugares. A programação auxilia, como será visto, na captação de dados, criação de fi ltros e automatização de respostas. Dados, informação e conhecimento Existe uma diferença elementar entre dados, informação e conhecimento. Dados são infor- mações recolhidas e não analisadas, como exemplo tem-se os valores das compras de natal. Costumam ser coletados por aplicativos, notas fi scais, registros e são demonstrações de fatos desprovidos de análise. De acordo com Castro (2011, p. 15), “Na estatística, dado é referenciado como toda informação recolhida de maneira sistemática [...] na Informática, designam-se da- dos como elementos de partida que servem de base para tratamento”. Informação são dados analisados, como os descontos habituais no mês de dezembro e o crescimento. Conhecimen- to é o estudo e a refl exão em cima do que se sabe, por exemplo, o retorno de campanhas de marketing impresso. Figura 1. Diferenças entre dados, informação e conhecimento. Fonte: GOLDSHIMDIT et al., 2015, p. 2. Conhecimento Informação Dado Se a capacidade mensal de endividamento > 60% Então, crédito = sim 2.345,20; 463,00; 10.048,21; 284,12 Capacidade de endividamento mensal = (Renda mensal - Despesas mensais)/Renda mensal Renda mensal, despesa mensal Na base da pirâmide representada na Figura 1, existem alguns dados que podem ser salá- rios e gastos, por exemplo. A informação, nesse caso, descobre o percentual de capacidade de endividamento e o conhecimento decide se destina crédito ou não. MINERAÇÃO DE DADOS 13 Mineração de dados - Unidade1.indd 13 08/07/19 16:36 Filtros em Excel Suponha que uma empresa alimenta todos os dias um banco de dados no programa Excel. Para exemplifi car, um dataset foi baixado do site Portal Brasileiro De Dados Abertos. A Fig. 2 mostra o dataset baixado em formato .xlsx e aberto no Excel. Figura 2. Dados sobre pagamentos relacionados a lei orçamentária em Excel. Fonte: SOUZA, 2019. Esse conjunto de dados possui mais itens abaixo e, como se pode notar, possui pagamentos até novembro e até dezembro de 2019. Assim como o governo, as empresas podem fazer tabelas com dados registrando operações cotidianas. A Fig. 3 mostra o passo a passo para fazer fi ltros. No exemplo a seguir, as colunas dos meses de setembro e outubro foram removidas. A tabela foi selecionada. MINERAÇÃO DE DADOS 14 Mineração de dados - Unidade1.indd 14 08/07/19 16:36 Para fazer o filtro, basta clicar em dados, filtro e escolher o tipo de filtro. Pode-se filtrar textos, conforme exemplo. Quando existem datas, pode-se filtrar por período, antes de, depois de, e etc. Figura 3. Filtros em Excel. Cabe citar que os filtros se acumulam conforme o usuário os criam. A Fig. 4 mostra um ban- co de dados de compras. Figura 4. Registro de compras de uma loja. MINERAÇÃO DE DADOS 15 Mineração de dados - Unidade1.indd 15 08/07/19 16:37 Figura 5. Filtros duplos em dados. A Fig. 5 mostra a tabela com filtro por compra e por data. Pode-se a qualquer momento lim- par tanto o filtro de cada coluna quanto o filtro geral. Nota-se que restaram apenas três linhas com data maior que 12/10/2019 e valor acima de R$ 30,00. MINERAÇÃO DE DADOS 16 Mineração de dados - Unidade1.indd 16 08/07/19 16:38 Filtros em SQL Dados são armazenados, na grande maioria das vezes, em databases (bases ou bancos de dados) em SQL. Neste momento, será passado uma introdução sobre SQL, para poste- riormente nos aprofundarmos. Neste exemplo, será usada a linguagem MySQL e o progra- ma Workbench MySQL. Obviamente, existem diversas formas de fazer fi ltros em Excel e até formas de programar fi ltros em macros e VBA (linguagem de programação em Excel). Todavia, o objetivo aqui foi tra- zer o conceito de mineração mais próximo da realidade. E, no presente trabalho, será passado também diversas formas de fazer fi ltros com SQL e Python. ASSISTA Para ver o procedimento de instalação de MySQL e Xampp, assista ao vídeo Como instalar MySQL e Xampp, contido nas referências bibliográfi cas. Aumente a resolução (qualidade) do vídeo no botão de confi gurações do player do YouTube, no canto inferior direito, se necessário. Após instalar o Workbench, deve-se abrir e ativar o Xampp (ativar MySQL e Apache) e então deve-se abrir o Workbench, conforme Fig. 6. MINERAÇÃO DE DADOS 17 Mineração de dados - Unidade1.indd 17 08/07/19 16:38 Figura 6. Abertura de Xampp e Workbench MySQL. Figura 7. Criando uma conexão. Tendo aberto o Workbench, deve-se criar uma conexão; a Fig. 7 mostra uma conexão cha- mada “produtos”. Após abrir o Workbench, alguns comandos serão digitados e a função de cada um encontra- -se na Tabela 1. A demonstração de como fazer está na Fig. 8. MINERAÇÃO DE DADOS 18 Mineração de dados - Unidade1.indd 18 08/07/19 16:39 ASSISTA Para ver o procedimento de criação e seleção de tabelas, assista ao vídeo Primeiros Passos com MySQL, contido nas referências bibliográfi cas. Aumente a resolução (qualidade) do vídeo no botão de confi gurações do player do YouTube, no canto inferior direito, se necessário. TABELA 1. COMANDOS E UTILIDADES MYSQL Comandos Utilidades create database empresax; Cria o banco de dados para a em-presa. use database empresax; Ativa o banco de dados para uso. create table vendas_computadores (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas date); Cria a tabela vendas_computadores com código, nome, preço e data da venda. insert into vendas_computadores values (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); Insere na tabela vendas_computa- dores três computadores e seus dados. select * from vendas_computadores. Seleciona e exibe todos (*) os dados da tabela vendas_computadores. (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas create database empresax; (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas create database empresax; (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas create database empresax; use database empresax; create table vendas_computadores (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), create database empresax; use database empresax; create table vendas_computadores (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), create database empresax; use database empresax; create table vendas_computadores (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas insert into vendas_computadores values (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), create database empresax; use database empresax; create table vendas_computadores (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas insert into vendas_computadores values (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); create database empresax; use database empresax; create table vendas_computadores (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas insert into vendas_computadores values (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); use database empresax; create table vendas_computadores (codigo int, nome varchar(50), preco fl oat (6,2),data_da_vendas date); insert into vendas_computadores values (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); use database empresax; create table vendas_computadores (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas date); insert into vendas_computadores values (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); select * from vendas_computadores. create table vendas_computadores (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas insert into vendas_computadores values (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); select * from vendas_computadores. create table vendas_computadores (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas insert into vendas_computadores values (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); select * from vendas_computadores. (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas insert into vendas_computadores values (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); select * from vendas_computadores. (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas insert into vendas_computadores values (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); select * from vendas_computadores. Cria o banco de dados para a em- (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas insert into vendas_computadores values (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); select * from vendas_computadores. Cria o banco de dados para a em- (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); select * from vendas_computadores. Cria o banco de dados para a em- Ativa o banco de dados para uso. (codigo int, nome varchar(50), preco fl oat (6,2), data_da_vendas (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); select * from vendas_computadores. Cria o banco de dados para a em- Ativa o banco de dados para uso. Cria a tabela (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), (3, ‘Ultrabook LG I5’, 3800.00 , ‘2019-02-13’); select * from vendas_computadores. Cria o banco de dados para a em- presa. Ativa o banco de dados para uso. Cria a tabela com código, nome, preço e data da (1, ‘Positivo All in One Processador I3 ‘, 2000.00 , ‘2019-02-10’), (2, ‘Samsung All in One Processador I5’, 3500.00 , ‘2019-02-12’), Cria o banco de dados para a em- presa. Ativa o banco de dados para uso. Cria a tabela com código, nome, preço e data da Cria o banco de dados para a em- Ativa o banco de dados para uso. vendas_computadores com código, nome, preço e data da Insere na tabela Cria o banco de dados para a em- Ativa o banco de dados para uso. vendas_computadores com código, nome, preço e data da Insere na tabela dores Cria o banco de dados para a em- Ativa o banco de dados para uso. vendas_computadores com código, nome, preço e data da venda. Insere na tabela dores três computadores e seus Seleciona e exibe todos (*) os dados Ativa o banco de dados para uso. vendas_computadores com código, nome, preço e data da venda. Insere na tabela três computadores e seus Seleciona e exibe todos (*) os dados da tabela Ativa o banco de dados para uso. vendas_computadores com código, nome, preço e data da vendas_computa- três computadores e seus Seleciona e exibe todos (*) os dados da tabela vendas_computadores com código, nome, preço e data da vendas_computa- três computadores e seus dados. Seleciona e exibe todos (*) os dados da tabela vendas_computadores com código, nome, preço e data da vendas_computa- três computadores e seus dados. Seleciona e exibe todos (*) os dados vendas_computadores vendas_computa- três computadores e seus Seleciona e exibe todos (*) os dados vendas_computadores vendas_computa- três computadores e seus Seleciona e exibe todos (*) os dados vendas_computadores Seleciona e exibe todos (*) os dados vendas_computadores Seleciona e exibe todos (*) os dados vendas_computadores Seleciona e exibe todos (*) os dados vendas_computadores Após copiar cada linha, deve-se selecionar a linha e apertar ctrl + enter; caso dê certo e não tenha erros de escrita, aparecerá um aviso na cor verde, em baixo do programa, conforme Fig. 8. Digitar cada código, selecionar a linha do código e apertar ctrl + enter. Resultado da função select * from vendas_computadores. Comandos verdes indicando que os itens foram escritos corretamente. Figura 8. Criando tabelas no MYSQL e inserindo dados. MINERAÇÃO DE DADOS 19 Mineração de dados - Unidade1.indd 19 08/07/19 16:40 Como já foi dito, na Tabela 1, o comando select * from vendas_computadores, seleciona todos os dados da tabela; existem, porém, alguns filtros na seleção. A Fig. 9 mostra como selecionar apenas nomes. Figura 9. Selecionar apenas nome. A Fig. 10 mostra como selecionar nome e preço. Figura 10. Selecionar apenas nome e preço. A Fig. 11 mostra como selecionar todos os dados em que o preço é maior que R$ 2.100,00. MINERAÇÃO DE DADOS 20 Mineração de dados - Unidade1.indd 20 08/07/19 16:40 Figura 11. Selecionar todos os dados onde o preço é maior que R$ 2.100,00. Uma empresa pode ter um banco de dados com várias tabelas, por exemplo: tabela de pro- dutos, tabela de funcionários, tabela de vendas, tabelas de compras e etc. Pode ainda ter dois ou mais bancos de dados e várias tabelas dentro de cada banco, por exemplo: um banco de dados da unidade da zona sul, um banco da zona norte e etc., e cada banco pode ter várias tabelas. Conforme o vídeo Primeiros Passos com MySQL e a Fig. 8, existem vários tipos de dados, int, varchar, date e etc. O CPF, por exemplo, se encaixaria em BIGINT. Observe os datatypes (“tipos de dados”) na Tabela 2. TABELA 2. ALGUNS TIPOS DE DADOS DE MYSQL DATA TYPE DESCRIÇÃO DATE Datas em formato AAAA-MM-DD. TIME Dias em formato hh:mm:ss. DATETIME Data e hora AAAA-MM-DD; hh:mm:ss. YEAR Anos. CHAR TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). VARCHAR TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). LONGTEXT TEXTOS - Textos muito grandes. TINYINT NÚMEROS - varia entre -128 até 127. SMALLINT NÚMEROS - varia entre -32.768 até 32.767. MEDIUMINT NÚMEROS - varia entre -8.388.608 até 8.388.607. INT NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. DATE TIME DATETIMEDATETIMEDATETIME YEARYEAR CHARCHAR VARCHARVARCHARVARCHAR LONGTEXT TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, LONGTEXT TINYINT TEXTOS - Número exatode casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). LONGTEXT TINYINT SMALLINT Datas em formato AAAA-MM-DD. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo SMALLINT MEDIUMINT Datas em formato AAAA-MM-DD. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). SMALLINT MEDIUMINT Datas em formato AAAA-MM-DD. Dias em formato hh:mm:ss. Data e hora AAAA-MM-DD; hh:mm:ss. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). MEDIUMINT INT Datas em formato AAAA-MM-DD. Dias em formato hh:mm:ss. Data e hora AAAA-MM-DD; hh:mm:ss. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). Datas em formato AAAA-MM-DD. Dias em formato hh:mm:ss. Data e hora AAAA-MM-DD; hh:mm:ss. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). Datas em formato AAAA-MM-DD. Dias em formato hh:mm:ss. Data e hora AAAA-MM-DD; hh:mm:ss. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). Datas em formato AAAA-MM-DD. Dias em formato hh:mm:ss. Data e hora AAAA-MM-DD; hh:mm:ss. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). Datas em formato AAAA-MM-DD. Dias em formato hh:mm:ss. Data e hora AAAA-MM-DD; hh:mm:ss. Anos. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). Datas em formato AAAA-MM-DD. Dias em formato hh:mm:ss. Data e hora AAAA-MM-DD; hh:mm:ss. Anos. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). TEXTOS - Textos muito grandes. NÚMEROS - varia entre -128 até 127. Data e hora AAAA-MM-DD; hh:mm:ss. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). TEXTOS - Textos muito grandes. NÚMEROS - varia entre -128 até 127. NÚMEROS - varia entre -32.768 até 32.767. NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. Data e hora AAAA-MM-DD; hh:mm:ss. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). TEXTOS - Textos muito grandes. NÚMEROS - varia entre -128 até 127. NÚMEROS - varia entre -32.768 até 32.767. NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. Data e hora AAAA-MM-DD; hh:mm:ss. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). TEXTOS - Textos muito grandes. NÚMEROS - varia entre -128 até 127. NÚMEROS - varia entre -32.768 até 32.767. NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). TEXTOS - Textos muito grandes. NÚMEROS - varia entre -128 até 127. NÚMEROS - varia entre -32.768 até 32.767. NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). TEXTOS - Textos muito grandes. NÚMEROS - varia entre -128 até 127. NÚMEROS - varia entre -32.768 até 32.767. NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). TEXTOS - Textos muito grandes. NÚMEROS - varia entre -128 até 127. NÚMEROS - varia entre -32.768 até 32.767. NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). TEXTOS - Textos muito grandes. NÚMEROS - varia entre -128 até 127. NÚMEROS - varia entre -32.768 até 32.767. NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). TEXTOS - Textos muito grandes.NÚMEROS - varia entre -128 até 127. NÚMEROS - varia entre -32.768 até 32.767. NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). NÚMEROS - varia entre -128 até 127. NÚMEROS - varia entre -32.768 até 32.767. NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). NÚMEROS - varia entre -32.768 até 32.767. NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. TEXTOS - Número exato de casas (caso o texto tenha menos, usa-se o mesmo espaço, desperdiçando espaço e deixando a tabela mais lenta caso tenha muitos dados). TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). NÚMEROS - varia entre -32.768 até 32.767. NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. TEXTOS - Número variável de casas (usa só a quantidade de espaço utilizada pelo dado (caso tenha menos letras o espaço é removido, sendo mais performático). NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. NÚMEROS - varia entre -8.388.608 até 8.388.607. NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647.NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647.NÚMEROS - variam entre -2.147.483.648 até 2.147.483.647. MINERAÇÃO DE DADOS 21 Mineração de dados - Unidade1.indd 21 08/07/19 16:41 DATA TYPE DESCRIÇÃO BIGINT NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. ENUM DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. BIGINTBIGINTBIGINT ENUM NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807.NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. NÚMEROS - variam entre -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M.DÍGITO - Utilizado para colocar uma opção ou outra, por exemplo, sexo F ou M. A fi m de dar uma explicação prática, observe o exemplo contido na Fig. 12, com os tipos enum. Figura 12. Exemplo de criação de enum. Exemplos de aplicações Existem cargos para Mineração de Dados em empresas de diversos ramos e empresas vol- tadas apenas para Mineração de Dados, as quais trabalham para outras empresas, no busi- ness-to-business. Consultorias em data mining, por exemplo, são especialistas em análises pre- ditivas para auxiliar empresas a decidir quais produtos devem desenvolver, como melhorar a satisfação do cliente e/ou atrair clientes mais fortes. Empresas de seguros conseguem determinar melhores valores de apólice e identifi car frau- des, bem como desburocratizar processos de avaliação de veracidade de sinistros. Empresas de saúde podem melhorar processos de análises diagnósticas de saúde, podem criar análises em regras de associação em genética, gerar bancos de dados com informações químicas, físicas e biológicas para futuras pesquisas tanto para o hospital quanto para o para um conjunto de hospitais e podem ainda estudar comportamentos de desenvolvimento de doenças, relacionadas com acomodação de pacientes, entre outras aplicações. Na esfera da educação, existe a EDM (Educacional Data Mining), a qual avalia diversos fa- tores relacionados a níveis de performance e aprendizado. Existe, por exemplo, uma técnica que reúne dados de computadores escolares de várias escolas, para através da união desses computadores, avaliar de forma centralizada, padrões, modos e tempos de utilização em pro- MINERAÇÃO DE DADOS 22 Mineração de dados - Unidade1.indd 22 08/07/19 16:41 gramas e sites, também podem avaliar temas por idade, ano e curso, locais de acesso e difi cul- dades encontradas em cada aplicação. Na área de aprendizado de máquina, pode-se criar automatizações após realizar estudos avançados de mineração (clientes com esse perfi l e esse padrão de comportamento recebem tal recomendação, por exemplo) e, por outro lado, criar algoritmos responsáveis por minerar, tanto em dados gerais, quanto em text mining, web mining, Mineração de Dados sociais e mine- ração de mídias. Várias formas de aplicação Outro tipo a ser citado é a mineração de padrões derelações, avaliando as infl uências de um conjunto de dados sobre o próprio con- junto de dados, por exemplo, quanto maior a fi la, maior a procura, e quais dados infl uenciam mais nesse quesito de funcionamento interno, de círculo vicioso ou círculo virtuoso. Pode-se fazer minerações para avaliar pa- drões de sequências, descobrindo quais se- quências geram mais sucesso nas vendas, em desempenhos empresariais, em aprendizados de alunos e etc. Por exemplo, uma sequência de ligação, envio de e-mail e depois mensagem instantânea gera mais efeito do que ligação, mensagem instantânea e e-mail. Ou então, por exemplo, na EDM, gera mais efeito explica- ção, atividade e revisão do que atividade, expli- cação e revisão. Pode-se fazer mineração de infl uência de causa e efeito ou correlações (regressão linear), descobrir quais causas geram deter- minados resultados com mais frequência, por exemplo, quais estímulos propiciam mais ven- das, quais palavras deixam os clientes mais ini- bidos, quais propagandas geram mais procura. MINERAÇÃO DE DADOS 23 Mineração de dados - Unidade1.indd 23 08/07/19 16:41 Data warehouse Data warehouse (DW) signifi ca depósito de grandes volumes de dados, organizados e dese- nhados de forma a facilitar tomada de decisões. Em DW, o desenho das bases de dados ajuda a fazer fi ltros e a organizar informações. Os data warehouses são centros com muitos dados da empresa inteira, por exemplo, data marts são dados armazenados para um processo apenas ou para um assunto. Pode-se dizer que um data warehouse é composto por vários data marts. Os objetivos do DW são: • Ver os dados que estão omissos; • Ter acesso aos dados; • Pedir ao sistema que mostre apenas o que é importante; • Acesso rápido a dados para tomadas de decisões estratégicas cotidianas. Kymball (2012) criou um diagrama para exemplifi car a estrutura do DW. Extração Carga Extração Carga Acesso Acesso Recursos do sistema operacional Área de preparação de dados Área de apresentação de dados Ferramentas de acesso a dados Data mart #1 Dimencional Dados atomicos e resumo com base em um único processo de negócios Barramento DW: fatos e dimensões Data mart #2 Designação de similaridades em dados Serviços: limpeza, combinação e padronização Banco de dados: arquivos e tabelas racionais Processamento: ordenação e processamento sequencial Ferramentas de consulta Escrita de relatórios Aplicativos análiticos Modelagem: previsão pontuação Mineração de Dados Extração Figura 13. Arquitetura DW. Fonte: KIMBALL et al., 2002, p. 19 A primeira camada, chamada Recursos de Sistema Operacional (Operacional Source Systems), é o local de onde os dados são extraídos; geralmente, são planilhas de Excel, softwares ERP, ban- cos de dados e tabelas em SQL ou em Access, considerada a parte externa da estrutura. A segunda camada, chamada Data Staging Area, é o local responsável pelo tratamento e proces- samento dos dados (ETL), onde existem limpezas de dados, mesclas e agrupamentos de dados e normalizações de dados (esforço para exibir os dados de forma padronizada), tornando-os coeren- tes. Nesta área, os usuários não podem ter acesso e pode-se usar programas de SQL. MINERAÇÃO DE DADOS 24 Mineração de dados - Unidade1.indd 24 08/07/19 16:41 A terceira camada, chamada Data Presentation Area, é o local onde os dados são postos de maneira a facilitar a leitura e a visualização dos dados, em forma de data marts, isto é, orientados a processos de negócios. Nesta camada, pode-se usar o programa Azure SQL Services. A quarta camada contém ferramentas de filtros e de visualização, bem como dashboards, gráficos e demais recursos, voltadas para visualizar com intencionalidade a área de apre- sentação (Data Presentation Area). Nesta área, existem pontuações, previsões, ferramen- tas de consultas e pode-se usar o programa Excel e seus dashboards e Power BI (Fig. 14). A Fig. 15 também exemplifica a estrutura DW. Figura 14. Data Presentation Area com programa Power BI. EXPLICANDO ERP são sistemas integrados empresariais, em que empresas administram faturamen- tos, finanças, compras, estoques e etc. Essas partes se comunicam, ou seja, faturamen- to se comunica com estoques, estoques se comunicam com compras etc. Extract Transform Load é um processo em que os dados são transformados e passam do sistema de origem para o data warehouse. MINERAÇÃO DE DADOS 25 Mineração de dados - Unidade1.indd 25 08/07/19 16:41 Operações do fundo do sistema METADATA Operações da frente do sistema Normalização Mineração de Dados e modelos Carregamento Camada em tempo real BI operacional Portal de BI ETL sistemas e serviços Agregamento para medir e mostrar desempenho Análises de aplicações ETL gerenciamento de serviços BI serviços de gerenciamento ETL banco de dados BI banco de dados Padronização Dashboards e scorecards Limpeza Modelos dimensionais de processo via Enterprise Bus Matrix Relatórios padronizadosExtração Negócio de nível atômico Consulta de acesso direto ETL sistemas e serviços Apresentação de serviços BI e serviços Figura 15. Arquitetura DW. Fonte: KIMBALL et al., 2002, p. 529. Exibindo dashboards no Excel Um exemplo de Data Presentation Area (“demonstração de dados”) é a criação de um dashboard no Excel. A Fig. 16 contém uma tabela com vendas de produtos em três meses. A fórmula da média em Excel está escrita na coluna “Média” e ao lado encontra-se a fórmula da “Situação”. Sendo a média maior do que 7, o produto está ideal; sendo menor, a venda está fraca. A fórmula “=MÉ- DIA(B2:D2)” faz a média de B2, C2 e D2, e assim sucessivamente nas outras linhas. A função SE coloca o resultado “Ideal” para médias maiores que 7, e “Fraco” para menores. A fórmula deve se repetir em todos os dados. Números quebrados representam vendas com trocas ou devoluções. Figura 16. Base de dados para dashboard. MINERAÇÃO DE DADOS 26 Mineração de dados - Unidade1.indd 26 08/07/19 16:42 Agora, uma outra tabela foi criada com a função PROCV (procura na vertical), que irá procurar o produto escolhido na célula i2. Ou seja, ela buscará o produto digitado na célula i13, com o fundo laranja, e dará o valor das vendas de janeiro, fevereiro e etc. A seguir, na Fig. 17, a função procv irá procurar o valor da célula em laranja (B13), na matriz inteira (A1 até F10), a coluna “Vendas Jan(2)”, a coluna “Vendas Fev(3)”, a coluna “Vendas Mar(4)”, a coluna “Média(5)”, a coluna “Situação(6)”; e o valor zero (0) significa correspondência exata. Figura 17. Procv e transpor valores. Figura 18. Resultado de procv. MINERAÇÃO DE DADOS 27 Mineração de dados - Unidade1.indd 27 08/07/19 16:42 Agora, será criada uma matriz com a função SE, na qual, caso o produto seja maior que 7(B14>=7), aparece o próprio valor(B14); caso não seja, aparece zero(0). A finalidade é criar um gráfico dashboard no Excel, por isso, está sendo feito tal procedimento mais complexo. Observe na Fig. 17 que os operadores maior (>) e menor (<) fazem a comparação na tabela nova, e as linhas vão descendo (B14, B15, B16). Isto pode ser lido da seguinte forma: caso as vendas sejam maiores que 7, então deve-se colocar o valor das vendas; caso contrário, coloque zero. E na co- luna da direita, caso as vendas sejam menores que 7, então deve-se colocar o valor das venda; caso contrário, coloque zero. Figura 19. Criando uma matriz para valores maiores ou menores que a média com a função SE. MINERAÇÃO DE DADOS 28 Mineração de dados - Unidade1.indd 28 08/07/19 16:42 Agora, na Fig. 20, duas médias serão demonstradas; a média do produto com referência à célula C17 sempre é a média geral dos produtos, a fórmula =média(B12:D10) fará a média geral de janeiro (B), fevereiro (C) e março (D). Figura 20. Média do produto e dos produtos. Uma vez feito isso, só é necessário criar o gráfico e configurar os traços de médiapara cortar o gráfico. Ao mudar a célula B13 de blusas para outro produto, automaticamente muda o gráfico inteiro de forma dinâmica. MINERAÇÃO DE DADOS 29 Mineração de dados - Unidade1.indd 29 08/07/19 16:42 2. Inserir gráfico de coluna empilhada. 1. Selecionar. 3. Clicar com o botão direito no item referente à média. MINERAÇÃO DE DADOS 30 Mineração de dados - Unidade1.indd 30 08/07/19 16:43 4. Mudar média do mês e média de todos os dados para o tipo linha. Figura 21. Alterando confi gurações do gráfi co. Figura 22. Criando um gráfi co com linhas. O resultado será a Fig. 22. Processo de descoberta de conhecimento em bases de dados O objetivo da Mineração de Dados é obter dados e, a partir de então, converter em conheci- mentos para, por exemplo, fazer vendas combinadas (toda pessoa que compra caneta, compra MINERAÇÃO DE DADOS 31 Mineração de dados - Unidade1.indd 31 08/07/19 16:43 lápis), deixar produtos próximos nas prateleiras, planejar promoções, panfl etos e degustações, analisar comportamento por clima e etc. O que é KDD? Descobrir conhecimentos, extrair e processar informações são ações cotidianas para es- tatísticos, programadores em Data Science. Em 1989, um um conceito foi determinado sobre KDD, que signifi ca “Descoberta de conhecimento de Bancos de Dados” (Knowledge Discovery in Databases). A Fig. 23 mostra as etapas do processo KDD. Macroetapas do KDD De forma semelhante, mas não igual ao data warehouse, o KDD possui etapas. A principal diferença do data warehouse é que ele objetiva demonstrar muitos dados de Dados consolidadosFontes de dados ConhecimentoPadrões e modelosDados preparados Consolidação de dados Seleção e pré-processamento Data mining Interpretação e avaliação Figura 23. Processo de KDD. Fonte: SABAIA, 2015. Primeiramente, a empresa faz a captação e a consolidação dos dados; então, nessa mina de informações, inicia-se o processo de seleção e tratamento de dados, após isso, a mine- ração avançada é realizada e o tratamento das informações transforma a mineração em conhecimento. O KDD é um processo, que será destrinchado na prática posteriormente. De acordo com Fay- yad et al. (1996, p. 88), “KDD é um processo não trivial, interativo, para identifi cação de padrões compreensíveis, válidos, novos e potencialmente úteis a partir de grandes conjuntos de dados”. O processo necessita de profi ssionais especializados em tratamento de dados e um profi ssional especializado em estatística e aplicação em negócios. O objetivo do KDD é descobrir recorrências nos dados, tanto para análises presentes quanto para previsões futuras, em que índices de confi ança determinam qual é a porcentagem que a relação de causa e efeito tem em um conjunto de dados. MINERAÇÃO DE DADOS 32 Mineração de dados - Unidade1.indd 32 08/07/19 16:43 forma visual e acessível; ele é um depósito de dados orientado por temas e que variam para os tomadores de decisão (dashboards). Já o KDD objetiva ter conhecimento e analisar mais a fundo os padrões. As entidades a serem analisadas são produtos, vendas, compras, eventos, textos, solicita- ções eletrônicas, requisições, clientes e etc. A Fig. 24 mostra as etapas do processo de mineração em uma visão mais sistêmica. Pré-processamento Pós-processamentoMineração de Dados Etapas operacionais do processo de KDD Interação Interação Especialista em KDDEspecialista em domínio Figura 24. Etapas na mineração. Fonte: GOLDSHIMDIT et al., 2015, p. 22. A primeira macroetapa é o pré-processamento, que passa por três fases: • Seleção de dados: em que duas ações são feitas, a seleção de atributos desejáveis pelo especialista (nome, idade, bairro, faixa etária e etc.) e o tipo de registro desejado (maior que 20 anos, masculino, vendas à vista e etc). Nesta fase, aplicam-se os filtros de Excel e de SQL (por exemplo: select * from table where sexo = masculino e idade > 20). Nesta fase, também são criados clusters (grupos) por similaridades. Pode-se criar novas tabelas. • Limpeza de dados: esta é a segunda fase, em que valores vazios fora do intervalo espe- rado e errados são removidos (por exemplo, delete from table_name where idade is null). A Fig. 25 mostra um exemplo de criação de dados vazios (null) na linha 7, um exemplo de limpeza de dados vazios na linha 11; após executar o select * from, o registro com da- dos vazios não aparece na seleção, pois foi deletado de propósito, uma vez que estava incompleto. Só aparece o Samsung e Ultrabook. MINERAÇÃO DE DADOS 33 Mineração de dados - Unidade1.indd 33 08/07/19 16:43 Deixar Desativado Figura 25. Remoção de valores vazios em MySQL. Figura 26. Desabilitar segurança contra delete. • Adição e alimentação de mais dados: esta é a terceira e última fase, em que a finali- dade é buscar mais informações ainda não colocadas nas bases, também chamado de enriquecimento, podendo ser outras tabelas, tabelas de dados que acabam por cruzar com estes no cotidiano etc. Cabe citar que existe uma ferramente no Workbench de segurança que precisa ser desabilitada para excutar o delete. A Fig. 26 mostra como desabilitar. MINERAÇÃO DE DADOS 34 Mineração de dados - Unidade1.indd 34 08/07/19 16:43 Na segunda macroetapa, as análises estatísticas são feitas, por exemplo, regressão linear, regressão logística, descoberta de similaridades (KNN), clusterização, descobertas de variân- cia, desvio padrão, classificações, regras de associação e etc. Nesta etapa, são utilizados pro- gramas como Weka, SPSS, Jupyter Notebook, Past, SAS Entrepise, PolyAnalyst, bem como as linguagens Python, R e SQL, fundamentalmente. A terceira macroetapa é a extração de conhecimento ou pós-processamento (GOLDSHIM- DIT et al., 2015, p. 27). Aqui, é necessário fazer um estudo dos dados para gerar relatórios, gráficos e então mudar decisões empresariais. MINERAÇÃO DE DADOS 35 Mineração de dados - Unidade1.indd 35 08/07/19 16:43 Sintetizando No presente projeto, primeiramente foi falado sobre as diferenças entre dados, informação e conhecimento, em que dados são coletados de forma bruta e através de programas como Excel, SQL, Access e etc.; informação é a análise de dados; e conhecimento é o entendimento e a compreensão dos padrões que estão atrás dos dados, bem como a avaliação de padrões estatísticos, validando hipóteses, para tomada de decisão estratégica. O conceito de mineração foi explicado para entender como os padrões podem ser desco- bertos, a fim de achar padrões de sequência, padrões de causa e efeito, padrões de relações entre dados, bem como mineração em data warehouse em que um processo de limpeza e de exibição de dados facilita a leitura de dados exorbitantes. Filtros em Excel, através de dois parâmetros, foram explicados por uma tabela modelo, a fim de possibilitar o data mining na prática. Foi passado, ainda, como executar scripts e algo- ritmos SQL, a fim de criar tabelas, selecionar de forma estratégica através da cláusula where. Para demonstrar de forma prática como criar exibições em dashboards, foi passado o pro- cesso de como criar gráficos dinâmicos. Por fim, foi explicado o que é KDD e como ele se subdivide nas etapas de pré-processamen- to, processamento (mineração) e pós-processamento. MINERAÇÃO DE DADOS 36 Mineração de dados - Unidade1.indd 36 08/07/19 16:43 Referências bibliográficas CASTRO, G. R. Discussão conceitual sobre dado, informação e conhecimento: perspectiva dos alunos concluintes do curso de Biblioteconomia da UFPB. 2011. 51 f. Monografia apresenta- da ao curso de Biblioteconomia da Universidade Federal da Paraíba como requisito parcial para obtenção do título de bacharel em Biblioteconomia – Universidade Federal da Paraíba, 2011. COMO instalar MySQL e Xampp. Postado por Luiza Cerchiari. (5min. 47s.). son. color. port. Disponível em: <https://www.youtube.com/watch?v=srcl7b1LeCg&feature=youtu.b>. Acesso em: 29 mar. 2019. FAYYAD, U.M.; PIATETSKY-SHAPIRO, G.; SMYTH, P.; UTHURUSAMY, R. Advances in knowledge discovery and data mining. Califórnia: AAAI/MIT Press, 1996. GOLDSHIMDIT, R.; BEZERRA, E.; PASSOS, E. Data mining: conceitos, técnicas, algoritmos, orien- tações e aplicações. Rio de Janeiro: Elsiever, 2015. PRIMEIROS passos com MySQL. Postado por Luiza Cerchiari. (5min. 03s.). son. color. port. Disponível em: <https://www.youtube.com/watch?v=QoCcYpf_ZXw&feature=youtu.be>. Aces- so em: 29 mar. 2019. POWER BI. Welcome to the data stories gallery. Disponível em: <https://community.powerbi. com/t5/Data-Stories-Gallery/bd-p/DataStoriesGallery>. Acesso em: 29 mar. 2019. SABAIA, W. F. Processo de KDD. Disponível em: <http://docplayer.com.br/3575573-O-proces- so-de-kdd-data-mining-sumario-aula1-o-processo-de-kdd-interpretacao-e-avaliacao-selecao- -e-pre-processamento-consolidacao-de-dados.html>. Acesso em: 29 mar. 2019. SOUZA, F. Limites de pagamento dos órgãos do poder executivo da união. Disponível em: <http:// dados.gov.br/dataset/limites-de-pagamento-dos-orgaos-da-uniao>. Acesso em: 29 mar. 2019. MINERAÇÃO DE DADOS 37 Mineração de dados - Unidade1.indd 37 08/07/19 16:43
Compartilhar