26
Faculdade de Engenharia da Universidade do Porto Algoritmos de Big Data Alexandra Mendes Fábio Oliveira Henrique Ferreira Joana Ramos Pedro Franco Relatório elaborado no âmbito do Projeto FEUP Supervisor: Prof. Jorge G. Barbosa Monitora: Anaís Dias

Faculdade d e E n ge n h aria d a Un ive rs id ad e d o P ...projfeup/submit_16_17/uploads/relat_1... · “Big Data” é um termo relativamente novo, que surgiu no início dos anos

  • Upload
    leduong

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Faculdade de Engenharia da Universidade do Porto

Algoritmos de Big Data

Alexandra Mendes

Fábio Oliveira

Henrique Ferreira

Joana Ramos

Pedro Franco

Relatório elaborado no âmbito do Projeto FEUP

Supervisor: Prof. Jorge G. Barbosa Monitora: Anaís Dias

Algoritmos de Big Data

3 de Novembro de 2016

Resumo

Vivemos na era da informação. Estima-se que cerca de mais de 90% dos dados

existentes foram gerados durante os últimos 5 anos. Faz parte do âmbito deste relatório

aprofundar o conceito de Big Data e dar uma contextualização ao surgimento deste novo

paradigma. Vão ser explorados de modo superficial vários algoritmos relacionados com o

modelo ETL (Extract , Transform , Load) e as suas vantagens e desvantagens consoante as

situações. Vai ser ainda abordado superficialmente computação paralela enquanto

fundamento essencial para a análise em tempo real e distribuída de dados. No final vai ser

proposto um software ambicioso mas estritamente possível face às possibilidades e técnicas

do paradigma Big Data que vão ser apresentadas e analisadas ao longo deste relatório.

FEUP 2

Algoritmos de Big Data

Introdução

O desenvolvimento tecnológico decorrente das últimas décadas deu origem ao

surgimento exponencial de novas formas de obtenção de dados em grande escala. No

entanto, o aumento do poder de processamento computacional não seguiu o mesmo ritmo e

dessa forma tornou-se imprescindível criar formas de lidar com estes dados em tempo real,

otimizando as técnicas já existentes de data analysis . É cada vez mais importante para as

empresas de todos os setores saber extrair conhecimento eficazmente a partir de dados

recolhidos de forma a ter uma maior vantagem sobre a concorrência.

O termo Big Data refere-se ao conjunto abismal de dados brutos provenientes das

mais variadas fontes e às tecnologias empregues para os organizar, tratar e eventualmente

armazenar de forma segura. Enquanto a estatística aplicada se preocupa com o tratamento

manual de dados com bastante intervenção humana, Big Data procura automatizar este

processo recorrendo a técnicas de Machine Learning para procurar padrões, correlações e

efetuar previsões. Para otimizar ao máximo este processo é necessário escolher os algoritmos

mais adequados em função do tipo de informação que se pretende extrair.

FEUP 3

Algoritmos de Big Data

Agradecimentos

Este trabalho não teria sido possível sem a ajuda de alguns indivíduos que estiveram

sempre presentes para nos guiar.

De entre os quais gostaríamos de salientar o nosso supervisor Jorge Barbosa por nos

ter traçado o caminho a seguir desde logo a primeira aula e por ter permanecido ao nosso

lado durante todo este processo, tendo estado sempre apto a tirar todas as dúvidas que nos

surgiram.

Gostaríamos ainda de agradecer aos oradores das palestras da primeira semana e à

nossa monitora Anaís Dias pela sua ajuda imprescindível na elaboração do relatório e por todo

o apoio que nos deu ao longo do tempo.

FEUP 4

Algoritmos de Big Data

Índice

-Resumo……………………………………………………………………………………………….2

-Introdução……………………………………..……………………………..…………………..3

-Agradecimentos……………………….……………………….………………………………..4

-Índice………………………………………………………………………………………………….5

-Lista de figuras……………………………………………….………………………………...6

-Lista de tabelas…………………………………………………………………………………..7

1. Introdução ao conceito de Big Data……………………………………………………………………..8 2. Big Data e as Empresas……………………………………………………………………..………………….9 3. Big data e o Governo…………………………………………………………………………….…………...10 4. Processamento em Tempo Real e Distribuído…………………………………………………....11 5. Data Science………………………………………………………………………………………..……………..12

5.1. Aplicações de Data Science…………………………………………………….…………………..13 6. Data Mining………………………………………………………………………………………...……………….14 7. Machine Learning…………………………………………………………………………….………………...15 8. Da Recolha de Dados à Visualização de Informação………………………….…………………16

8.1. Algoritmos de Machine Learning……………………………………………….………………..17 8.2. Algoritmos de Data Mining…………………………………………………………..……………...18

9. Segurança e Criptografia…………………………………………………………………..………………...21 9.1 Algoritmos de encriptação…………………………………………………………..………………...21

10. Proposta do grupo……………………………………………………………………………..………………….23

-Conclusão…………………………………………………………………………………………..24

-Referências Bibliográficas…………………………………………………………………..25

FEUP 5

Algoritmos de Big Data

Lista de figuras

Figura 1 – Gráfico da Informação criada e Espaço de Armazenamento disponível em Exabytes nos anos 2005-2011.

Figura 2 - Fundamentos da Data Science.

Figura 3 - Representação visual de um exemplo de um algoritmo de Decision Tree .

Figura 4 - Representação visual de uma implementação do algoritmo de Regressão Logística.

Figura 5 - Representação visual de uma implementação do algoritmo Support Vector Machine.

Figura 6 - Esquema de uma Árvore de Decisão (decision tree).

Figura 7 - Alterações a uma conjunto de dados antes e depois de classificado pelo k-means .

Figura 8 - O funcionamento da etapa “SubBytes” do algoritmo AES.

Figura 9 - Possível design do site da nossa proposta.

FEUP 6

Algoritmos de Big Data

Lista de tabelas

Tabela 1 - Comparação entre os algoritmos C4.5, k-means e Apriori.

FEUP 7

Algoritmos de Big Data

1. Introdução ao conceito de Big Data

Big Data representa conjuntos de informação tão complexos ou extensos, que aplicações tradicionais de processamento de informação são incapazes de lidar com eles.

Com esta enorme quantidade de informação complexa, podemos, através de métodos de análise de dados avançados - como a análise do comportamento do público-alvo, análise preditiva, entre outras - extrair relações entre vários dados que podem ser usadas para prever tendências em áreas como negócios ou moda, prevenir doenças, combater crime, sugerir produtos com base em compras anteriores, entre muitas outras possibilidades.

“Big Data” é um termo relativamente novo, que surgiu no início dos anos 90. Não há certezas em relação a quem criou esta expressão, mas muitos dão crédito a John Mashey que, pode não a ter inventado, mas contribuiu para a sua popularidade.

O termo “Big Data” tornou-se mais popular a partir de 2000, quando Doug Laney, um famoso analista, associou a definição de Big Data com os três V’s:

- Volume: É a quantidade produzida e armazenada de informação. O tamanho desta determina a sua utilidade. Organizações armazenam dados de uma grande variedade de fontes, incluindo transações comerciais, redes sociais e informações de sensores ou dados transmitidos de máquina a máquina. No passado, armazenar tamanha quantidade de informações teria sido um problema – mas novas tecnologias têm aliviado a carga. Desde 2012 que aproximadamente 2,5 exabytes de informação são criados por dia, e esse número está a duplicar a cada 40 meses. Mais dados atravessam a internet a cada segundo que a quantidade total existente nesta há apenas 20 anos atrás.

- Velocidade: Para muitas situações, a velocidade da criação é ainda mais importante que o seu volume. Os dados fluem com uma velocidade sem precedentes e devem ser tratados rapidamente. Quanto mais rápida for a análise destes dados, mais flexível será uma empresa em relação aos seus concorrentes, por exemplo.

- Variedade: O tipo e natureza da informação. Os dados são gerados em todos os tipos de formatos - de dados estruturados, dados numéricos em bancos de dados tradicionais, até documentos de texto não estruturados, e-mail, vídeo, áudio, dados de cotações da bolsa e transações financeiras. Qualquer imagem postada numa rede social, sinais GPS de telemóveis. Muitas das mais importantes fontes de informação são relativamente recentes (Facebook , Instagram , Tumblr , entre outras).

Podemos também considerar duas dimensões adicionais quando nos referimos a Big

Data:

- Variabilidade: Além da velocidade e variedade de dados cada vez maiores, os fluxos de dados podem ser altamente inconsistentes com picos periódicos. Ainda mais quando falamos de dados não estruturados.

- Complexidade: Os dados vêm de várias fontes, o que torna difícil estabelecer uma relação, corresponder, limpar e transformar dados entre diferentes sistemas.

Para além disso, a veracidade da informação recolhida também é muito importante visto que a qualidade dos dados captados pode afetar drasticamente a exatidão da análise.[1][2]

FEUP 8

Algoritmos de Big Data

2.Big Data e as Empresas

Para explicar a importância e o impacto que Big Data provocou nas empresas,

tomemos como exemplo as livrarias.

Até agora, os livreiros conseguiam manter-se a par de que livros vendiam, quantos

vendiam e quais aqueles que permaneciam nas prateleiras. E o conhecimento acerca dos seus

clientes e transações ficava por aqui.

Assim que surgiram os negócios online como a Amazon ou o eBay , os vendedores

passaram a ter acesso a uma quantidade muito maior de informação em relação aos seus

consumidores: conseguiam saber não só o que os clientes compraram, mas também aquilo

para que olharam, como navegaram pelo site, quão influenciados por promoções e críticas

eram e similaridades entre indivíduos e grupos.

Pouco tempo depois, desenvolveram algoritmos para prever que livros os seus clientes

gostariam de ler a seguir, que iam tendo melhor desempenho cada vez que um consumidor

respondia ou ignorava uma recomendação.

Vendedores tradicionais em livrarias simplesmente não conseguiam aceder a esta

informação, não sendo, por isso, surpreendente que a Amazon tenha conseguido revolucionar

o conceito de livraria. Temos, contudo, de ter em mente, que este não foi o único fator em

jogo que resultou no declínio das livrarias : o surgimento de e-readers, preços mais baixos

praticados pelos vendedores online, maior facilidade de compra, maior variedade oferecida

pelas lojas online, etc.

Com este exemplo, conseguimos ver como a utilização de Big Data por parte das

empresas influencia o sucesso destas. Podemos portanto concluir que companhias geridas

tendo em conta informação dada por Big Data têm melhor desempenho, simplesmente porque

decisões com base em dados concretos são melhores que aquelas baseadas em intuição.[3]

FEUP 9

Algoritmos de Big Data

3.Big Data e o Governo

O desenvolvimento da ciência e da tecnologia levou ao aparecimento de novos

campos informáticos que procuram a automação face à interação pessoa-computador. Novas

oportunidades surgiram nestas últimas décadas relacionadas com a recolha e análise de

dados, uma área que antes era predominantemente ligada à estatística e à matemática, e

novas técnicas e aplicações continuam a ser descobertas com elevada frequência.

Em 2013 Edward Snowden chocou o mundo com as suas revelações polémicas. Nunca

em tempos anteriores tinha sido pensado sequer que existiam as ferramentas necessárias

para vigiar digitalmente 320 milhões de pessoas. Muitos países, nomeadamente as maiores

potências mundiais como os Estados Unidos da América, Inglaterra e França, adotaram esta

iniciativa clandestinamente, embora tal facto seja uma clara violação da lei e da privacidade

individual. É, portanto, necessário usar eticamente todas as informações recolhidas e ainda

ter o dever de as armazenar seguramente de modo a evitar qualquer tipo de fugas. [4] [5] [6]

É impossível negar o papel de Big Data nestes programas de vigilância. Através da

recolha de metadados e posterior análise dos mesmos, um perfil para cada cidadão é

construído com base nas suas interações digitais com outras pessoas. As técnicas de Machine

Learning e processamento distribuído são fundamentais para este processo, permitindo uma

eficiente e distribuída análise em tempo real de todas a informações recolhidas. [7]

FEUP 10

Algoritmos de Big Data

4.Processamento em Tempo Real e Distribuído

A capacidade de armazenar grandes quantidades de informação já é possível desde o

século passado e não é nada de excecional. O principal propósito de Big Data é a análise em

tempo real à medida que os dados vão surgindo (real-time big data analytics ). Para algumas

empresas, isto significa a capacidade de ter um avanço significativo sobre a concorrência,

enquanto para outras é uma etapa vital na construção de inteligência artificial e de sistema

autónomos. Para nós enquanto indivíduos as implicações também são bastante abrangentes,

desde aplicações para nos ajudar a saber as ruas com menos trânsito até sugestões mais

significativas de conteúdo e produtos em plataformas como a Netflix ou a Amazon .

Essencialmente, a análise de informação sofreu uma mudança de paradigma total, estando

cada vez mais centrada na recolha do maior número de amostras possível e demorando o

menor tempo possível para as analisar, obtendo no final conclusões mais próximas da

realidade, podendo assim ser efetuadas previsões com um alto grau de precisão.

No entanto, é também importante armazenar a informação após esta passar pelo

processo de interpretação, embora este passo seja cada vez menos importante com a redução

significativa do tamanho das amostras. Isto leva-nos de volta a outro problema. É

absolutamente necessário organizar a informação consoante o seu significativo mas sem

perder a capacidade de a manipular e analisá-la como um todo de maneira breve. Ainda há

cerca de 2 15anos atrás, uma espera de 40 minutos para obter o resultado de uma query à

base de dados era o habitual. Hoje em dia, esse tempo foi reduzido para menos de 1 minuto,

o que é praticamente instantâneo quando comparado com os processos analíticos do século

passado que podiam demorar dias. [5]

A grande quantidade de dados patente do paradigma Big Data e a velocidade com que

estes surgem obriga a uma análise distribuída em vários centros de processamento. A

variedade das amostras constitui ainda outro desafio, exigindo um pré-processamento logo

após a recolha destas, o que também auxilia na redução do tamanho. [8] [9]

Figura 1 – Informação criada e Espaço de Armazenamento disponível em Exabytes nos anos 2005-2011 (gráfico).

FEUP 11

Algoritmos de Big Data

5. Data Science

A Data Science afeta as pesquisas aplicadas e académicas em muitos domínios,

incluindo a tradução automática, o reconhecimento de voz, a robótica, os motores de busca,a

economia digital e por outro lado, também as ciências biológicas, informática médica,

cuidados de saúde, ciências sociais e humanidades. Há no entanto um grande influenciamento

sobre a economia, negócios e finanças.

Do ponto de vista empresarial, a Data Science é uma parte integrante da inteligência

competitiva - um campo emergente que engloba uma série de actividades como a Data

Analytics e a Data Mining . Do ponto vista geral Data Science é um campo interdisciplinar de

processos e sistemas com o objetivo de extrair conhecimento de dados em várias formas,

estruturadas ou não estruturadas, de alguns dos campos de análise de dados como

estatísticas, Machine Learning , Data Mining e Data Analysis .[10]

Em termos simples, é o guarda-chuva das técnicas utilizadas quando se tenta extrair

“insights” e informações a partir de dados.[11]

FEUP 12

Algoritmos de Big Data

5.1. Aplicações da Data Science

Pesquisa na Internet: Os motores de busca fazem uso de algoritmos de Data Science

para entregar melhores resultados para consultas de pesquisa em fração de segundos.

Anúncios digitais: Todo o espectro de marketing digital utiliza os algoritmos de Data

Science a partir de banners de exibição de “outdoors digitais”. Esta é a razão média para

anúncios digitais receberem CTR(Click-through rate) maior do que anúncios tradicionais.

Sistemas de recomendação: Os sistemas de recomendação não só tornam fácil,

encontrar produtos relevantes a partir de milhares de milhões de produtos disponíveis, mas

também acrescenta muito a experiência do usuário. Um grande número de empresas usam

este sistema para promover seus produtos e sugestões de acordo com as demandas do usuário

e relevância da informação. As recomendações são baseadas em resultados de pesquisa

anteriores dos usuários.[11]

Figura 2 – Fundamentos da Data Science

FEUP 13

Algoritmos de Big Data

6. Data Mining

Data mining , muito relacionado com o Big data , é a análise de conjuntos de

informação, desde 10 megabytes até 10 terabyte ou mais. A natureza destes sets pode ser

qualquer coisa armazenada num computador que se queira analisar. O objetivo do Data

mining é descobrir relações entre dados, agregá-los baseando-se nessas semelhanças e prever

relações em entradas novas com as mesmas características das já analisadas, ou seja, analisar

grupos de dados mais facilmente a partir de relações descobertas entre estes.[8]

Por exemplo; se o programa tem posse de dados relativos a pacientes num hospital, como o

histórico de doenças, regularidade de exercício físico, se é fumador,etc, este pode prever

que um paciente fumador que faz pouco exercício físico terá cancro.[9]

FEUP 14

Algoritmos de Big Data

7. Machine Learning

Como um esforço científico, a Machine Learning cresceu a partir da busca por

inteligência artificial. Já nos primeiros dias desta ideia, alguns pesquisadores estavam

interessados no desenvolvimento das máquinas de modo a conseguir que elas “aprendessem”

por si próprias através dos dados. Machine Learning é, então, o ramo da ciência da

computação que dá aos computadores a capacidade de aprenderem, sem ser introduzida

qualquer tipo de programação explícita. Por outras palavras, ela explora o estudo e

construção de algoritmos que podem aprender e fazer previsões sobre os dados.[7]

Existem alguns problemas que são resolvidos através da Machine Learning , como por

exemplo, um computador aprender a jogar um partida contra um adversário. Nesta situação,

o computador teria que avaliar as jogadas do adversário de modo a determinar os objetivos

do jogo e a compreender a estratégia para os concluir. Com o passar do tempo haveria maior

acumulação de dados a serem analisados e consequentemente um maior desenvolvimento da

estratégia. Entretanto, existem outros tipos de problemas aplicados a Machine Learning que

se distinguem através da forma como a máquina analisa a informação, por exemplo, a análise

visual da máquina que é feita por captação de imagens da realidade e comparação das

mesmas de modo a serem analisadas semelhanças e/ou igualdades.

São no entanto, aplicados diferentes algoritmos para cada tipo de problema

encontrado dependendo da forma de como os dados serão recolhida e analisados pela

Máquina.[7]

FEUP 15

Algoritmos de Big Data

8. Da Recolha de Dados à Visualização de Informação.

8.1. Algoritmos de Machine Learning

Aqui apresentamos algumas classes de algoritmos muito ligados a

aprendizagem por máquina, e portanto fundamentais no campo de Data

Mining.

Decision trees: Ferramenta de apoio que utiliza um gráfico com o formato de uma

árvore que possui decisões e suas possíveis consequências, incluindo resultados,

possibilidades de ocorrências, custos de recursos e utilidade. C4.5 é um exemplo de um

algoritmo que recorre a decision trees para efetuar classificações.[9]

Figura 3- Representação visual de um exemplo de um algoritmo de Decision Tree .

Naïve Bayes Classification: Família de classificadores probabilísticos simples com

base na aplicação de teorema de Bayes com fortes premissas de independência entre as

características.[10]

Por exemplo o classificador P(A|B) = (P(A\B)P(A))/P(B)

FEUP 16

Algoritmos de Big Data

Logistic Regression: A regressão logística é uma maneira estatística poderosa de

modelar um resultado binomial com uma ou mais variáveis explicativas. Ela mede a relação

entre a variável dependente categórica e uma ou mais variáveis independentes estimando

probabilidades e utilizando uma função logística.[9]

Figura 4 – Representação visual de um algoritmo de Regressão Logística.

Second Vector Machines: Algoritmo de classificação binária. Dado um conjunto de

pontos de 2 tipos em lugar n dimensional, é gerado um hiperplano (n - 1) dimensional para

separar esses pontos em 2 grupos. Digamos que existem pontos de 2 tipos em um papel que

são linearmente separáveis. O algoritmo encontra uma linha reta que separa esses pontos em

2, linha esta que se situa o mais longe possível de todos esses pontos.[9]

FEUP 17

Algoritmos de Big Data

Figura 5 – Representação visual de uma implementação de um algoritmo de Support Vector Machine

8.2.Algoritmos de Data Mining

A seguir apresentamos alguns dos algoritmos de associação e classificação de dados

mais populares empregues em Data Mining.

C4.5: C4.5 é um algoritmo que trabalha sobre um conjunto de dados já classificado e, de

seguida, gera um classificador, ou seja, gera árvores de decisão também conhecidas como

decision trees . Um classificador é a ferramenta do data mining que tenta prever novas

classes para categorizar cada elemento do conjunto de dados inicial. Partindo de classes e

dos atributos de cada elemento, o algoritmo cria um esquema de decisão baseado em ramos.

Este esquema verifica atributos, por exemplo se um paciente desse hospital tem um historial

familiar de cancro e baseado nisso distribui classes e atributos. Este algoritmo é eficiente,

porém, os dados de entrada necessitam de ser classificados e daí necessitar de um input

humano regular; por isto, C4.5 é classificado de algoritmo supervisionado.[9][10]

FEUP 18

Algoritmos de Big Data

Figura 6 - Esquema de uma Árvore de Decisão (decision tree ).

k-means: k-means é um algoritmo que, por contraste ao anterior, é quase totalmente

não-supervisionado, sendo apenas necessário indicar o número de clusters inicialmente.

Clusters são os grupos no qual os elementos estão inseridos num dado momento, que irá

alterar ao decorrer do mining , de modo a que os elementos mais semelhantes convirjam para

o mesmo cluster . O principal benefício do k-means é de precisar de pouco manuseamento

humano.[9]

Figura 7 - Alterações a uma conjunto de dados antes e depois de classificado pelo k-means .

FEUP 19

Algoritmos de Big Data

Apriori: Este algoritmo é baseado em “associações por regra” para descobrir relações

numa base de dados. Associação por regra é um método utilizado principalmente num

ambiente de supermercado, por exemplo, se um cliente compra queijo, também deve ter

comprado fiambre. Definindo o número de relações que se quer avaliar, a frequência que

uma dada relação acontece, e por último a probabilidade para esta mesma relação. Apriori é,

assim, um algoritmo fácil de aprender e versátil.[9][11]

É fundamental escolher o algoritmo mais indicado para o caso com que se está a lidar. A

seguir apresentamos de modo resumido as principais vantagens e desvantagens de cada um.

Tabela 1 - Comparação entre os algoritmos C4.5, k-means e Apriori.

FEUP 20

Algoritmos de Big Data

9. Segurança e criptografia

A própria natureza do processo do Big Data cria um desafio para a segurança dos

dados e do seu armazenamento. Se as ferramentas tradicionais não eram úteis para processar

e analisar os dados modernos, seriam ainda mais ineficientes na segurança desse processo.

Com o crescente uso de soluções tecnológicas de Big Data pelas empresas, existem

diversos riscos associados, como a exposição de dados sensíveis e confidenciais na internet e

o comprometimento dessas bases de dados com a exclusão, inclusão ou modificação de

informações.

As maiores falhas que estas soluções tecnológicas incorporam no seu desenvolvimento

estão relacionadas com a ausência de um mecanismo de autenticação, como nome de

utilizador e respetiva palavra-passe, e de canais seguros que permitam o acesso a essas

bases.

De modo a ser possível uma segurança sólida e consistente, devemos considerar

alguns pilares: profissionais capacitados para lidar com a proteção de dados e liderar equipas

que tenham esse objetivo, seguimento de boas práticas de mercado e a criação de canais

seguros para acessamento recorrendo, por exemplo, à encriptação. [12]

9.1. Algoritmos de encriptação

Atualmente existem diversos algoritmos de encriptação concebidos com os mais

variados objetivos.

Um algoritmo de encriptação tem como parâmetro uma chave criptográfica: um

“valor” secreto que modifica o algoritmo. Geralmente, os algoritmos de encriptação podem

ser conhecidos, mas não a respetiva chave. Para diferentes objetivos, existem dois tipos de

chaves: chaves simétricas e assimétricas (públicas). Os algoritmos de encriptação que

utilizam chaves simétricas fazem uso da mesma chave para encriptar e para desencriptar o

texto enquanto que os que utilizam chaves assimétricas lidam com duas chaves distintas: uma

de encriptação (geralmente pública) e uma de desencriptação (apenas conhecida pelo

destinatário da informação).

FEUP 21

Algoritmos de Big Data

Atualmente, o padrão de criptografia é o AES (Advanced Encryption System ou, em

português, sistema de encriptação avançada). Adotado inicialmente pelo governo dos Estados

Unidos, tornou-se um padrão efetivo em 2002. Este algoritmo é uma cifra de bloco, ou seja,

divide a informação por blocos, neste caso, de 128 bits cada. Após ter feito essa divisão,

coloca cada um dos 16 bytes (128 bits = 16 bytes) de cada bloco numa matriz (arranjo

bidimensional). Depois de ter atingido este tipo de organização, iniciam-se as manipulações

da informação: trocam-se os valores dos bytes, movem-se linhas, misturam-se colunas, numa

série de rondas que se repetem várias vezes. Um dos requisitos exigidos pelo governo e que

se mantém até hoje é o facto de o algoritmo utilizar uma chave simétrica, o que significa

que, neste caso, o processo de desencriptação é exatamente inverso ao de encriptação.

Na figura seguinte está descrita a etapa conhecida como “SubBytes”, a etapa em que

se substituem bytes por outros, de acordo com uma tabela de referência. [13]

Figura 8 - Representação visual da etapa “SubBytes” do algoritmo AES.

FEUP 22

Algoritmos de Big Data

10. Proposta do grupo

Figura 9 - Possível design do site da nossa proposta

Uma aplicação útil e inovadora deste processo pensada e sugerida por nós, iria

inserir-se no mercado imobiliário. Encontrar um novo sítio para viver é uma tarefa

dispendiosa tanto a nível de tempo como a nível emocional. A ideia que concebemos consiste

de uma forma simples numa aplicação com foco em pessoas que procuram casa, que se

conecta com as redes sociais da pessoa que a usa (mediante a sua aprovação) e procura nelas

dados como a existência de filhos, qual o tipo de entretenimento que o indivíduo prefere,

gostos que influenciam no formato da casa, informações globais que interferem na escolha de

uma residência. Após recolher e tratar toda esta informação, criaria todo um perfil do

comprador e sugeria assim um leque de opções que estivesse em concordância com esse

perfil. Alguns dos critérios para selecionar as recomendações seriam a distância ao local de

trabalho da pessoa, intensidade do trânsito ou presença de paragens de transportes públicos

perto de casa, proximidade a sítios de lazer como locais de espetáculos ou recintos

desportivos e ainda a proximidade a espaços verdes, tudo tendo em conta os gostos do

utilizador.

FEUP 23

Algoritmos de Big Data

Conclusão

Com base no que foi abordado ao longo do relatório concluímos que Big Data é um

campo muitíssimo abrangente e em crescimento exponencial. Com a quantidade de

informação criadas a cada momento a aumentar drasticamente, novos métodos e novos

algoritmos têm que ser criados para assegurar que a eficiência dos atuais é mantida ou

melhorada enquanto que o tempo de processamento se mantenha o mesmo ou seja

otimizado. Podemos ainda concluir que as possibilidades de manipular os dados são imensas,

o que pode dar origem a software e produtos inovadores no futuro.

FEUP 24

Algoritmos de Big Data

Referências Bibliográficas

[1] Hilbert, Martin, 2015 “Big Data for Development: A Review of Promises and Challenges. Development Policy Review." Acedido a 22 de outubro de 2016 em http://www.martinhilbert.net/big-data-for-development/ [2] John R. Mashey, 1998 "Big Data ... and the Next Wave of InfraStress" (PDF). Acedido a 22 de outubro de 2016. [3] Andrew McAfee, Erik Brynjolfsson, 2012, “Big Data:The Management Revolution”. Acedido a 22 de outubro de 2016 em http://www.rosebt.com/uploads/8/1/8/1/8181762/big_data_the_management_revolution.pdf [4] Ewen Macaskill, Gabriel Dance, 2013, “NSA Files Decoded: What the Revelations mean for you ” . Acedido a 19 de Outubro em https://www.theguardian.com/world/interactive/2013/nov/01/snowden-nsa-files-surveillance-revelations-decoded/ [5] Andrew Griffin, 2016, “UK surveillance agencies illegally kept data on British citizens' communications, spying court finds ”. Acedido a 20 de Outubro de 2016 em http://www.independent.co.uk/life-style/gadgets-and-tech/news/uk-spying-surveillance-investigatory-powers-bill-tribunal-gchq-intelligence-agencies-a7366386.html [6] Angelique Chrisafis, 2013, “France runs vast electronic spying operation using NSA-style methods ”. Acedido a 20 de Outubro de 2016 em https://www.theguardian.com/world/2013/jul/04/france-electronic-spying-operation-nsa [7] Russell, Stuart; Norvig, Peter (2003) [1995]. “Artificial Intelligence: A Modern Approach” (Segunda edição) [8] Bill Palace, 1996, “Data Mining: What is Data Mining?”. Acedido a 19 de Outubro de 2016 em [9] Raymond Li, 2015, “Top 10 Data Mining Algorithms, Explained”. Acedido a 19 de Outubro de 2016 em http://www.kdnuggets.com/2015/05/top-10-data-mining-algorithms-explained.html [10] Wikipedia, 2016, “C4.5 algorithm”. Acedido a 21 de outubro de 2016 em https://en.wikipedia.org/wiki/C4.5_algorithm [11] Wikipedia, 2016, “Association rule learning”. Acedido a 31 de outubro de 2016 em https://en.wikipedia.org/wiki/Association_rule_learning [12] Segurança da Informação, “Criptografia”. Acedido a 29 de outubro de 2016 em http://seguranca-da-informacao.info/criptografia.html [13] National Institute of Standards and Technology, 2001, “ADVANCED ENCRYPTION STANDARD (AES)”. Acedido a 31 de outubro de 2016 em http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf

FEUP 25

Algoritmos de Big Data

Figura 1 - Gráfico da Informação criada e Espaço de Armazenamento disponível em

Exabytes nos anos 2005-2011. Adapatado de https://www-01.ibm.com/software/se/SmarterBusiness2013/

Figura 2 - Fundamentos da Data Science. Retirado de https://www.flickr.com/photos/altimetergroup/16139945728

Figura 3 - Representação visual de um exemplo de um algoritmo de Decision Tree . Retirado de http://www.kdnuggets.com/2016/08/10-algorithms-machine-learning-engineers.html

Figura 4 - Representação visual de uma implementação de um algoritmo de Regressão Logística. Retirado de http://www.kdnuggets.com/2016/08/10-algorithms-machine-learning-engineers.html

Figura 5 - Representação visual de uma implementação de um algoritmo de Support Vector Machine. Retirado de http://www.kdnuggets.com/2016/08/10-algorithms-machine-learning-engineers.html

Figura 6 - Esquema de uma Árvore de Decisão (decision tree). Retirado de http://www.sfs.uni-tuebingen.de/~vhenrich/ss12/java/homework/hw7/

Figura 7 - Alterações a uma conjunto de dados antes e depois de classificado pelo k-means . Retirado de https://phrasee.co/the-three-types-of-machine-learning/

Figura 8 - O funcionamento da etapa “SubBytes” do algoritmo AES. Retirado de

https://pt.wikipedia.org/wiki/Advanced_Encryption_Standard#/media/File:AES-SubBytes.svg

Figura 9 - Possível design do site da nossa proposta. Adapatado de um template retirado de http://w3layouts.com

Tabela 1 - Comparação entre os algoritmos C4.5, k-means e Apriori. Adaptado da tese de mestrado “Ferramenta para Text Mining em Textos completos” de Hugo Rodrigues que pode ser obtida em https://sigarra.up.pt/feup/pt/pub_geral.pub_view?pi_pub_base_id=143466

FEUP 26