17
Pontifícia Universidade Católica de São Paulo – PUC-SP Faculdade de Ciências Exatas e Tecnologia Ciência da Computação Estudo e desenvolvimento de uma plataforma de Big Data para coleta e análise de dados em tempo real Relatório Final Professor Doutor Daniel Couto Gatti Aluno Newton Juniano Calegari São Paulo 2013

Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

Embed Size (px)

DESCRIPTION

"Análise e desenvolvimento de uma plataforma de big data para coleta de dados em tempo-real" Projeto de análise e visualização de mensagens publicadas no Twitter durante os protestos ocorridos em Junho de 2013 em todo o Brasil. Os dados analisados são mostrados utilizando a ferramenta de visualização Gephi.

Citation preview

Page 1: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

 

Pontifícia Universidade Católica de São Paulo – PUC-SP

Faculdade de Ciências Exatas e Tecnologia

Ciência da Computação

Estudo e desenvolvimento de uma plataforma de Big Data

para coleta e análise de dados em tempo real

Relatório Final

Professor Doutor Daniel Couto Gatti

Aluno Newton Juniano Calegari

São Paulo

2013

Page 2: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

 

Resumo

O propósito deste projeto de pesquisa foi definido pelas observações do aluno e do professor

orientador a respeito do tema big data. Assunto que se tornou frequente em diferentes áreas

do conhecimento, de computação à sociologia, da economia à medicina.

Primeiramente, os assuntos pesquisados e discutidos no projeto eram diretamente

relacionados à big data, desde aplicações, frameworks a discussões sobre o tema. Durante os

debates foi percebido que este termo é, assim como cloud computing, fortemente adotado com

viés comercial. Considerando isto, uma nova abordagem foi tomada para a pesquisa: o tema

data Science foi considerado, tanto por ser comumente mais empregado na academia quanto

por ser uma área bastante abrangente, e big data deixou de ser o foco para ser um tópico no

estudo da ciência dos dados.

Então, com esses novos rumos, a pesquisa, que a priori estuda big data e seu contexto,

teve mais tópicos relevantes considerados. A área de data science, campo que aborda big

data, BI, visualização de dados, inteligência artificial, algoritmos de análise de dados, etc.,

foi estudada. Projetos, sites e estudos de casos relacionados ao tópico foram vistos.

Ademais, o assunto de redes complexas passou a fazer parte da pesquisa, e neste

tópico houve maior avanço e resultados interessantes.

Como há a interdisciplinaridade entre essas áreas de estudo, os projetos e casos vistos

na campo das ciências das redes tinham relação com temas abordados durante a pesquisa

sobre data science e visualização de dados.

Inclusive   foi   na   interseção   destas   áreas   que   surgiram   projetos   desenvolvidos  

durante  esta  pesquisa.  O  projeto  mostrado  neste  relatório  se  trata  de  uma  análise  feita  

dos  dados  referentes  aos  protestos  acontecidos  durantes  o  mês  de  junho  nas  principais  

capitais  do  país.  E  neste  projeto  foram  utilizados  conceitos  e  ferramentas  de  visualização  

de  dados  e  ciência  das  redes,  como  o  Gephi  –  software  open  source  para  mapeamento  e  

visualização  de  grafos  e  redes.  

Page 3: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

 

Sumário

Resumo   2  Sumário   3  Introdução   4  Big  Data:  conceito,  tecnologias  e  aplicações   5  O  estudo  voltado  para  Data  Science   7  Além  da  ciência  dos  dados,  a  ciência  das  redes   9  Desenvolvimento  de  projetos  utilizando  análise  de  dados  e  redes   11  Conclusão   15  Agradecimentos   16  Referências   17  

Page 4: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

4  

Introdução

A “internet das coisas”, apresentada com a Internet-Zero por Gershenfeld, Krikorian e Cohen

(2004), onde temos os objetos do dia a dia conectados à rede, está presente no cotidiano. E

neste cenário atual, com todos os dispositivos conectados gerando dados e metadados o tempo

todo, surgiu mais um desafio para processar, armazenar e trabalhar com quantidades massivas

de gigabytes. A resposta para este desafio aparece como um dos objetos de estudo de big

data.

O custo de armazenamento de dados se reduziu bastante nos últimos anos, e isso

contribuiu com a implementação de sistemas que trabalham com grandes quantidades de

gigabytes. Devido a isso, termos como Business Intelligence (BI), Big Data, Data Science,

entre outros se tornaram mais frequentes.

A primeira parte da pesquisa compreendeu o tema de big data e suas aplicações.

Posteriormente os conceitos e tecnologias que envolvem data science e por fim, redes

complexas e visualização de dados.

Finalizada a parte de fundamentação teórica, foram desenvolvidos testes e aplicações

utilizando algumas técnicas e ferramentas estudadas, como o Gephi, para visualização de

redes e grafos, bibliotecas da linguagem Python para coleta de dados e algoritmos de extração

e manipulação de dados. Ao final, pode se ver algumas imagens ilustrando os resultados dos

experimentos.

Page 5: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

5  

Big Data: conceito, tecnologias e aplicações

Conjuntos de dados na escala de petabytes fazem parte do dia a dia. Cada vez mais sites

produzem centenas de terabytes de dados diariamente. Esse crescente volume de dados

gerados tanto pelos usuários, quanto pelos dispositivos (metadados, em maior parte) requer

esforços e tecnologias adequadas para manipulação desses montantes. Big data propõe

ferramentas e técnicas para trabalhar com cenários assim.

O termo big data é geralmente apresentado com os “5 Vs”: volume, variedade,

velocidade, veracidade e valor.

O volume de dados gerado é, geralmente, em escala de terabytes, e os sistemas

produzem estes dados de maneiras estruturada e não estruturada, caracterizando assim a

variedade. Devido ao uso constante, estes sistemas produzem os dados a todo o momento, e a

velocidade para processá-los e armazená-los, quando necessário, é um ponto importante nas

tecnologias de big data. Deve-se constar da autenticidade e certeza destes dados, se a fonte é

confiável e condizente. Quando os milhões de bytes armazenados se tornam informação, e

esta é utilizada para determinado fim, é mostrado o valor que tais dados possuem.

As tecnologias de armazenamento estão mais diversificadas para atender as demandas

de big data. Não somente modelos de sistemas de bancos de dados relacionais são utilizados.

Pelo fato de muitos dos dados não serem necessariamente estruturados, bancos de dados com

modelos orientados a documento, chave-valor e colunares são empregados em sistemas desse

nível. Além disso, toda a infraestrutura de sistemas assim deve ser pensada de maneira

diferente. A utilização de clusters de servidores e sistemas distribuídos deve ser considerada

quando se trata de sistemas escaláveis como estes.

Serviços financeiros, educação, saúde e agricultura são apenas algumas das áreas que

podem ter aplicações de big data, como é mostrado no relatório Big Data, Big Impact: New

Possibilities for International Development (2012). Um dos estudos de caso apontado no

relatório do World Economic Forum, a análise de dados é empregada no campo da saúde.

Logo após o catastrófico terremoto que atingiu o Haiti em 2010 pesquisadores utilizaram

dados gerados a partir dos dispositivos móveis, em maior parte os celulares, para entender o

movimento dos refugiados e os riscos para saúde decorrentes do desastre e desta migração.

Foram coletados dados de aproximadamente 2 milhões de SIM cards. Com estes dados foi

possível analisar com precisão o destino de pelo menos 600 mil pessoas deslocadas de Porto

Príncipe. Mais tarde, naquele mesmo ano o país viera a sofrer com um surto de cólera, e o

Page 6: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

6  

time de pesquisadores utilizou a análise de dados de dispositivos móveis para acompanhar o

movimento das pessoas das áreas afetadas. Esses dados e informações foram disponibilizados

para o governo e organizações humanitárias e estes órgãos utilizam disto para se prepararem

para outros possíveis surtos e organizarem respostas emergenciais para novos desastres.

Page 7: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

7  

O estudo voltado para Data Science

Mesmo abrangendo uma infinidade de aplicações e conceitos, big data pode ser visto como

um campo dentro da área de estudo conhecida como data science. Área esta que compreende

outros tópicos bastante relevantes como visualização de dados, modelos estatísticos,

manipulação de dados e até mesmo ética e privacidade, e que possui big data como subárea de

estudo a partir da interseção destes tópicos.

Durante a pesquisa foi iniciado um curso ministrado pelo professor Bill Howe, da

Universidade de Washington, na plataforma Coursera, chamado “Introduction to Data

Science”. Este curso contribuiu para o andamento da pesquisa apresentando assuntos

importantes relacionados a análise e manipulação de dados.

O professor Bill Howe afirma que esta ciência se trata do estudo e desenvolvimento de

produtos que trabalham com dados (data products), e estes contribuem para terceiros

utilizarem dados, podem ajuda-los na comunicação de resultados e contribuir com suas

próprias estatísticas.

Dentre os assuntos estudados durante a o curso e a pesquisa estão álgebra relacional e

sistemas de bancos de dados relacionais, a importante técnica de MapReduce, constantemente

empregada em análise de quantidades massivas de dados, sistemas de armazenamento não

relacionais, análise estatística básica, inteligência artificial, com tópicos de aprendizado de

máquina, e visualização de dados.

O modelo de MapReduce é amplamente utilizado nos campos de data science e big

data, e isso pelo fato de permitir o processamento de grandes volumes de dados por meio de

processamento paralelo. Basicamente, o modelo de MapReduce consiste em receber grande

quantidade de dados de entrada, um grande dataset, por exemplo, e dividir este montante de

dados para serem processados em diferentes workers em um cluster. Após a divisão e a

distribuição da computação através do cluster, os dados recebem a função map() e é realizado

o mapeamento destes dados. Finalizada esta etapa, ocorre a ordenação, que constitui de uma

etapa de “pré-agrupamento” dos dados, onde dados de tipos similares são agrupados para

passarem pela função reduce() do modelo e assim constituir o resultado final. Estes passos

podem ser visualizados na ilustração abaixo.

Page 8: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

8  

Passos de um processo de contagem de palavras utilizando o modelo de MapReduce.

(http://xiaochongzhang.me/blog/wp-content/uploads/2013/05/MapReduce_Work_Structure.png)

Atualmente há diversos sistemas que implementam o modelo de MapReduce, e entres

os mais populares está o projeto Hadoop, com licença open-source, mantido pela fundação

Apache.

A área de data science, emergente de diferentes disciplinas, é muito abrangente e

contempla inúmeros problemas e casos que envolvem análise de dados em larga escala.

Campo este que é adequado tanto para pesquisadores com fortes conhecimentos em

matemática e estatística quanto para engenheiros de software.

Page 9: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

9  

Além da ciência dos dados, a ciência das redes

Para entender como os dados são gerados pelos usuários, um novo campo passou a ser

estudado durante a pesquisa – a ciência das redes, mais precisamente redes complexas.

A primeira etapa de estudos sobre redes complexas foi acerca de sistemas complexos.

Foi necessária uma abordagem superficial deste campo para compreender o assunto de redes

complexas. Sistemas complexos são estudados em diferentes disciplinas e áreas do

conhecimento, desde a Teoria Geral dos Sistemas, definida por Bertalanffy, a Cibernética,

Redes, entre outras. São característicos pela auto-organização, evolução e adaptação, a

relação entre os elementos em um sistema complexo propicia a ocorrência da propriedade

emergente, particular neste tipo de sistema. Barabási afirma que por trás de cada sistema

complexo existe uma rede que mapeia as interações entre seus componentes. Portanto, é mais

claro o entendimento de um sistema complexo quando há uma rede mapeando-o.

Característica que surge no estudo das redes é a universalidade, em que, ainda

segundo Barabási (2012), a arquitetura e a evolução das redes que emergem em vários

domínios da ciência, natureza e tecnologia são suficientemente similares, permitindo-nos

usufruir de ferramentas matemáticas comuns para explorar estes sistemas.

A teoria dos grafos, originada com o problema das 7 pontes de Konigsberg

apresentado por Leonhard Euler em 1736, é uma das ferramentas matemáticas contida no

estudo de redes complexas.

Relativamente nova, esta área de estudos teve início com o modelo de redes

randômicas proposto por Erdós e Renyi em 1959, onde, de acordo com o modelo, as redes

reais possuíam características similares e todos os nós de uma rede teriam um número

aproximado de conexões – ou seja, adicionando links de maneira aleatória, quase todos os nós

da rede terão graus próximos. Mais tarde, em 1967, o professor e pesquisador de Harvard,

Stanley Milgran, apresentou a teoria dos “Six degrees”, em que cada pessoa se conecta a

qualquer outra por, em média, seis outras pessoas. A formação e estudo de redes, se dava, no

início à disciplina de sociologia, de modo que Mark Granovetter viria a publicar suas

conclusões nesta área em 1973, apresentando a ideia de clusters, mostrando que a sociedade

se organiza em pequenos grupos fortemente conectados, que se interligam a outros grupos por

meio de vínculos fracos, e são estes vínculos fracos que permitem que um pequeno grupo se

comunique com o mundo exterior. Posteriormente, Watts e Strogatz apresentaram métricas e

Page 10: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

10  

definições para classificar as redes, além de observarem determinadas propriedades, como os

hubs, o coeficiente de clusterização, e os small words.

As pesquisas no campo das redes complexas, aliadas com os estudos de data science e

big data, forneceram bases para o desenvolvimento, em colaboração com o professor

orientador e outros professores, de aplicações envolvendo estes temas para análise de alguns

fenômenos sociais.

Page 11: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

11  

Desenvolvimento de projetos utilizando análise de dados e redes

Após o embasamento teórico nas áreas estudadas, foram desenvolvidos dois projetos

utilizando conhecimentos da interseção desses campos. O primeiro projeto foi a coleta e

análise de dados da rede social Twitter durante 8 horas no dia 17 de junho, quando ocorreram

protestos em várias localidades do país.

No dia 17 de junho de 2013, data em que ocorreu grande mobilização para protestar

contra o aumento da tarifa de ônibus e outros assuntos em diversas cidades do país, porém

com maior repercussão os acontecidos em São Paulo, Rio de Janeiro e Brasília.

Utilizando a linguagem de programação Python e a biblioteca TwythonStreamer

foram coletados exatos 410215 tweets contendo a palavra “protesto” a partir do stream de

publicações feitas entre as 19h do dia 17 e 3h do dia 18 de junho.

Os dados obtidos por meio de data mining na rede social são formatados segundo o

padrão JSON, porém, para utilizar estes dados em ferramentas como o Gephi foi necessário

editá-los e formata-los na estrutura de arquivo CSV. Como o arquivo obtido possui 1.4 GB e

mais de 400 mil linhas, editá-lo manualmente é completamente inviável, então, para isso

foram criados alguns scripts utilizando a linguagem Python. O programa lê completamente o

arquivo com raw data, processa linha por linha e retorna um novo arquivo com os dados

estruturados em CSV, e não mais em JSON.

O Twitter possibilita ao usuário cadastrado disponibilizar sua geolocalização ao

publicar uma mensagem, no entanto, apenas uma pequena parcela dos usuários utiliza este

recurso. Como reflexo disso, apenas 6332, das 410 mil mensagens, possuem coordenadas de

latitude e longitude indicando a localização aproximada da origem da publicação.

Considerando estas questões, foi possível plotar em um mapa a origem dos tweets durante

determinado período das manifestações.

Com o uso da ferramenta Gephi e do plugin GeoLayout, foi obtida a ilustração

mostrada a seguir.

Page 12: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

12  

Pontos representando mensagens publicadas no Twitter durante sete horas, no dia 17 de junho, quando

ocorreram manifestações em todo país.

É possível perceber maior concentração de mensagens publicadas nas regiões das

capitais e grandes cidades, bastante evidente em São Paulo, Rio de Janeiro, Brasília e Porto

Alegre. Dentre as publicações mostradas na imagem, foi notado que 49% eram feitas pelo

aplicativo do Twitter para Android, 42% a partir do aplicativo para iPhone, 4% foram

publicadas, necessariamente com fotos, pelo aplicativo do Instagram, e o restante ficou divido

entre site do Twitter na versão para celulares, aplicativos para Windows Phone, para Symbian

e outros.

Ademais, também foi possível analisar o conteúdo das mensagens publicadas e obter

as 50 hashtags mais frequentes e mostra-las conforme a imagem abaixo, onde cada palavra

(hashtag encontrada) tem seu tamanho ajustado proporcionalmente ao número de ocorrências,

com tamanho da fonte variando entre 13pt, para o número mínimo de ocorrências, neste caso

146, à 38pt, o número máximo - igual 10159.

Page 13: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

13  

Page 14: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

14  

Ilustração das hashtags mais utilizadas nas 410 mil mensagens contendo a palavra “protesto”, coletadas a

partir do Twitter no dia 17 de junho.

Estes exemplos foram desenvolvidos utilizando os conceitos estudados durante a

pesquisa. Conceitos de data mining, de estatística, como distribuição de frequência,

algoritmos de análise de texto e visualização de dados foram aplicados.

Page 15: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

15  

Conclusão

Evidência clara que a interdisciplinaridade se faz necessária para o aprendizado e uso

das técnicas estudadas na pesquisa. Para todo e qualquer projeto que envolva análise de

grande contingente de dados pelo menos duas ou mais técnicas e ferramentas são utilizadas,

como no processo de data munging, onde dados em determinado formato são coletados de

uma fonte de armazenamento, processados e armazenados, em outro formato, em outro local,

além de, muitas vezes, serem apresentados visualmente e, para isso, utilizam-se técnicas de

visualização de dados.

É possível afirmar ainda que, muitas vezes, os projetos nesta área apresentam

resultados obtidos a partir da interseção de três conjuntos e campos de estudos diferentes,

porém, próximos. E são eles: ciência dos dados, design e visualização de dados, ciência das

redes e sistemas complexos.

Instituições acadêmicas, empresas privadas e o governo podem se beneficiar do uso e

aplicação destes conceitos. A análise de dados e metadados podem facilitar a tomada de

decisão, identificar padrões e até mesmo previsões de fenômenos futuros. A ciência das redes,

principalmente, é perfeitamente adequada ao estudo e identificação de fenômenos e aspectos

sociais tanto de comunidades quanto de outros sistemas complexos.

O andamento da pesquisa possibilitou grande avanço na compreensão destes temas

pelo aluno orientado e para o professores que colaboraram diretamente no estudo. Inclusive

foi preparada uma oficina, intitulada “Introdução à Redes Complexas e Visualização de

Dados”, apresentada no evento “MediaLab Week São Paulo” acontecido no campus

Consolação da PUC-SP.

A finalização desta pesquisa marca o início e surgimento de outros estudos e projetos,

envolvendo estes campos, a serem desenvolvidos por alunos e professores da Faculdade de

Ciências Exatas e Tecnologia. E esta terá continuação com o pré-projeto de ingresso no

mestrado.

Page 16: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

16  

Agradecimentos

A contribuição do Professor Diogo Cortiz, do Departamento de Computação da

FCET, PUC-SP, foi de grande valia para a pesquisa e elaboração do relatório. Sua orientação,

ao lado do Professor Doutor Daniel Couto Gatti, ajudou na exploração de novos temas e

incentivou novas pesquisas e projetos acadêmicos.

Page 17: Documento de Iniciação Científica - Estudo utilizando big data, twitter e gephi

17  

Referências

• GERSHENFELD Neil; KRIKORIAN Raffi; COHEN Danny. The Internet of

Things. Scientifc American: Outubro, 2004. Disponível em <  

http://cba.mit.edu/docs/papers/04.10.i0.pdf>. Acesso em: 08 jul. 2013.

• BASTIAN M., HEYMANN S., JACOMY M. Gephi: an open source software for

exploring and manipulating networks. International AAAI Conference on Weblogs

and Social Media: Maior: Maio, 2009.

• WORLD ECONOMIC FORUM (2012). Big Data, Big Impact: New Possibilities for

International Development. Disponível em

<http://www3.weforum.org/docs/WEF_TC_MFS_BigDataBigImpact_Briefing_2012.

pdf>. Acesso em: 08 jul. 2013.

• HOWE, Bill. Introduction to Data Science. Washington University. Maio, 2013.

Disponível em: <https://class.coursera.org/datasci-001/class/index>. Acesso em: 13

jul. 2013.

• DEAN, Jeffrey; GHEMAWAT, Sanjay. MapReduce: Simplified Data Processing

on Large Clusters. Mountain View: Google Inc, 2004. Disponível em:

<http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.

com/pt//archive/mapreduce-osdi04.pdf>. Acesso em: 12 jul. 2013.

• BARABÁSI, Albert-Lázló. Linked: A nova ciência dos networks. São Paulo:

Leopardo Editora. 2009.

• BARABÁSI, Albert-Lázló. Network Sciene. Livro eletrônico: Capítulo 1. 2012.

Disponível em:

<http://barabasilab.neu.edu/networksciencebook/download/network_science_Novemb

er_Ch1_2012.pdf>. Acesso em: 14 jul. 2013.

• s. a. (s. d.). Whats is Data Munging?. Disponível em:

<http://eduunix.ccut.edu.cn/index2/html/oracle/O'Reilly%20-

%20Perl.For.Oracle.DBAs.eBook-LiB/oracleperl-APP-D-SECT-1.html>. Acessado

em: 15 jul. 2013.