Machine learning java ce conference 2012 - fortaleza ce

135
Machine learning, kidiabéisso JavaCE Community Conference 2012 @lucabastos

description

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

Transcript of Machine learning java ce conference 2012 - fortaleza ce

Page 1: Machine learning java ce conference 2012 - fortaleza ce

Machine learning, kidiabéisso!

JavaCE Community Conference 2012!

" " " " " " " " " " "!" " " " " " " " " " "@lucabastos!

Page 2: Machine learning java ce conference 2012 - fortaleza ce

Quem sou eu

Page 3: Machine learning java ce conference 2012 - fortaleza ce

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

Page 4: Machine learning java ce conference 2012 - fortaleza ce

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

Dev do tempo da Carochinha.

Page 5: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 6: Machine learning java ce conference 2012 - fortaleza ce

Se tiver uma chance, vem trabalhar com a gente.

Garanto que a Concrete Solutions é um lugar legal de trabalhar.

Page 7: Machine learning java ce conference 2012 - fortaleza ce

Machine Learning, kidiabéisso

Page 8: Machine learning java ce conference 2012 - fortaleza ce

Machine Learning, kidiabéisso

Page 9: Machine learning java ce conference 2012 - fortaleza ce

Machine Learning, definições

Page 10: Machine learning java ce conference 2012 - fortaleza ce

ML estuda como construir sistemas

que automaticamente melhorem com a experiência

Page 11: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 12: Machine learning java ce conference 2012 - fortaleza ce

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

Page 13: Machine learning java ce conference 2012 - fortaleza ce

Com dados extraídos do universo se tentam construir modelos.

Page 14: Machine learning java ce conference 2012 - fortaleza ce

Com dados extraídos do universo se tentam construir modelos.

Page 15: Machine learning java ce conference 2012 - fortaleza ce

Outra definição!

Page 16: Machine learning java ce conference 2012 - fortaleza ce

Conjunto de ferramentas e métodos

Page 17: Machine learning java ce conference 2012 - fortaleza ce

Conjunto de ferramentas e métodos

que visa perceber padrões e extrair visões

Page 18: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 19: Machine learning java ce conference 2012 - fortaleza ce

Ciência que faz computadores agirem sem ser explicitamente programados!

Page 20: Machine learning java ce conference 2012 - fortaleza ce

Ciência que faz computadores agirem sem ser explicitamente programados!

Page 21: Machine learning java ce conference 2012 - fortaleza ce

O que usamos:

Page 22: Machine learning java ce conference 2012 - fortaleza ce

O que usamos:

Algoritmos"

Page 23: Machine learning java ce conference 2012 - fortaleza ce

O que usamos:

Algoritmos"

+ computação on-demand

Page 24: Machine learning java ce conference 2012 - fortaleza ce

O que usamos:

Algoritmos"

+ computação on-demand

+ dados que estão em toda a parte

Page 25: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 26: Machine learning java ce conference 2012 - fortaleza ce

Supervised learning!

A máquina aprende a partir de dados onde a gente específica uma variável alvo.

Page 27: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 28: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 29: Machine learning java ce conference 2012 - fortaleza ce

Unsupervised learning!

Não sabemos o que procurar e perguntamos a máquina o que os dados tem em comum.

Page 30: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 31: Machine learning java ce conference 2012 - fortaleza ce

Algoritmos!

Page 32: Machine learning java ce conference 2012 - fortaleza ce

“I would rather have today’s algorithms on yesterday’s computers than vice versa”

Prof. Philippe Toint

Page 33: Machine learning java ce conference 2012 - fortaleza ce

Quais tipos de problemas podemos resolver?!

Page 34: Machine learning java ce conference 2012 - fortaleza ce

Agrupar coisas relacionadas - clustering

Page 35: Machine learning java ce conference 2012 - fortaleza ce

Agrupar coisas relacionadas - clustering

Page 36: Machine learning java ce conference 2012 - fortaleza ce

Agrupar coisas relacionadas - clustering

Page 37: Machine learning java ce conference 2012 - fortaleza ce

Agrupar coisas relacionadas - clustering

Page 38: Machine learning java ce conference 2012 - fortaleza ce

Exemplo de clustering:

Linkedin, Skills & Expertise:"

http://www.linkedin.com/skills/skill/Machine_Learning?trk=skills-hp-search

Page 39: Machine learning java ce conference 2012 - fortaleza ce

Clustering: Linkedin, Skills & Expertise

Page 40: Machine learning java ce conference 2012 - fortaleza ce

Previsões

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

Page 41: Machine learning java ce conference 2012 - fortaleza ce

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

Page 42: Machine learning java ce conference 2012 - fortaleza ce

Classificação

Page 43: Machine learning java ce conference 2012 - fortaleza ce

Classificação consiste em rotular um input baseado em dados previamente vistos

Page 44: Machine learning java ce conference 2012 - fortaleza ce

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)

Page 45: Machine learning java ce conference 2012 - fortaleza ce

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)

Page 46: Machine learning java ce conference 2012 - fortaleza ce

Classificação: Identificação de linguagem

Page 47: Machine learning java ce conference 2012 - fortaleza ce

Classificação: detectar padrões em imagens

Page 48: Machine learning java ce conference 2012 - fortaleza ce

Classificação: separar cães de gatos

Page 49: Machine learning java ce conference 2012 - fortaleza ce

Recomendações

Page 50: Machine learning java ce conference 2012 - fortaleza ce

Recomendações

Page 51: Machine learning java ce conference 2012 - fortaleza ce

Recomendações

Page 52: Machine learning java ce conference 2012 - fortaleza ce

Detecção de anomalias

Page 53: Machine learning java ce conference 2012 - fortaleza ce

Detecção de anomalias

Page 54: Machine learning java ce conference 2012 - fortaleza ce

Detecção de anomalias

Reconhecer padrão de intrusão

Resolver ambiguidades

Fraudes financeiras

Page 55: Machine learning java ce conference 2012 - fortaleza ce

Extrair regras a partir de associações

Page 56: Machine learning java ce conference 2012 - fortaleza ce

Extrair regras a partir de associações

Page 57: Machine learning java ce conference 2012 - fortaleza ce

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:

Page 58: Machine learning java ce conference 2012 - fortaleza ce

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:

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

Se (“luiz” < 0.60) e (“você” > 1.50) então é spam

Page 59: Machine learning java ce conference 2012 - fortaleza ce

Em quais áreas se costuma usar?!

Page 60: Machine learning java ce conference 2012 - fortaleza ce

Web mining

Page 61: Machine learning java ce conference 2012 - fortaleza ce

Web mining"

Decisões que envolvem julgamento

Page 62: Machine learning java ce conference 2012 - fortaleza ce

Web mining"

Decisões que envolvem julgamento

Examinar imagens (screening)

Page 63: Machine learning java ce conference 2012 - fortaleza ce

Web mining"

Decisões que envolvem julgamento

Examinar imagens (screening)

Previsões

Page 64: Machine learning java ce conference 2012 - fortaleza ce

Web mining"

Decisões que envolvem julgamento

Examinar imagens (screening)

Previsões

Diagnósticos

Page 65: Machine learning java ce conference 2012 - fortaleza ce

Web mining"

Decisões que envolvem julgamento

Examinar imagens (screening)

Previsões

Diagnósticos"

Análises de marketing e de vendas

Page 66: Machine learning java ce conference 2012 - fortaleza ce

Qual conhecimento é mais desejável?!

Page 67: Machine learning java ce conference 2012 - fortaleza ce

Já disseram que "

Data Mining = estatística + marketing

Page 68: Machine learning java ce conference 2012 - fortaleza ce

Qual a diferença entre Data Mining e Machine Learning?

Page 69: Machine learning java ce conference 2012 - fortaleza ce

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

Page 70: Machine learning java ce conference 2012 - fortaleza ce

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

Page 71: Machine learning java ce conference 2012 - fortaleza ce

Não há como fugir de estatística em ML!

Page 72: Machine learning java ce conference 2012 - fortaleza ce

Machine Learning ≅

Page 73: Machine learning java ce conference 2012 - fortaleza ce

Machine Learning ≅

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

Page 74: Machine learning java ce conference 2012 - fortaleza ce
Page 75: Machine learning java ce conference 2012 - fortaleza ce

Vamos falar de probabilidade

Page 76: Machine learning java ce conference 2012 - fortaleza ce

Probabilidade

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

Page 77: Machine learning java ce conference 2012 - fortaleza ce

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

Page 78: Machine learning java ce conference 2012 - fortaleza ce

Probabilidade de ocorrer um evento A em um espaço S

P(A) = número de casos possíveis  

= número de casos favoráveis   n(A)  n(S)  

Page 79: Machine learning java ce conference 2012 - fortaleza ce

Qual a chance de sairem 2 números seis ao lançar um par de dados?

Page 80: Machine learning java ce conference 2012 - fortaleza ce

Qual a chance de sairem 2 números seis ao lançar um par de dados?

Resposta = ⅙ × ⅙ !

Page 81: Machine learning java ce conference 2012 - fortaleza ce

Naïve Bayes

P(Ai | E) = P(Ai) . P(E|Ai)  

Σ P(Aj).P(E|AJ)  

Ver: h#p://blog.concretesolu3ons.com.br/2012/02/naive-­‐bayes-­‐resposta-­‐do-­‐tes3nho-­‐4/  

J=1

k

Page 82: Machine learning java ce conference 2012 - fortaleza ce
Page 83: Machine learning java ce conference 2012 - fortaleza ce

Weka!

Machine learning com Java

Page 84: Machine learning java ce conference 2012 - fortaleza ce

Weka

Waikato Environment for Knowledge Analysis

Page 85: Machine learning java ce conference 2012 - fortaleza ce

Weka

Waikato Environment for Knowledge Analysis

Criado por pesquisadores da Universidade de Waikato na Nova Zelândia

Page 86: Machine learning java ce conference 2012 - fortaleza ce

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

Page 87: Machine learning java ce conference 2012 - fortaleza ce

É 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.

Page 88: Machine learning java ce conference 2012 - fortaleza ce

É 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

Page 89: Machine learning java ce conference 2012 - fortaleza ce

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

Page 90: Machine learning java ce conference 2012 - fortaleza ce

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

Page 91: Machine learning java ce conference 2012 - fortaleza ce

O Weka foi feito em Java e é distribuído como open source sob licença GPL2.0 para v.3.6

Page 92: Machine learning java ce conference 2012 - fortaleza ce

O Weka foi feito em Java e é distribuído como open source sob licença GPL3.0 Weka > 3.7.5

Page 93: Machine learning java ce conference 2012 - fortaleza ce

Download a partir de:

http://www.cs.waikato.ac.nz/ml/weka/

Page 94: Machine learning java ce conference 2012 - fortaleza ce

Quem usa OSX, na hora de instalar o .dmg, além de copiar weka-3-6-6.app para Aplicativos,

Page 95: Machine learning java ce conference 2012 - fortaleza ce

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)

Page 96: Machine learning java ce conference 2012 - fortaleza ce

As classes são organizadas como pacotes que podem ser importados por uma aplicação Java normal (GPL).

Page 97: Machine learning java ce conference 2012 - fortaleza ce

O tamanho máximo da heap padrão do Java é insuficiente para executar ou usar o Weka. Aumente usando o flag -Xmx2048M. "

Page 98: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 99: Machine learning java ce conference 2012 - fortaleza ce

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

Page 100: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 101: Machine learning java ce conference 2012 - fortaleza ce

O workbench pode ser usado de 4 modos:

Page 102: Machine learning java ce conference 2012 - fortaleza ce

Explorer

Interface gráfica que dá acesso a todas as facilidades usando seleção via menu e preenchimento de formulários.

Page 103: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 104: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 105: Machine learning java ce conference 2012 - fortaleza ce

Explorer

Page 106: Machine learning java ce conference 2012 - fortaleza ce

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,…

Page 107: Machine learning java ce conference 2012 - fortaleza ce

Arquivo .arff

Page 108: Machine learning java ce conference 2012 - fortaleza ce

Explorer com testinho5.arff lido

Page 109: Machine learning java ce conference 2012 - fortaleza ce

Classificação

Page 110: Machine learning java ce conference 2012 - fortaleza ce

Escolha do método de classificação

Page 111: Machine learning java ce conference 2012 - fortaleza ce

Método de classificação – decision tree J48

Page 112: Machine learning java ce conference 2012 - fortaleza ce

Decision tree J48 - processada

Page 113: Machine learning java ce conference 2012 - fortaleza ce

Escolha de saída gráfica

Page 114: Machine learning java ce conference 2012 - fortaleza ce

Saída gráfica da decision tree J48

Page 115: Machine learning java ce conference 2012 - fortaleza ce
Page 116: Machine learning java ce conference 2012 - fortaleza ce

Experimenter

Experimentar e avaliar algoritmos de ML. Saber qual o mais adequado.

Page 117: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 118: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 119: Machine learning java ce conference 2012 - fortaleza ce

Experimenter

Page 120: Machine learning java ce conference 2012 - fortaleza ce

KnowledgeFlow

Projetar configurações para streamed data processing.

Page 121: Machine learning java ce conference 2012 - fortaleza ce

KnowledgeFlow

Projetar configurações para streamed data processing.

Arrastar caixas representando algoritmos e data sources unindo-os para carregar e processar de forma incremental.

Page 122: Machine learning java ce conference 2012 - fortaleza ce

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.

Page 123: Machine learning java ce conference 2012 - fortaleza ce

KnowledgeFlow

Page 124: Machine learning java ce conference 2012 - fortaleza ce

Simple CLI

Uma interface simples que permite digitar comandos.

Page 125: Machine learning java ce conference 2012 - fortaleza ce

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).

Page 126: Machine learning java ce conference 2012 - fortaleza ce

Simple CLI

Page 127: Machine learning java ce conference 2012 - fortaleza ce

Referências:!

Page 128: Machine learning java ce conference 2012 - fortaleza ce

Programming Collective Intelligence de Toby Segaran

Page 129: Machine learning java ce conference 2012 - fortaleza ce

Data Mining – Practical Machine Learning Tools and Techniques, Witten, Frank & Hall

Page 130: Machine learning java ce conference 2012 - fortaleza ce

Revista Mundo Java número 24 Jul/Ago 2007"Artigo:

Mineração de Dados em Java: Weka de Rafael Santos

Page 131: Machine learning java ce conference 2012 - fortaleza ce

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

Page 132: Machine learning java ce conference 2012 - fortaleza ce

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

Page 133: Machine learning java ce conference 2012 - fortaleza ce

@lucabastos

Page 134: Machine learning java ce conference 2012 - fortaleza ce

Um dos maiores eventos de TI do hemisfério sul!

3 a 7 de setembro !no Hotel Maksoud Plaza em SP!

Page 135: Machine learning java ce conference 2012 - fortaleza ce

Espero vocês lá!