SlideShare a Scribd company logo
1 of 135
Download to read offline
Machine learning, kidiabéisso!


JavaCE Community Conference 2012!

               " " " " " " " " " " "!
  " " " " " " " " " " "@lucabastos!
Quem sou eu
Luca Bastos, 
conhecido apenas na família e pelo gerente do
banco como Luiz Arnaldo de Gusmão Bastos.
Luca Bastos, 
conhecido apenas na família e pelo gerente do
banco como Luiz Arnaldo de Gusmão Bastos.

Dev do tempo da Carochinha.
Luca Bastos, 
conhecido apenas na família e pelo gerente do
banco como Luiz Arnaldo de Gusmão Bastos.

Dev do tempo da Carochinha.

Eterno aprendiz. Fazer com paixão, aprender
e compartilhar sempre. 

Minha receita de vida que sigo aplicando na
Concrete Solutions em SP.
Se tiver uma chance, 
vem trabalhar com a gente.

Garanto que a Concrete Solutions 
é um lugar legal de trabalhar.
Machine Learning, kidiabéisso
Machine Learning, kidiabéisso
Machine Learning, definições
ML estuda como construir sistemas 

que automaticamente melhorem com a
experiência
ML estuda como construir sistemas 

que automaticamente melhorem com a
experiência 

e quais são as leis fundamentais que
governam os processos de aprendizado.
ML estuda como construir sistemas 

que automaticamente melhorem com a
experiência 

e quais são as leis fundamentais que
governam os processos de aprendizado.

                          Tom Mitchel, CMU
Com dados extraídos do universo se tentam
construir modelos.
Com dados extraídos do universo se tentam
construir modelos.
Outra definição!
Conjunto de ferramentas e métodos
Conjunto de ferramentas e métodos 

que visa perceber padrões e extrair visões
Conjunto de ferramentas e métodos 

que visa perceber padrões e extrair visões 

a partir de registros de observações e dados
de exemplos ou experiências passadas.
Ciência que faz computadores agirem sem ser
explicitamente programados!
Ciência que faz computadores agirem sem ser
explicitamente programados!
O que usamos:
O que usamos:

Algoritmos"
O que usamos:

Algoritmos"

+ computação on-demand
O que usamos:

Algoritmos"

+ computação on-demand

+ dados que estão em toda a parte
O que usamos:

Algoritmos"

+ computação on-demand

+ dados que estão em toda a parte

17 horas - Fernando Meyer: 
Big data analytics – Por que o dado por si só
não significa nada.
Supervised learning!

  A máquina aprende a partir de dados onde
  a gente específica uma variável alvo.
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.
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.
Unsupervised learning!

  Não sabemos o que procurar e
  perguntamos a máquina o que os dados
  tem em comum.
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.
Algoritmos!
“I would rather have today’s algorithms on
yesterday’s computers than vice versa”

                            Prof. Philippe Toint
Quais tipos de problemas podemos resolver?!
Agrupar coisas relacionadas - clustering
Agrupar coisas relacionadas - clustering
Agrupar coisas relacionadas - clustering
Agrupar coisas relacionadas - clustering
Exemplo de clustering:

Linkedin, Skills & Expertise:"

http://www.linkedin.com/skills/skill/
Machine_Learning?trk=skills-hp-search
Clustering: Linkedin, Skills & Expertise
Previsões

Podem se dividir de acordo com o tipo de
tarefa que faz:
Previsões

Podem se dividir de acordo com o tipo de
tarefa que faz:

  Classificação – prevê resultados qualitativos
  discretos do tipo S/N, morre/sobrevive

  Regressão – prevê resultados quantitativos
Classificação
Classificação consiste em rotular um input
baseado em dados previamente vistos
Classificação consiste em rotular um input
baseado em dados previamente vistos

Filtro anti spam

Identificação de linguagem

Detecção de rosto (você conhece o rosto)
Classificação consiste em rotular um input
baseado em dados previamente vistos

Filtro anti spam

Identificação de linguagem

Detecção de rosto (você conhece o rosto)
Classificação: Identificação de linguagem
Classificação: detectar padrões em imagens
Classificação: separar cães de gatos
Recomendações
Recomendações
Recomendações
Detecção de anomalias
Detecção de anomalias
Detecção de anomalias

Reconhecer padrão de intrusão

Resolver ambiguidades

Fraudes financeiras
Extrair regras a partir de associações
Extrair regras a partir de associações
Exemplo: regra anti-spam

De um monte de mensagens, colocamos na tabela abaixo as
frequências relativas das palavras mais comuns e as marcas
de 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
Exemplo: regra anti-spam

De um monte de mensagens, colocamos na tabela abaixo as
frequências relativas das palavras mais comuns e as marcas
de 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



Por pura observação a gente poderia criar uma regra como:

         Se (“luiz” < 0.60) e (“você” > 1.50) então é spam
Em quais áreas se costuma usar?!
Web mining
Web mining"

Decisões que envolvem julgamento
Web mining"

Decisões que envolvem julgamento

Examinar imagens (screening)
Web mining"

Decisões que envolvem julgamento

Examinar imagens (screening)

Previsões
Web mining"

Decisões que envolvem julgamento

Examinar imagens (screening)

Previsões

Diagnósticos
Web mining"

Decisões que envolvem julgamento

Examinar imagens (screening)

Previsões

Diagnósticos"

Análises de marketing e de vendas
Qual conhecimento é mais desejável?!
Já disseram que "

Data Mining = estatística + marketing
Qual a diferença entre Data Mining e Machine
Learning?
DM foca na extração de conhecimento
compreensível 
(padrões estruturais que capturam de uma
maneira explicita o conhecimento).
https://sites.google.com/site/gladyscjaprendizagem/program/data-mining-machine-learning
ML centra-se mais nos métodos
computacionais que fazem possível que
computadores aprendam e melhorem o seu
desempenho com a experiência.
https://sites.google.com/site/gladyscjaprendizagem/program/data-mining-machine-learning
Não há como fugir de estatística em ML!
Machine Learning ≅
Machine Learning ≅	
 	
 

        interseção de matemática e estatística
        com engenharia de software e ciência
        da computação
Vamos falar de probabilidade
Probabilidade

= Número de vezes que um determinado evento
pode ocorrer em relação ao total de ocorrências
Probabilidade

= Número de vezes que um determinado evento
pode ocorrer em relação ao total de ocorrências

P(A) é a probabilidade de que A seja verdadeiro

                   0 ≤ P(A) ≤ 1
Probabilidade de ocorrer um evento A em um
espaço S

       número de casos favoráveis	
   n(A)	
  
P(A) = 
                             = 
       número de casos possíveis	
     n(S)	
  
Qual a chance de sairem 2 números seis ao
lançar um par de dados?
Qual a chance de sairem 2 números seis ao
lançar um par de dados?




           Resposta = ⅙ × ⅙!
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/	
  
Weka!
Machine learning com Java
Weka

 Waikato Environment for Knowledge
 Analysis
Weka

 Waikato Environment for Knowledge
 Analysis 

 Criado por pesquisadores da Universidade
 de Waikato na Nova Zelândia
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
É uma coleção de algoritmos de machine
learning no estado da arte úteis para tarefas de
data mining e mais diversas ferramentas de
pré-processamento de dados.
É uma coleção de algoritmos de machine
learning no estado da arte úteis para tarefas de
data mining e mais diversas ferramentas de
pré-processamento de dados.

Eles podem ser aplicados diretamente a um
conjunto de dados ou chamados via código
Java
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
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
O Weka foi feito em Java e é distribuído como
open source sob licença GPL2.0 para v.3.6
O Weka foi feito em Java e é distribuído como
open source sob licença GPL3.0 Weka > 3.7.5
Download a partir de:

    http://www.cs.waikato.ac.nz/ml/weka/
Quem usa OSX, na hora de instalar o .dmg,
além de copiar weka-3-6-6.app para
Aplicativos,
Quem usa OSX, na hora de instalar o .dmg,
além de copiar weka-3-6-6.app para
Aplicativos, 

precisa copiar para algum lugar a seu gosto, o
diretório que contém os docs, isto é,
weka-3-6-6 (versão que estou usando)
As classes são organizadas como pacotes que
podem ser importados por uma aplicação Java
normal (GPL).
O tamanho máximo da heap padrão do Java é
insuficiente para executar ou usar o Weka.
Aumente usando o flag -Xmx2048M. "
O flag -server usa -Xmx2048M e é o default no
OSX. Mas o Weka vem com –Xmx256M. No
OSX use o Xcode para editar o Info.plist e
alterar Java/VMOptions.
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
Os recursos de pré-processamento, os
algoritmos de ML e as saídas gráficas podem
ser usados através de uma interface gráfica de
usuário (GUI) chamada de Weka workbench.
O workbench pode ser usado de 4 modos:
Explorer

  Interface gráfica que dá acesso a todas as
  facilidades usando seleção via menu e
  preenchimento de formulários.
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.
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.
Explorer
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,…
Arquivo .arff
Explorer com testinho5.arff lido
Classificação
Escolha do método de classificação
Método de classificação – decision tree J48
Decision tree J48 - processada
Escolha de saída gráfica
Saída gráfica da decision tree J48
Experimenter

  Experimentar e avaliar algoritmos de ML.
  Saber qual o mais adequado.
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.
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.
Experimenter
KnowledgeFlow

  Projetar configurações para streamed data
  processing.
KnowledgeFlow

  Projetar configurações para streamed data
  processing.

  Arrastar caixas representando algoritmos e
  data sources unindo-os para carregar e
  processar de forma incremental.
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.
KnowledgeFlow
Simple CLI

  Uma interface simples que permite digitar
  comandos.
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).
Simple CLI
Referências:!
Programming Collective Intelligence 
de Toby Segaran
Data Mining – Practical Machine Learning
Tools and Techniques, Witten, Frank & Hall
Revista Mundo Java número 24 Jul/Ago 2007"
Artigo:
   Mineração de Dados em Java: Weka 
   de Rafael Santos
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
Introdução a mineração de dados utilizando o
Weka – Marcelo Damasceno - V CONNEPI,
Maceió 2010

Uma Abordagem para Classificação Online de
Tráfego TCP, InfoBrasil, Fortaleza, Março 2012

Naive Bayes com estimação de densidade de
kernel para Classificação de Tráfego Internet,
InfoBrasil, Fortaleza, Março 2012
@lucabastos
3 a 7 de setembro !
no Hotel Maksoud Plaza em SP!




  Um dos maiores eventos de TI do hemisfério sul!
Espero vocês lá!

More Related Content

Viewers also liked

Azure Machine Learning
Azure Machine LearningAzure Machine Learning
Azure Machine LearningLeandro Guerra
 
Aplicações Práticas de Machine Learning
Aplicações Práticas de Machine LearningAplicações Práticas de Machine Learning
Aplicações Práticas de Machine LearningLuiz Costa
 
Machine learning and big data
Machine learning and big dataMachine learning and big data
Machine learning and big dataPoo Kuan Hoong
 
Machine Learning com Python e Scikit-learn
Machine Learning com Python e Scikit-learnMachine Learning com Python e Scikit-learn
Machine Learning com Python e Scikit-learnChristian Perone
 
Machine learning in image processing
Machine learning in image processingMachine learning in image processing
Machine learning in image processingData Science Thailand
 
An Introduction to Supervised Machine Learning and Pattern Classification: Th...
An Introduction to Supervised Machine Learning and Pattern Classification: Th...An Introduction to Supervised Machine Learning and Pattern Classification: Th...
An Introduction to Supervised Machine Learning and Pattern Classification: Th...Sebastian Raschka
 

Viewers also liked (9)

Azure Machine Learning
Azure Machine LearningAzure Machine Learning
Azure Machine Learning
 
Deep Learning
Deep LearningDeep Learning
Deep Learning
 
Machine Learning - Introdução e Aplicações
Machine Learning - Introdução e AplicaçõesMachine Learning - Introdução e Aplicações
Machine Learning - Introdução e Aplicações
 
Webinar: Amazon Machine Learning
Webinar: Amazon Machine LearningWebinar: Amazon Machine Learning
Webinar: Amazon Machine Learning
 
Aplicações Práticas de Machine Learning
Aplicações Práticas de Machine LearningAplicações Práticas de Machine Learning
Aplicações Práticas de Machine Learning
 
Machine learning and big data
Machine learning and big dataMachine learning and big data
Machine learning and big data
 
Machine Learning com Python e Scikit-learn
Machine Learning com Python e Scikit-learnMachine Learning com Python e Scikit-learn
Machine Learning com Python e Scikit-learn
 
Machine learning in image processing
Machine learning in image processingMachine learning in image processing
Machine learning in image processing
 
An Introduction to Supervised Machine Learning and Pattern Classification: Th...
An Introduction to Supervised Machine Learning and Pattern Classification: Th...An Introduction to Supervised Machine Learning and Pattern Classification: Th...
An Introduction to Supervised Machine Learning and Pattern Classification: Th...
 

Similar to Machine Learning em Java com Weka

Analise de Projeto de Sistemas EEEP.pptx
Analise de Projeto de Sistemas EEEP.pptxAnalise de Projeto de Sistemas EEEP.pptx
Analise de Projeto de Sistemas EEEP.pptxALLYSONALVESCARVALHO
 
Inteligencia Artificial e Aprendizado de Máquina
Inteligencia Artificial e Aprendizado de MáquinaInteligencia Artificial e Aprendizado de Máquina
Inteligencia Artificial e Aprendizado de MáquinaGefferson Figueiredo Marcos
 
Como usar Machine Learning no E-commerce com soluções de PaaS e SaaS
 Como usar Machine Learning no E-commerce com soluções de PaaS e SaaS Como usar Machine Learning no E-commerce com soluções de PaaS e SaaS
Como usar Machine Learning no E-commerce com soluções de PaaS e SaaSE-Commerce Brasil
 
Introdução ao Big Data para Desenvolvedores Python
Introdução ao Big Data para Desenvolvedores PythonIntrodução ao Big Data para Desenvolvedores Python
Introdução ao Big Data para Desenvolvedores PythonLuiz Eduardo Le Masson
 
First Big Data Week
First Big Data Week First Big Data Week
First Big Data Week Hélio Silva
 
Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine LearningMarcelo Oliveira
 
Inteligência Artificial
Inteligência ArtificialInteligência Artificial
Inteligência Artificialkennedyaraujo
 
Machine learning - O que é isso?
Machine learning - O que é isso?Machine learning - O que é isso?
Machine learning - O que é isso?Vinicius Mesel
 
The Data Science Workflow
The Data Science WorkflowThe Data Science Workflow
The Data Science WorkflowRenzo Ziegler
 
Os Rumos do Teste de Software
Os Rumos do Teste de SoftwareOs Rumos do Teste de Software
Os Rumos do Teste de Softwareandrevdrodrigues
 
Introducao inteligenciaartificial
Introducao inteligenciaartificialIntroducao inteligenciaartificial
Introducao inteligenciaartificialEsther Camilo
 
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxUma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxAlessandro Binhara
 
Agile Trends 2018 - Além da Automação com Machine Learning
Agile Trends 2018 - Além da Automação com Machine LearningAgile Trends 2018 - Além da Automação com Machine Learning
Agile Trends 2018 - Além da Automação com Machine LearningEmerson Bertolo
 
Engenharia do Conhecimento e Inteligência Artificial - Aula 1/3
Engenharia do Conhecimento e Inteligência Artificial - Aula 1/3Engenharia do Conhecimento e Inteligência Artificial - Aula 1/3
Engenharia do Conhecimento e Inteligência Artificial - Aula 1/3Roberto C. S. Pacheco
 
Machine Learning: Classificação de Comentários com Azure ML & Python
Machine Learning: Classificação de Comentários com Azure ML & PythonMachine Learning: Classificação de Comentários com Azure ML & Python
Machine Learning: Classificação de Comentários com Azure ML & PythonGabriel Schade Cardoso
 

Similar to Machine Learning em Java com Weka (20)

Analise de Projeto de Sistemas EEEP.pptx
Analise de Projeto de Sistemas EEEP.pptxAnalise de Projeto de Sistemas EEEP.pptx
Analise de Projeto de Sistemas EEEP.pptx
 
Desmistificando machine learning
Desmistificando machine learningDesmistificando machine learning
Desmistificando machine learning
 
Inteligencia Artificial e Aprendizado de Máquina
Inteligencia Artificial e Aprendizado de MáquinaInteligencia Artificial e Aprendizado de Máquina
Inteligencia Artificial e Aprendizado de Máquina
 
Como usar Machine Learning no E-commerce com soluções de PaaS e SaaS
 Como usar Machine Learning no E-commerce com soluções de PaaS e SaaS Como usar Machine Learning no E-commerce com soluções de PaaS e SaaS
Como usar Machine Learning no E-commerce com soluções de PaaS e SaaS
 
Introdução ao Big Data para Desenvolvedores Python
Introdução ao Big Data para Desenvolvedores PythonIntrodução ao Big Data para Desenvolvedores Python
Introdução ao Big Data para Desenvolvedores Python
 
C# 8 e ML.NET
C# 8 e ML.NETC# 8 e ML.NET
C# 8 e ML.NET
 
First Big Data Week
First Big Data Week First Big Data Week
First Big Data Week
 
Filtro de SPAM
Filtro de SPAMFiltro de SPAM
Filtro de SPAM
 
Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine Learning
 
Inteligência Artificial
Inteligência ArtificialInteligência Artificial
Inteligência Artificial
 
Big data e data science
Big data e data scienceBig data e data science
Big data e data science
 
Machine learning - O que é isso?
Machine learning - O que é isso?Machine learning - O que é isso?
Machine learning - O que é isso?
 
Inteligência Artificial
Inteligência ArtificialInteligência Artificial
Inteligência Artificial
 
The Data Science Workflow
The Data Science WorkflowThe Data Science Workflow
The Data Science Workflow
 
Os Rumos do Teste de Software
Os Rumos do Teste de SoftwareOs Rumos do Teste de Software
Os Rumos do Teste de Software
 
Introducao inteligenciaartificial
Introducao inteligenciaartificialIntroducao inteligenciaartificial
Introducao inteligenciaartificial
 
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxUma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
 
Agile Trends 2018 - Além da Automação com Machine Learning
Agile Trends 2018 - Além da Automação com Machine LearningAgile Trends 2018 - Além da Automação com Machine Learning
Agile Trends 2018 - Além da Automação com Machine Learning
 
Engenharia do Conhecimento e Inteligência Artificial - Aula 1/3
Engenharia do Conhecimento e Inteligência Artificial - Aula 1/3Engenharia do Conhecimento e Inteligência Artificial - Aula 1/3
Engenharia do Conhecimento e Inteligência Artificial - Aula 1/3
 
Machine Learning: Classificação de Comentários com Azure ML & Python
Machine Learning: Classificação de Comentários com Azure ML & PythonMachine Learning: Classificação de Comentários com Azure ML & Python
Machine Learning: Classificação de Comentários com Azure ML & Python
 

More from Luca Bastos

Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013
Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013
Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013Luca Bastos
 
A disciplina da inovacao
A disciplina da inovacaoA disciplina da inovacao
A disciplina da inovacaoLuca Bastos
 
Big data e agile analytics
Big data e agile analytics Big data e agile analytics
Big data e agile analytics Luca Bastos
 
Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013
Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013
Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013Luca Bastos
 
Lean Analytics - TDC2013
Lean Analytics - TDC2013Lean Analytics - TDC2013
Lean Analytics - TDC2013Luca Bastos
 
Como voce se imagina daqui a 40 anos
Como voce se imagina daqui a 40 anosComo voce se imagina daqui a 40 anos
Como voce se imagina daqui a 40 anosLuca Bastos
 
Agile Brazil 2012 Painel com empreendedores digitais
Agile Brazil 2012 Painel com empreendedores digitaisAgile Brazil 2012 Painel com empreendedores digitais
Agile Brazil 2012 Painel com empreendedores digitaisLuca Bastos
 
Ágil como MacGyver - Caipira Ágil -18-08-2012
Ágil como MacGyver - Caipira Ágil -18-08-2012Ágil como MacGyver - Caipira Ágil -18-08-2012
Ágil como MacGyver - Caipira Ágil -18-08-2012Luca Bastos
 
Dez Dicas Para Startups - TDC2012
Dez Dicas Para Startups - TDC2012Dez Dicas Para Startups - TDC2012
Dez Dicas Para Startups - TDC2012Luca Bastos
 
Transações compensatórias usando REST - QCon SP 2011
Transações compensatórias usando REST - QCon SP 2011Transações compensatórias usando REST - QCon SP 2011
Transações compensatórias usando REST - QCon SP 2011Luca Bastos
 
Lightning talk Luca Bastos no QCon SP 2011
Lightning talk Luca Bastos no QCon SP 2011Lightning talk Luca Bastos no QCon SP 2011
Lightning talk Luca Bastos no QCon SP 2011Luca Bastos
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumLuca Bastos
 
Agile br2011 lucabastos-prog10x
Agile br2011 lucabastos-prog10xAgile br2011 lucabastos-prog10x
Agile br2011 lucabastos-prog10xLuca Bastos
 

More from Luca Bastos (13)

Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013
Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013
Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013
 
A disciplina da inovacao
A disciplina da inovacaoA disciplina da inovacao
A disciplina da inovacao
 
Big data e agile analytics
Big data e agile analytics Big data e agile analytics
Big data e agile analytics
 
Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013
Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013
Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013
 
Lean Analytics - TDC2013
Lean Analytics - TDC2013Lean Analytics - TDC2013
Lean Analytics - TDC2013
 
Como voce se imagina daqui a 40 anos
Como voce se imagina daqui a 40 anosComo voce se imagina daqui a 40 anos
Como voce se imagina daqui a 40 anos
 
Agile Brazil 2012 Painel com empreendedores digitais
Agile Brazil 2012 Painel com empreendedores digitaisAgile Brazil 2012 Painel com empreendedores digitais
Agile Brazil 2012 Painel com empreendedores digitais
 
Ágil como MacGyver - Caipira Ágil -18-08-2012
Ágil como MacGyver - Caipira Ágil -18-08-2012Ágil como MacGyver - Caipira Ágil -18-08-2012
Ágil como MacGyver - Caipira Ágil -18-08-2012
 
Dez Dicas Para Startups - TDC2012
Dez Dicas Para Startups - TDC2012Dez Dicas Para Startups - TDC2012
Dez Dicas Para Startups - TDC2012
 
Transações compensatórias usando REST - QCon SP 2011
Transações compensatórias usando REST - QCon SP 2011Transações compensatórias usando REST - QCon SP 2011
Transações compensatórias usando REST - QCon SP 2011
 
Lightning talk Luca Bastos no QCon SP 2011
Lightning talk Luca Bastos no QCon SP 2011Lightning talk Luca Bastos no QCon SP 2011
Lightning talk Luca Bastos no QCon SP 2011
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelum
 
Agile br2011 lucabastos-prog10x
Agile br2011 lucabastos-prog10xAgile br2011 lucabastos-prog10x
Agile br2011 lucabastos-prog10x
 

Machine Learning em Java com Weka

  • 1. Machine learning, kidiabéisso! JavaCE Community Conference 2012! " " " " " " " " " " "! " " " " " " " " " " "@lucabastos!
  • 3. Luca Bastos, conhecido apenas na família e pelo gerente do banco como Luiz Arnaldo de Gusmão Bastos.
  • 4. Luca Bastos, conhecido apenas na família e pelo gerente do banco como Luiz Arnaldo de Gusmão Bastos. Dev do tempo da Carochinha.
  • 5. Luca Bastos, conhecido apenas na família e pelo gerente do banco como Luiz Arnaldo de Gusmão Bastos. Dev do tempo da Carochinha. Eterno aprendiz. Fazer com paixão, aprender e compartilhar sempre. Minha receita de vida que sigo aplicando na Concrete Solutions em SP.
  • 6. Se tiver uma chance, vem trabalhar com a gente. Garanto que a Concrete Solutions é um lugar legal de trabalhar.
  • 10. ML estuda como construir sistemas que automaticamente melhorem com a experiência
  • 11. ML estuda como construir sistemas que automaticamente melhorem com a experiência e quais são as leis fundamentais que governam os processos de aprendizado.
  • 12. ML estuda como construir sistemas que automaticamente melhorem com a experiência e quais são as leis fundamentais que governam os processos de aprendizado. Tom Mitchel, CMU
  • 13. Com dados extraídos do universo se tentam construir modelos.
  • 14. Com dados extraídos do universo se tentam construir modelos.
  • 17. Conjunto de ferramentas e métodos que visa perceber padrões e extrair visões
  • 18. Conjunto de ferramentas e métodos que visa perceber padrões e extrair visões a partir de registros de observações e dados de exemplos ou experiências passadas.
  • 19. Ciência que faz computadores agirem sem ser explicitamente programados!
  • 20. Ciência que faz computadores agirem sem ser explicitamente programados!
  • 23. O que usamos: Algoritmos" + computação on-demand
  • 24. O que usamos: Algoritmos" + computação on-demand + dados que estão em toda a parte
  • 25. O que usamos: Algoritmos" + computação on-demand + dados que estão em toda a parte 17 horas - Fernando Meyer: Big data analytics – Por que o dado por si só não significa nada.
  • 26. Supervised learning! A máquina aprende a partir de dados onde a gente específica uma variável alvo.
  • 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. 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. Unsupervised learning! Não sabemos o que procurar e perguntamos a máquina o que os dados tem em comum.
  • 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.
  • 32. “I would rather have today’s algorithms on yesterday’s computers than vice versa” Prof. Philippe Toint
  • 33. Quais tipos de problemas podemos resolver?!
  • 38. Exemplo de clustering: Linkedin, Skills & Expertise:" http://www.linkedin.com/skills/skill/ Machine_Learning?trk=skills-hp-search
  • 40. Previsões Podem se dividir de acordo com o tipo de tarefa que faz:
  • 41. Previsões Podem se dividir de acordo com o tipo de tarefa que faz: Classificação – prevê resultados qualitativos discretos do tipo S/N, morre/sobrevive Regressão – prevê resultados quantitativos
  • 43. Classificação consiste em rotular um input baseado em dados previamente vistos
  • 44. Classificação consiste em rotular um input baseado em dados previamente vistos Filtro anti spam Identificação de linguagem Detecção de rosto (você conhece o rosto)
  • 45. Classificação consiste em rotular um input baseado em dados previamente vistos Filtro anti spam Identificação de linguagem Detecção de rosto (você conhece o rosto)
  • 54. Detecção de anomalias Reconhecer padrão de intrusão Resolver ambiguidades Fraudes financeiras
  • 55. Extrair regras a partir de associações
  • 56. Extrair regras a partir de associações
  • 57. Exemplo: regra anti-spam De um monte de mensagens, colocamos na tabela abaixo as frequências relativas das palavras mais comuns e as marcas de 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. Exemplo: regra anti-spam De um monte de mensagens, colocamos na tabela abaixo as frequências relativas das palavras mais comuns e as marcas de 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 Por pura observação a gente poderia criar uma regra como: Se (“luiz” < 0.60) e (“você” > 1.50) então é spam
  • 59. Em quais áreas se costuma usar?!
  • 61. Web mining" Decisões que envolvem julgamento
  • 62. Web mining" Decisões que envolvem julgamento Examinar imagens (screening)
  • 63. Web mining" Decisões que envolvem julgamento Examinar imagens (screening) Previsões
  • 64. Web mining" Decisões que envolvem julgamento Examinar imagens (screening) Previsões Diagnósticos
  • 65. Web mining" Decisões que envolvem julgamento Examinar imagens (screening) Previsões Diagnósticos" Análises de marketing e de vendas
  • 66. Qual conhecimento é mais desejável?!
  • 67. Já disseram que " Data Mining = estatística + marketing
  • 68. Qual a diferença entre Data Mining e Machine Learning?
  • 69. DM foca na extração de conhecimento compreensível (padrões estruturais que capturam de uma maneira explicita o conhecimento). https://sites.google.com/site/gladyscjaprendizagem/program/data-mining-machine-learning
  • 70. ML centra-se mais nos métodos computacionais que fazem possível que computadores aprendam e melhorem o seu desempenho com a experiência. https://sites.google.com/site/gladyscjaprendizagem/program/data-mining-machine-learning
  • 71. Não há como fugir de estatística em ML!
  • 73. Machine Learning ≅ interseção de matemática e estatística com engenharia de software e ciência da computação
  • 74.
  • 75. Vamos falar de probabilidade
  • 76. Probabilidade = Número de vezes que um determinado evento pode ocorrer em relação ao total de ocorrências
  • 77. Probabilidade = Número de vezes que um determinado evento pode ocorrer em relação ao total de ocorrências P(A) é a probabilidade de que A seja verdadeiro 0 ≤ P(A) ≤ 1
  • 78. Probabilidade de ocorrer um evento A em um espaço S número de casos favoráveis   n(A)   P(A) = = número de casos possíveis   n(S)  
  • 79. Qual a chance de sairem 2 números seis ao lançar um par de dados?
  • 80. Qual a chance de sairem 2 números seis ao lançar um par de dados? Resposta = ⅙ × ⅙!
  • 81. 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/  
  • 82.
  • 84. Weka Waikato Environment for Knowledge Analysis
  • 85. Weka Waikato Environment for Knowledge Analysis Criado por pesquisadores da Universidade de Waikato na Nova Zelândia
  • 86. 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
  • 87. É uma coleção de algoritmos de machine learning no estado da arte úteis para tarefas de data mining e mais diversas ferramentas de pré-processamento de dados.
  • 88. É uma coleção de algoritmos de machine learning no estado da arte úteis para tarefas de data mining e mais diversas ferramentas de pré-processamento de dados. Eles podem ser aplicados diretamente a um conjunto de dados ou chamados via código Java
  • 89. 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
  • 90. 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
  • 91. O Weka foi feito em Java e é distribuído como open source sob licença GPL2.0 para v.3.6
  • 92. O Weka foi feito em Java e é distribuído como open source sob licença GPL3.0 Weka > 3.7.5
  • 93. Download a partir de: http://www.cs.waikato.ac.nz/ml/weka/
  • 94. Quem usa OSX, na hora de instalar o .dmg, além de copiar weka-3-6-6.app para Aplicativos,
  • 95. Quem usa OSX, na hora de instalar o .dmg, além de copiar weka-3-6-6.app para Aplicativos, precisa copiar para algum lugar a seu gosto, o diretório que contém os docs, isto é, weka-3-6-6 (versão que estou usando)
  • 96. As classes são organizadas como pacotes que podem ser importados por uma aplicação Java normal (GPL).
  • 97. O tamanho máximo da heap padrão do Java é insuficiente para executar ou usar o Weka. Aumente usando o flag -Xmx2048M. "
  • 98. O flag -server usa -Xmx2048M e é o default no OSX. Mas o Weka vem com –Xmx256M. No OSX use o Xcode para editar o Info.plist e alterar Java/VMOptions.
  • 99. 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
  • 100. Os recursos de pré-processamento, os algoritmos de ML e as saídas gráficas podem ser usados através de uma interface gráfica de usuário (GUI) chamada de Weka workbench.
  • 101. O workbench pode ser usado de 4 modos:
  • 102. Explorer Interface gráfica que dá acesso a todas as facilidades usando seleção via menu e preenchimento de formulários.
  • 103. 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.
  • 104. 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.
  • 106. 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,…
  • 110. Escolha do método de classificação
  • 111. Método de classificação – decision tree J48
  • 112. Decision tree J48 - processada
  • 113. Escolha de saída gráfica
  • 114. Saída gráfica da decision tree J48
  • 115.
  • 116. Experimenter Experimentar e avaliar algoritmos de ML. Saber qual o mais adequado.
  • 117. 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.
  • 118. 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.
  • 120. KnowledgeFlow Projetar configurações para streamed data processing.
  • 121. KnowledgeFlow Projetar configurações para streamed data processing. Arrastar caixas representando algoritmos e data sources unindo-os para carregar e processar de forma incremental.
  • 122. 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.
  • 124. Simple CLI Uma interface simples que permite digitar comandos.
  • 125. 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).
  • 129. Data Mining – Practical Machine Learning Tools and Techniques, Witten, Frank & Hall
  • 130. Revista Mundo Java número 24 Jul/Ago 2007" Artigo: Mineração de Dados em Java: Weka de Rafael Santos
  • 131. 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
  • 132. Introdução a mineração de dados utilizando o Weka – Marcelo Damasceno - V CONNEPI, Maceió 2010 Uma Abordagem para Classificação Online de Tráfego TCP, InfoBrasil, Fortaleza, Março 2012 Naive Bayes com estimação de densidade de kernel para Classificação de Tráfego Internet, InfoBrasil, Fortaleza, Março 2012
  • 134. 3 a 7 de setembro ! no Hotel Maksoud Plaza em SP! Um dos maiores eventos de TI do hemisfério sul!