Prévia do material em texto
1 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 2 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 3 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Núcleo de Educação a Distância GRUPO PROMINAS DE EDUCAÇÃO Diagramação: Gildenor Silva Fonseca PRESIDENTE: Valdir Valério, Diretor Executivo: Dr. Willian Ferreira. O Grupo Educacional Prominas é uma referência no cenário educacional e com ações voltadas para a formação de profissionais capazes de se destacar no mercado de trabalho. O Grupo Prominas investe em tecnologia, inovação e conhecimento. Tudo isso é responsável por fomentar a expansão e consolidar a responsabilidade de promover a aprendizagem. 4 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Prezado(a) Pós-Graduando(a), Seja muito bem-vindo(a) ao nosso Grupo Educacional! Inicialmente, gostaríamos de agradecê-lo(a) pela confiança em nós depositada. Temos a convicção absoluta que você não irá se decepcionar pela sua escolha, pois nos comprometemos a superar as suas expectativas. A educação deve ser sempre o pilar para consolidação de uma nação soberana, democrática, crítica, reflexiva, acolhedora e integra- dora. Além disso, a educação é a maneira mais nobre de promover a ascensão social e econômica da população de um país. Durante o seu curso de graduação você teve a oportunida- de de conhecer e estudar uma grande diversidade de conteúdos. Foi um momento de consolidação e amadurecimento de suas escolhas pessoais e profissionais. Agora, na Pós-Graduação, as expectativas e objetivos são outros. É o momento de você complementar a sua formação acadêmi- ca, se atualizar, incorporar novas competências e técnicas, desenvolver um novo perfil profissional, objetivando o aprimoramento para sua atua- ção no concorrido mercado do trabalho. E, certamente, será um passo importante para quem deseja ingressar como docente no ensino supe- rior e se qualificar ainda mais para o magistério nos demais níveis de ensino. E o propósito do nosso Grupo Educacional é ajudá-lo(a) nessa jornada! Conte conosco, pois nós acreditamos em seu potencial. Vamos juntos nessa maravilhosa viagem que é a construção de novos conhecimentos. Um abraço, Grupo Prominas - Educação e Tecnologia 5 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 6 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Olá, acadêmico(a) do ensino a distância do Grupo Prominas! . É um prazer tê-lo em nossa instituição! Saiba que sua escolha é sinal de prestígio e consideração. Quero lhe parabenizar pela dispo- sição ao aprendizado e autodesenvolvimento. No ensino a distância é você quem administra o tempo de estudo. Por isso, ele exige perseve- rança, disciplina e organização. Este material, bem como as outras ferramentas do curso (como as aulas em vídeo, atividades, fóruns, etc.), foi projetado visando a sua preparação nessa jornada rumo ao sucesso profissional. Todo conteúdo foi elaborado para auxiliá-lo nessa tarefa, proporcionado um estudo de qualidade e com foco nas exigências do mercado de trabalho. Estude bastante e um grande abraço! Professor: Paulo Nunes 7 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S O texto abaixo das tags são informações de apoio para você ao longo dos seus estudos. Cada conteúdo é preprarado focando em téc- nicas de aprendizagem que contribuem no seu processo de busca pela conhecimento. Cada uma dessas tags, é focada especificadamente em partes importantes dos materiais aqui apresentados. Lembre-se que, cada in- formação obtida atráves do seu curso, será o ponto de partida rumo ao seu sucesso profissional. 8 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Nesta unidade, você verá os principais conceitos que definem a Mineração de Dados, Data Mining e seus componentes. Verá do que real- mente trata a mineração de dados e como utilizá-la em sua área aplicando esses mesmos conceitos e técnicas na prática, aprendendo a coletar e analisar os mais diferentes conjuntos de dados utilizando as ferramentas mais conhecidas do mercado. Será apresentado aqui também como repre- sentamos o conhecimento, de que forma utilizar as informações que estão, muitas vezes, dispersas, organizando-as de maneira a ajudar na tomada de decisões críticas dentro da sua empresa, transformando dados brutos em informações preciosas. Mineração. Conhecimento. Dados. 9 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S CAPÍTULO 01 SOLUÇÕES EM MINERAÇÃO DE DADOS Apresentação do Módulo ______________________________________ 11 Introdução a Mineração de Dados ________________________________ Representação do Conhecimento ________________________________ Algoritmos _______________________________________________________ Recapitulando ___________________________________________________ 12 18 20 29 CAPÍTULO 02 BANCOS DE DADOS NÃO CONVENCIONAIS Bancos de Dados Distribuídos __________________________________ Bancos de Dados Orientados a Objetos __________________________ Bancos de Dados Objeto-Relacional ____________________________ Recapitulando _________________________________________________ 34 38 40 49 10 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Números Índices _______________________________________________ Recapitulando _________________________________________________ Considerações Finais ___________________________________________ Fechando a Unidade ___________________________________________ Referências ____________________________________________________ 58 70 74 75 78 Séries Temporais _______________________________________________ 54 CAPÍTULO 03 ANÁLISE EXPLORATÓRIA DE DADOS Análise Bidimensional _________________________________________ 52 11 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S O campo da Mineração de Dados teve avanços rápidos nas últimas duas décadas, especialmente da perspectiva da comunidade de ciência da computação. Embora a análise de dados tenha sido ampla- mente estudada no campo convencional de probabilidade e estatística, a mineração de dados é um termo cunhado pela comunidade orientada para a ciência da computação. Para cientistas da computação, ques- tões como escalabilidade, usabilidade e implementação computacional são extremamente importantes. Neste módulo, você verá os conceitos básicos necessários para entender o que é e como funciona a Mineração de Dados, aprendendo como realiza a coleta, seleção e tratamento adequado de diferentes tipos de dados, podendo, assim, utilizá-los para tomadas de decisões muito mais acertadas e precisas. Veremos alguns dos bancos de dados e suas representações, visto que são elementos de suma importância no processo da Mineração de Dados, pois são eles que vão armazenar e gerenciar todas as informações coletadas, além de serem utilizados na organização dessas informações. Cada um dos tópicos ligados à Mineração de Dados será abor- dado aqui de maneira clara e didática, levando-se em consideração as aplicações mais atuais nessa área. Veremos quais os métodos e ferra- mentas adequados ao trabalho de coleta de dados, como e quais dados são importantes para uma análise concisa, quais os bancos de dados e gerenciadores de banco dados são mais indicados para o trabalho de armazenamentode dados, e como se dá a filtragem e classificação desses dados, de maneira que possam ser utilizados nas tomadas de decisões em uma empresa, sempre levando em conta o tipo de negócio e o que se pretende atingir com ele. 12 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S INTRODUÇÃO À MINERAÇÃO DE DADOS Você pode até pensar que, para organizar e transformar da- dos em informações importantes, tudo o que você precisa é um bom gerenciador de planilhas e um banco de dados poderoso, mas não é assim que as coisas funcionam. A Mineração de Dados requer, além de ferramentas poderosas e precisas, de pessoal preparado para “pensar” em como deve ser extraída a melhor informação para você e o seu ne- gócio, pessoas que precisam conhecer também, assim como você, o seu negócio. A Mineração de Dados permite que pessoas comuns como você e eu, possam, utilizando as técnicas de análise de dados corretas, extrair uma massa de dados diversos, transformá-los em informações úteis e colocá-las em prática, fazendo com que você possa então guiar o seu negócio através dessas informações agora mais claras. Não se trata apenas de “criar relatórios” e, sim, de agregar va- SOLUÇÕES EM MINERAÇÃO DE DADOS C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 13 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S lor a informações que antes só mostravam o que, na maioria das vezes, havia acontecido antes. Com a Mineração de Dados, é possível enten- der “como aconteceu” e como determinar o que poderá acontecer no futuro. E como funciona a Mineração de Dados? Vejamos esses dois exemplos: • Exemplo 01: Uma rede de lojas, que possui vendas on-line, cria um sistema de fidelização de seus clientes, identificando através desse sistema aqueles que passam mais tempo on-line e que possuem maior probabilidade de comprar mais, isso com informações coletadas durante a primeira visita do cliente ao site da rede de lojas. De posse dessas informações, foi realizado um maior investimento em marketing direcionado especificamente a esses clientes, maximizando a receita e reduzindo custos com campanhas generalistas de marketing. • Exemplo 02: Uma empresa de planos de saúde identifica que certos procedimentos demandam menos tempo de internação que ou- tros, mesmo que possuam a mesma complexidade médica. Sabendo disso, a empresa implementou uma série de procedimentos e métodos que seriam implantados em todos os hospitais e clínicas conveniadas, visando à redução de custos e à melhoria no atendimento aos clientes. Pelos exemplos demonstrados, é possível perceber que com a Mineração de Dados podemos entender o relacionamento entre os diferentes elementos de um mesmo negócio, pois ela dá direcionamen- tos sobre quais ações devem ser realizadas, identificando onde devem ser realizados cortes de custos, por exemplo, e onde devem ser feitos investimentos com maior garantia de retorno. É fácil entender que a quantidade exorbitante de dados ge- rados atualmente é consequência direta dos avanços tecnológicos e da informatização de praticamente todas as áreas. Esse é o principal objetivo da Mineração de Dados, transformar dados arbitrários e bru- tos, sem a devida estruturação para uso automatizado, precisam ser processados por programas específicos de computador para obter re- sultados objetivos. Os desafios para a Mineração de Dados são muitos, isso devi- do à enorme disparidade entre os problemas e tipos de dados coletados. A recomendação de um produto difere de uma aplicação para detecção de intrusão, mesmo no nível do formato dos dados de entrada ou na de- finição dos problemas. Até quando há relação entre os problemas, exis- tem diferenças muito significativas. Porém, mesmo com todas essas diferenças, as aplicações para mineração de dados são conectadas a pelo menos um dos quatro problemas básicos da mineração de dados: 14 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S • Mineração por padrões de associação. • Clustering. • Classificação e detecção de outlier1. Esses são tópicos importantes por serem utilizados como “blo- cos de construção” na maioria dos aplicativos, criando uma abstração necessária para conceituar e estruturar os campos de Mineração de Da- dos mais eficientemente. Podemos trabalhar com diferentes tipos e for- matos de dados: quantitativos (peso, por exemplo), categóricos (raça, por exemplo), texto, espacial temporal ou orientado a gráfico. Mesmo sendo a forma multidimensional a mais comum, um número crescente tende a ser de tipos mais complexos. O processo de Mineração de Dados O processo de Mineração de Dados é constituído por muitas fases que incluem: a “limpeza” dos dados, extração de recursos e dese- nho algorítmico. Uma aplicação típica para mineração de dados apre- senta as seguintes fases: • Coleta de dados: a coleta de dados pode exigir o uso de har- dware especializado, como uma rede de sensores, trabalho manual, como a coleta de pesquisas com usuários ou ferramentas de software, como um mecanismo de rastreamento de documentos da Web para coletar documentos. Embora esse estágio seja altamente específico do aplicativo e, geralmente, esteja fora do domínio do analista de minera- ção de dados, é extremamente importante porque boas escolhas nesse estágio podem afetar significativamente o processo de mineração de dados. Após a fase de coleta, os dados, geralmente, são armazenados em um banco de dados ou, mais geralmente, em um data warehouse para processamento. • Extração de recursos e limpeza de dados: quando os dados são coletados, eles, geralmente, não estão em um formato adequado para processamento. Por exemplo, os dados podem ser codificados em logs complexos ou documentos de formato livre. Em muitos casos, diferentes tipos de dados podem ser arbitrariamente misturados em um documento de formato livre. Para tornar os dados adequados para processamento, é essencial transformá-los em um formato amigável aos algoritmos de mineração de dados, como formato multidimensional, de série temporal ou semiestruturado. O formato multidimensional é o mais comum, no qual diferentes campos dos dados correspondem às diferentes propriedades medidas que são chamadas de recursos, atributos ou dimensões. É crucial extrair recursos relevantes para o 1 Ponto fora da curva 15 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S processo de mineração. A fase de extração de recursos, geralmente, é realizada em paralelo com a limpeza de dados, onde partes ausentes e incorretas dos dados são estimadas ou corrigidas. Em muitos casos, os dados podem ser extraídos de várias fontes e precisam ser integrados em um formato unificado para processamento. O resultado final desse procedimento é um conjunto de dados bem estruturado, que pode ser efetivamente usado por um programa de computador. Após a fase de extração do recurso, os dados podem ser armazenados novamente em um banco de dados para processamento. • Processamento analítico e algoritmos: A parte final do pro- cesso de mineração é projetar métodos analíticos eficazes a partir dos dados processados. Em muitos casos, pode não ser possível usar diretamente um problema padrão de mineração de dados, como os quatro “superproble- mas” para o aplicativo em questão. No entanto, esses quatro problemas têm uma cobertura tão ampla que muitos aplicativos podem ser dividi- dos em componentes que usam esses diferentes blocos de construção. O pré-processamento de dados O pré-processamento de dados é, provavelmente, a parte mais importante no processo de mineração de dados. Contudo, quase nunca é explorado na profundidade que merece, porque muitos dão impor- tânciamaior nos aspectos analíticos da mineração de dados. Inicia-se após a coleta dos dados e segue as seguintes etapas: 1. Extração de recursos: Um analista, geralmente, utiliza-se de um grande volume de documentos brutos, logs do sistema ou tran- sações comerciais, sem muitas informações sobre como esses dados brutos devem ser convertidos em recursos consistentes para o banco de dados de processamento. Nesta fase, há presença do analista, pois nem sempre é possível para uma aplicação de data mining a abstra- ção correta dos dados. Por exemplo, em um aplicativo de detecção de fraude com cartão de crédito, o valor de uma cobrança, a frequência de repetição e o local, geralmente, são bons indicadores de fraude. No entanto, muitos outros recursos podem ser indicadores mais fracos de fraude. Portanto, extrair os recursos certos, geralmente, é uma habili- dade que requer uma compreensão do domínio de aplicação específico em questão. 2. Limpeza de dados: Fase que visa à correção dos dados brutos, eliminando entradas incorretas ou ausentes, muitas vezes, re- mover totalmente um registro inconsistente, ou realizar estimativas de entradas ausentes. 16 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 3. Seleção e transformação de recursos: para dados de alta dimensão, muitos algoritmos de mineração de dados não funcionam eficazmente. E também, muitos dos recursos de alta dimensão podem gerar “ruído”, adicionando erros ao processo de mineração de dados. Assim sendo, uma vasta gama de métodos pode ser utilizada para re- mover recursos irrelevantes ou transformar o conjunto atual de recursos em um novo espaço de dados mais acessível para análise. Os tipos básicos de dados Na mineração de dados, é grande a variedade de tipos de da- dos disponíveis para análise. São dois os tipos de dados de complexi- dade variável para o processo de mineração de dados: • Dados orientados à não-dependência: normalmente, são os tipos de dados simples, como dados multidimensionais ou dados de texto. São os mais simples e mais comuns. Em casos como esses, os registros de dados não possuem dependências especificadas entre os itens de dados ou os atributos. Um exemplo é um conjunto de registros demográficos sobre indivíduos que contêm idade, sexo e código postal. • Dados orientados a dependências: para esses, podem exis- tir relacionamentos implícitos ou explícitos entre os itens de dados. Por exemplo, um conjunto de dados de redes sociais contém um conjunto de vértices (itens de dados) que são conectados juntos por um conjunto de arestas (relacionamentos). Por outro lado, as séries temporais con- têm dependências implícitas. Por exemplo, é provável que dois valores sucessivos coletados de um sensor estejam relacionados um ao outro. Portanto, o atributo “tempo” especifica implicitamente uma dependência entre leituras sucessivas. Quadro 1- Conjunto de dados multidimensional Nome Idade Sexo Nacionalidade Ana Maria 35 F Brasileira Pedro Augusto 27 M Paraguaio Marina Marques 18 F Brasileira Yasmin Marques 15 F Árabe Júlio Cintra 58 M Macedônio Fonte: Elaborada pelo autor, 2020. • Dados orientados a não dependência: Possuem, normal- mente, um conjunto de REGISTROS, onde cada registro contém um conjunto de CAMPOS, que descrevem as PROPRIEDADES do regis- 17 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S tro. Bancos de dados relacionais são projetados para manipular esse tipo de dado. No quadro 1 acima, temos um conjunto de dados sobre um indivíduo. • Dados multidimensionais quantitativos: No quadro 1 apre- sentado acima, no campo “idade”, os valores são numéricos, também referenciados como contínuos, numéricos ou quantitativos. Para o pro- cessamento analítico, esse tipo é o mais fácil para trabalhar sob a pers- pectiva estatística, pois podemos, por exemplo, utilizar uma média sim- ples desses valores. • Dados de atributos categóricos e mistos: Conjuntos de da- dos que podem conter atributos que assumem valores não ordenados. No quadro 1 acima, por exemplo, os atributos sexo e idade possuem valores discretos, sem uma ordem natural entre eles. Denominamos de “dados de atributos mistos” a combinação de atributos categóricos e numéricos, como os do quadro 1. O atributo “sexo” é categórico, com apenas dois valores possíveis, possibilitando, assim, impor uma ordem “artificial”, transformando esses atributos em binários, por exemplo. • Dados binários: São um conjunto especial de dados multi- dimensionais ou quantitativos multidimensionais, pois cada atributo só pode assumir no máximo dois valores discretos. É também um caso especial de dado quantitativo multidimensional, pois existe uma ordem entre esses dois possíveis valores. • Dados de texto: Podem ser visualizados como uma sequên- cia ou como dados multidimensionais, de acordo com a sua represen- tação. Como texto bruto, são uma sequência, onde cada “string” é uma sequência de caracteres dentro do documento. Para representar esse tipo de dado, é utilizada uma representação do espaço vetorial, anali- sando as frequências das palavras no documento. As frequências são normalizadas estatisticamente, usando bases como comprimento do documento ou frequência de palavras individuais do conjunto analisado. Dados orientados a dependências Falamos até agora no cenário multidimensional, onde os regis- tros de dados podem ser tratados independentemente uns dos outros. Porém, na prática, os diferentes valores podem estar relacionados entre si de forma temporal, espacial ou através de links de relacionamento en- tre os itens de dados. Com a mineração de dados trabalha encontrando relacionamentos entre itens de dados, as dependências preexistentes alteram os relacionamentos esperados nos dados. Assim sendo, veja- mos os tipos de dependências: • Dependências implícitas: dependências entre os itens de 18 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S dados não são especificadas explicitamente, mas sabe-se que “tipica- mente” existem nesse domínio. Um exemplo podem ser os valores con- secutivos de temperatura coletados por um sensor que, provavelmente, podem ser muito semelhantes entre si. Então, se um valor da tempera- tura registrado por um sensor em um tempo determinado é significati- vamente diferente daquele registrado no instante seguinte, isso é muito incomum e pode ser interessante para o processo de mineração de dados. Isso é diferente dos conjuntos de dados multidimensionais em que cada registro de dados é tratado como uma entidade independente. • Dependências explícitas: Referem-se a dados de gráficos ou de redes nos quais as arestas são usadas para especificar relacio- namentos explícitos. Os gráficos são uma abstração muito poderosa que, geralmente, é usada como uma representação intermediária para resolver problemas de mineração de dados no contexto de outros tipos de dados. Dados de séries temporais São aqueles gerados por medição contínua ao longo do tem- po, por exemplo, temperatura e batimentos cardíacos. Normalmente, possuem dependências implícitas nos valores recebidos durante esse tempo, no caso da medição de temperaturas, por exemplo, elas, geral- mente, variam, mesmo que discretamente, sendo esse um fator a ser utilizado de forma explícita no processo de mineração de dados. Para formalizar a questão das dependências causadas pela correlação tem- poral, os atributos são classificados em dois tipos: • Atributos contextuais: definem o contexto com base no qual as dependências implícitas ocorrem nos dados. • Atributos comportamentais: representam os valores que são medidos em um contexto específico. Como podemos ver até aqui, a mineração de dados é compos- ta por vários estágios, onde a coleta de dados é apenas o primeiro de- les. É importante que se entenda que os diferentes formatosde dados podem exigir diferentes algoritmos e o analista deve saber mapear o aplicativo correto para os diferentes cenários ou mesmo construir novos algoritmos. REPRESENTAÇÃO DO CONHECIMENTO Quando falamos em representação do conhecimento, imedia- tamente remetemos aos estudos e conceitos de Inteligência Artificial 19 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S (IA), pois tem toda uma relevância para como os sistemas de IA “pen- sam” e realizam seu “comportamento inteligente”. A representação do conhecimento é um campo de estudos da inteligência artificial cujo prin- cipal objetivo é apresentar informações do mundo real de uma maneira que os computadores (cérebros eletrônicos) possam “entender” e utili- zar para resolver problemas e tarefas da vida real. Fazer as máquinas raciocinarem, compreenderem e interpre- tarem e agirem como os seres humanos faz parte da representação do conhecimento, sendo tudo isso relacionado com a capacidade de pro- jetar e criar “agentes” que possam realizar essas tarefas. Resumindo, a representação do conhecimento deve permitir que as máquinas se com- portem como os seres humanos, coletando informações, interpretando essas informações e aprendendo com as informações. Tipos fundamentais de representação do conhecimento O conhecimento em IA pode ser representado de maneiras diferentes, dependendo de sua estrutura, perspectiva do projetista ou ainda da estrutura interna utilizada. Para que essa representação do conhecimento seja eficaz, deve-se incluir de forma completa o conheci- mento necessário para a resolução do problema. 1. Representação lógica Tanto o conhecimento quanto o raciocínio lógico são de grande importância para a IA. Porém, na maioria das vezes, é necessário mais do que métodos gerais para garantir um comportamento inteligente. Nesse caso, a ferramenta mais útil é a lógica formal, por ser uma lingua- gem com representação inequívoca e que utiliza regras concretas. Para a representação do conhecimento, é muito mais importante o método de lógica utilizado para entender e decodificar o conhecimento do que a própria lógica. Através da representação lógica é possível estabelecer certas regras de comunicação importantes para fornecer e adquiri informações de agentes, com o mínimo de erros. As diferentes regras de lógica per- mitem que sejam representadas coisas diferentes, obtendo como resul- ta em uma inferência mais eficiente. Esse conhecimento adquirido por agentes lógicos é definido como verdadeiro ou falso. Mesmo com todos os desafios de se trabalhar com a representação lógica, ela é a base para as linguagens de programação e construção do raciocínio lógico. 2. Redes semânticas Nesse tipo de representação, o conhecimento é armazena- do em forma de uma rede gráfica, com nós (nodes) e arcos (arcs) re- presentando os objetos e seus relacionamentos, podendo representar 20 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S objetos físicos, conceito ou situações. A implementação desse tipo de representação é muito mais fácil de se implementar e também entender por ser mais natural do que a representação lógica, por exemplo. 3. Representação por frame Um frame (quadro) é constituído por uma coleção de atributos com seus valores associados descrevendo uma entidade real. Asseme- lha-se a um registro consistindo em slots e seus valores, onde os slots podem ser de tamanhos e tipos variados, possuindo nomes e valores. É possível também que os slots possuam subcampos denominados como “facetas”, permitindo que sejam colocadas restrições nos frames. Não existe limite ou restrição nos valores das facetas de um slot, ou mesmo no número de facetas pertencentes a um slot, e tam- bém no número de slots que um quadro pode possuir. Para uma maior eficiência é recomendada a construção de um sistema de quadros, que coletam quadros conectados uns aos outros, podendo ser utilizado em várias aplicações de IA. ALGORITMOS Para a mineração de dados, um algoritmo é constituído por um conjunto de cálculos e heurística que formam um modelo baseado nos dados pesquisados. Para a criação desse modelo, os dados são analisados em busca de padrões e tendências específicas, onde o re- sultado dessas análises define os parâmetros para criação do modelo de mineração. Modelos de regressão linear e não linear Os modelos de regressão capturam como uma ou mais variá- veis de destino variam com uma ou mais variáveis de atributo. Eles po- dem ser usados para prever os valores das variáveis de destino usando os valores das variáveis de atributo. Modelos de regressão linear Um modelo de regressão linear simples, como mostrado a se- guir, tem uma variável de destino y e uma variável de atributo x: yi = β0 + β1xi + εi Onde (xi, yi) denota a i-ésima observação de x e y εi representa ruído aleatório (por exemplo, erro de medição) contribuindo para a i-ésima observação de y. 21 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Para um determinado valor de xi, tanto yi quanto εi são variáveis aleatórias onde, para o mesmo valor de x, diferentes valores de y e ε podem ser observados em momentos diferentes. Existem três suposi- ções sobre εi: 1. E(εi) = 0, ou seja, a média de εi é zero 2. var(εi) = σ2, ou seja, a variância de εi é σ2 3. cov(εi, εj) = 0 para i≠j, ou seja, a covariância de εi e εj para quaisquer duas observações de dados diferentes, a iésima observação e a j-ésima observação, é zero. Modelos de regressão não linear e estimativa de parâmetros Os modelos de regressão não lineares são não lineares nos parâmetros do modelo e assumem a seguinte forma geral: Onde E f é não linear em β. O modelo de regressão exponencial for- necido a seguir é um exemplo de modelos de regressão não linear: O modelo de regressão logística dado a seguir é outro exemplo de modelos de regressão não linear: O método dos mínimos quadrados e o método da máxima ve- rossimilhança são usados para estimar os parâmetros de um modelo de regressão não linear. Ao contrário das equações para um modelo de regressão linear, as equações para um modelo de regressão não linear, geralmente, não têm soluções analíticas, porque um modelo de regres- são não linear é não linear nos parâmetros. Métodos de pesquisa numé- rica usando um procedimento de pesquisa iterativa, como o método de Gauss-Newton e o método de pesquisa decrescente de gradiente, são 𝑦𝑦𝑖𝑖 = 𝑓𝑓(𝑥𝑥𝑖𝑖 ,𝛽𝛽) + 𝜀𝜀𝑖𝑖 𝑥𝑥𝑖𝑖 = � 1 𝑥𝑥𝑖𝑖 ,1… 𝑥𝑥𝑖𝑖 ,𝑝𝑝 � 𝛽𝛽 = � 𝛽𝛽0 𝛽𝛽1… 𝛽𝛽𝑝𝑝 � 𝑦𝑦𝑖𝑖 = 𝛽𝛽0 + 𝛽𝛽 1𝑒𝑒𝛽𝛽2𝑥𝑥𝑖𝑖 + 𝜀𝜀𝑖𝑖 𝑦𝑦𝑖𝑖 = 𝛽𝛽0 1 + 𝛽𝛽 1𝑒𝑒𝛽𝛽2𝑥𝑥𝑖𝑖 + 𝜀𝜀𝑖𝑖 . 22 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S usados para determinar a solução para os valores dos parâmetros es- timados. Os programas de computador em muitos pacotes de software estatístico são, geralmente, usados para estimar os parâmetros de um modelo de regressão não linear, porque a computação intensiva está envolvida em um procedimento de pesquisa numérica. Classificação Naïve Bayes Teorema de Bayes Dados dois eventos A e B, a conjunção (^) dos dois eventos representa a ocorrência de A e B. A probabilidade, P (A ^ B) é calculada usando a probabilidade de A e B, P (A) e P (B), e a probabilidade condi- cional de A dado B, P (A | B), ou B dado A, P (B | A): O Teorema de Bayes deriva da equação: Classificação baseada no Teorema de Bayes e na Classificação Naïve Bayes Para um vetor de dados x cuja classe alvo y precisa ser deter- minada, a classificação a posterior (MAP) máxima y de x é: Onde Y é o conjunto de todas as classes de destino. O sinal ≈ não é usado porque P(x) é o mesmo para todos os valores y e, portanto, pode ser ignorado quando comparamos p(y)P(x | y) P(x) para todos os valores y. P (x) é a probabilidade anterior de observarmos x sem nenhum conhecimento sobre qual é a classe-alvo de x. P(y) é a probabilidade anterior de que esperamos y, refletindo nosso conhecimento prévio so- bre o conjunto de dados de x é a probabilidade da classe de destino y no conjunto de dados sem referência a nenhum x específico. P(y | x) é a probabilidade posterior de y dada a observação de x. x) compara as probabilidades posteriores de todas as classes-alvo dadas x e escolhe a classe-alvo y com a probabilidade posterior máxima. 𝑃𝑃(𝐴𝐴 ∧ 𝐵𝐵) = 𝑃𝑃(𝐴𝐴|𝐵𝐵)𝑃𝑃(𝐵𝐵) = 𝑃𝑃(𝐵𝐵|𝐴𝐴)𝑃𝑃(𝐴𝐴). 𝑃𝑃(𝐴𝐴|𝐵𝐵) = 𝑃𝑃(𝐵𝐵|𝐴𝐴)𝑃𝑃(𝐴𝐴) 𝑃𝑃(𝐵𝐵) 𝑦𝑦𝑦𝑦𝐴𝐴𝑃𝑃 = 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦𝑒𝑒𝑦𝑦𝑃𝑃(𝑦𝑦|𝑥𝑥) = 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦𝑒𝑒𝑦𝑦 𝑝𝑝(𝑦𝑦)𝑃𝑃(𝑥𝑥|𝑦𝑦) 𝑃𝑃(𝑥𝑥) ≈ 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦𝑒𝑒𝑦𝑦𝑝𝑝(𝑦𝑦)𝑃𝑃(𝑥𝑥|𝑦𝑦), 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦𝑒𝑒𝑦𝑦𝑃𝑃(𝑦𝑦|𝑥𝑥) 23 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S P(x|y) é a probabilidade de observarmos x se a classe de des- tino for y. Uma classificação y que maximiza P(x|y) entre todas as clas- ses-alvo é a classificação de máxima verossimilhança (MV): Se Assim sendo: Um classificador Naïve Bayes é baseado em uma classificação MAP com a suposição adicional sobre as variáveis de atributo x = (x1, …, xp) de que essas variáveis de atributo xis são independentes umas das outras. Com essa suposição, temos O classificador Naïve Bayes estima os termos de probabilidade na equação anterior da seguinte maneira: Onde: n é o número total de pontos de dados no conjunto de dados de treinamento ny é o número de pontos de dados com a classe de destino yny&xi é o número de pontos de dados com a classe de destino y a i-é- sima variável de atributo tomando o valor de xi. Árvores de decisão e regressão Árvores de decisão são uma metodologia de classificação, em que o processo de classificação é modelado com a utilização de um conjunto de decisões hierárquicas sobre as variáveis de recursos, dispostas em uma estrutura em árvore. A decisão em um nó específico da árvore, que é referido como o critério de divisão, é, normalmente, uma condição em uma ou mais variáveis de recurso nos dados de trei- namento. O critério de divisão divide os dados de treinamento em duas ou mais partes. 𝑦𝑦𝑦𝑦𝑦𝑦 = 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦𝑒𝑒𝑦𝑦𝑃𝑃(𝑥𝑥|𝑦𝑦). 𝑃𝑃(𝑦𝑦) = 𝑃𝑃(𝑦𝑦′)𝑝𝑝𝑎𝑎𝑎𝑎𝑎𝑎 𝑞𝑞𝑞𝑞𝑎𝑎𝑞𝑞𝑞𝑞𝑞𝑞𝑒𝑒 𝑦𝑦 ≠ 𝑦𝑦′ ,𝑦𝑦 ∈ 𝑦𝑦,𝑦𝑦′ ∈ 𝑦𝑦, 𝑒𝑒𝑒𝑒𝑒𝑒ã𝑜𝑜 𝑦𝑦𝑦𝑦𝐴𝐴𝑃𝑃 ≈ 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦 ∈ 𝑦𝑦𝑝𝑝(𝑦𝑦)𝑃𝑃(𝑥𝑥|𝑦𝑦) ≈ 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦 ∈ 𝑦𝑦𝑃𝑃(𝑥𝑥|𝑦𝑦) 𝑦𝑦𝑦𝑦𝐴𝐴𝑃𝑃 = 𝑦𝑦𝑦𝑦𝑦𝑦 𝑦𝑦𝑦𝑦𝐴𝐴𝑃𝑃 ≈ 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦 ∈ 𝑦𝑦𝑝𝑝(𝑦𝑦)𝑃𝑃(𝑥𝑥|𝑦𝑦) = 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦 ∈ 𝑦𝑦𝑝𝑝(𝑦𝑦)�𝑃𝑃(𝑥𝑥𝑖𝑖|𝑦𝑦). 𝑝𝑝 𝑖𝑖=1 𝑃𝑃(𝑦𝑦) = 𝑒𝑒𝑦𝑦 𝑒𝑒 𝑃𝑃(𝑥𝑥𝑖𝑖 |𝑦𝑦) = 𝑒𝑒𝑦𝑦&𝑥𝑥𝑖𝑖 𝑒𝑒𝑦𝑦 24 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S As árvores de decisão e regressão são usadas para aprender os padrões de classificação e predição dos dados e expressar a rela- ção e atributo das variáveis x com uma variável de destino y, y = F(x), na forma de uma árvore. Uma árvore de decisão classifica o valor de destino categórico de um registro de dados usando seus valores de atributo. Uma árvore de regressão prevê o valor de destino numérico de um registro de dados usando seus valores de atributo. Métodos de seleção de divisão Com o objetivo de buscar uma árvore de decisão com o com- primento mínimo de descrição, precisamos saber como dividir um nó para que possamos atingir o objetivo de obter a árvore de decisão com o comprimento mínimo de descrição. Uma abordagem comum de seleção de divisão é selecionar a divisão que produz os subconjuntos mais homogêneos. Um conjunto de dados homogêneo é um conjunto de dados cujos registros de dados têm o mesmo valor de destino. Existem várias medidas de homogenei- dade de dados: entropia da informação, índice de gini, etc. A entropia da informação é originalmente introduzida para medir o número de bits de informação necessário para codificar os dados. O objetivo do critério de divisão é maximizar a separação das diferentes classes entre os nós filhos. A seguir, apenas critérios uni- variados serão discutidos. Suponha que um critério de qualidade para avaliar uma divisão esteja disponível. O design do critério de divisão depende da natureza do atributo subjacente: 1. Atributo binário: Apenas um tipo de divisão é possível e a árvore é sempre binária. Cada ramo corresponde a um dos valores binários. 2. Atributo categórico: Se um atributo categórico tiver r valo- res diferentes, há várias maneiras de dividi-lo. Uma possibilidade é usar uma divisão r-way, na qual cada ramificação da divisão corresponde a um valor de atributo específico. A outra possibilidade é usar uma divisão binária testando cada uma das 2r-1 combinações (ou agrupamentos) de atributos categóricos e selecionando o melhor. Obviamente, essa não é uma opção viável quando o valor de r é grande. 3. Atributo numérico: Se o atributo numérico contém um pe- queno número r de valores ordenados (por exemplo, inteiros em um pequeno intervalo [1, r]), é possível criar uma divisão de r way para cada valor distinto. No entanto, para atributos numéricos contínuos, a divisão é normalmente realizada usando uma condição binária, como x ≤ a, para valor de atributo x e constante a. Considere o caso em que 25 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S um nó contém m pontos de dados. Portanto, há m possíveis pontos de divisão para o atributo e os valores correspondentes de a podem ser de- terminados classificando os dados no nó ao longo desse atributo. Uma possibilidade é testar todos os valores possíveis de a para uma divisão e selecionar o melhor. Uma alternativa mais rápida é testar apenas um conjunto menor de possibilidades para a, com base na divisão de pro- fundidade igual do intervalo. Muitos dos métodos mencionados requerem a determinação da “melhor” divisão de um conjunto de escolhas. Especificamente, é necessário escolher entre vários atributos e entre as várias alternativas disponíveis para dividir cada atributo. Portanto, as quantificações de qualidade dividida são necessárias. • Taxa de erro: Seja p a fração das instâncias em um conjunto de pontos de dados S pertencentes à classe dominante. Então, a taxa de erro é simplesmente 1 − p. Para uma divisão r-way do conjunto S em conjuntos S1. . . Sr, a taxa de erro geral da divisão pode ser quantificada como a média ponderada das taxas de erro dos conjuntos individuais Si, onde o peso de Si é | Si |. A divisão com a menor taxa de erro é selecio- nada entre as alternativas. • Índice de Gini: O índice de Gini G(S) para um conjunto S de pontos de dados pode ser calculado de acordo com a equação a abaixo na distribuição de classe p1. . . pk dos pontos de dados de treinamento em S. O índice Gini geral para uma divisão r-way do conjunto S em conjuntos S1. . . Sr pode ser quantificado como a média ponderada dos valores do índice Gini G (Si) de cada Si, onde o peso de Si corresponde a |Si|. A divisão com o índice Gini mais baixo é selecionada entre as alternativas. O algoritmo CART usa o índice de Gini como critério de divisão. 1. Entropia: A medida de entropia é usada em um dos algo- ritmos de classificação mais antigos, conhecido como ID3. A entropia E(S) para um conjunto S pode ser calculada de acordo com a equação a seguir na distribuição de classe p1. . . pk dos pontos de dados de trei- namento no nó. 𝐺𝐺(𝑣𝑣𝑖𝑖) = 1 −�𝑝𝑝𝑗𝑗2. 𝑘𝑘 𝑗𝑗=𝑖𝑖 𝐺𝐺𝑖𝑖𝑒𝑒𝑖𝑖 − 𝑆𝑆𝑝𝑝𝑞𝑞𝑖𝑖𝑒𝑒(𝑆𝑆⇒ 𝑆𝑆𝑖𝑖 … 𝑆𝑆𝑎𝑎) = � |𝑆𝑆𝑖𝑖| |𝑆𝑆| 𝐺𝐺(𝑆𝑆𝑖𝑖) 𝑎𝑎 𝑖𝑖=1 26 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Classificadores baseados em regras Classificadores baseados em regras usam um conjunto de re- gras “se – então” R = {R1. . . Rm} para combinar antecedentes com con- sequentes. Uma regra é normalmente expressa da seguinte forma: SE Condição ENTÃO Conclusão. A condição no lado esquerdo da regra, também chamada de antecedente, pode conter uma variedade de operadores lógicos, como <, ≤,>, =, ⊆ ou ∈, que são aplicados às variáveis de recurso. O lado direito da regra é conhecido como consequente e contém a variável de classe. Portanto, uma regra Ri é da forma Qi ⇒ c, onde Qi é o ante- cedente e c é a variável de classe. O símbolo “⇒” denota a condição “ENTÃO”. A notação Qi representa uma pré-condição no conjunto de re- cursos. Em alguns classificadores, como os classificadores de padrão de associação, o recondicionamento pode corresponder a um padrão no espaço de recursos, embora nem sempre seja o caso. Em geral, a pré-condição pode ser qualquer condição arbitrária nas variáveis de recurso. Essas regras são então usadas para classifi- car uma instância de teste. Diz-se que uma regra cobre uma instância de treinamento quando a condição em seu antecedente corresponde à instância de treinamento. A fase de treinamento de um algoritmo baseado em regras cria um conjunto de regras. A fase de classificação para uma instância de teste descobre todas as regras que são acionadas pela instância de teste. Diz-se que uma regra é disparada pela instância de teste quando a condição lógica no antecedente é satisfeita pela instância de teste. Em alguns casos, regras com valores consequentes conflitantes são acionadas pela instância de teste. Nesses casos, os métodos são ne- cessários para resolver os conflitos na previsão do rótulo da classe. Os conjuntos de regras podem satisfazer uma ou mais das seguintes propriedades: 1. Regras mutuamente exclusivas: Cada regra cobre uma partição separada dos dados. Portanto, no máximo uma regra pode ser disparada por uma instância de teste. As regras geradas a partir de uma árvore de decisão satisfazem essa propriedade. No entanto, se as regras extraídas forem subsequentemente modificadas para reduzir o 𝐸𝐸(𝑆𝑆) = −�𝑝𝑝𝑗𝑗 𝑞𝑞𝑜𝑜𝑎𝑎2(𝑝𝑝𝑗𝑗 ) 𝑘𝑘 𝑗𝑗=1 27 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S sobre ajuste, as regras resultantes podem não mais permanecer mu- tuamente exclusivas. 2. Regras exaustivas: Todo o espaço de dados é coberto por pelo menos uma regra. Portanto, cada instância de teste aciona pelo menos uma regra. As regras geradas a partir de uma árvore de decisão também satisfazem esta propriedade. Geralmente, é fácil construir um conjunto de regras exaustivo criando uma única regra pega-tudo cujo consequente contém a classe dominante na parte dos dados de treina- mento não coberta por outras regras. Datawarehouse é como denominamos os “depósitos de dados” que utilizamos para armazenar enormes quantidades de dados. Big Data é a expressão em inglês que designa uma quantidade exorbitante de dados, não estruturados, produzidos no mundo atual. Extrair informações relevantes desses dados é o papel do Cientista de Dados, utilizando-se de técnicas de mineração de dados. Filme sobre o assunto: O Homem que Mudou o Jogo. “O Ho- mem que Mudou o Jogo”, longa de Bennett Miller estrelado por Brad Pitt. Lançado em 2011. Esse filme conta a história de um gerente de time de baseball que, com a ajuda de economista, utilizou a análise de dados para escalar e adquirir jogadores, sempre baseado no desempe- nho de cada um durante as partidas da temporada. Observação: Sobre a temática, é importante que o aluno note a relevância do assunto dentro do seu campo de atuação. 28 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Alguns softwares que valem a pena ser estudados quando se trata de trabalhar com Big Data e Data Mining: - Weka Disponível em: <https://www.cs.waikato.ac.nz/ml/weka/>. - IBM SPSS Estatistics: Disponível em: <https://www.ibm.com/products/spss-statistics>. - Intelligent Miner Visualizer: Disponível em: <https://www.ibm.com/support/knowledgecen- ter/en/SSEPGG_10.5.0/com.ibm.im.overview.doc/c_ibm_db2_intelli- gent_miner_visualization.html>. 29 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S QUESTÕES DE CONCURSOS QUESTÃO 1 Ano: 2020 Banca: IBADE Órgão: Pref Vila Velha Prova: Analista O processo de explorar grandes quantidades de dados à procura de padrões consistentes, para detectar relacionamentos sistemáti- cos entre variáveis, detectando assim novos subconjuntos de da- dos é chamado de: a) Data Lake. b) Big Data. c) Data Query. d) Data Warehouse. e) Data Mining. QUESTÃO 2 Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní- vel Universitário Jr Castro e Ferrari (2016) ilustram na figura abaixo o processo de des- coberta de conhecimento em base de dados, conforme segue: Sobre essas etapas, considere as seguintes tarefas: 1. Limpeza: para padronização dos dados. 2. Integração: para inserção de valores ausentes. 3. Transformação: para correção de inconsistências. 4. Redução: para reduzir a dimensão da base de dados. É/São tarefa(s) de pré-processamento: a) 3 apenas. b) 4 apenas. c) 1 e 3 apenas. d) 2 e 4 apenas. e) 1, 2 e 4 apenas. 30 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S QUESTÃO 3 Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní- vel Universitário Jr Castro e Ferrari (2016) mencionam que as funcionalidades da mi- neração de dados são utilizadas para especificar os tipos de in- formação a serem obtidos nas tarefas de mineração. Sobre esse tema, considere as seguintes funcionalidades: 1. Análise de grupos: tarefa supervisionada que separa um conjun- to de objetos em grupos. 2. Classificação: tarefa supervisionada para predição de valores discretos. 3. Regressão (ou estimação): tarefa supervisionada para predição de valores contínuos. 4. Associação: tarefa que descobre relações entre atributos por meio da detecção de anomalias nos conjuntos de dados. É/São funcionalidade(s) da etapa de mineração: a) 1 apenas. b) 2 apenas. c) 1 e 4 apenas. d) 2 e 3 apenas. e) 3 e 4 apenas. QUESTÃO 4 Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní- vel Universitário Jr Os algoritmos de Mineração de Dados podem ser classificados quanto a seus objetivos, sendo alguns a classificação, o agrupa- mento e a identificação de regras de associação. A respeito dessas classificações e seus algoritmos, assinale a alternativa correta. a) Algoritmos de agrupamento podem ser utilizados para classificação não supervisionada. b) Algoritmos de agrupamento são também chamados de algoritmos supervisionados. c) Algoritmos de classificação têm como resultado um modelo descritivo dos dados de entrada. d) Algoritmos de identificação de regras são também conhecidos como algoritmos preditivos. e) Algoritmos de agrupamento são equivalentes a algoritmos de identi- ficação de anomalias. 31 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S QUESTÃO 5 Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní- vel Universitário Jr Em sistemas de Recuperação de Informação, quando a busca in- clui documentos irrelevantes e exclui documentos relevantes, res- pectivamente, esses fenômenos são chamados de: a) Falso-positivo e verdadeiro-positivo. b) Falso-positivo e falso-negativo. c) Falso-negativo e falso-positivo. d) Verdadeiro-negativo e falso-positivo. e) Falso-negativo e verdadeiro-negativo. QUESTÃO DISSERTATIVA– DISSERTANDO A UNIDADE O que é mineração de dados? Na sua resposta, aborde os seguintes tópicos: a) É uma simples transformação de tecnologia desenvolvida a partir de bancos de dados, estatísticas e aprendizado de máquina? b) Explique como a evolução da tecnologia de banco de dados levou à mineração de dados. c) Descreva as etapas envolvidas na mineração de dados quando vistas como um processo de descoberta de conhecimento. TREINO INÉDITO Atualmente, é grande a necessidade de disponibilizar aos gestores e responsáveis por tomadas de decisão, aqueles que são responsáveis em diferentes níveis organizacionais pelas ações dentro de uma empre- sa, informações detalhadas de forma precisa para que sejam tomadas as decisões corretas. Em se tratando do uso de Datawarehouse, arma- zéns de dados, essa funcionalidade é garantida utilizando-se de: a) Um banco de dados otimizado. b) OLAP e data mining. c) Data marts. d) Esquema snowflake. e) Apresentação drill-down. NA MÍDIA Data mining: conheça 14 aplicações muito úteis para você! A data mining é usada, principalmente, hoje, por empresas com um forte foco no consumidor – organizações de varejo, financeiras, comunicação 32 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S e marketing, para “detalhar” seus dados transacionais e determinar pre- ços, preferências do cliente e posicionamento do produto, impacto nas vendas, satisfação do cliente e lucros corporativos. Com a data mining, um varejista pode usar registros de pontos de vendas de compras de clientes para desenvolver produtos e promoções para atrair segmentos específicos de clientes. Vejamos aqui outras 14 áreas importantes onde a Data Mining é amplamente utilizada. Fonte: FM2S - Educação e Consultoria Data: 24 de outubro de 2018 Leia a notícia na íntegra: https://www.fm2s.com.br/data-mining/ NA PRÁTICA Análise de Tipos de Questões em Avaliações para Cursos Superiores (Graduação) No Brasil, as universidades e cursos superiores em geral seguem pa- drões estabelecidos pelo MEC para elaboração de questões de provas. Algumas dessas questões são classificadas como: resposta única, des- critiva, cálculo, foco negativo lacuna, associação, entre outras mais. Es- ses modelos são utilizados nas avaliações de final de curso, o chamado ENADE, onde os alunos que estão concluindo seu curso executam uma prova elaborada pelo próprio MEC. Assim sendo, os responsáveis pela elaboração e execução das provas em uma universidade precisam de saber exatamente que tipos de questões estão sendo mais utilizadas na elaboração por seus professores, quais os menos utilizados e os que não são utilizados nunca. Para tal, é importante que se analise as avaliações feitas ao longo dos anos, desde que os padrões de questões foram criados, para que se possa ter esse tipo de informação, de forma que seja possível equalizar os modelos de questões em uma mesma prova. Nesse caso, os responsáveis pela TI ou alguém que seja en- carregado poderia aplicar as técnicas e ferramentas necessárias para coletar e analisar esses dados, utilizando-se da mineração de dados aplicada as avaliações. Fonte: Do próprio autor. PARA SABER MAIS Título: What is Data Mining Data de publicação: 23/10/2010 Fonte: https://www.youtube.com/watch?v=R-sGvh6tI04 Acesso em: 17 de set. 2020. 33 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Título: WEKA. O ambiente de trabalho para aprendizado de máquina Data de publicação: N/A Fonte: https://www.cs.waikato.ac.nz/ml/weka/ Acesso em: 17 de set. 2020. Título: Gestão do conhecimento usando data mining: estudo de caso na Universidade Federal de Lavras Data de publicação: jun/2008 Fonte: https://www.scielo.br/scielo.php?script=sci_arttext&pid=S0034- 76122008000300004&lng=pt&tlng=pt Acesso em: 17 de set. 2020. Título: A tendência é integrar a mineração de dados com as redes sociais Data de publicação: 10/11/2010 Fonte: http://epocanegocios.globo.com/Revista/Common/0,,EMI185 111-1638200-A+TENDENCIA+E+INTEGRAR+A+MINERACAO+DE+- DADOS+COM+AS+REDES+SOCIAIS.html Acesso em: 17 de set. 2020 34 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S BANCOS DE DADOS DISTRIBUÍDOS Quando nos referimos a Banco de Dados Distribuído, estamos falando de denominados “dados de atributos mistos” à combinação de atributos categóricos e numéricos. Esse tipo de banco de dados não necessita estar no mesmo local, mas em vários, daí ser denominado de “distribuído”, e nem compartilhar os mesmos componentes. Esse tipo de sistema é utilizado para permitir o acesso por vários usuários ao mesmo tempo e em lugares geograficamente diferentes. Seu funciona- mento para o usuário é transparente, ou seja, para o usuário é como se o sistema fosse único e local. Dessa forma, podemos afirmar que um banco de dados distri- buído é, na realidade, um conjunto de vários outros bancos de dados conectados entre si, geograficamente distribuídos, e que se comunicam através de um sistema de redes de computadores. BANCO DE DADOS NÃO CONVENCIONAIS C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 35 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Tipos de bancos de dados distribuídos • Banco de dados homogêneo: tem essa denominação por armazenarem os dados em diferentes ambientes de forma homogênea. Todos os ambientes vão utilizar de maneira igual o sistema operacional, o sistema de gerenciamento de banco de dados e as estruturas de da- dos usadas, tornando assim muito mais fácil seu gerenciamento. São dois os modelos para esse tipo de banco de dados: - Autônomo: onde cada banco funciona independente, sen- do integrado a outros através de aplicativos específicos para esse fim, atualizando seus dados através da passagem de mensagens. - Não autônomo: que se utiliza de um Sistema de Gerencia- mento de Banco de Dados, SGBD, central coordenando as atualizações entre os nós homogêneos. • Banco de dados heterogêneo: nesse tipo de ambiente, os sistemas podem utilizar diferentes esquemas e aplicações o que pode incorrer em problemas na execução de consultas e transações. Esse modelo exige bastante do ambiente, pois as informações devem ser traduzidas para cada sistema diferente que necessitem se comunicar. Vantagens de bancos de dados distribuídos Muitos são os motivos para a utilização desse tipo de sistema. Vejamos alguns deles a seguir: • Desenvolvimento de aplicativos é flexibilizado por causa da transparência na distribuição e controle de dados. • Confiabilidade e disponibilidade. Com a distribuição em vá- rios locais, o isolamento das falhas em um local evita que os outros se- jam afetados, continuando, assim, a funcionar normalmente, pois ape- nas no local de origem da falha os dados não poderiam ser acessados. • Desempenho. Como um DBMS distribuído fragmenta o ban- co de dados, mantendo os dados mais próximos de onde são mais ne- cessários, isso reduz a contenção para serviços de CPU e dispositivos de E/S e, reduzindo, assim, os atrasos de acesso envolvidos em redes de longa distância. São mantidos bancos de dados menores em cada local através da distribuição do banco de dados maior e central, re- sultando em consultas e transações locais, melhorando o desempenho substancialmente. • Expansão Para um ambiente distribuído aumentar o sistema em termos de receber uma maior quantidade de dados, aumentando o banco ou incorporando uma maior quantidade de processadores fica muito mais fácil. 36 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Arquiteturas de banco de dados distribuídos Cliente-servidor (duas camadas) Arquitetura onde dois lados, cliente e servidor,são distintos. Componentes do sistema que compõem o lado do cliente são a inter- face do usuário e os programas aplicativos, sendo o SQL a linguagem padrão para esse tipo de arquitetura. A funcionalidade de consulta e transação relacionada ao processamento de SQL permaneceu no lado do servidor. Aplicações em geral são executadas no lado do cliente, que, para se comunicar com o sistema de gerenciamento de banco de dados, no lado do servidor, utilizam uma conexão através do padrão Open Database Connectivity, OBC, que fornece uma interface de pro- gramação de aplicativos (API), permitindo, assim, essa chamada. Cliente-servidor (três camadas) Utilizada principalmente para atuação em sistemas desenvolvi- dos para a Web, possui as seguintes definições: • Camada de apresentação (cliente): Fornece a interface do usuário e interage com o usuário. Os programas nessa camada apre- sentam interfaces da Web ou formulários para o cliente a fim de interagir com o aplicativo. Os navegadores da Web são utilizados como interface base para as aplicações nesse ambiente. Essa camada trata da entra- da, saída e navegação do usuário, aceitando comandos do usuário e exibindo as informações necessárias, geralmente na forma de páginas da Web estáticas ou dinâmicas. As interfaces Web realizam a comuni- cação com os aplicativos através do protocolo HTTP. • Camada de aplicativo (regras de negócio): Esta camada programa a lógica do aplicativo. Por exemplo, as consultas podem ser formuladas com base na entrada do usuário do cliente, ou os resultados da consulta podem ser formatados e enviados ao cliente para apre- sentação. Funcionalidades adicionais do aplicativo podem ser tratadas nesta camada, como verificações de segurança, verificação de identida- de e outras funções. A camada de aplicativo pode interagir com um ou mais bancos de dados ou fontes de dados conforme necessário, conec- tando-se ao banco de dados usando diferentes técnicas como ODBC, JDBC, SQL / CLI, por exemplo, ou outras técnicas de acesso ao banco de dados. • Camada de servidor (banco de dados):. Lida com solicita- ções de consulta e atualização da camada de aplicativo, processa as solicitações e envia os resultados. Geralmente, a linguagem de banco de dados SQL é usada para acessar o banco de dados se ele for rela- 37 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S cional ou objeto relacional. • Arquitetura de banco de dados federado (FDBS): Nessa arquitetura, o esquema local é o esquema conceitual (definição de ban- co de dados completo) de um banco de dados de componente, e o es- quema de componente é derivado da tradução do esquema local em um modelo de dados canônico ou modelo de dados comum (CDM) para o FDBS. A tradução do esquema local para o esquema do componente é acompanhada pela geração de mapeamentos para transformar coman- dos em um esquema de componente em comandos no esquema local correspondente. O esquema de exportação representa o subconjunto de um esquema de componente que está disponível para o FDBS. O esquema federado é o esquema ou visualização global, que é o resulta- do da integração de todos os esquemas de exportação compartilháveis. Os esquemas externos definem o esquema para um grupo de usuários ou um aplicativo, como na arquitetura de esquema de três níveis. Técnicas de fragmentação, replicação e alocação de dados para design de banco de dados distribuídos Fragmentação de Dados: Diz respeito a qual local deve ser usado para armazenar quais partes do banco de dados. 1. Fragmentação horizontal. Um fragmento horizontal tra- ta, na verdade, de um subconjunto das tuplas de uma relação. Sendo que as tuplas pertencentes ao fragmento horizontal são determinados condicionalmente por um ou mais atributos da relação. Frequentemen- te, apenas um único atributo está envolvido. A fragmentação horizontal divide uma relação horizontalmente agrupando linhas para criar sub- conjuntos de tuplas, onde cada subconjunto tem um certo significado lógico. Esses fragmentos podem então ser atribuídos a diferentes locais no sistema distribuído. A fragmentação horizontal derivada aplica o par- ticionamento de uma relação primária a outras relações secundárias, que estão relacionadas à primária por meio de uma chave estrangeira. Dessa forma, dados relacionados entre as relações primárias e secun- dárias são fragmentados da mesma forma. 2. Fragmentação vertical. Cada local pode não necessitar de todos os atributos de uma relação, indicando assim a necessidade de uma fragmentação diferente. Esse tipo de fragmentação divide uma re- lação “verticalmente” em colunas, mantendo apenas alguns atributos da relação, sendo necessário que seja incluída a chave primária ou algum atributo de chave candidato em cada um dos fragmentos verticais de modo que a relação possa ser reconstruída por completa partindo des- ses fragmentos. 38 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 3. Fragmentação mista (híbrida). Podemos misturar os dois tipos de fragmentação, produzindo uma fragmentação mista. Replicação e alocação de dados Utilizada para melhorar a disponibilidade de dados. Em um ce- nário mais extremo, temos a replicação de todo o banco de dados em todos os locais do sistema distribuído, criando, assim, um banco de dados distribuído totalmente replicado. Isso pode melhorar a disponibili- dade notavelmente, porque o sistema pode continuar a operar enquanto pelo menos um local estiver ativo. Ele também melhora o desempenho de recuperação para consultas globais, porque os resultados de tais consultas podem ser obtidos localmente de qualquer site, portanto uma consulta de recuperação pode ser processada no site local onde é en- viada, se esse site incluir um módulo de servidor. A desvantagem da replicação completa é que ela pode desa- celerar drasticamente as operações de atualização, uma vez que uma única atualização lógica deve ser executada em cada cópia do banco de dados para manter as cópias consistentes. Isso é especialmente verda- deiro se houver muitas cópias do banco de dados. Um outro cenário da replicação seria não ter replicação - ou seja, cada fragmento é armazenado em exatamente um local. Nesse caso, todos os fragmentos devem ser disjuntos, exceto para a repetição de chaves primárias entre fragmentos verticais (ou mistos). Isso tam- bém é chamado de alocação não redundante. Entre esses dois pontos, existe uma grande área de replicação parcial dos dados, onde algumas porções do banco de dados podem ser replicadas e outras não. BANCOS DE DADOS ORIENTADOS A OBJETOS Conceitos de bancos de dados orientados a objetos Orientação a objetos é um termo que designa um novo mo- delo de desenvolvimento de softwares que tenta aproximar conceitos virtuais com os reais na criação das entidades. Linguagens diversas como Java, Python, PHP e Ruby, utilizam essa metodologia. Como con- sequência natural dessa evolução, os bancos de dados estão seguindo esse mesmo conceito. O ODBMS, que é uma abreviatura de sistema de gerenciamen- to de banco de dados orientado a objetos, é o modelo de dados no qual os dados são armazenados em forma de objetos, que são instâncias de classes. Essas classes e objetos juntos formam um modelo de dados 39 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S orientado a objetos. Componentes do modelo de dados orientado a objetos O OODBMS é baseado em três componentes principais, a sa- ber: estrutura do objeto, classes do objeto e identidade do objeto. São eles: Estrutura do objeto: A estrutura de um objeto refere-se às propriedades das quais um objeto é composto. Essas propriedades de um objeto são chamadas de atributo. Assim, um objeto é uma entidade do mundo real com certos atributos que compõem a estrutura do obje- to. Além disso, um objetoencapsula o código de dados em uma única unidade que, por sua vez, fornece abstração de dados ocultando os detalhes de implementação do usuário. A estrutura do objeto é ainda composta por três tipos de com- ponentes: mensagens, métodos e variáveis. São eles: 1. Mensagens: Uma mensagem fornece uma interface ou atua como um meio de comunicação entre um objeto e o mundo exterior. Uma mensagem pode ser de dois tipos: • Mensagem somente leitura: se o método invocado não alterar o valor de uma variável, a mensagem de chamada é considerada uma mensagem somente leitura. • Mensagem de atualização: se o método invocado alterar o valor de uma variável, a mensagem de chamada é considerada uma mensagem de atualização. 2. Métodos: quando uma mensagem é passada, o corpo do código executado é conhecido como método. Sempre que um método é executado, ele retorna um valor como saída. Um método pode ser de dois tipos: • Método somente leitura: quando o valor de uma variável não é afetado por um método, ele é conhecido como método somente leitura. • Método de atualização: quando o valor de uma variável muda por um método, é conhecido como método de atualização. 3. Variáveis: ele armazena os dados de um objeto. Os dados armazenados nas variáveis tornam o objeto distinguível um do outro. Classes de objetos: Um objeto que é uma entidade do mun- do real é uma instância de uma classe. Portanto, primeiro precisamos definir uma classe e, em seguida, são feitos os objetos que diferem nos valores que armazenam, mas compartilham a mesma definição de classe. Os objetos, por sua vez, correspondem a várias mensagens e variáveis armazenadas nele. Um OODBMS oferece suporte à herança de forma ampla, pois, 40 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S em um banco de dados, podem existir muitas classes com métodos, variáveis e mensagens semelhantes. Assim, o conceito de hierarquia de classes é mantido para representar as semelhanças entre as várias classes. O conceito de encapsulamento que é o ocultamento de dados ou informações também é suportado pelo modelo de dados orientado a objetos. E este modelo de dados também fornece a facilidade de tipos de dados abstratos além dos tipos de dados embutidos como char, int, float. ADTs são os tipos de dados definidos pelo usuário que contêm os valores dentro deles e também podem ter métodos anexados a eles. Assim, OODBMS fornece inúmeras facilidades para seus usuários, tanto internas quanto definidas pelo usuário. Ele incorpora as propriedades de um modelo de dados orientado a objetos com um sistema de gerenciamento de banco de dados e suporta o conceito de paradigmas de programação como classes e objetos, juntamente com o suporte para outros conceitos como encapsulamento, herança e os ADTs definidos pelo usuário (tipos de dados abstratos). BANCOS DE DADOS OBJETO-RELACIONAL Características objeto-relacionais Extensões de banco de dados de objetos para SQL O SQL foi especificado pela primeira vez por Chamberlin e Boyce (1974) e passou por aprimoramentos e padronização em 1989 e 1992. A linguagem continuou sua evolução com um novo padrão, ini- cialmente chamado de SQL3 enquanto estava sendo desenvolvido, e mais tarde conhecido como SQL: 99 para as partes do SQL3 que foram aprovadas no padrão. A partir da versão do SQL conhecida como SQL3, recursos de bancos de dados de objetos foram incorporados ao padrão SQL. No início, essas extensões eram conhecidas como SQL / Object, mas, depois, foram incorporadas na parte principal do SQL, conhecido como SQL / Foundation. A seguir estão alguns dos recursos do banco de dados de ob- jetos que foram incluídos no SQL: • Alguns construtores de tipo foram adicionados para especifi- car objetos complexos. Isso inclui o tipo de linha, que corresponde ao construtor de tupla (ou estrutura). Um tipo de array para especificar cole- ções também é fornecido. Outros construtores de tipo de coleção, como os construtores set, list e bag, não faziam parte das especificações SQL / Object originais, mas foram posteriormente incluídos no padrão. 41 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S • Um mecanismo para especificar a identidade do objeto por meio do uso do tipo de referência está incluído. • As UDTS, tipos que são definidos pelos usuários, podem ser utilizadas para fornecer o encapsulamento de operações, incluindo es- sas operações como parte de sua declaração. Eles possuem seme- lhança com o conceito de tipos de dados abstratos desenvolvidos para linguagens de programação, além do conceito de rotinas definidas pelo usuário (UDRs) permitir a definição de métodos gerais (operações). • Utiliza-se a palavra-chave UNDER para fornecer mecanismos de herança. Tipos definidos pelo usuário e estruturas complexas para objetos De modo a permitir a criação de objetos de estrutura complexa e para separar a declaração de um tipo da criação de uma tabela, são fornecidos pelo SQL tipos definidos pelo usuário (UDTs). Objetos de estrutura mais complexa contam com outros quatro tipos de coleção, in- cluídas para permitir tipos e atributos com vários valores. A criação dos UDTs é mais simples, utilizando-se apenas do comando abaixo: CREATE TYPE TYPE_NAME AS (<declarações de componen- tes>); Identificadores de objeto usando tipos de referência Versões mais recentes do SQL criam através de referências identificadores exclusivos de objetos. Pode-se utilizar as chaves do mo- delo relacional básico em lugar de um identificador de objeto. Em geral, o usuário pode especificar que identificadores de objeto gerados pelo sistema para as linhas individuais em uma tabela devem ser criados. Usando a sintaxe: REF IS <OID_ATTRIBUTE> <VALUE_GENERATION_ME- THOD>; O usuário declara que o atributo denominado <OID_ATTRIBU- TE> será usado para identificar tuplas individuais na tabela. As opções para <VALUE_GENERATION_METHOD> são SYSTEM GENERATED ou DERIVED. No primeiro caso, o sistema irá gerar automaticamente um identificador único para cada tupla. No último caso, o método tra- dicional de usar o valor da chave primária fornecida pelo usuário para identificar tuplas é aplicado. 42 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Criação de tabelas com base nos UDTs Para cada UDT que é especificado para ser instanciado por meio da frase INSTANTIABLE, uma ou mais tabelas podem ser criadas. Encapsulamento de Operações No SQL, um tipo definido pelo usuário pode ter sua própria especificação comportamental, especificando métodos (ou operações) além dos atributos. A forma geral de uma especificação UDT com mé- todos é a seguinte: CREATE TYPE <TYPE-NAME> (<LISTA DE ATRIBUTOS DE COMPONENTES E SEUS TIPOS> <DECLARAÇÃO DE FUNÇÕES (MÉTODOS)>); O SQL fornece certas funções integradas para tipos definidos pelo usuário. Para um UDT denominado TYPE_T, a função construtora TYPE_T () retorna um novo objeto desse tipo. No novo objeto UDT, cada atributo é inicializado com seu valor padrão. Uma função de observador A é implicitamente criada para cada atributo A para ler seu valor. Portan- to, A (X) ou X.A retorna o valor do atributo A de TYPE_T se X for do tipo TYPE_T. Uma função modificadora para atualizar um atributo define o valor do atributo para um novo valor. O bloqueio dessas funções pode ser realizado pelo SQL, impedindo seu uso público, sendo então neces- sário um privilégio EXECUTE para ter acesso a essas funções. Em geral, um UDT pode ter várias funções definidas pelo usuá- rio associadas a ele. A sintaxe é: INSTANCE METHOD <NOME> (<ARGUMENT_LIST>) RE- TURNS <RETURN_TYPE>; SQL interno e externo são os dois tipos de funções. A lingua- gem PSM é utilizada para escrever as funções internas. Para as funções externas é utilizada uma linguagem host, com apenas uma assinaturana definição UDT. A declaração de uma função externa pode ser feita da seguinte forma: • Herança de todos os atributos. • A hierarquia é determinada pela ordem dos supertipos na cláusula UNDER. • Quando uma instância de supertipo é usada, é possível utili- 43 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S zar também uma instância de um subtipo. • Quando um subtipo tem a mesma assinatura de seu superti- po, pode redefinir qualquer função definida em seu supertipo, dede que a assinatura de ambos seja a mesma. • Na chamada de uma função, a seleção da melhor correspon- dência é realizada com base nos tipos de todos os argumentos. • Para vinculação dinâmica, os tipos de parâmetros de tempo de execução são considerados. Especificando relacionamentos por meio de referência Um atributo de componente de uma tupla pode ser uma refe- rência (especificada usando a palavra-chave REF) a uma tupla de outra (ou possivelmente a mesma) tabela. Especificamos uma tabela em que as tuplas podem ser refe- renciadas através da palavra-chave SCOPE. Isso funciona como uma chave estrangeira, só que o valor gerado pelo sistema é utilizado ao invés do valor da chave primária. Herança no Modelo de Objeto do ODMG Herança de comportamento e herança de estado mais compor- tamento são os dois tipos de relacionamentos de herança encontrados no modelo de objeto ODMG. Usa-se a notação de dois pontos (:) para especificar a herança de comportamento também é conhecida como ISA ou herança de interface. No modelo ODMG, o supertipo deve ser uma interface, podendo o subtipo ser uma classe ou interface. Modelos de armazenamento Um modelo de armazenamento é o núcleo de qualquer siste- ma relacionado a big data. Isso afeta a escalabilidade, as estruturas de dados, a programação e os modelos computacionais dos sistemas que são construídos sobre qualquer sistema relacionado a big data. São três modelos principais de armazenamento desenvolvidos: armazenamento baseado em bloco, armazenamento baseado em arquivo e armazena- mento baseado em objeto. Armazenamento baseado em bloco O armazenamento em nível de bloco é um dos modelos de armazenamento mais clássicos da ciência da computação. Esse sistema faz uso das tecnologias “Fibre Channel” e “iSC- 44 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S SI”, podendo assim ser considerado como um disco rígido instalado em um servidor, podendo ser acessado remotamente. Nesse caso, os da- dos são armazenados em blocos de tamanho fixo, sem os metadados, usando um identificador único para acessar cada bloco. Tem como características principais o desempenho e a escala- bilidade no armazenamento e acesso a dados em grande escala, sendo utilizado como um modelo de armazenamento de baixo nível muito utili- zado para armazenamento de nível superior, como sistemas baseados em arquivos, sistemas baseados em objetos e bancos de dados tran- sacionais. Com o advento da computação distribuída e Big Data, esse modelo também suporta ambientes distribuídos e baseados em nuvem. A sua arquitetura é composta por um servidor de bloco e um grupo de nós de bloco, onde o servidor de bloco é o responsável pela manuten- ção do mapeamento ou indexação dos IDs de bloco para os dados reais nos nós de bloco, responsáveis pelo armazenamento dos dados reais em partições de tamanho fixo, cada uma representando um bloco. Armazenamento baseado em arquivo Herdeiro da arquitetura tradicional do sistema de arquivos, esse sistema considera os dados como arquivos mantidos em uma es- trutura hierárquica. É o modelo mais comum e mais fácil de implementar e utilizar. Com o Big Data, um sistema de armazenamento baseado em arquivo pode ser construído em abstração de baixo nível visando à me- lhora de seu desempenho e escalabilidade. Nesse modelo, os caminhos dos arquivos são organizados de forma hierárquica, sendo utilizados como entradas para acesso aos da- dos no dispositivo físico. Em um ambiente de Big Data, os sistemas de arquivos distribuídos são utilizados como sistemas de armazenamento básicos. Nesse tipo de sistema, os usuários necessitam conhecer os nomes e caminhos para acessar os arquivos armazenados e, para com- partilhamento entre sistemas, os nomes e caminhos são formados por três partes: o protocolo, o domínio e o caminho do arquivo. Armazenamento baseado em objeto Esse modelo foi utilizado pela primeira vez para fornecer obje- tos de contêineres de dados mais flexíveis. Fornecedores de sistemas como EMC, HP, IBM, Redhat, Amazon, Microsoft e Google tem investi- do pesado nessa tecnologia. 45 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Nesse modelo, os dados são manipulados como objetos, onde cada objeto inclui seus próprios dados, metadados, atributos e um iden- tificador de objeto (OID). Esse modelo abstrai as camadas inferiores de armazenamento de administradores e aplicativos. Ele também pode ser implementado em níveis de dispositivos, sistema e interface. Os dados são visualizados e gerenciado como objetos que possuem me- tadados descritivos adicionais usados para melhorar a indexação ou gerenciamento. O sistema de armazenamento baseado em objeto normalmen- te usa um nome simples, no qual o identificador de dados e suas lo- calizações são geralmente mantidos como pares de valores-chave no servidor de objetos. Em princípio, o servidor de objetos fornece ende- reçamento independentemente da localização e latência de pesquisa constante para ler todos os objetos. Além disso, os metadados dos da- dos são separados dos dados e são mantidos como objetos em um servidor de metadados. Como resultado, ele fornece uma maneira pa- drão e mais fácil de processar, analisar e manipular os metadados sem afetar os próprios dados. Devido à arquitetura simples, é muito fácil dimensionar sis- temas de armazenamento baseados em objetos adicionando nós de armazenamento adicionais ao sistema. Além disso, o armazenamento adicionado pode ser expandido automaticamente conforme a capacida- de que está disponível para todos os usuários. Com base no contêiner de objeto e metadados mantidos, ele também é capaz de fornecer po- líticas de dados muito mais flexíveis e refinadas em diferentes níveis. Comparação de modelos de armazenamento Não existe um modelo que seja adaptável a todos os cenários, por isso, desenvolvedores e usuários devem escolher os modelos de acordo com os requisitos e contexto de suas aplicações levando em consideração suas vantagens e desvantagens. Modelo baseado em bloco - características • Flexível, versátil e simples. Pode ser utilizado em quase todos os tipos de aplicativos, incluindo armazenamento de arquivos, armaze- namento de banco de dados, volumes do sistema de arquivos da má- quina virtual (VMFS) e muito mais. • Também pode ser usado para cenários de compartilhamento de dados. • Tem alto rendimento e desempenho e, geralmente, é configu- 46 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S rável para capacidade e desempenho. • É complexo de gerenciar e não é fácil de usar devido à fal- ta de informações (como metadados, semântica lógica e relação entre blocos de dados) quando comparado a outros modelos de armazena- mento, como baseado em arquivo armazenamento e armazenamento baseado em objeto. Modelo baseado em arquivo • Fácil de gerenciar e implementar. Também é mais barato de usar do que o armazenado em bloco. Ele é usado com mais frequência em computadores e domésticos em pequenas empresas, enquanto o armazenamento em nível de bloco é usado por empresas maiores, com cada bloco sendo controlado por seu próprio disco rígido e gerenciado por meio de um sistema operacional baseado em servidor. • Geralmente acessível usando protocolos de nívelde arqui- vo comuns, como SMB / CIFS (Windows) e NFS (Linux, VMware). Ao mesmo tempo, os arquivos atribuídos mais informações para fins de ge- renciamento, como autenticação, acesso, controle de acesso e backup. Portanto, é mais amigável e de fácil manutenção. • Atribuído à estrutura hierárquica, o armazenamento baseado em arquivo é menos escalonável, pois o número de arquivos torna-se extremamente grande. É complicado manter a baixa latência e a escala- bilidade para sistemas de arquivos distribuídos em grande escala, como NFS e HDFS. Modelo baseado em objeto • Resolve os problemas de gerenciamento de provisionamen- to apresentados pela expansão do armazenamento em escala muito grande. As arquiteturas de armazenamento baseadas em objeto podem ser dimensionadas e gerenciadas simplesmente adicionando nós adi- cionais. A organização de espaço de nomes simples dos dados, em combinação com a funcionalidade de metadados expansíveis, facilitam esse tipo uso. • É comumente usado para o armazenamento de dados não estruturados em grande escala, como fotos no Facebook, músicas no Spotify e até mesmo arquivos no Dropbox. • Facilita o armazenamento de conjuntos de dados não estrutu- rados, onde os dados geralmente são lidos, mas não gravados. • Não fornece a capacidade de editar incrementalmente uma parte de um arquivo (como o armazenamento em bloco e o 47 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S armazenamento de arquivo). Os objetos devem ser manipulados como uma unidade inteira, exigindo que todo o objeto seja acessado, atuali- zado e reescrito no armazenamento físico. Isso pode causar algumas implicações de desempenho. Big Data diz respeito principalmente à quantidade de dados gerados atualmente no mundo, dados que, na maioria das vezes, preci- sam ser organizados, e é aí onde entra o Data Mining, a Mineração de Dados, que se utiliza de ferramentas específicas para análise de gran- des volumes de dados visando obter informações relevantes. R e Hadoop são ferramentas bastante utilizadas em Mineração de Dados, sendo ambas Open Source, podendo ser utilizadas sem ne- nhum tipo de restrição. Filme sobre o assunto: The Great Hack (Privacidade Hackea- da). Documentário do Netflix que aborda os escândalos protagonizados pelo Facebook em março do ano de 2018, em que a Cambridge Analyti- ca coletou os dados de 87 milhões de usuários sem que fosse permitido. Observação: Sobre a temática, é importante que o aluno note a relevância do assunto dentro do seu campo de atuação. Utilize o data warehouse quando precisar organizar seus da- dos importantes e armazená-los onde possam ser encontrados com fa- 48 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S cilidade. Porém, lembre-se que ele não trabalha muito bem com proces- samento analítico e outros tipos de transformação, sendo também lento. Para essas tarefas, utilize o Hadoop, que é especialista em processamento de dados brutos, não estruturados e complexos. 49 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S QUESTÕES DE CONCURSOS QUESTÃO 1 Ano: 2019 Banca: ACEP Órgão: Pref. Aracati Prova: Analista Sobre bancos de dados distribuídos, é correto afirmar que: a) Só é possível criar um banco de dados distribuído quando todos os servidores rodam o mesmo SGBD. b) Há a necessidade de um controle centralizado para coordenar a formação de um banco de dados distribuído. c) Em bancos de dados distribuídos, os problemas de deadlock são mais facilmente tratáveis. d) Um sistema de replicação síncrona ajuda a manter os dados replica- dos consistentes. QUESTÃO 2 Ano: 2019 Banca: VUNESP Órgão: CM Piracicaba Prova: Adminis- trador de Rede Considerando os bancos de dados distribuídos, é correto afirmar que: a) Seus nós devem ser interligados por meio de uma rede de comunicação. b) Seus nós devem se localizar em um mesmo edifício. c) O hardware de todos os nós deve ser idêntico entre si. d) Não há a operação simultânea de dois ou mais de seus nós. e) O sistema gerenciador de bancos de dados de cada nó deve ser idêntico em todos os seus nós. QUESTÃO 3 Ano: 2018 Banca: CEBRASPE (CESPE) Órgão: CGM João Pessoa Prova: Auditor Municipal de Controle Interno Com relação ao banco de dados distribuído e à programação orien- tada a aspectos (POA.), julgue o item subsequente. Em um banco de dados distribuído com esquema federado, as ta- belas do banco original são horizontalmente particionadas em ta- belas-membro, sendo uma tabela-membro para cada banco de da- dos membro, de modo que as exibições particionadas distribuídas são usadas para que pareça haver uma cópia completa da tabela original em cada servidor-membro. ( ) Certo ( ) Errado 50 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S QUESTÃO 4 Ano: 2018 Banca: CEBRASPE (CESPE) Órgão: EBSERH Prova: Técnico Julgue o item seguinte, a respeito de banco de dados distribuído e orientado a objetos. Em um banco de dados distribuído, os servidores de banco envol- vidos não precisam, necessariamente, possuir a mesma configu- ração de hardware. ( ) Certo ( ) Errado QUESTÃO 5 Ano: 2018 Banca: CEBRASPE (CESPE) Órgão: EBSERH Prova: Técnico Julgue o item seguinte, a respeito de banco de dados distribuído e orientado a objetos. Em um ambiente distribuído, as diferentes topologias de redes utilizadas para a comunicação entre os bancos de dados não in- terferem no desempenho dos bancos de dados quanto ao proces- samento de consultas, uma vez que as consultas são executadas diretamente nos servidores. ( ) Certo ( ) Errado QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE No modelo Orientado a Objetos, vários novos conceitos foram criados e fazem parte ativa da construção desse modelo. Após o estudo realizado nesse módulo, explique o que os seguintes termos significam na ter- minologia de banco de dados orientado a objetos: método, assinatura, mensagem, coleção, extensão. TREINO INÉDITO Quando se trata de orientação a objetos e mais precisamente a bancos de dados que se utilizam desse modelo, vários conceitos são utilizados. Observando a definição na qual se afirma: “Este conceito permite que o mesmo nome de operador ou símbolo seja associado a duas ou mais implementações diferentes do operador, dependendo do tipo de objetos aos quais o operador é aplicado. ”, diz respeito a qual das opções indi- cadas nos itens abaixo: a) Polimorfismo. 51 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S b) Herança múltipla. c) Herança seletiva. d) Encapsulamento. e) Sobrecarga. NA MÍDIA Governo interliga bases e permite cruzamento de dados biométricos. A intenção do governo com essa iniciativa é criar uma base integradora com os dados de todos os cidadãos brasileiros, objetivando a regula- mentação do compartilhamento de dados entre as diversas esferas do governo. Fonte: Folha UOL. Data: 10 de outubro de 2019. Leia a notícia na íntegra: https://www1.folha.uol.com.br/merca- do/2019/10/governo-cria-base-de-dados-unificada-de-todos-os-brasi- leiros.shtml NA PRÁTICA Projetando bancos de dados A área de banco de dados é bastante fértil no que diz respeito às inú- meras profissões e funções que podem ser exercidas por você. Uma delas é a do analista de banco de dados, profissional responsável por administrar o banco de dados em relação à manutenção da estrutura e implantação de processos e métodos de acesso, mantendo também a segurança de acordo com as políticas da empresa. Imagine que, como analista de banco de dados em uma instituição de ensino, você tem que desenhar um novo banco de dados para a biblio- teca que está sendo montada. Como você faria isso, que tecnologias iria utilizar? Fonte: http://cesta2.cinted.ufrgs.br/xmlui/handle/123456789/603?show=full PARA SABER MAIS Título: A importância de Data Mining na tomada de decisões Data de publicação: 30/06/2010 Fonte: https://administradores.com.br/noticias/a-importancia-de-data-m ining-na-tomada-de-decisoes Acesso em: 17 de set. 2020. 52 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S ANÁLISE BIDIMENSIONAL Escala multidimensional O escalonamento multidimensional (MDS) visa representar da- dos de alta dimensão em um espaço de baixa dimensão para que os dados possam ser visualizados, analisados e interpretados no espaço de baixa dimensão para descobrir padrões de dados úteis. Algoritmo de MDS Recebemos n itens de dados no espaço p-dimensional, xi = (xi1, ..., xip), i = 1, ..., n, junto com a dissimilaridade δij de cada par de n itens de dados, xi e xj, e o ordem de classificação dessas dissimilaridades do par menos semelhante para o par mais semelhante: ANÁLISE EXPLORATÓRIA DE DADOS C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 53 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Onde M denota o número total de pares de dados diferentes e M = n (n - 1) / 2 para n itens de dados. MDS é encontrar coordenadas dos n itens de dados em um espaço q-dimensional, zi = (zi1, ..., xiq), i = 1, ..., n, com q sendo muito menor que p, ao mesmo tempo que preserva as dissimilaridades de n itens de dados na equação. MDS é não-métrico se apenas a ordem de classificação das dissimilaridades na equação for preservada. O Metric MDS vai além para preservar as magnitudes das diferenças. A tabela fornece as etapas do algoritmo MDS para encontrar as coordenadas dos n itens de dados no espaço q-dimensional, enquanto preserva as dissimilaridades de n pontos de dados fornecidas na equa- ção anterior acima. Na etapa 1 do algoritmo MDS, a configuração inicial para coordenadas de n pontos de dados no espaço q-dimensional é ge- rada usando valores aleatórios de modo que dois pontos de dados não sejam iguais. Na etapa 2 do algoritmo MDS, o seguinte é usado para normalizar xi = (xi1,…, xiq), i = 1,…, n: Tabela 1 - Utilização dos algoritmos MDS. Algoritmo MDS Passo Descrição da etapa 1 Gera uma configuração inicial para as coordenadas de n dados. pontos no espaço q-dimensional, (x11, ..., x1q, ...., xn1, ..., xnq), de modo que não haja dois pontos iguais. 2 Normalize xi = (xi1,…, xiq), i = 1,…, n, de modo que o vetor para cada ponto de dados tem o comprimento da unidade. 3 Calcule S como o estresse da configuração. 4 REPETIR ATÉ que um critério de parada baseado em S seja sa- tisfeito. 5 Atualize a configuração usando o método gradiente decente. 6 Normalize xi = (xi1,…, xiq), i = 1,…, n. 7 Calcule S da configuração atualizada. Fonte: Autoral adaptado de Aggarwal, 2012. Na etapa 3 do algoritmo MDS, o seguinte é usado para calcular o estresse da configuração que mede o quão bem a configuração pre- serva as dissimilaridades de n pontos de dados dados: 𝛿𝛿𝑖𝑖1𝑗𝑗1 ≤ 𝛿𝛿𝑖𝑖2𝑗𝑗2 ≤ ⋯ ≤ 𝛿𝛿𝑖𝑖𝑦𝑦𝑗𝑗𝑦𝑦 54 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Onde dij mede a dissimilaridade de xi e xj usando suas coorde- nadas q-dimensionais, e dij dá a dissimilaridade desejada de xi e xj que preserva a ordem de dissimilaridade de δijs de modo que: Observe que há n(n - 1)/2 pares diferentes de iej nas equações. A distância euclidiana mostrada, a distância métrica r de Minkowski mais geral mostrada ou alguma outra medida de dissimilaridade pode ser usada para calcular dij: SÉRIES TEMPORAIS Análise de autocorrelação e série temporal Esses dados são coletados através de observações ao longo do tempo e, se houver correlação entre as observações desses dados, eles autocorrelacionados. Esse tipo de análise de série temporal foi introduzido por Box e Jenkins (2015, p. 129) para modelar e analisar dados de séries temporais com autocorrelação. Esse tipo de análise é aplicado a dados do mundo real em diversas áreas, incluindo cotação de ações, tarifas aéreas, tamanho da força de trabalho e informações sobre emprego e desemprego e preço de produtos como o barril de petróleo, por exemplo, dados que requerem diferentes procedimentos de inferência estatística. Existem séries temporais estacionárias e não estacionárias. 𝑆𝑆 = � ∑ (𝑑𝑑𝑖𝑖𝑗𝑗 − 𝑑𝑑𝑖𝑖𝑗𝑗 )2𝑖𝑖𝑗𝑗 ∑ 𝑑𝑑𝑖𝑖𝑗𝑗2𝑖𝑖𝑗𝑗 𝑑𝑑𝑖𝑖𝑗𝑗 < 𝑑𝑑𝑖𝑖𝑗𝑗 𝑠𝑠𝑒𝑒𝛿𝛿𝑖𝑖𝑗𝑗 < 𝛿𝛿𝑖𝑖′𝑗𝑗 ′ . 𝑑𝑑𝑖𝑖𝑗𝑗 = ���𝑑𝑑𝑖𝑖𝑘𝑘 − 𝑑𝑑𝑗𝑗𝑘𝑘 � 2 𝑞𝑞 𝑘𝑘=1 𝑑𝑑𝑖𝑖𝑗𝑗 = ���𝑑𝑑𝑖𝑖𝑘𝑘 − 𝑑𝑑𝑗𝑗𝑘𝑘� 𝑎𝑎 𝑞𝑞 𝑘𝑘=1 � 1 𝑎𝑎 . 55 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Autocorrelação A equação abaixo dá o coeficiente de correlação de duas va- riáveis xi e xj: Onde as equações abaixo fornecem: Dada uma variável x e uma amostra de seus dados de séries temporais xt, t = 1, ..., n, obtemos o coeficiente da função de autocorre- lação lag-k (ACF) substituindo as variáveis xi e xj nas equações acima mencionadas por xt e xt− k, que são duas observações de dados com defasagens de tempo de k: Onde x– é a média da amostra. Se os dados da série temporal forem estatisticamente independentes em lag-k, ρk será zero. Se xt e xt − k mudam de x– da mesma maneira (por exemplo, ambos aumentando de x–), ρk é positivo. Se xt e xt − k mudam de x– no sentido oposto (por exemplo, um aumentando e outro diminuindo de x–), ρk é negativo. O coeficiente da função de autocorrelação parcial lag-k (PACF) mede a autocorrelação de lag-k, que não é explicada pela autocorre- lação das defasagens 1 a k − 1. PACF para lag-1 e lag-2 são dados a seguir: 𝜌𝜌𝑖𝑖𝑗𝑗 = 𝜎𝜎𝑖𝑖𝑗𝑗 �𝜎𝜎𝑖𝑖𝑖𝑖�𝜎𝜎𝑗𝑗𝑗𝑗 𝜎𝜎𝑖𝑖2 = � (𝑥𝑥𝑖𝑖 − 𝑞𝑞𝑖𝑖)2𝑝𝑝𝑖𝑖(𝑥𝑥𝑖𝑖) 𝑒𝑒𝑜𝑜𝑑𝑑𝑜𝑜𝑠𝑠 𝑜𝑜𝑠𝑠 𝑣𝑣𝑎𝑎𝑞𝑞𝑜𝑜𝑎𝑎𝑒𝑒𝑠𝑠 𝑑𝑑𝑒𝑒 𝑥𝑥𝑖𝑖 𝜎𝜎𝑖𝑖𝑗𝑗 = � 𝑒𝑒𝑜𝑜𝑑𝑑𝑜𝑜𝑠𝑠 𝑜𝑜𝑠𝑠 𝑣𝑣𝑎𝑎𝑞𝑞𝑜𝑜𝑎𝑎𝑒𝑒𝑠𝑠 𝑑𝑑𝑒𝑒 𝑥𝑥𝑖𝑖 � (𝑥𝑥𝑖𝑖 − 𝜇𝜇𝑖𝑖)�𝑥𝑥𝑗𝑗 − 𝜇𝜇𝑗𝑗 �𝑝𝑝�𝑥𝑥𝑖𝑖 , 𝑥𝑥𝑗𝑗 �. 𝑇𝑇𝑜𝑜𝑑𝑑𝑜𝑜𝑠𝑠 𝑜𝑜𝑠𝑠 𝑣𝑣𝑎𝑎𝑞𝑞𝑜𝑜𝑎𝑎𝑒𝑒𝑠𝑠 𝑑𝑑𝑒𝑒 𝑥𝑥𝑗𝑗 𝐴𝐴𝐶𝐶𝐹𝐹(𝑘𝑘) = 𝜌𝜌𝑘𝑘 = ∑ �𝑥𝑥𝑒𝑒 − �̅�𝑥(𝑥𝑥𝑒𝑒−𝑘𝑘 − �̅�𝑥)/(𝑒𝑒 − 𝑘𝑘)�𝑒𝑒𝑒𝑒=𝑘𝑘+1 ∑ (𝑥𝑥𝑒𝑒 − �̅�𝑥)2𝑒𝑒𝑒𝑒=1 /𝑒𝑒 𝑃𝑃𝐴𝐴𝐶𝐶𝐹𝐹(1) = 𝜌𝜌1 𝑃𝑃𝐴𝐴𝐶𝐶𝐹𝐹(2) = 𝜌𝜌2 − 𝜌𝜌12 1 − 𝜌𝜌12 . 56 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Estacionariedade e não estacionariedade A estacionariedade geralmente se refere à estacionariedade fraca que requer que a média e a variância dos dados da série temporal não mudem ao longo do tempo. Uma série temporal é estritamente es- tacionária se a autocovariância σt, t − k não muda ao longo do tempo t, mas depende apenas do número de defasagens k além da média fixa e da variância constante. Por exemplo, uma série temporal gaussiana que tem uma distribuição normal multivariada é uma série estacionária es- trita, porque a média, a variância e a autocovariância da série não mu- dam com o tempo. Os modelos ARMA são usados para modelar séries temporais estacionárias. Fatores que podem causar estacionariedade: • Outliers (dados fora da curva). • Caminhada aleatória em que cada observação desvia aleato- riamente da observação anterior sem reversão para a média. • Tendência determinística (por exemplo, uma tendência linear que tem valores que mudam ao longo do tempo a uma taxa constante). • Mudança de variância. • Ciclos com um padrão de dados que se repete periodicamen- te, incluindo ciclos sazonais com periodicidade anual. • Outros que fazem a média ou variação de uma série temporal mudar ao longo do tempo. Uma série não estacionária deve ser transformada em uma sé- rie estacionáriapara construir um modelo ARMA. Modelos ARMA de dados de séries estacionários Os modelos ARMA se aplicam a dados de séries temporais com fraca estacionariedade. Um modelo autoregressivo (AR) de ordem p, AR(p), descreve uma série temporal em que a observação atual de uma variável x é uma função de suas p observações anteriores e um erro aleatório: Características ACF e PACF dos modelos ARMA ACF e PACF fornecem ferramentas analíticas para revelar e identificar a ordem autoregressiva ou a ordem de média móvel em um modelo ARMA para uma série temporal. As características de ACF e PACF para dados de séries temporais gerados por modelos AR, MA e ARMA são descritas a seguir. Para uma série temporal AR(1): 𝑥𝑥𝑒𝑒 = Φ1𝑥𝑥𝑒𝑒−1 + ⋯+ Φ𝑝𝑝𝑥𝑥𝑒𝑒−𝑝𝑝 + 𝑒𝑒𝑒𝑒 . 57 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S ACF (k) é: Se ϕ1<1, AR(1) é estacionário com o declínio exponencial no valor absoluto de ACF ao longo do tempo, uma vez que ACF(k) diminui com ke eventualmente diminui. Se ϕ1>0, ACF(k) é positivo. Se ϕ1<0, ACF(k) está oscilando porque é negativo para k = 1, positivo para k = 2, negativo para k = 3, positivo para k = 4 e assim por diante. Se ϕ1 ≥ 1, AR(1) é não estacionário. Para uma série temporal AR(2) estacionária: ACF (k) é positivo com o declínio exponencial no valor absoluto de ACF ao longo do tempo se ϕ1> 0 e ϕ2> 0, e ACF (k) está oscilando com o declínio exponencial no valor absoluto de ACF ao longo do tempo se ϕ1 <0 e ϕ2> 0. PACF (k) para uma série autoregressiva AR (p) realiza lag p e torna-se zero após o lag p. Para AR(1), PACF(1) é positivo se ϕ1> 0 ou negativo se ϕ1 <0, e PACF(k) para k ≥ 2 é zero. Para AR(2), PACF(1) e PACF(2) são positivos se ϕ1> 0 e ϕ2> 0, PACF(1) é negativo e PACF(2) é positivo se ϕ1<0 e ϕ2> 0, e PACF(k) para k≥3 é zero. Portanto, PACF identifica a ordem de uma série temporal autorregressiva. Para uma série temporal MA(1): ACF(1) não zero: ACF(k) é zero para k>1. Da mesma forma, para uma série tem- poral MA (2), ACF(1) e ACF(2) são negativos, e ACF(q) é zero para q>2. Para um MA(q), temos: Ao contrário de uma série temporal autoregressiva cujo ACF declina exponencialmente ao longo do tempo, uma série temporal de média móvel tem uma memória finita, pois a autocorrelação de MA(q) ocorre apenas através do lag q. Consequentemente, ACF identifica a 𝑥𝑥𝑒𝑒 = Φ1𝑥𝑥𝑒𝑒−1 + 𝑒𝑒𝑒𝑒 , 𝐴𝐴𝐶𝐶𝐹𝐹(𝑘𝑘) = 𝜙𝜙1𝑘𝑘 . 𝑥𝑥𝑒𝑒 = 𝜙𝜙1𝑥𝑥𝑒𝑒−1 + 𝜙𝜙2𝑥𝑥𝑒𝑒−1 + 𝑒𝑒𝑒𝑒 , 𝑥𝑥𝑒𝑒 = 𝑒𝑒𝑒𝑒 − 𝜙𝜙1𝑒𝑒𝑒𝑒 − 1, 𝐴𝐴𝐶𝐶𝐹𝐹(1) = −𝜙𝜙1 1 + 𝜙𝜙12 , 𝐴𝐴𝐶𝐶𝐹𝐹(𝑘𝑘) ≠ 0 𝑠𝑠𝑒𝑒 𝑘𝑘 ≤ 𝑞𝑞 𝐴𝐴𝐶𝐶𝐹𝐹(𝑘𝑘) = 0 𝑠𝑠𝑒𝑒 𝑘𝑘 > 𝑞𝑞 58 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S ordem de uma série temporal de média móvel. Uma série temporal de média móvel possui PACF cuja magnitude diminui exponencialmente com o tempo. Para MA(1), PACF(k) é negativo se θ1> 0, e PACF(k) está oscilando entre valores positivos e negativos com o declínio exponen- cial na magnitude de PACF(k) ao longo do tempo. Para MA(2), PACF(k) é negativo com o declínio exponencial na magnitude do PACF ao longo do tempo se θ1>0 e θ2>0, e ACF(k) está oscilando com o declínio expo- nencial no valor absoluto de ACF ao longo tempo se θ1<0 e θ2<0. As características acima mencionadas de séries temporais au- torregressivas e médias móveis são combinadas em séries temporais mistas com modelos ARMA(p, q) onde p> 0 e q>0. Por exemplo, para um ARMA(1,1) com ϕ1> 0 e θ1 <0, ACF diminui exponencialmente com o tempo e PACF está oscilando com o declínio exponencial ao longo do tempo. NÚMEROS ÍNDICES Um número de índice é a medida de mudança em uma variá- vel (ou grupo de variáveis) ao longo do tempo. São normalmente usa- dos em economia para medir tendências em uma ampla variedade de áreas, incluindo: preços do mercado de ações, custo de vida, produção industrial ou agrícola e importações. Os números de índice são uma das ferramentas estatísticas mais usadas na economia. Os números do índice não são mensuráveis diretamente, mas representam mudanças gerais relativas. Eles são normalmente expres- sos como porcentagens. Exemplos de números de índice O índice de preços ao consumidor (IPC) é o número de índi- ce mais conhecido com base nas mudanças de preço para um grupo de produtos selecionados, considera-se que dá um valor “médio” da inflação. Outros números de índice que você, provavelmente, já ouviu referenciados muitas vezes são o Dow Jones Industrial Average para a Bolsa de Valores de Nova York e o composto Nasdaq para a American Stock Exchange. O índice Dow Jones mede a variação nos preços das ações em um conjunto de cerca de 30 grandes empresas que são con- sideradas representativas dos negócios nos Estados Unidos. O índice Nasdaq mede a mudança em todas as cerca de 3.000 ações listadas no mercado Nasdaq. Usa-se essa metodologia para realizar comparações quanti- 59 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S tativas das variações de fenômenos complexos. Os números de índice não representam uma medida real, funcionando apenas como indicado- res de tendências com uma ou mais variáveis que compõem um fenô- meno específico. Por exemplo: • O preço de um determinado carro atualmente em relação ao preço pago no ano anterior no mesmo período do ano. • O consumo de água per capita no Ceará desde 1980 até hoje. • O preço da maçã hoje em relação ao preço pago um ano atrás. • Índices de crescimento de setores da economia Tipos: • Índice simples: apenas um objeto é verificado. • Índice composto: um grupo de objetos é avaliado num de- terminado período. Utilizam-se três tipos de classificação de números de índices: • Índice de preços: reflete uma variação de preços de um ou de um conjunto de bens ou serviços. • Índice de quantidade: representa as variações das quantidades de um ou conjunto de bens ou serviços. • Índice de valor: representa a variações dos gastos em diferentes períodos. As funções utilizadas para índices simples são respectivamente: Onde: • P ou p = preço • Q ou q = quantidade • V ou v = (p x q) = valor Como os números de índices compostos são utilizados para variações em grupos de itens, eles são divididos em dois métodos de cálculo: • Agregados e Ponderados: utilizado para determinar varia- 𝜌𝜌𝑒𝑒𝑜𝑜 = 𝜌𝜌𝑖𝑖𝑒𝑒 𝜌𝜌𝑖𝑖𝑒𝑒 𝑞𝑞𝑒𝑒0 = 𝑞𝑞𝑖𝑖𝑒𝑒 𝑞𝑞𝑖𝑖𝑜𝑜 𝑦𝑦𝑒𝑒0 = 𝜌𝜌𝑖𝑖𝑒𝑒𝑞𝑞𝑖𝑖𝑒𝑒 𝜌𝜌𝑖𝑖0𝑞𝑞𝑖𝑖0 60 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S ções de preço para um grupo de elementos, focando apenas preços, eliminando-se as quantidades. • Média dos Relativos de Preço: funciona como uma alter- nativa ao método dos agregados ponderados, obtendo exatamente os mesmos resultados. Quando trabalhamos com grandezas complexas, utilizamos três outros modelos: Laspevres, Paasche e Fischer. Número-índice de Laspeyres: trata de uma ponderada de rela- tivos, usando como fatores valores determinados por preço e quantida- des de um período base, sendo: • p – insumos. • i – períodos - inicial (0), e atual (t). • q – pesos/quantidades determinadas para os insumos no pe- ríodo inicial. Número-índice de Paasche: índice agregado, cuja fórmula é uma média harmônica ponderada, cujos pesos são calculados usando como base os preços e as quantidades dos objetos no período atual em duas épocas, inicial e atual, levando-se em consideração as quantida- des arbitradas dos insumos no período atual. Número-índice de Fischer: também conhecido como forma ideal, é na verdade a forma geométrica dos índices de Laspevres e Paasche. Para se utilizar e interpretar os números de índice, é necessá- ria a compreensão de como eles são construídos, levando-se em conta as condiçõesdos em que os dados são utilizados, se são comparáveis entre outros detalhes. Modelos de programação em Big Data 1 - MapReduce É o modelo atual que de fato é utilizado para criação de aplica- ções centradas em dados. Ele é inspirado nas funções Map e Reduce 𝑃𝑃𝑦𝑦 = ∑�𝑝𝑝𝑐𝑐 ,𝑒𝑒𝑒𝑒 .𝑞𝑞𝑐𝑐 ,𝑒𝑒0� ∑�𝑝𝑝𝑐𝑐 ,𝑒𝑒0 .𝑞𝑞𝑐𝑐 ,𝑒𝑒0� 𝑃𝑃𝑃𝑃 = ∑�𝑝𝑝𝑐𝑐 ,𝑒𝑒𝑒𝑒 .𝑞𝑞𝑐𝑐 ,𝑒𝑒𝑒𝑒 � ∑�𝑝𝑝𝑐𝑐 ,𝑒𝑒0 .𝑞𝑞𝑐𝑐 ,𝑒𝑒𝑒𝑒 � 𝐹𝐹 = √𝐼𝐼𝑦𝑦. 𝐼𝐼𝑃𝑃 61 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S (daí o nome) juntamente com o modelo paralelo “divisão e conquista”. O MapReduce possui um modelo de programação simples, porém é po- deroso o bastante para suportar uma enorme variedade de programas de análise de dados. Recursos: • Funções de mapa e redução. Um programa MapReduce con- tém uma função Map que faz a transformação paralela e uma função Reduce que faz a agregação paralela e o resumo da tarefa. Entre Ma- pear e Reduzir, uma etapa de Embaralhamento implícita é responsável por agrupar e classificar os resultados mapeados e, em seguida, ali- mentá-los na etapa Reduzir. • Paradigma simples. Na programação do InMapReduce, os usuários só precisam escrever a lógica do Mapper e do Redutor, en- quanto a lógica de embaralhamento, particionamento e classificação é feita automaticamente pelo mecanismo de execução. Aplicativos e algo- ritmos complexos podem ser implementados conectando uma sequên- cia de trabalhos MapReduce. Devido a este paradigma de programação simples, é muito mais conveniente escrever aplicativos paralelos orien- tados a dados, porque os usuários só precisam considerar a lógica de processamento de dados em cada Mapeador e Redutor sem se preocu- par em como paralelizar e coordenar as tarefas. • Baseado em valor-chave. No MapReduce, os dados de en- trada e saída são considerados pares de valores-chaves com tipos dife- rentes. Esse design é devido aos requisitos de paralelização e escalabi- lidade. Os pares de valores-chaves podem ser facilmente particionados e distribuídos para serem processados em clusters distribuídos. • Paralelável e escalável. As funções Map e Reduce são projetadas para facilitar a paralelização, portanto, os aplicativos MapRe- duce são, geralmente, linearmente escaláveis para milhares de nós. 2 - Programação funcional Paradigma emergente para a próxima geração de sistemas de processamento em Big Data, já utilizada em frameworks como Spark e Flink, que se utilizam de interfaces funcionais, facilitando a construção de aplicativos de dados. Nesse modelo de programação, as interfaces são especificadas em forma de funções aplicadas às fontes de dados de entrada, sendo os cálculos tratados como cálculos de funções. Por si só a programação funcional é declarativa, evitando, assim, o compar- tilhamento de estados mutáveis. Se comparado a programação orienta- da a objetos, esse modelo é mais compacto e intuitivo na representação das transformações orientadas a dados e aplicativos. 62 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Recursos Como a Programação Funcional é um dos paradigmas de pro- gramação mais reconhecidos, ela possui um conjunto de funcionalida- des que facilitam o desenvolvimento em diferentes aspectos: • Declarativo: Na programação funcional, os desenvolvedores constroem os programas especificando a lógica semântica da computa- ção em vez do fluxo de controle dos procedimentos. • Funções são os elementos de primeiro nível em Programa- ção Funcional. As primitivas de programação são fornecidas de maneira funcional e a maioria delas pode assumir funções definidas pelo usuário como parâmetros. • Em princípio, a programação funcional não permite o compar- tilhamento de estados, o que significa que as variáveis na programação funcional são imutáveis. Portanto, não há efeitos colaterais para chama- da de funções. Isso torna mais fácil escrever programas funcionalmente corretos que também são fáceis de serem verificados formalmente. • Recursivo: Na programação funcional, muitos loops são normalmente representados como chamadas recursivas de funções. Isso facilita a otimização do desempenho aplicando cauda recursiva para reduzir a criação de dados intermediários e variáveis compartilha- das em diferentes loops. • Paralelização: Como geralmente não há compartilhamento de estado na programação funcional, é fácil e adequado para aplicar a paralelização a infraestruturas de computação distribuída e multicore. • Referencial transparente: Na programação funcional, as fun- ções são essencialmente reproduzíveis. Isso significa que o recálculo dos resultados funcionais não é necessário. Portanto, uma vez que uma função é calculada, seus resultados podem ser armazenados em cache e reutilizados com segurança. Exemplos de frameworks Spark O Spark fornece aos programadores um paradigma de progra- mação funcional com interfaces de programação centradas em dados com base em seu modelo de dados embutido - conjunto de dados distri- buído resiliente (RDD). O Spark foi desenvolvido em resposta às limita- ções do paradigma MapReduce, que força os programas distribuídos a serem escritos em um fluxo de dados linear e grosseiramente definidos como cadeias de tarefas Mapper e Redutor conectadas. No Spark, os programas são representados como RDDtransformationDAGs. Os pro- gramadores têm seu trabalho facilitado pelo uso de um rico conjunto 63 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S de funções primitivas de alto nível, ações e transformações para im- plementar algoritmos complicados de uma maneira muito mais fácil e compacta. Além disso, o Spark fornece operações centradas em dados, como amostragem e armazenamento em cache, para facilitar a progra- mação centrada em dados em diferentes aspectos. O Spark é bem conhecido por seu suporte a ricas transforma- ções e ações funcionais. Basicamente, as primitivas de programação no Spark parecem apenas interfaces de programação funcionais gerais, ocultando operações complexas como particionamento de dados, dis- tribuição e paralelização para os programadores e deixando-as do lado do cluster. Flink Flink é um concorrente emergente do Spark, que fornece inter- faces de programação funcionais bastante semelhantes às do Spark. Os programas Filnk são programas regulares que são escritos com um rico conjunto de operações de transformação (como mapeamento, filtragem, agrupamento, agregação e junção) para os conjuntos de dados de entrada. O conjunto de dados no Flink é baseado em um modelo baseado em tabela, portanto os programadores podem usar números de índice para especificar um determinado campo de um con- junto de dados. O Flink compartilha muitas primitivas e transformações funcionais da mesma maneira que o Spark faz para o processamento em lote. Além das primitivas de processamento em lote regulares, o Flink também foi projetado nativamente para processamento de stream com o suporte de um rico conjunto de operações funcionais. As APIs de streaming do Flink estão em seu pacote principal e os usuários podem escrever e executar aplicativos de processamento de fluxo e processa- mento em lote na mesma estrutura. Ao contrário do Spark que usa um min-batch para simular o processamento de fluxo, Flink usa o modelo produtor-consumidor para a execução de programas de streaming. Por- tanto, ele mostra ser uma estrutura mais natural para integrar processa- mento em lote e fluxo. Além das transformações normais, a API de streaming do Flink também fornece algumas operações baseadas em janela para aplicar funções e transformações em diferentes grupos de elementos no fluxo de acordo com seu tempo de chegada. 3 - SQL-Like SQL (Structured Query Language) é a linguagem de consulta 64 C O LE TA , A R M A Z E N A ME N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S de dados mais clássica, originalmente projetada para bancos de dados relacionais baseados na álgebra relacional. Ele contém quatro primiti- vas básicas: criar, inserir, atualizar, excluir para modificar os conjuntos de dados considerados como tabelas com esquemas. SQL é uma lin- guagem declarativa e inclui alguns elementos procedimentais. Os programas SQL contêm alguns elementos básicos, incluindo: 1. Cláusulas que são elementos constituintes de instruções e consultas. 2. Expressões que podem ser avaliadas para produzir um con- junto de dados resultantes. 3. Predicados que especificam condições que podem ser usa- das para limitar os efeitos de declarações e consultas. 4. Consultas que recuperam os dados com base em alguns critérios específicos. 5. Declarações que têm um efeito persistente nos dados, es- quema ou mesmo no banco de dados. Recursos • Declarativa e auto-interpretável: SQL é uma linguagem de- clarativa típica, ela especifica claramente quais transformações e ope- rações estão sendo feitas para quais partes dos dados. Ao ler as con- sultas SQL, os usuários podem entender facilmente a semântica das consultas da mesma forma que entendem as descrições literais. • Orientado por dados: O SQL é orientado por dados, todas as operações e primitivas representam a transformação e manipulação do conjunto de dados de destino (tabelas de dados em SQL). Isso torna o SQL um dos modelos de programação mais fáceis para aplicativos cen- trados em dados para bancos de dados tradicionais e contexto recente de big data. • Padronizado e interoperável: O SQL é oficialmente padroni- zado por comunidades de dados como IBM e W3C. Portanto, diferentes provedores de plataforma podem fornecer sua própria implementação, mantendo a interoperabilidade entre diferentes plataformas e estrutu- ras. No contexto de Big data, embora existam algumas variações para SQL, como HQL (Hadoop Query Language) em Hive e CQL (Casandra Query Language) em Casandra, os usuários ainda podem entender fa- cilmente e enviar tais programas uns para os outros. Exemplos • Hive Query Language (HQL): Hive é um mecanismo de con- sulta construído em ecossistemas Hadoop, ele fornece uma interface se- melhante a SQL chamada Hive Query Language (HQL), que lê os dados de entrada com base no esquema definido e, em seguida, converte de forma transparente as consultas em trabalhos MapReduce conectados. 65 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S • Cassandra Query Language (CQL): O Apache Cassandra foi introduzido pelo Facebook para aumentar a indexação de sua pes- quisa na caixa de entrada. O Cassandra segue o design do Amazon Dynamo com suas próprias interfaces de consulta - Cassandra Query Language (CQL). CQL é uma linguagem de consulta baseada em SQL fornecida como alternativa à interface RPC tradicional. CQL adiciona uma camada de abstração que esconde detalhes de implementação de sua estrutura de consulta e fornece sintaxes nativas para coleções e codificações comuns. • Spark SQL: O Spark introduz suas interfaces de consulta ra- cionais como Spark SQL, que é construído no modelo DataFrame e considera os conjuntos de dados de entrada como uma estrutura ba- seada em tabela. O Spark SQL pode ser embutido em programas gerais do Spark nativo e MLlib para permitir a interatividade entre os diferentes módulos do Spark. Além disso, como o Spark SQL se baseia no Catalyst para otimizar os planos de execução de consultas SQL, o Spark SQL pode executar APIs Spark nativas na maioria das APIs comparadas. • Apache Drill: É a versão de código aberto do sistema Dremel do Google, que é um SQL Query Engine sem esquema para MapRe- duce, NoSQL e Cloud Storage. Drill é bem conhecido por sua conec- tividade com vários bancos de dados NoSQL e sistemas de arquivos. Uma única consulta pode juntar dados de vários bancos de dados. Por exemplo, você pode ingressar em uma coleção de perfis de usuário no MongoDB com um diretório de logs de eventos no Hadoop. Outros frameworks de consulta semelhantes a SQL • Impala fornece consultas SQL de alto desempenho e baixa latência em dados armazenados em formatos de arquivo populares do Apache Hadoop. A resposta rápida para consultas permite a explora- ção interativa e o ajuste fino de consultas analíticas, em vez de longos trabalhos em lote tradicionalmente associados a tecnologias SQL-on- -Hadoop. O Impala se integra ao banco de dados de metastore Apache Hive para compartilhar bancos de dados e tabelas entre os dois compo- nentes. O alto nível de integração com o Hive e compatibilidade com a sintaxe do HiveQL permite que você use o Impala ou o Hive para criar tabelas, emitir consultas, carregar dados e assim por diante. • Presto é um mecanismo de consulta SQL distribuído de có- digo aberto para execução de consultas analíticas interativas em fontes de dados de todos os tamanhos, de gigabytes a petabytes. O Presto foi projetado e escrito do zero para análises interativas e aproxima-se da velocidade de data warehouses comerciais, ao mesmo tempo em que é 66 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S dimensionado para o tamanho de organizações como o Facebook. 4 - Modelo Ator (Actor Model) O modelo Actor é um modelo de programação para computa- ção concorrente, que considera “Actor” como a unidade primitiva univer- sal para computação, o que significa que trata tudo como um ator. Um ator é responsável por reagir a um conjunto de mensagens para acionar lógicas de processamento específicas (como tomar decisões, construir mais atores, enviar mais mensagens) para diferentes contextos. O mo- delo de ator também é considerado um modelo de programação reativo no qual os programadores escrevem lógica de atuação em resposta a eventos e mudanças de contexto. Ao contrário de outros modelos de programação que são normalmente sequenciais, o modelo de ator é inerentemente concorrente. As reações de um ator podem acontecer em qualquer ordem e as ações para diferentes atores também ocorrem em paralelo. Recursos • Orientado por mensagens: o modelo de Ator herda a arquite- tura orientada a mensagens para comunicação. As mensagens são as primitivas e as únicas portadoras de dados entre os sistemas. • Stateless (sem estado, em tradução livre) e isolamento: os atores são fracamente acoplados uns aos outros. Portanto, não existe um estado global compartilhado entre diferentes atores. Além disso, os atores são unidades funcionais separadas que não devem afetar os ou- tros quando ocorrem falhas e erros. • Concorrente: os atores no sistema de ator estão em ação ao mesmo tempo e não há uma ordem fixa para enviar e receber mensa- gens. Portanto, todo o sistema de ator é inerentemente concorrente. Exemplos 1. Akka: é um modelo de programação concorrente e distribuída desenvolvido pela Typesafe com inspiração em Erlang. A Akka tem sido amplamente usada em estruturas concorrentes e distribuídas recentes, como Spark, Play e Flink. A Akka fornece diferentes modelos de pro- gramação, mas enfatiza o modelo de simultaneidade baseado em ator. 2. Storm: é uma estrutura de programação de código aberto para processamento distribuído de dados em tempo real. Storm herda do modelo de ator e fornece dois tipos de atores de processamento: Spouts e Bolts. • Spout é a fonte de dados de um fluxo e está continuamente gerando ou coletando novos dados para processamento subsequente. • Bolt é uma entidade de processamento dentro de um flu- xo de processamento de streaming, cada bolt é responsável por uma 67 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S certa lógica de processamento, como transformação, agregação, particionamento e redirecionamento, etc. Jobs em Storm são definidoscomo gráficos acíclicos direcio- nados (DAG) com Spouts e Bolts conectados como vértices. As bordas no gráfico são fluxos de dados e dados diretos de um nó para outro. Ao contrário dos trabalhos em lote que são executados apenas uma vez, os trabalhos Storm são executados até serem eliminados. 3. Apache S4: O Apache S4 (Simple Scalable Streaming Sys- tem) foi introduzido pelo Yahoo em 2008 para processamento de stream. O S4 é uma plataforma de uso geral, distribuída, escalonável, tolerante a falhas e conectável para processamento de fluxos de dados contínuos e ilimitados. Os principais recursos do S4 estão listados a seguir: • Descentralizado: todos os nós em S4 são simétricos, sem serviço centralizado e sem ponto único de falha. • Escalável: a taxa de transferência de S4 aumenta linearmente conforme nós adicionais são adicionados ao cluster. Não há limite pre- definido para o número de nós que podem ser suportados. Extensível: os aplicativos podem ser escritos facilmente usan- do uma API simples. Os blocos de construção da plataforma, como filas de mensagens e processadores, serializador e back-end de checkpoint, podem ser substituídos por implementações personalizadas. Tolerante a falhas: quando um servidor no cluster falha, um servidor em espera é automaticamente ativado para assumir as tarefas. Em S4, cada ator de processamento é chamado de Proces- sElement (PE), que é responsável pelo processamento em resposta a cada elemento de dados (um evento) dentro do fluxo de entrada. Um aplicativo S4 é construído conectando alguns ProcessElement em uma determinada topologia. 5 - Estatística e analítica Nos últimos anos, um esforço significativo foi despendido para oferecer ambientes semanticamente amigáveis para computação esta- tística e analítica, o que leva ao desenvolvimento e revolução de modelos de programação estatística e analítica. Por exemplo, muitas bibliotecas ou estruturas analíticas atuais fornecem um modelo de programação baseado em álgebra linear que trabalha com vetores, matrizes e es- truturas de dados de tensores para lidar com problemas matemáticos definidos algebricamente em aprendizado de máquina, estatística e mi- neração de dados, etc. Recursos Devido à natureza matemática da programação estatística e analítica, é essencialmente funcional com manipulações em matrizes e 68 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S estruturas de dados baseadas em vetores. • Funcional: Operações matemáticas são essencialmente fun- ções que consomem um conjunto de parâmetros de entrada para gerar uma saída. Além disso, muitas funções ou modelos complicados são agru- pados em bibliotecas funcionais para que os usuários possam usá-los di- retamente, sem conhecer os detalhes de implementação das funções. • Estrutura de dados baseada em matriz: A matriz é uma das estruturas de dados mais amplamente utilizadas para representar pro- blemas e soluções analíticas e estatísticas modernas. Portanto, a maio- ria das estruturas de programação analítica existentes são baseadas em matrizes, vetores e estruturas de dados para manipular os dados. • Declarativo: Na programação estatística e analítica, os pro- gramas especificam explicitamente as funções e operações que foram aplicadas aos dados (matriz, vetor e quadro de dados). Exemplos 1. R: combina a linguagem de programação S e o Lexical Sco- ping inspirado no Scheme. É bem conhecido pela programação estatís- tica e desenho gráfico. Em R, os dados são essencialmente representa- dos como matrizes que são muito convenientes para a implementação de fórmulas matemáticas e estatísticas. R e suas bibliotecas implemen- tam uma grande variedade de técnicas estatísticas e gráficas e são fá- ceis de serem estendidas pelos desenvolvedores. R foi recentemente introduzido no contexto de processamento de big data para facilitar a desenvolvimento de programas e aplicativos estatísticos e analíticos 2. Mahout: Apache Mahout é uma implementação de código aberto de algoritmos de aprendizado de máquina e mineração de dados distribuído e escalonável. O Mahout fornece bibliotecas que se concen- tram principalmente nas áreas de filtragem colaborativa, agrupamento e classificação. A implementação inicial do Mahout é baseada no Apache Hadoop, mas recentemente ele começou a fornecer ligações compatí- veis no Spark e ser capaz de fornecer interfaces de programação ba- seadas em matriz. Essas são apenas algumas das principais aplicações desen- volvidas para o tratamento de dados em Big Data e Data Mining. Com o aprofundamento e a prática você descobrirá qual melhor se adequa ao trabalho que precisa realizar. O Big Data trouxe consigo uma massa enorme de dados de diferentes tipos e contextos, introduzindo com isso novos modelos de 69 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S gerenciamento de dados. Soluções do tipo “NoSQL”, “Não SQL”, em re- ferência à linguagem utilizada em quase todos os bancos de dados até então. São bancos de dados não relacionais e possuem a capacidade de trabalhar com dados semiestruturados. Conheça um pouco mais sobre bancos de dados NoSQL, pes- quise por Neo4J, Infinite Graph, InforGrid e HyperGraphDB. Filme sobre o assunto: O Jogo da Imitação. Data de lança- mento: 8 de janeiro de 2015 (Brasil). Direção: Morten Tyldum. Observação: Sobre a temática, é importante que o aluno note a relevância do assunto dentro do seu campo de atuação. Data Mining é utilizado principalmente em três áreas: - Estatística: com a utilização das teorias probabilísticas. - Inteligência artificial: desenvolvendo mecanismos que pos- sam simular o raciocínio e assim desenvolver algoritmos que permitam aos sistemas computacionais “pensar” como os humanos. - Aprendizado de máquina: para aprender a criar modelos au- tomatizados que possam aprender com os dados. 70 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S QUESTÕES DE CONCURSOS QUESTÃO 1 Ano: 2018 Banca: CESPE/CEBRASPE Órgão: STM Prova: Analista Judiciário - Estatística A respeito da autocorrelação dos erros de um modelo de regressão linear, julgue o item subsequente. A autocorrelação dos erros, desde que não seja unitária em termos absolutos, insere um viés nas estimativas da variável dependente. ( ) Certo ( ) Errado QUESTÃO 2 Ano: 2018 Banca: CESPE/CEBRASPE Órgão: STM Prova: Analista Judiciário - Estatística A respeito da autocorrelação dos erros de um modelo de regressão linear, julgue o item subsequente. Ocorre autocorrelação dos erros caso os erros da regressão sigam um processo autorregressivo de ordem 1, ou seja, um AR(1). ( ) Certo ( ) Errado QUESTÃO 3 Ano: 2019 Banca: FGV Órgão: DPE-RJ Prova: Superior Especiali- zado - Estatística Sobre os Números Índices, sua construção, suas propriedades e erros, é correto afirmar que: a) O período da base de comparação deve ser posterior ao período empregado para a base de ponderação. b) Por construção, ao trabalhar com os inversos dos relativos, o que se obtém é um valor para o índice que é o inverso do valor original, o de antes da inversão dos relativos. c) A homogeneidade de um índice pode ser afetada pelo surgimento de novas tecnologias, que incidam sobre os hábitos e a cesta de consumo dos indivíduos. d) Dividindo-se o Índice de Valor por um dado Índice de Preços, o que se obtém é o correspondente Índice de Quantidades; e) O erro amostral em um Número Índice deverá ser tão maior quanto maior for o número de bens e serviços considerados para o seu cálculo ou apuração. https://www.qconcursos.com/questoes-de-concursos/bancas/cespe-cebraspe https://www.qconcursos.com/questoes-de-concursos/institutos/stm https://www.qconcursos.com/questoes-de-concursos/provas/cespe-2018-stm-analista-judiciario-estatistica https://www.qconcursos.com/questoes-de-concursos/provas/cespe-2018-stm-analista-judiciario-estatisticahttps://www.qconcursos.com/questoes-de-concursos/bancas/cespe-cebraspe https://www.qconcursos.com/questoes-de-concursos/institutos/stm https://www.qconcursos.com/questoes-de-concursos/provas/cespe-2018-stm-analista-judiciario-estatistica https://www.qconcursos.com/questoes-de-concursos/provas/cespe-2018-stm-analista-judiciario-estatistica https://www.qconcursos.com/questoes-de-concursos/bancas/fgv https://www.qconcursos.com/questoes-de-concursos/institutos/dpe-rj https://www.qconcursos.com/questoes-de-concursos/provas/fgv-2019-dpe-rj-tecnico-superior-especializado-estatistica https://www.qconcursos.com/questoes-de-concursos/provas/fgv-2019-dpe-rj-tecnico-superior-especializado-estatistica 71 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S QUESTÃO 4 Ano: 2018 Banca: CESGRANRIO Órgão: Banco do Brasil Prova: Es- criturário Um modelo teórico do MapReduce pode ser resumido em duas funções, map e reduce. Essas funções são representadas na litera- tura, genericamente, com uma notação na forma: Entrada genérica -> Saída genérica A proposta original de MapReduce considerava que a função redu- ce teria o modelo: reduce(k2,list(v2)) -> list(v3) Enquanto implementações de terceiros usam o modelo: reduce(k2,list(v2)) -> list(k3,v3) O modelo para a função map, porém, é sempre o mesmo. Qual é esse modelo? a) map(v1) -> list(k2,v2). b) map(v1) -> k2,list(v2). c) map(k1,v1) -> k2,list(v2). d) map(k1,v1) -> k2,v2. e) map(k1,v1) -> list(k2,v2). QUESTÃO 5 Ano: 2018 Banca: CESPE/CEBRASPE Órgão: Polícia Federal Pro- va: Papiloscopista Policial Federal Julgue o item seguinte, a respeito de big data e tecnologias relacio- nadas a esse conceito. MapReduce permite o processamento de dados massivos usando um algoritmo paralelo, mas não distribuído. ( ) Certo ( ) Errado QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE Explique por que, para a integração de várias fontes de informações he- terogêneas, muitas empresas do setor preferem a abordagem orienta- da por atualização (que constrói e usa data warehouses) à abordagem orientada por consulta (que aplica wrappers e integradores). Descreva as situações em que a abordagem orientada por consulta é preferível à abordagem orientada por atualização. https://www.qconcursos.com/questoes-de-concursos/bancas/cesgranrio https://www.qconcursos.com/questoes-de-concursos/institutos/banco-do-brasil https://www.qconcursos.com/questoes-de-concursos/provas/cesgranrio-2018-banco-do-brasil-escriturario https://www.qconcursos.com/questoes-de-concursos/provas/cesgranrio-2018-banco-do-brasil-escriturario https://www.qconcursos.com/questoes-de-concursos/bancas/cespe-cebraspe https://www.qconcursos.com/questoes-de-concursos/institutos/policia-federal https://www.qconcursos.com/questoes-de-concursos/provas/cespe-2018-policia-federal-papiloscopista-policial-federal 72 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S TREINO INÉDITO Quando afirmamos que “é o processo de encontrar anomalias, padrões e correlações em grandes conjuntos de dados para prever resultados” estamos nos referindo a que tecnologia exatamente? a) Bancos de dados. b) Orientação a objetos. c) Linguagens de programação. d) Mineração de dados. e) Virtualização de dados. NA MÍDIA Data Mining para a tomada de decisões de negócio O avanço da tecnologia, junto ao processo de transformação digital, tem elevado drasticamente a quantidade de dados gerados pelas em- presas e, com isso, imposto novos e grandes desafios acerca do arma- zenamento nos bancos digitais e, principalmente, da tratativa que estas informações recebem. Para se ter ideia do volume de dados produzidos – no contexto do Big Data, que nada mais é do que um termo para descrever os dados que são gerados virtualmente, a cada instante, pelas empresas –, o estudo A Universe Of Opportunities and Challenges, conduzido pela Internatio- nal Data Corporation (IDC), em parceria com a Dell EMC, revela que, até o fim de 2020, os dados globais gerados por organizações devem alcançar a marca de 44 trilhões de gigabytes. Fonte: Inteligov Data: 23 de junho de 2020 Leia a notícia na íntegra: https://blog.inteligov.com.br/data-mining/ NA PRÁTICA Data Mining: prevendo comportamentos São muitas as possibilidades de negócios que surgiram com o Data Mining. A cada dia são gerados bilhões de dados de todos os tipos e áreas, dados que necessitam ser coletados e tratados, dados que po- dem ajudar as empresas a seguir por caminhos menos complicados, ajudando gestores a tomarem as decisões certas baseados em infor- mações precisas. 73 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Nesse contexto, surge o Cientista de Dados, o profissional capacitado a trabalhar com a extração e análise desses dados brutos, transforman- do-os em dados úteis para as empresas. E quais são as áreas em que podemos aplicar o Data Mining? São muitas: área médica, financeira, marketing, comércio, só para citar algumas. Para quem está entrando nessa área agora, o conselho é: prepare-se, estude e alinhe sua exper- tise com sua área de atuação. Fonte: Site Iberdrola. Disponível em <https://www.iberdrola.com/ino- vacao/data-mining-definicao-exemplos-e-aplicacoes> Acessado em 21/8/2020. PARA SABER MAIS Filmes sobre o assunto (colocar os títulos dos filmes e anos) • A.I. — Inteligência Artificial (2001) • Ex-Machina — Instinto Artificial (2015) • O Homem Bicentenário (1999) • Matrix (1999) • O Exterminador do Futuro (1984) 74 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Então é isso, vimos aqui o conteúdo básico para os estudos em mineração de dados abordando os seus três conceitos que são: coleta, armazenamento e análise de dados. Na primeira unidade, podemos co- nhecer o que é a mineração de dados e qual a sua importância para o conhecimento e tomada de decisões nos dias atuais, onde a produção de informações é cada vez maior e heterogênea. Tratamos dos algorit- mos principais para a manipulação desses dados, cada tipo específico existente, ferramentas poderosas que aliam disciplinas como matemáti- ca estatística e computação. Apresentamos os conceitos de bancos de dados, os tipos existentes e como são importantes para a mineração de dados, armazenando e ajudando na seleção e tratamento das informa- ções. Através dos conceitos aqui apresentados, você poderá compreen- der como é importante e até vital que se tenha o controle dos dados produzidos pelos mais diferentes canais, e que dominar esses dados, transformando-os em informações precisas faz toda a diferença dentro de uma organização. 75 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S GABARITOS CAPÍTULO 01 QUESTÕES DE CONCURSOS 01 02 03 04 05 E B D A B QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE – PADRÃO DE RESPOSTA (a) É outro modismo? A mineração de dados não é outro modismo. Em vez disso, a necessidade de mineração de dados surgiu devido à ampla disponibilidade de grandes quantidades de dados e à necessidade iminente de transformar esses da- dos em informações e conhecimentos úteis. Assim, a mineração de dados pode ser vista como o resultado da evolução natural da tecnologia da in- formação. (b) É uma transformação simples de tecnologia desenvolvida a partir de bancos de dados, estatísticas e aprendizado de máquina? Não. A mineração de dados é mais do que uma simples transformação de tecnologia desenvolvida a partir de bancos de dados, estatísticas e apren- dizado de máquina. De maneira oposta, a mineração de dados envolve, em vez de uma simples transformação, uma integração de técnicas de várias disciplinas, como tecnologia de banco de dados, estatística, aprendizado de máquina, computação de alto desempenho, reconhecimento de padrões,redes neurais, visualização de dados, recuperação de informações, processamento de imagem e sinal e análise de dados espaciais. (c) Explique como a evolução da tecnologia de banco de dados levou à mineração de dados. A tecnologia de banco de dados começou com o de- senvolvimento de mecanismos de coleta e criação de banco de dados que levaram ao desenvolvimento de mecanismos eficazes para gerenciamento de dados, incluindo armazenamento e recuperação de dados e processa- mento de consultas e transações. O grande número de sistemas de banco de dados que oferecem processamento de consultas e transações even- tualmente e naturalmente levou à necessidade de análise e compreensão de dados. Portanto, a mineração de dados começou seu desenvolvimento a partir dessa necessidade. TREINO INÉDITO Gabarito: B 76 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S CAPÍTULO 02 QUESTÕES DE CONCURSOS 01 02 03 04 05 D A CERTO CERTO ERRADO QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE – PADRÃO DE RESPOSTA Método: podem ser funções ou procedimentos que estão ligados a um objeto, determinando seu comportamento, podendo assim alterar seu estado. Assinatura do método: identifica um método de maneira única. Mensagem: forma como os objetos interagem, através da troca de mensagens. Coleções: utilizadas para armazenar, recuperar e manipular dados, além de facilitar troca de mensagens entre um método e outro. Extensão: classe criada a partir de uma classe pai, que estende alguns métodos. TREINO INÉDITO Gabarito: A 77 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S CAPÍTULO 03 QUESTÕES DE CONCURSOS 01 02 03 04 05 ERRADO CERTO C E ERRADO QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE – PADRÃO DE RESPOSTA Para consultas de tomada de decisão e consultas frequentes, a abor- dagem orientada para atualização é mais preferível. Isso ocorre porque a dispendiosa integração de dados e computação agregada são feitas antes do tempo de processamento da consulta. Para que os dados co- letados em vários bancos de dados heterogêneos sejam usados em processos de tomada de decisão, os dados devem ser integrados e resumidos com os problemas de heterogeneidade semântica entre os múltiplos bancos de dados analisados e resolvidos. Se a abordagem orientada por consulta for empregada, essas consultas serão traduzidas em consultas múltiplas (frequentemente complexas) para cada banco de dados individual. As consultas traduzidas competirão por recursos com as atividades nos sites locais, degradando, assim, seu desempe- nho. Além disso, essas consultas gerarão um conjunto de respostas complexo, que exigirá mais filtragem e integração. Portanto, a aborda- gem orientada a consultas é, em geral, ineficiente e cara. A abordagem orientada para atualização empregada no armazenamento de dados é mais rápida e mais eficiente, uma vez que muito da pré-computação pode ser feita off-line. Para consultas que são usadas raramente, fazem referência aos dados mais atuais e / ou não requerem agregações, a abordagem orientada por consulta seria preferível à abordagem orientada por atualização. Nesse caso, pode não ser justificável para uma organização pagar pe- sadas despesas para construir e manter um data warehouse, se apenas um pequeno número e / ou bancos de dados de tamanho relativamente pequeno forem usados; ou se as consultas dependem dos dados atuais, já que os data warehouses não contêm as informações mais atuais. TREINO INÉDITO Gabarito: D 78 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S AGGARWAL R. S. A Modern Approach to Logical Reasoning. S. Chand Publishing. 2012. BOX, George E. P.; JENKINS Gwilym M. Time Series Analysis: Fore- casting and Control. 4th Ed. Wiley, 2015. BRUCE, Andrew; BRUCE, Peter. Estatística Prática para Cientistas de Dados. 50 conceitos essenciais. 1ª Ed. Rio de Janeiro: Alta Books, 2019. CHAMBERLIN, D.D. and BOYCE, R.F. SEQUEL: A Structured English Query Language. Proc. ACM SIGMOD Workshop on Data Description, Access and Control, Ann Arbor, Michigan (May 1974) pages 249-264. DATE, C.J. Introdução a sistemas de bancos de dados. Rio de Ja- neiro: Elsevier, 2003. GOLDSCHMIDT, Ronaldo; PASSOS, Emmanuel; BEZERRA, Eduardo. Data. Mining: Conceitos, técnicas, algoritmos, orientações e apli- cações. 2ª Ed. – Rio de Janeiro: Elsevier, 2015. SILBERSCHATZ, Abraham; KORTH, Henri F.; SUDARCHAN, S. Siste- ma De Banco De Dados. 6ª Ed. Rio de Janeiro: Elsevier, 2012. SILVA, Leandro Nunes de Castro; FERRAR, Daniel Gomes. Introdu- ção à mineração de dados: conceitos básicos, algoritmos e aplica- ções.1ª Ed. São Paulo: Saraiva, 2016. TAURION, Cezar. Big data. Rio de Janeiro: Brasport, 2013. ePub. 79 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S _Ref47656153 _GoBack