Your SlideShare is downloading. ×
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Qcon bigdata
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Qcon bigdata

92

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
92
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. FernandoMeyer @fmeyer Utilizando ferramentas open source para reorganizar seus dados em informações concretas Friday, August 30, 13
  • 2. No  caminho  dos  dados. ‣ Aquisição ‣ Armazenamento ‣ Vizualização ‣ Análise ‣ Deployment Friday, August 30, 13
  • 3. Aquisição Friday, August 30, 13
  • 4. De seus próprios servidores: ‣ Logs de Acesso ‣ Logs de Busca ‣ Vizualizações de Páginas. ‣ Histórico de Compra ‣ Favoritos Aquisição Friday, August 30, 13
  • 5. Facebook Scribe Aquisição Friday, August 30, 13
  • 6. Aquisição Alternativas ao Scribe ‣ FluentD ‣ Apache Flume + continuo ‣ Apache Chukwa Friday, August 30, 13
  • 7. De seu usuário (client-side): ‣ Browser Fingerprint ‣ Referal ‣ Cursor/Interação ‣ Buscas/filtros/parâmetros ‣ Saídas Aquisição Friday, August 30, 13
  • 8. Pixel Server (JS) Aquisição <img  src="http://tr.pig.com/pixel? id=X&h={base64encoded(data)}"  width="1"   height="1"  /> user=byok9ruqi3qcy6dy new_to_site=1 page_session=nhktmamsobk4ejro scroll_height=455 inner_height=454 interval=45 idle=1 timestamp=1377850220820 Friday, August 30, 13
  • 9. Pré-existente em alguma API ‣ Facebook Likes* ‣ Tweets ‣ Foursquare ‣ Google Analytics Aquisição * Facebook tende a dificultar as coisas de tempos em tempos. Então temos que tomar cuidado com features cruciais dependentes do facebook. Friday, August 30, 13
  • 10. Web crawling ‣ Comentários em sites/portais ‣ Blogs com conteúdo relevante ‣ Outros serviços onde pessoas expressam opiniões mas não existem APIs Aquisição Friday, August 30, 13
  • 11. #  cat  ~/dev/ds/crawler.py def  crawler(queue):     url  =  queue.pop()     fd  =  urlib.urlopen(url)     content  =  fd.read()   links  =  parse_links(content)   for  link  in  links:     queue.put(link)    crawler(queue) Aquisição Um crawler minimalista Friday, August 30, 13
  • 12. Crawlers Completos ‣ Apache Nutch ‣ Crawler4j ‣ Scrapy (python) ‣ Anemone (ruby) Aquisição Friday, August 30, 13
  • 13. Seja ético ao usar dados crawleados. Muitos sites não permitem essa prática, se fizer isso que seja para estudar um modelo, nunca para redistribuir os dados de outra empresa. Aquisição Friday, August 30, 13
  • 14. A próxima menina dos olhos quando falamos em análise de dados são dados vindos do mundo físico. SCADA systems existem a décadas em Usinas, Petroliferas ... Aquisição Friday, August 30, 13
  • 15. Hardware ‣ Sensores ‣ Câmeras ‣ Arduinos/RaspbPy Aquisição Friday, August 30, 13
  • 16. Datasets pré-existentes ‣ WineDatabase ‣ Freebase ‣ LinkedData ‣ Google Concept DS Aquisição Friday, August 30, 13
  • 17. Armazenamento Friday, August 30, 13
  • 18. Storage não é tão barato quando falamos de BigData ‣ RAW [ d - 30 ] ‣ N dimensões [ d - 365* 1/N ] ‣ Backup ‣ Backup do Backup Armazenamento Friday, August 30, 13
  • 19. Seu BD principal NUNCA deve ser utilizado para guardar informações de agregadores, pixeltrackers ou crawlers. Armazenamento Friday, August 30, 13
  • 20. Sua arquitetura de armazenamento de informações nunca deve impactar o usuário enquanto interage com o site. Armazenamento Friday, August 30, 13
  • 21. Armazenamento Disponibilidade Consistencia Particionamento Friday, August 30, 13
  • 22. Engines Onde cada uma se encaixa Examples WideColumn sparsely distributed multi- dimensional data BigTable, Cassandra, HBase, Hipertable Document KeyValue com dados estruturados MongoDB, CouchDB, Terrastore, Lucene Key Value/Tuple Hash Table Memcached, Redis,Voldemort, Couchbase, LevelDB Graph DB Graph Node4j Multivalue/RDF Conceptual description or modeling Virtuoso DB  Toolset Friday, August 30, 13
  • 23. Cassandra, Redis e Neo4j modelam aproximadamente 90% dos problemas Armazenamento Friday, August 30, 13
  • 24. Análise Friday, August 30, 13
  • 25. Agora que os dados existem, temos que transformá-los em algo palpavel. Análise Friday, August 30, 13
  • 26. Análise Aplicações ‣ Segmentação ‣ Análise de comportamento ‣ Engine de Recomendação ‣ Detecção de fraude ‣ NLP Friday, August 30, 13
  • 27. Análise Identifique seu problema ‣ Categorização ‣ Classificação ‣ Filtragem Colaborativa Friday, August 30, 13
  • 28. Análise Leve uma amostra de seus dados para a prototipação ‣ RStudio ‣ Matlab ‣ IPython com scipy e numpy ‣ Julia* Friday, August 30, 13
  • 29. Análise Leve uma amostra de seus dados para a prototipação awk  'NR  %  2  ==  0'  filename  |  head  -­‐n  1000 Friday, August 30, 13
  • 30. Análise RStudio Friday, August 30, 13
  • 31. Análise Julia Friday, August 30, 13
  • 32. Análise Julia Benchmarks Friday, August 30, 13
  • 33. Análise Escolha o melhor método ‣ Aprend. Supervisionado ‣ Aprend. Não Supervisionado Friday, August 30, 13
  • 34. Análise Aprendizado Supervisionado - Classifica informações a partir de um modelo de treino ‣ SVM ‣ Regressão Linear ‣ Kernels ‣ Random Forest (decision tree) Friday, August 30, 13
  • 35. Análise Aprendizado Não Supervisionado - Agrupa informações ou Reduz dimensões de uma fonte de dados. ‣ Redes Neurais ‣ Max de Expectativas (distrib) ‣ K-means (centroides) ‣ DBSCAN (densidade) ‣ Graph Based Models Friday, August 30, 13
  • 36. Análise Machine learning - 3D plot de uma distribuição Friday, August 30, 13
  • 37. Análise Time series Friday, August 30, 13
  • 38. Análise NLP João comprou 300 ações da OGX em Agosto de 2013 Friday, August 30, 13
  • 39. Análise NLP <ENAMEX TYPE="PERSON">João</ENAMEX>comprou <NUMEX TYPE="QUANTITY">300</NUMEX>ações da <ENAMEX TYPE="ORGANIZATION">OGX</ENAMEX> em <TIMEX TYPE="DATE">Agosto de 2013</TIMEX>. Friday, August 30, 13
  • 40. Análise NLP ‣ Apache OpenNLP ‣ Stanford CoreNLP ‣ Python NLTK Friday, August 30, 13
  • 41. Análise NLP Dificuldades: Corpus em PT-BR são raros e evoluem a passos lentos. Alternativa: Crawling Friday, August 30, 13
  • 42. Trabalhar com processamento de linguagem natural em português não é tão simples quanto parece. Portanto uma simples análise de sentimento pode custar meses de trabalho. Análise Friday, August 30, 13
  • 43. Best Case: Matéria do Estadão Worst Case: Twitter Análise Friday, August 30, 13
  • 44. Análise Friday, August 30, 13
  • 45. Análise Friday, August 30, 13
  • 46. Análise Friday, August 30, 13
  • 47. Análise Não subestime a matemática. ‣ Probabilidade ‣ Estatística ‣ Algebra Linear ‣ Matemática Discreta Friday, August 30, 13
  • 48. Visualização Friday, August 30, 13
  • 49. O que você gostaria de mostrar? ‣ Comparação ‣ Distribuição ‣ Composição ‣ Relação Visualização Friday, August 30, 13
  • 50. Analise Friday, August 30, 13
  • 51. Analise Friday, August 30, 13
  • 52. Deployment Friday, August 30, 13
  • 53. Quando você tiver a primeira versão do seu modelo, está na hora de colocá-lo em produção. Deployment Friday, August 30, 13
  • 54. Transformar o código do protótipo em codigo de produção às vezes envolve trocar de linguagem/ contexto/plataforma Deployment Friday, August 30, 13
  • 55. Env ‣ Linux - max open files, sockets ‣ Hadoop - max M/R jobs ‣ Solr - merge factor, memoria ‣ Teste de carga Deployment Friday, August 30, 13
  • 56. Monitore tudo ‣ Conversão ‣ Usuários que estão sob influencia do algoritmo ‣ Cache Deployment Friday, August 30, 13
  • 57. N versões de um mesmo algoritmo podem coexistir e competir pela melhor resposta/ conversão Deployment Friday, August 30, 13
  • 58. Avaliação Mean Absolute Error Root Mean Squared Error (RMSE) Deployment Friday, August 30, 13
  • 59. Ferramentas Onde aplicar Hadoop Framework para processar uma grande quantidade de dados Mahout Machine Learning Twitter Storm Processamento distribuido e tolerante a falhas Toolset Deployment Friday, August 30, 13
  • 60. Mahout - Hadoop: funcionam muito bem para batch data. Não aplicáveis para processamento em tempo real. Deployment Friday, August 30, 13
  • 61. Storm - Processamento em Tempo real ‣ Spout ‣ Bolt ‣ Mágica Deployment Friday, August 30, 13
  • 62. Spout (Data Source) public  class  DataSpout  extends  BaseRichSpout  {    public  void  open    public  void  nextTuple()    public  void  ack(Object  id)    public  void  fail(Object  id)    public  void  declareOutputFields(OutputFieldsDeclarer  d) } Deployment Friday, August 30, 13
  • 63. Bolt (Processing Unit)    public  static  class  WordCount  extends  BaseBasicBolt  {        public  void  execute(Tuple  tuple,  BasicOutputCollector  collector)        public  void  declareOutputFields(OutputFieldsDeclarer  declarer) } Deployment Friday, August 30, 13
  • 64. Topologia Deployment Friday, August 30, 13
  • 65. Dicas  e  considerações ‣ Comunicação ‣ Demonstre sua hipotese/Teoria ‣ Tente várias abordagens ‣ Converse com outras pessoas sobre seus dados/técnicas ‣ Veja como problemas similares foram modelados ( kaggle.com) Friday, August 30, 13
  • 66. Analise Friday, August 30, 13
  • 67. FernandoMeyer @fmeyer The end! Friday, August 30, 13

×