Machine learning java ce conference 2012 - fortaleza ce

2.676 visualizações

Publicada em

Apresentação feita no JavaCE Conference 2012 - Fortaleza / CE

Publicada em: Tecnologia
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.676
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1.238
Ações
Compartilhamentos
0
Downloads
24
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Machine learning java ce conference 2012 - fortaleza ce

  1. 1. Machine learning, kidiabéisso!JavaCE Community Conference 2012! " " " " " " " " " " "! " " " " " " " " " " "@lucabastos!
  2. 2. Quem sou eu
  3. 3. Luca Bastos, conhecido apenas na família e pelo gerente dobanco como Luiz Arnaldo de Gusmão Bastos.
  4. 4. Luca Bastos, conhecido apenas na família e pelo gerente dobanco como Luiz Arnaldo de Gusmão Bastos.Dev do tempo da Carochinha.
  5. 5. Luca Bastos, conhecido apenas na família e pelo gerente dobanco como Luiz Arnaldo de Gusmão Bastos.Dev do tempo da Carochinha.Eterno aprendiz. Fazer com paixão, aprendere compartilhar sempre. Minha receita de vida que sigo aplicando naConcrete Solutions em SP.
  6. 6. Se tiver uma chance, vem trabalhar com a gente.Garanto que a Concrete Solutions é um lugar legal de trabalhar.
  7. 7. Machine Learning, kidiabéisso
  8. 8. Machine Learning, kidiabéisso
  9. 9. Machine Learning, definições
  10. 10. ML estuda como construir sistemas que automaticamente melhorem com aexperiência
  11. 11. ML estuda como construir sistemas que automaticamente melhorem com aexperiência e quais são as leis fundamentais quegovernam os processos de aprendizado.
  12. 12. ML estuda como construir sistemas que automaticamente melhorem com aexperiência e quais são as leis fundamentais quegovernam os processos de aprendizado. Tom Mitchel, CMU
  13. 13. Com dados extraídos do universo se tentamconstruir modelos.
  14. 14. Com dados extraídos do universo se tentamconstruir modelos.
  15. 15. Outra definição!
  16. 16. Conjunto de ferramentas e métodos
  17. 17. Conjunto de ferramentas e métodos que visa perceber padrões e extrair visões
  18. 18. Conjunto de ferramentas e métodos que visa perceber padrões e extrair visões a partir de registros de observações e dadosde exemplos ou experiências passadas.
  19. 19. Ciência que faz computadores agirem sem serexplicitamente programados!
  20. 20. Ciência que faz computadores agirem sem serexplicitamente programados!
  21. 21. O que usamos:
  22. 22. O que usamos:Algoritmos"
  23. 23. O que usamos:Algoritmos"+ computação on-demand
  24. 24. O que usamos:Algoritmos"+ computação on-demand+ dados que estão em toda a parte
  25. 25. O que usamos:Algoritmos"+ computação on-demand+ dados que estão em toda a parte17 horas - Fernando Meyer: Big data analytics – Por que o dado por si sónão significa nada.
  26. 26. Supervised learning! A máquina aprende a partir de dados onde a gente específica uma variável alvo.
  27. 27. Supervised learning! A máquina aprende a partir de dados onde a gente específica uma variável alvo. A gente sabe o que está procurando.
  28. 28. Supervised learning! A máquina aprende a partir de dados onde a gente específica uma variável alvo. A gente sabe o que está procurando. Usamos a estrutura dos nossos dados para obter as respostas.
  29. 29. Unsupervised learning! Não sabemos o que procurar e perguntamos a máquina o que os dados tem em comum.
  30. 30. Unsupervised learning! Não sabemos o que procurar e perguntamos a máquina o que os dados tem em comum. Queremos descobrir estrutura em nossos dados.
  31. 31. Algoritmos!
  32. 32. “I would rather have today’s algorithms onyesterday’s computers than vice versa” Prof. Philippe Toint
  33. 33. Quais tipos de problemas podemos resolver?!
  34. 34. Agrupar coisas relacionadas - clustering
  35. 35. Agrupar coisas relacionadas - clustering
  36. 36. Agrupar coisas relacionadas - clustering
  37. 37. Agrupar coisas relacionadas - clustering
  38. 38. Exemplo de clustering:Linkedin, Skills & Expertise:"http://www.linkedin.com/skills/skill/Machine_Learning?trk=skills-hp-search
  39. 39. Clustering: Linkedin, Skills & Expertise
  40. 40. PrevisõesPodem se dividir de acordo com o tipo detarefa que faz:
  41. 41. PrevisõesPodem se dividir de acordo com o tipo detarefa que faz: Classificação – prevê resultados qualitativos discretos do tipo S/N, morre/sobrevive Regressão – prevê resultados quantitativos
  42. 42. Classificação
  43. 43. Classificação consiste em rotular um inputbaseado em dados previamente vistos
  44. 44. Classificação consiste em rotular um inputbaseado em dados previamente vistosFiltro anti spamIdentificação de linguagemDetecção de rosto (você conhece o rosto)
  45. 45. Classificação consiste em rotular um inputbaseado em dados previamente vistosFiltro anti spamIdentificação de linguagemDetecção de rosto (você conhece o rosto)
  46. 46. Classificação: Identificação de linguagem
  47. 47. Classificação: detectar padrões em imagens
  48. 48. Classificação: separar cães de gatos
  49. 49. Recomendações
  50. 50. Recomendações
  51. 51. Recomendações
  52. 52. Detecção de anomalias
  53. 53. Detecção de anomalias
  54. 54. Detecção de anomaliasReconhecer padrão de intrusãoResolver ambiguidadesFraudes financeiras
  55. 55. Extrair regras a partir de associações
  56. 56. Extrair regras a partir de associações
  57. 57. Exemplo: regra anti-spamDe um monte de mensagens, colocamos na tabela abaixo asfrequências relativas das palavras mais comuns e as marcasde pontuação do que é spam ou não: luiz você seu CS oferta jantar mês eu ! ?email! 1.27 1.28 0.44 0.90 0.07 0.43 0.11 0.42 0.18 0.29
  58. 58. Exemplo: regra anti-spamDe um monte de mensagens, colocamos na tabela abaixo asfrequências relativas das palavras mais comuns e as marcasde pontuação do que é spam ou não: luiz você seu CS oferta jantar mês eu ! ?email! 1.27 1.28 0.44 0.90 0.07 0.43 0.11 0.42 0.18 0.29Por pura observação a gente poderia criar uma regra como: Se (“luiz” < 0.60) e (“você” > 1.50) então é spam
  59. 59. Em quais áreas se costuma usar?!
  60. 60. Web mining
  61. 61. Web mining"Decisões que envolvem julgamento
  62. 62. Web mining"Decisões que envolvem julgamentoExaminar imagens (screening)
  63. 63. Web mining"Decisões que envolvem julgamentoExaminar imagens (screening)Previsões
  64. 64. Web mining"Decisões que envolvem julgamentoExaminar imagens (screening)PrevisõesDiagnósticos
  65. 65. Web mining"Decisões que envolvem julgamentoExaminar imagens (screening)PrevisõesDiagnósticos"Análises de marketing e de vendas
  66. 66. Qual conhecimento é mais desejável?!
  67. 67. Já disseram que "Data Mining = estatística + marketing
  68. 68. Qual a diferença entre Data Mining e MachineLearning?
  69. 69. DM foca na extração de conhecimentocompreensível (padrões estruturais que capturam de umamaneira explicita o conhecimento).https://sites.google.com/site/gladyscjaprendizagem/program/data-mining-machine-learning
  70. 70. ML centra-se mais nos métodoscomputacionais que fazem possível quecomputadores aprendam e melhorem o seudesempenho com a experiência.https://sites.google.com/site/gladyscjaprendizagem/program/data-mining-machine-learning
  71. 71. Não há como fugir de estatística em ML!
  72. 72. Machine Learning ≅
  73. 73. Machine Learning ≅ interseção de matemática e estatística com engenharia de software e ciência da computação
  74. 74. Vamos falar de probabilidade
  75. 75. Probabilidade= Número de vezes que um determinado eventopode ocorrer em relação ao total de ocorrências
  76. 76. Probabilidade= Número de vezes que um determinado eventopode ocorrer em relação ao total de ocorrênciasP(A) é a probabilidade de que A seja verdadeiro 0 ≤ P(A) ≤ 1
  77. 77. Probabilidade de ocorrer um evento A em umespaço S número de casos favoráveis   n(A)  P(A) = = número de casos possíveis   n(S)  
  78. 78. Qual a chance de sairem 2 números seis aolançar um par de dados?
  79. 79. Qual a chance de sairem 2 números seis aolançar um par de dados? Resposta = ⅙ × ⅙!
  80. 80. Naïve Bayes P(Ai) . P(E|Ai)   P(Ai | E) = k Σ P(Aj).P(E|AJ)   J=1 Ver: h#p://blog.concretesolu3ons.com.br/2012/02/naive-­‐bayes-­‐resposta-­‐do-­‐tes3nho-­‐4/  
  81. 81. Weka!Machine learning com Java
  82. 82. Weka Waikato Environment for Knowledge Analysis
  83. 83. Weka Waikato Environment for Knowledge Analysis Criado por pesquisadores da Universidade de Waikato na Nova Zelândia
  84. 84. Weka Waikato Environment for Knowledge Analysis Criado por pesquisadores da Universidade de Waikato na Nova Zelândia Também é nome de uma ave nativa da NZL
  85. 85. É uma coleção de algoritmos de machinelearning no estado da arte úteis para tarefas dedata mining e mais diversas ferramentas depré-processamento de dados.
  86. 86. É uma coleção de algoritmos de machinelearning no estado da arte úteis para tarefas dedata mining e mais diversas ferramentas depré-processamento de dados.Eles podem ser aplicados diretamente a umconjunto de dados ou chamados via códigoJava
  87. 87. Principais facilidades: 49 ferramentas de pré-processamento de dados 76 algoritmos de classificação e regressão 8 algoritmos de clustering 3 algoritmos para achar regras de associação
  88. 88. Principais facilidades – parte 2: 10 algoritmos para seleção de atributos 3 graphical user interfaces - Explorer – exploratory data analysis - Experimenter – experimental environment - KnowledgeFlow – configurável para streamed data processing Interface de linha de comando
  89. 89. O Weka foi feito em Java e é distribuído comoopen source sob licença GPL2.0 para v.3.6
  90. 90. O Weka foi feito em Java e é distribuído comoopen source sob licença GPL3.0 Weka > 3.7.5
  91. 91. Download a partir de: http://www.cs.waikato.ac.nz/ml/weka/
  92. 92. Quem usa OSX, na hora de instalar o .dmg,além de copiar weka-3-6-6.app paraAplicativos,
  93. 93. Quem usa OSX, na hora de instalar o .dmg,além de copiar weka-3-6-6.app paraAplicativos, precisa copiar para algum lugar a seu gosto, odiretório que contém os docs, isto é,weka-3-6-6 (versão que estou usando)
  94. 94. As classes são organizadas como pacotes quepodem ser importados por uma aplicação Javanormal (GPL).
  95. 95. O tamanho máximo da heap padrão do Java éinsuficiente para executar ou usar o Weka.Aumente usando o flag -Xmx2048M. "
  96. 96. O flag -server usa -Xmx2048M e é o default noOSX. Mas o Weka vem com –Xmx256M. NoOSX use o Xcode para editar o Info.plist ealterar Java/VMOptions.
  97. 97. Veja mais sobre configurações do Java em: http://www.arquiteturajava.com.br/livro/principios-de-garbage- collection.pdf http://java.dzone.com/articles/how-tame-java-gc-pauses
  98. 98. Os recursos de pré-processamento, osalgoritmos de ML e as saídas gráficas podemser usados através de uma interface gráfica deusuário (GUI) chamada de Weka workbench.
  99. 99. O workbench pode ser usado de 4 modos:
  100. 100. Explorer Interface gráfica que dá acesso a todas as facilidades usando seleção via menu e preenchimento de formulários.
  101. 101. Explorer Interface gráfica que dá acesso a todas as facilidades usando seleção via menu e preenchimento de formulários. Fácil de usar mas carrega TODOS os dados na memória. Casos pequenos e médios.
  102. 102. Explorer Interface gráfica que dá acesso a todas as facilidades usando seleção via menu e preenchimento de formulários. Fácil de usar mas carrega TODOS os dados na memória. Casos pequenos e médios. Faz pré-processamento de dados, executa os algoritmos, mostra saídas e gráficos.
  103. 103. Explorer
  104. 104. Explorer – pré processamento Dados importados com vários formatos: arff, csv, c4.5, binário Dados lidos de uma URL ou de um banco de dados relacional via JDBC Filtros (ferramentas de pré-processamento): discretização, normalização, resampling, seleção, combinação e transformação de atributos,…
  105. 105. Arquivo .arff
  106. 106. Explorer com testinho5.arff lido
  107. 107. Classificação
  108. 108. Escolha do método de classificação
  109. 109. Método de classificação – decision tree J48
  110. 110. Decision tree J48 - processada
  111. 111. Escolha de saída gráfica
  112. 112. Saída gráfica da decision tree J48
  113. 113. Experimenter Experimentar e avaliar algoritmos de ML. Saber qual o mais adequado.
  114. 114. Experimenter Experimentar e avaliar algoritmos de ML. Saber qual o mais adequado. Comparar técnicas de aprendizado. Vai além do Explorer porque permite automatizar rodando com diferentes parâmetros.
  115. 115. Experimenter Experimentar e avaliar algoritmos de ML. Saber qual o mais adequado. Comparar técnicas de aprendizado. Vai além do Explorer porque permite automatizar rodando com diferentes parâmetros. Distribuir cargas por várias JVMs via RMI.
  116. 116. Experimenter
  117. 117. KnowledgeFlow Projetar configurações para streamed data processing.
  118. 118. KnowledgeFlow Projetar configurações para streamed data processing. Arrastar caixas representando algoritmos e data sources unindo-os para carregar e processar de forma incremental.
  119. 119. KnowledgeFlow Projetar configurações para streamed data processing. Arrastar caixas representando algoritmos e data sources unindo-os para carregar e processar de forma incremental. Os algoritmos incrementais do Weka contornam a questão do Explorer não conseguir tratar problemas grandes.
  120. 120. KnowledgeFlow
  121. 121. Simple CLI Uma interface simples que permite digitar comandos.
  122. 122. Simple CLI Uma interface simples que permite digitar comandos. De forma alternativa, se pode usar a CLI do sistema operacional para classes do weka.jar (segundo o README, precisa adicionar $WEKAINSTALL/weka.jar no seu CLASSPATH).
  123. 123. Simple CLI
  124. 124. Referências:!
  125. 125. Programming Collective Intelligence de Toby Segaran
  126. 126. Data Mining – Practical Machine LearningTools and Techniques, Witten, Frank & Hall
  127. 127. Revista Mundo Java número 24 Jul/Ago 2007"Artigo: Mineração de Dados em Java: Weka de Rafael Santos
  128. 128. IBM developerWorks: Data mining with WEKA, Part 1: Introduction and regression Data mining with WEKA, Part 2: Classification and clustering Data mining with WEKA, Part 3: Nearest Neighbor and server-side library
  129. 129. Introdução a mineração de dados utilizando oWeka – Marcelo Damasceno - V CONNEPI,Maceió 2010Uma Abordagem para Classificação Online deTráfego TCP, InfoBrasil, Fortaleza, Março 2012Naive Bayes com estimação de densidade dekernel para Classificação de Tráfego Internet,InfoBrasil, Fortaleza, Março 2012
  130. 130. @lucabastos
  131. 131. 3 a 7 de setembro !no Hotel Maksoud Plaza em SP! Um dos maiores eventos de TI do hemisfério sul!
  132. 132. Espero vocês lá!

×