SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
1
Aplicações não convencionais
de grafos
Ms. Mauro C. Pichiliani (mauro@pichiliani.com.br)
@pichiliani
2
Quem sou eu
• Mestre e doutorando em computação pelo ITA
• Escritor da SQL Magazine, Fórum Access, Java
Magazine, SQLServerCentral.com e outras
• Colaborador do iMasters há 13 anos
• Autor do livro “Conversando sobre banco de dados”
• Co-produtor do podcast DatabaseCast
• Consultor independente e autor de cursos on-line
3
Visualizações diferentes - Sankey
 Gráficos Sankey
 Exemplo: GPs, pilotos, equipes do campeonato de F1 de 2012.
Fonte: http://bit.ly/1vBulbv
 Mostra associação de vitórias e pontos.
 Feito em Phyton + d3 + R
4
Visualizações diferentes - Sankey
 Exemplo: mesmas imagens enviadas a múltiplos subreddits
(reddit.com). Fonte: http://bit.ly/1zOyV17
 Mostra fluxo de imagens. Feito em Phyton + d3 + R
5
Visualizações diferentes - Sankey
 Sankey com Google Charts
 Fonte: http://bit.ly/1BU1qSm
 DEMO: ExemploSankeyGraphs.html
 Exemplo em Neo4J? http://bit.ly/1zOFssC
6
Visualizações diferentes – gráficos circulares
 Nós na borda do círculo e arestas “cruzando” o
interior com largura/cor variada
7
Visualizações diferentes – gráficos circulares
 Exemplo: visualização de dados de navegação de páginas com dados do Google Analytics
 Tecnologia: Google Java Data API (Google Analytics) + Neo4J (Cypher) + Circos
 Fonte: http://bit.ly/1BKUg1j e https://github.com/datablend/neo4j-google-analytics
I3 (azul) são referências externas e
representam maior parte do tráfego
Mesmo gráfico, com círculo externo
mais “limpo”
8
Visualizações diferentes – gráficos circulares
 Exemplo: visualização de diálogos de personagem em peça de teatro (dramatic network
graph). Projeto de disciplina da faculdade de Nebraska-Omaha
 Tecnologia: Excel + Cytoscape (http://www.cytoscape.org/)
 Fonte: http://bit.ly/1A0mSPi
Analise de diálogos para ver quem fala mais com quem
9
Visualizações diferentes – Treemap
 Retângulos divididos por área e interativos (hierarquia)
 Muitos exemplos e história:
http://www.cs.umd.edu/hcil/treemap-history/
Medalhas na olimpíada 2002
Área por país e tipo de medalha
Tecnologia: R +
Fonte: http://bit.ly/1BL1IcC
Métricas do Código fonte do Neo4J
Área por LOC
Tecnologia: JArchitect
Fonte:http://www.jarchitect.com/Doc_
Treemap
10
Visualizações diferentes - Treemap
 TreeMap com Google Charts
 Fonte: http://bit.ly/1B6WVBD
 DEMO: ExemploTreeMap.html
11
Case: Grafos e MOBA
 Case: identificação de padrões de combate
vencedores em jogo tipo MOBA
 Referência: Pu Yang, Brent Harrison, and David L. Roberts. Identifying Patterns in Combat
that are Predictive of Success in MOBA Games. In Proceedings of the Foundations of Digital
Games 2014 Conference (FDG 14). 2014.
 Dowload [PDF] http://www.fdg2014.org/papers/fdg2014_paper_36.pdf
12
Case: Grafos e MOBA
 Metodologia:
13
Case: Grafos e MOBA
 Nós são jogadores. Nome do nó indica time (T1 e T2) e papel (Carry,
Ganker, Initiator, Disabler, Tank). Nó adicional: morte
 Aresta direcionada indica interação (causou dano ou curou)
 Partidas separadas em intervalos de 9 minutos (4 fases)
 Feature selection a partir de métricas de cada grafo. Exemplos:
 Centralidade Eigenvector do T2 Disabler na fase de enhancing
 Out-degree do Carry do T2 na fase de develpoing
14
Case: Grafos e MOBA
 Atributo de classificação: vitória
 Uso de árvore de decisão para geração do modelo
 Interpretação de regras para padrões e táticas de combate para cada
papel. Apresentação de regras como grafos:
15
Algoritmos, algoritmos everywhere
 Muitos algoritmos para grafos com diferentes resultados!
 Cabe a você interpretar o significado. Alguns:
 Connected components, Clique, topological sorting, minimum,
spanning tree, shortest path, transitive closure and reduction,
matching, Eurelian Cycle, edge and vertex conectivity, network
flow, beautification…
 Algoritmos com figuras:
 http://bit.ly/1BaFLC6 e http://bit.ly/1wXYo8h
 Onde encontro os algoritmos?
 Livros, muitos livros
 Dicionário de algoritmos: http://xlinux.nist.gov/dads//
 Engines de busca de algoritmos:
 http://code.openhub.net/
 https://searchcode.com/
 http://www.codase.com/
 https://code.google.com/p/chromium/codesearch
 http://www.krugle.org/
16
Conclusão
 Grafos podem ser utilizados em muitos cenários
 Comece com exemplos básicos e depois fuja deles
 Procure outras formas de visualização além de linhas e
bolinhas
 Muitas oportunidades em diferentes áreas, principalmente
analytics
 Big data é a bola da vez. Aproveite!
 Saiba fazer a ponte entre um algoritmo, seu resultado e o
domínio do problema
 Aprofunde-se nos detalhes técnicos somente depois de saber
o problema, resultados esperados e análise
17
Perguntas?
Ms. Mauro C. Pichiliani (mauro@pichiliani.com.br)
@pichiliani

Mais conteúdo relacionado

Mais procurados

Mais procurados (12)

Introdução ao SQLAlchemy
Introdução ao SQLAlchemyIntrodução ao SQLAlchemy
Introdução ao SQLAlchemy
 
SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?
 
SQLAlchemy - Desenvolvendo uma aplicação com Python
SQLAlchemy - Desenvolvendo uma aplicação com Python SQLAlchemy - Desenvolvendo uma aplicação com Python
SQLAlchemy - Desenvolvendo uma aplicação com Python
 
00011
0001100011
00011
 
000
000000
000
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
 
Visao geralti netshoes04
Visao geralti netshoes04Visao geralti netshoes04
Visao geralti netshoes04
 
Visao geralti netshoes04
Visao geralti netshoes04Visao geralti netshoes04
Visao geralti netshoes04
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Apresentação c++ UFC-Quixadá
Apresentação c++ UFC-QuixadáApresentação c++ UFC-Quixadá
Apresentação c++ UFC-Quixadá
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 

Semelhante a Aplicações não convencionais de grafos

Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowpichiliani
 
Mining software repositories
Mining software repositoriesMining software repositories
Mining software repositoriesRafael Rossi
 
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re....Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...iMasters
 
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Renato Groff
 
G.O. - Grafos Online
G.O. - Grafos OnlineG.O. - Grafos Online
G.O. - Grafos Onlinedudleyy
 
.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022
.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022
.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022Renato Groffe
 
Ampliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonAmpliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonIP10
 
Renderizando widgets via JSON no Flutter
Renderizando widgets via JSON no FlutterRenderizando widgets via JSON no Flutter
Renderizando widgets via JSON no FlutterDenis Velrino
 
Tecnologias e ferramentas para o desenvolvimento web
Tecnologias e ferramentas para o desenvolvimento webTecnologias e ferramentas para o desenvolvimento web
Tecnologias e ferramentas para o desenvolvimento webArtur Magalhães
 
MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0Renato Groff
 
Geração de Código com o MyGeneration
Geração de Código com o MyGenerationGeração de Código com o MyGeneration
Geração de Código com o MyGenerationComunidade NetPonto
 
Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...
Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...
Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...Paulo Correia
 
TDC2017 - Misturando dados com Pentaho para insights mais significativos
TDC2017 - Misturando dados com Pentaho para insights mais significativosTDC2017 - Misturando dados com Pentaho para insights mais significativos
TDC2017 - Misturando dados com Pentaho para insights mais significativosAmbiente Livre
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareFábio Nogueira de Lucena
 
Jukebox Webpanel Datasul
Jukebox Webpanel DatasulJukebox Webpanel Datasul
Jukebox Webpanel Datasuldatasul20
 
Jukebox Webpanel
Jukebox WebpanelJukebox Webpanel
Jukebox Webpanelguesta3ecbb
 
CI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
CI&T Tech Summit 2017 - Machine Learning para Sistemas de RecomendaçãoCI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
CI&T Tech Summit 2017 - Machine Learning para Sistemas de RecomendaçãoGabriel Moreira
 

Semelhante a Aplicações não convencionais de grafos (20)

Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
 
Mining software repositories
Mining software repositoriesMining software repositories
Mining software repositories
 
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re....Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
 
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
 
G.O. - Grafos Online
G.O. - Grafos OnlineG.O. - Grafos Online
G.O. - Grafos Online
 
.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022
.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022
.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022
 
Ampliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonAmpliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do Python
 
Analise Bay Area Bike Sharing
Analise Bay Area Bike SharingAnalise Bay Area Bike Sharing
Analise Bay Area Bike Sharing
 
Renderizando widgets via JSON no Flutter
Renderizando widgets via JSON no FlutterRenderizando widgets via JSON no Flutter
Renderizando widgets via JSON no Flutter
 
Tecnologias e ferramentas para o desenvolvimento web
Tecnologias e ferramentas para o desenvolvimento webTecnologias e ferramentas para o desenvolvimento web
Tecnologias e ferramentas para o desenvolvimento web
 
MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0
 
Geração de Código com o MyGeneration
Geração de Código com o MyGenerationGeração de Código com o MyGeneration
Geração de Código com o MyGeneration
 
Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...
Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...
Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...
 
TDC2017 - Misturando dados com Pentaho para insights mais significativos
TDC2017 - Misturando dados com Pentaho para insights mais significativosTDC2017 - Misturando dados com Pentaho para insights mais significativos
TDC2017 - Misturando dados com Pentaho para insights mais significativos
 
Web Data Mining com R
Web Data Mining com RWeb Data Mining com R
Web Data Mining com R
 
Dfd
DfdDfd
Dfd
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de software
 
Jukebox Webpanel Datasul
Jukebox Webpanel DatasulJukebox Webpanel Datasul
Jukebox Webpanel Datasul
 
Jukebox Webpanel
Jukebox WebpanelJukebox Webpanel
Jukebox Webpanel
 
CI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
CI&T Tech Summit 2017 - Machine Learning para Sistemas de RecomendaçãoCI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
CI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
 

Mais de pichiliani

Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade AumentadaRastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade Aumentadapichiliani
 
Interfaces hands free para o mundo atual e pós-Corona vírus
Interfaces hands free para o mundo atual  e pós-Corona vírusInterfaces hands free para o mundo atual  e pós-Corona vírus
Interfaces hands free para o mundo atual e pós-Corona víruspichiliani
 
The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...pichiliani
 
Machine Learning & Machine Teaching
Machine Learning & Machine TeachingMachine Learning & Machine Teaching
Machine Learning & Machine Teachingpichiliani
 
TJBot: Incorporando um chatbot em um robô
TJBot:  Incorporando um chatbot em um robôTJBot:  Incorporando um chatbot em um robô
TJBot: Incorporando um chatbot em um robôpichiliani
 
Carreira de cientista
Carreira de cientistaCarreira de cientista
Carreira de cientistapichiliani
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimentopichiliani
 
O papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learningO papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learningpichiliani
 
MediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastMediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastpichiliani
 
Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015pichiliani
 
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...pichiliani
 
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...pichiliani
 
Como lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQLComo lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQLpichiliani
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimentopichiliani
 
Projeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement ApplicationProjeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement Applicationpichiliani
 
HTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement ApplicationHTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement Applicationpichiliani
 
Projeto Car Data Applets
Projeto Car Data AppletsProjeto Car Data Applets
Projeto Car Data Appletspichiliani
 
Protótipos de hardware
Protótipos de hardwareProtótipos de hardware
Protótipos de hardwarepichiliani
 
Como lidar com 1, 10, 100 e 1024 GB no seu banco de dados
Como lidar com 1, 10, 100 e 1024 GB no seu banco de dadosComo lidar com 1, 10, 100 e 1024 GB no seu banco de dados
Como lidar com 1, 10, 100 e 1024 GB no seu banco de dadospichiliani
 
NoSQL: Uma análise crítica
NoSQL: Uma análise críticaNoSQL: Uma análise crítica
NoSQL: Uma análise críticapichiliani
 

Mais de pichiliani (20)

Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade AumentadaRastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
 
Interfaces hands free para o mundo atual e pós-Corona vírus
Interfaces hands free para o mundo atual  e pós-Corona vírusInterfaces hands free para o mundo atual  e pós-Corona vírus
Interfaces hands free para o mundo atual e pós-Corona vírus
 
The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...
 
Machine Learning & Machine Teaching
Machine Learning & Machine TeachingMachine Learning & Machine Teaching
Machine Learning & Machine Teaching
 
TJBot: Incorporando um chatbot em um robô
TJBot:  Incorporando um chatbot em um robôTJBot:  Incorporando um chatbot em um robô
TJBot: Incorporando um chatbot em um robô
 
Carreira de cientista
Carreira de cientistaCarreira de cientista
Carreira de cientista
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimento
 
O papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learningO papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learning
 
MediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastMediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCast
 
Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015
 
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
 
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
 
Como lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQLComo lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQL
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimento
 
Projeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement ApplicationProjeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement Application
 
HTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement ApplicationHTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement Application
 
Projeto Car Data Applets
Projeto Car Data AppletsProjeto Car Data Applets
Projeto Car Data Applets
 
Protótipos de hardware
Protótipos de hardwareProtótipos de hardware
Protótipos de hardware
 
Como lidar com 1, 10, 100 e 1024 GB no seu banco de dados
Como lidar com 1, 10, 100 e 1024 GB no seu banco de dadosComo lidar com 1, 10, 100 e 1024 GB no seu banco de dados
Como lidar com 1, 10, 100 e 1024 GB no seu banco de dados
 
NoSQL: Uma análise crítica
NoSQL: Uma análise críticaNoSQL: Uma análise crítica
NoSQL: Uma análise crítica
 

Aplicações não convencionais de grafos

  • 1. 1 Aplicações não convencionais de grafos Ms. Mauro C. Pichiliani (mauro@pichiliani.com.br) @pichiliani
  • 2. 2 Quem sou eu • Mestre e doutorando em computação pelo ITA • Escritor da SQL Magazine, Fórum Access, Java Magazine, SQLServerCentral.com e outras • Colaborador do iMasters há 13 anos • Autor do livro “Conversando sobre banco de dados” • Co-produtor do podcast DatabaseCast • Consultor independente e autor de cursos on-line
  • 3. 3 Visualizações diferentes - Sankey  Gráficos Sankey  Exemplo: GPs, pilotos, equipes do campeonato de F1 de 2012. Fonte: http://bit.ly/1vBulbv  Mostra associação de vitórias e pontos.  Feito em Phyton + d3 + R
  • 4. 4 Visualizações diferentes - Sankey  Exemplo: mesmas imagens enviadas a múltiplos subreddits (reddit.com). Fonte: http://bit.ly/1zOyV17  Mostra fluxo de imagens. Feito em Phyton + d3 + R
  • 5. 5 Visualizações diferentes - Sankey  Sankey com Google Charts  Fonte: http://bit.ly/1BU1qSm  DEMO: ExemploSankeyGraphs.html  Exemplo em Neo4J? http://bit.ly/1zOFssC
  • 6. 6 Visualizações diferentes – gráficos circulares  Nós na borda do círculo e arestas “cruzando” o interior com largura/cor variada
  • 7. 7 Visualizações diferentes – gráficos circulares  Exemplo: visualização de dados de navegação de páginas com dados do Google Analytics  Tecnologia: Google Java Data API (Google Analytics) + Neo4J (Cypher) + Circos  Fonte: http://bit.ly/1BKUg1j e https://github.com/datablend/neo4j-google-analytics I3 (azul) são referências externas e representam maior parte do tráfego Mesmo gráfico, com círculo externo mais “limpo”
  • 8. 8 Visualizações diferentes – gráficos circulares  Exemplo: visualização de diálogos de personagem em peça de teatro (dramatic network graph). Projeto de disciplina da faculdade de Nebraska-Omaha  Tecnologia: Excel + Cytoscape (http://www.cytoscape.org/)  Fonte: http://bit.ly/1A0mSPi Analise de diálogos para ver quem fala mais com quem
  • 9. 9 Visualizações diferentes – Treemap  Retângulos divididos por área e interativos (hierarquia)  Muitos exemplos e história: http://www.cs.umd.edu/hcil/treemap-history/ Medalhas na olimpíada 2002 Área por país e tipo de medalha Tecnologia: R + Fonte: http://bit.ly/1BL1IcC Métricas do Código fonte do Neo4J Área por LOC Tecnologia: JArchitect Fonte:http://www.jarchitect.com/Doc_ Treemap
  • 10. 10 Visualizações diferentes - Treemap  TreeMap com Google Charts  Fonte: http://bit.ly/1B6WVBD  DEMO: ExemploTreeMap.html
  • 11. 11 Case: Grafos e MOBA  Case: identificação de padrões de combate vencedores em jogo tipo MOBA  Referência: Pu Yang, Brent Harrison, and David L. Roberts. Identifying Patterns in Combat that are Predictive of Success in MOBA Games. In Proceedings of the Foundations of Digital Games 2014 Conference (FDG 14). 2014.  Dowload [PDF] http://www.fdg2014.org/papers/fdg2014_paper_36.pdf
  • 12. 12 Case: Grafos e MOBA  Metodologia:
  • 13. 13 Case: Grafos e MOBA  Nós são jogadores. Nome do nó indica time (T1 e T2) e papel (Carry, Ganker, Initiator, Disabler, Tank). Nó adicional: morte  Aresta direcionada indica interação (causou dano ou curou)  Partidas separadas em intervalos de 9 minutos (4 fases)  Feature selection a partir de métricas de cada grafo. Exemplos:  Centralidade Eigenvector do T2 Disabler na fase de enhancing  Out-degree do Carry do T2 na fase de develpoing
  • 14. 14 Case: Grafos e MOBA  Atributo de classificação: vitória  Uso de árvore de decisão para geração do modelo  Interpretação de regras para padrões e táticas de combate para cada papel. Apresentação de regras como grafos:
  • 15. 15 Algoritmos, algoritmos everywhere  Muitos algoritmos para grafos com diferentes resultados!  Cabe a você interpretar o significado. Alguns:  Connected components, Clique, topological sorting, minimum, spanning tree, shortest path, transitive closure and reduction, matching, Eurelian Cycle, edge and vertex conectivity, network flow, beautification…  Algoritmos com figuras:  http://bit.ly/1BaFLC6 e http://bit.ly/1wXYo8h  Onde encontro os algoritmos?  Livros, muitos livros  Dicionário de algoritmos: http://xlinux.nist.gov/dads//  Engines de busca de algoritmos:  http://code.openhub.net/  https://searchcode.com/  http://www.codase.com/  https://code.google.com/p/chromium/codesearch  http://www.krugle.org/
  • 16. 16 Conclusão  Grafos podem ser utilizados em muitos cenários  Comece com exemplos básicos e depois fuja deles  Procure outras formas de visualização além de linhas e bolinhas  Muitas oportunidades em diferentes áreas, principalmente analytics  Big data é a bola da vez. Aproveite!  Saiba fazer a ponte entre um algoritmo, seu resultado e o domínio do problema  Aprofunde-se nos detalhes técnicos somente depois de saber o problema, resultados esperados e análise
  • 17. 17 Perguntas? Ms. Mauro C. Pichiliani (mauro@pichiliani.com.br) @pichiliani