SlideShare uma empresa Scribd logo
Globalcode – Open4education
Trilha machine learning - Python x
R: mas e o Weka?
Dr. Mauro Pichiliani
mauro@pichiliani.com.br
Globalcode – Open4education
Quem sou eu
Mestre e doutor em computação pelo ITA
Escritor da SQL Magazine, .NET e Java Magazine
Colaborador do iMasters há 15 anos
Autor do livro “Conversando sobre banco de dados”
Co-produtor do DatabaseCast
Consultor independente e autor de cursos on-line
Globalcode – Open4education
Agenda
Machine learning e ferramentas
O Weka
Demo
R x Python x Weka
Case: Predição de dificuldade
Conclusão
Globalcode – Open4education
Machine learning e ferramentas
Mercado atual possui MUITAS ferramentas!
Críticas:
Precisamos de tantas?
E quanto a conhecer melhor o problema?
Criar próprio algoritmo ou combinar técnicas?
Soluções na núvem “salvam o dia”?
Kaggle e a realidade:
Talvez 5-10% do que um cientista de dados usa?
Denúncias de fraudes em rankings!
http://bit.ly/1syNk5n
Globalcode – Open4education
O Weka
Coleção de algoritmos de machine learning para tarefas de mineração
de dados
Projeto acadêmico desde 1993: univ. de Waikato (NZ). Versão atual:
3.8 (http://bit.ly/29xLbld)
Pode ser utilizado para Big Data. Foco em:
Ensino e aprendizado de machine learning e data mining
Pré-processamento de texto
Classificação
Regressão
Clusterting
Regras de associação
Visualização de dados
Pode ser utilizado stand-alone (GUI) ou chamado em código Java
Embutido na suíte da Pentaho
Globalcode – Open4education
O Weka – interesse
Globalcode – Open4education
O Weka – Divisão da interface
Explorer: uso geral (pré-processamento,
clusterizaç!ao, classificação, visualização)
Experimenter: controle de treinamento
(divisão dos conjunto testes/treinamento,
cross-valitation, etc)
KnowledgeFlow: Tarefas de ETL como
fluxos de dados
Workbench: GUI antiga
Simple CLI: linha de comandos ao estilo R
Globalcode – Open4education
O Weka – Dados
Weka suporta vários formatos de dados: Texto, URL, Database (JDBC)
e geração automática
Formato de dados comum: arquivo ARFF
(http://weka.wikispaces.com/ARFF)
Definição com palavras chaves prefixadas com @. Exemplos:
@RELATION, @ATTRIBUTE e @DATA
Exemplos:
Dados de tamanho de elementos de flores (famoso ‘iris dataset’) – iris.arff
Dados de animais de um zoológico (classificação de tipo) – zoo.arff
Diversos outros na pasta data
Globalcode – Open4education
O Weka – Demo
Classificação do ‘iris dataset’ utilizando o algoritmo J48 (árvore de
decisão)
Globalcode – Open4education
O Weka – Chamada em Java
Documentação: http://weka.wikispaces.com/Programmatic+Use
Nota: Não esqueça do arquivo weka.jar!
Exemplo de classificação:
1) Leia dados do arquivo ARFF (ou de outra fonte de dados)
2) Crie instância da classe Instances para guardar dados
3) Instancia o algoritmo utilizando alguma classe Classifier
4) Chame buildClassifier() do modelo
5) Obtenha os resultados na classe Evaluation
Demo: Acurácia de modelos com algoritmos J48, PART, DecisionTable
e DecisionDump para classificação simples de jogo de tênis
Arquivos: weather.txt e WekaTest.java
Globalcode – Open4education
O Weka – Em produção
Foco do Weka é no ensino/aprendizado aprofundado
Mais de 70 projetos ativos baseados no Weka:
http://weka.wikispaces.com/Related+Projects
Weka com Spark? distributedWekaSpark
Weka com Python? python-weka-wrapper
Weka com Matlab? Matlab Weka Interface
Weka em R? RWeka - an R interface to Weka.
Grid computing: Grid Weka
Pentaho possui repositório com + 170 pacotes para Weka:
http://bit.ly/29xZxSp
Weka: muito bom para customizar algoritmo e não apenas para ficar
utilizando algo pronto
Globalcode – Open4education
R x Python x Weka
R: muito utilizado por quem já conhecia MatLab (estatísticos e
engenheiros)
Python: facilidade de aprendizado na linguagem
Weka: UI complicada e dificuldade na programação 
Mercado adotando cada vez mais Python e R. Ex: SQL Server 2016 e
ecosistema Hadoop
Soluções na núvem abstraem vários detalhes
Outras abordagens: Scala, Lua e outras linguagens funcionais
Globalcode – Open4education
Aprendizado de Weka
Ótimos canais do Youtube:
https://www.youtube.com/user/WekaMOOC
https://www.youtube.com/user/rushdishams/videos
MOOC - Cursos da universidade de Waikato:
https://weka.waikato.ac.nz/explorer
Kaggle: Data Analysis in Weka:
https://www.kaggle.com/wiki/Start
Livro “Data Mining: Practical Machine Learning Tools and Techniques”
Globalcode – Open4education
Case: Predição de dificuldade
Objetivo: prever barreiras de programadores durante a codificação
Carter, C., Dewan P., Pichiliani, M. “Towards Incremental Separation of
Surmountable and Insurmountable Programming Difficulties”
http://dl.acm.org/citation.cfm?
id=2677294&CFID=641140328&CFTOKEN=84606346
Contexto:
Detectar tipo de barreira (intransponível ou não) de programadores
Java
Instrumentação do IDE: captura eventos do Eclipse com plug-in
Dependendo da barreira, pode-se oferecer ajuda
Aplicações em educação (MOOCs) e projetos de software na
indústria
Globalcode – Open4education
Case: Design
Sem dataset treinado: foi necessário elaborar experimento com
participantes para gerar amostra classificada
Design: features são ações de programação:
ContentAssist (intellisense)
Inserção, remoção e alteração de texto
Run, Compile, Save
Navegação na UI
Debug, break point
Features separadas por intervalos. Critérios:
Save
Largura da LCS (Longest Common Subsequence)
Uso do Weka por facilitar integração com plug-in no Eclipse
Globalcode – Open4education
Case: Resultados
Diversos algoritmos testados. Melhores resultados com K-NN (k=25)
Abordagens anteriores com margem de ~50% de predição
Resultados obtidos: ~96% de predição (não intransponíveis) e 63%
(intransponíveis)
Resultados aplicados em tese de doutorado e aprimorados com
classificação de programador fazendo progresso ou “emperrado”
(stuck)
Resultados combinados com outras métricas do programador (body
tracking)
Globalcode – Open4education
Conclusão
Existem diversas opções para colocar em prática projetos de ML
Weka é ferramenta víável para aprender machine learning
Não é usado somente no mundo acadêmico!
Weka é forte para quem quer entender funcionamento interno
de ML
E para criar/customizar seus próprios algoritmos!
Difícil para iniciantes em programação. UX ruim....
Conhecimentos específicos em Java são muito úteis
Possibilidades para escalar e integar em sistemas/aplicações (desktop)
Opinião: R e Python vão continuar sendo tecnologias de destaque no
mundo de machine learning
Globalcode – Open4education
Perguntas?
Dr. Mauro Pichiliani
mauro@pichiliani.com.br
@pichiliani @databasecast

Mais conteúdo relacionado

Mais procurados

Aula tecidos vegetais
Aula tecidos vegetaisAula tecidos vegetais
Aula tecidos vegetais
Ronaldo Professorr
 
Insetos
InsetosInsetos
Insetos
leilarosana
 
Sistema circulatório
Sistema circulatórioSistema circulatório
Sistema circulatório
Andreia Gomes
 
Aula grupos vegetais pre
Aula grupos vegetais preAula grupos vegetais pre
Aula grupos vegetais pre
BIOLOGIA Associação Pré-FEDERAL
 
Sistema Excretor
Sistema ExcretorSistema Excretor
Sistema Excretor
profatatiana
 
V.3 Gimnospermas
V.3 GimnospermasV.3 Gimnospermas
V.3 Gimnospermas
Rebeca Vale
 
2016 Frente 3 módulo 10b movimentos vegetais
2016 Frente 3 módulo 10b movimentos vegetais2016 Frente 3 módulo 10b movimentos vegetais
2016 Frente 3 módulo 10b movimentos vegetais
Colégio Batista de Mantena
 
Fisiologia vegetal
Fisiologia vegetalFisiologia vegetal
Fisiologia vegetal
DeaaSouza
 
Algas.resumo
Algas.resumoAlgas.resumo
Algas.resumo
Edicléia Bonini
 
Dispersões
DispersõesDispersões
Dispersões
unesp
 

Mais procurados (10)

Aula tecidos vegetais
Aula tecidos vegetaisAula tecidos vegetais
Aula tecidos vegetais
 
Insetos
InsetosInsetos
Insetos
 
Sistema circulatório
Sistema circulatórioSistema circulatório
Sistema circulatório
 
Aula grupos vegetais pre
Aula grupos vegetais preAula grupos vegetais pre
Aula grupos vegetais pre
 
Sistema Excretor
Sistema ExcretorSistema Excretor
Sistema Excretor
 
V.3 Gimnospermas
V.3 GimnospermasV.3 Gimnospermas
V.3 Gimnospermas
 
2016 Frente 3 módulo 10b movimentos vegetais
2016 Frente 3 módulo 10b movimentos vegetais2016 Frente 3 módulo 10b movimentos vegetais
2016 Frente 3 módulo 10b movimentos vegetais
 
Fisiologia vegetal
Fisiologia vegetalFisiologia vegetal
Fisiologia vegetal
 
Algas.resumo
Algas.resumoAlgas.resumo
Algas.resumo
 
Dispersões
DispersõesDispersões
Dispersões
 

Destaque

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?
pichiliani
 
Rastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtualRastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtual
pichiliani
 
Web Data Mining com r: aprendizagem de máquina
Web Data Mining com r: aprendizagem de máquinaWeb Data Mining com r: aprendizagem de máquina
Web Data Mining com r: aprendizagem de máquina
Fabrício Barth
 
Intro to H2O Machine Learning in R at Santa Clara University
Intro to H2O Machine Learning in R at Santa Clara UniversityIntro to H2O Machine Learning in R at Santa Clara University
Intro to H2O Machine Learning in R at Santa Clara University
Sri Ambati
 
Extração de informações de texto e cálculo de similaridade usando Apache Lucene
Extração de informações de texto e cálculo de similaridade usando Apache LuceneExtração de informações de texto e cálculo de similaridade usando Apache Lucene
Extração de informações de texto e cálculo de similaridade usando Apache Lucene
André Luis Schwerz
 
Extraindo dados públicos na marra com Python
Extraindo dados públicos na marra com PythonExtraindo dados públicos na marra com Python
Extraindo dados públicos na marra com Python
Pedro Valente
 
Machine Learning in R
Machine Learning in RMachine Learning in R
Machine Learning in R
Alexandros Karatzoglou
 
Documentação de Processos de Negócio
Documentação de Processos de NegócioDocumentação de Processos de Negócio
Documentação de Processos de Negócio
Rildo (@rildosan) Santos
 

Destaque (8)

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?
 
Rastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtualRastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtual
 
Web Data Mining com r: aprendizagem de máquina
Web Data Mining com r: aprendizagem de máquinaWeb Data Mining com r: aprendizagem de máquina
Web Data Mining com r: aprendizagem de máquina
 
Intro to H2O Machine Learning in R at Santa Clara University
Intro to H2O Machine Learning in R at Santa Clara UniversityIntro to H2O Machine Learning in R at Santa Clara University
Intro to H2O Machine Learning in R at Santa Clara University
 
Extração de informações de texto e cálculo de similaridade usando Apache Lucene
Extração de informações de texto e cálculo de similaridade usando Apache LuceneExtração de informações de texto e cálculo de similaridade usando Apache Lucene
Extração de informações de texto e cálculo de similaridade usando Apache Lucene
 
Extraindo dados públicos na marra com Python
Extraindo dados públicos na marra com PythonExtraindo dados públicos na marra com Python
Extraindo dados públicos na marra com Python
 
Machine Learning in R
Machine Learning in RMachine Learning in R
Machine Learning in R
 
Documentação de Processos de Negócio
Documentação de Processos de NegócioDocumentação de Processos de Negócio
Documentação de Processos de Negócio
 

Semelhante a Python x R: mas e o Weka?

Machine Learning Black Boxes
Machine Learning Black BoxesMachine Learning Black Boxes
Machine Learning Black Boxes
Denis Wilson Souza Rosa
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
tdc-globalcode
 
Dicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSF
Dr. Spock
 
Tdc2015 bigdata-mpias-final-pdf
Tdc2015 bigdata-mpias-final-pdfTdc2015 bigdata-mpias-final-pdf
Tdc2015 bigdata-mpias-final-pdf
Ministry of Data
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5
Diego Pacheco
 
Dicas e Truques sobre Performance em Java EE, JPA e JSF
Dicas e Truques sobre Performance em Java EE, JPA e JSFDicas e Truques sobre Performance em Java EE, JPA e JSF
Dicas e Truques sobre Performance em Java EE, JPA e JSF
Dr. Spock
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Rafael Chiavegatto
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
Charles Jungbeck
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
Rodrigo Cândido da Silva
 
Pipeconf no CoffeOps Campinas
Pipeconf no CoffeOps CampinasPipeconf no CoffeOps Campinas
Pipeconf no CoffeOps Campinas
Aécio Pires
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
armeniocardoso
 
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDCSP2019  - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...TDCSP2019  - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
Fulvio Mascara
 
Java com Excelência
Java com ExcelênciaJava com Excelência
Java com Excelência
Brazoft Solutions
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
Cleber Dantas
 
Introducao Spring ROO
Introducao Spring ROOIntroducao Spring ROO
Introducao Spring ROO
Eder Magalhães
 
Visão Geral do Java para Iniciantes - FLISOL 2011
Visão Geral do Java para Iniciantes - FLISOL 2011Visão Geral do Java para Iniciantes - FLISOL 2011
Visão Geral do Java para Iniciantes - FLISOL 2011
Frederico Maia Arantes
 
DataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigDataDataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigData
Eduardo Hahn
 
Planode Aula
Planode AulaPlanode Aula
Planode Aula
softeam
 
Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012
Frederico Maia Arantes
 
Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1
Thyago Maia
 

Semelhante a Python x R: mas e o Weka? (20)

Machine Learning Black Boxes
Machine Learning Black BoxesMachine Learning Black Boxes
Machine Learning Black Boxes
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
 
Dicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSF
 
Tdc2015 bigdata-mpias-final-pdf
Tdc2015 bigdata-mpias-final-pdfTdc2015 bigdata-mpias-final-pdf
Tdc2015 bigdata-mpias-final-pdf
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5
 
Dicas e Truques sobre Performance em Java EE, JPA e JSF
Dicas e Truques sobre Performance em Java EE, JPA e JSFDicas e Truques sobre Performance em Java EE, JPA e JSF
Dicas e Truques sobre Performance em Java EE, JPA e JSF
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
Pipeconf no CoffeOps Campinas
Pipeconf no CoffeOps CampinasPipeconf no CoffeOps Campinas
Pipeconf no CoffeOps Campinas
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDCSP2019  - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...TDCSP2019  - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
 
Java com Excelência
Java com ExcelênciaJava com Excelência
Java com Excelência
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
Introducao Spring ROO
Introducao Spring ROOIntroducao Spring ROO
Introducao Spring ROO
 
Visão Geral do Java para Iniciantes - FLISOL 2011
Visão Geral do Java para Iniciantes - FLISOL 2011Visão Geral do Java para Iniciantes - FLISOL 2011
Visão Geral do Java para Iniciantes - FLISOL 2011
 
DataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigDataDataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigData
 
Planode Aula
Planode AulaPlanode Aula
Planode Aula
 
Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012
 
Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1
 

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 Aumentada
pichiliani
 
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
pichiliani
 
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 Teaching
pichiliani
 
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 cientista
pichiliani
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimento
pichiliani
 
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
pichiliani
 
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
pichiliani
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQL
pichiliani
 
MediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastMediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCast
pichiliani
 
Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015
pichiliani
 
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 SQL
pichiliani
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimento
pichiliani
 
Projeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement ApplicationProjeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement Application
pichiliani
 
HTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement ApplicationHTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement Application
pichiliani
 
Aplicações não convencionais de grafos
Aplicações não convencionais de grafosAplicações não convencionais de grafos
Aplicações não convencionais de grafos
pichiliani
 
Projeto Car Data Applets
Projeto Car Data AppletsProjeto Car Data Applets
Projeto Car Data Applets
pichiliani
 

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
 
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
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQL
 
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
 
Aplicações não convencionais de grafos
Aplicações não convencionais de grafosAplicações não convencionais de grafos
Aplicações não convencionais de grafos
 
Projeto Car Data Applets
Projeto Car Data AppletsProjeto Car Data Applets
Projeto Car Data Applets
 

Último

Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Annelise Gripp
 
Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
tnrlucas
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
Rafael Santos
 
Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
anpproferick
 
REDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptx
REDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptxREDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptx
REDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptx
IranyGarcia
 
PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
anpproferick
 

Último (6)

Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
 
Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
 
Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
 
REDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptx
REDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptxREDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptx
REDE_DE_COMPUTADORES_TECNOLOGIA_TIPOS.pptx
 
PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
 

Python x R: mas e o Weka?

  • 1. Globalcode – Open4education Trilha machine learning - Python x R: mas e o Weka? Dr. Mauro Pichiliani mauro@pichiliani.com.br
  • 2. Globalcode – Open4education Quem sou eu Mestre e doutor em computação pelo ITA Escritor da SQL Magazine, .NET e Java Magazine Colaborador do iMasters há 15 anos Autor do livro “Conversando sobre banco de dados” Co-produtor do DatabaseCast Consultor independente e autor de cursos on-line
  • 3. Globalcode – Open4education Agenda Machine learning e ferramentas O Weka Demo R x Python x Weka Case: Predição de dificuldade Conclusão
  • 4. Globalcode – Open4education Machine learning e ferramentas Mercado atual possui MUITAS ferramentas! Críticas: Precisamos de tantas? E quanto a conhecer melhor o problema? Criar próprio algoritmo ou combinar técnicas? Soluções na núvem “salvam o dia”? Kaggle e a realidade: Talvez 5-10% do que um cientista de dados usa? Denúncias de fraudes em rankings! http://bit.ly/1syNk5n
  • 5. Globalcode – Open4education O Weka Coleção de algoritmos de machine learning para tarefas de mineração de dados Projeto acadêmico desde 1993: univ. de Waikato (NZ). Versão atual: 3.8 (http://bit.ly/29xLbld) Pode ser utilizado para Big Data. Foco em: Ensino e aprendizado de machine learning e data mining Pré-processamento de texto Classificação Regressão Clusterting Regras de associação Visualização de dados Pode ser utilizado stand-alone (GUI) ou chamado em código Java Embutido na suíte da Pentaho
  • 6. Globalcode – Open4education O Weka – interesse
  • 7. Globalcode – Open4education O Weka – Divisão da interface Explorer: uso geral (pré-processamento, clusterizaç!ao, classificação, visualização) Experimenter: controle de treinamento (divisão dos conjunto testes/treinamento, cross-valitation, etc) KnowledgeFlow: Tarefas de ETL como fluxos de dados Workbench: GUI antiga Simple CLI: linha de comandos ao estilo R
  • 8. Globalcode – Open4education O Weka – Dados Weka suporta vários formatos de dados: Texto, URL, Database (JDBC) e geração automática Formato de dados comum: arquivo ARFF (http://weka.wikispaces.com/ARFF) Definição com palavras chaves prefixadas com @. Exemplos: @RELATION, @ATTRIBUTE e @DATA Exemplos: Dados de tamanho de elementos de flores (famoso ‘iris dataset’) – iris.arff Dados de animais de um zoológico (classificação de tipo) – zoo.arff Diversos outros na pasta data
  • 9. Globalcode – Open4education O Weka – Demo Classificação do ‘iris dataset’ utilizando o algoritmo J48 (árvore de decisão)
  • 10. Globalcode – Open4education O Weka – Chamada em Java Documentação: http://weka.wikispaces.com/Programmatic+Use Nota: Não esqueça do arquivo weka.jar! Exemplo de classificação: 1) Leia dados do arquivo ARFF (ou de outra fonte de dados) 2) Crie instância da classe Instances para guardar dados 3) Instancia o algoritmo utilizando alguma classe Classifier 4) Chame buildClassifier() do modelo 5) Obtenha os resultados na classe Evaluation Demo: Acurácia de modelos com algoritmos J48, PART, DecisionTable e DecisionDump para classificação simples de jogo de tênis Arquivos: weather.txt e WekaTest.java
  • 11. Globalcode – Open4education O Weka – Em produção Foco do Weka é no ensino/aprendizado aprofundado Mais de 70 projetos ativos baseados no Weka: http://weka.wikispaces.com/Related+Projects Weka com Spark? distributedWekaSpark Weka com Python? python-weka-wrapper Weka com Matlab? Matlab Weka Interface Weka em R? RWeka - an R interface to Weka. Grid computing: Grid Weka Pentaho possui repositório com + 170 pacotes para Weka: http://bit.ly/29xZxSp Weka: muito bom para customizar algoritmo e não apenas para ficar utilizando algo pronto
  • 12. Globalcode – Open4education R x Python x Weka R: muito utilizado por quem já conhecia MatLab (estatísticos e engenheiros) Python: facilidade de aprendizado na linguagem Weka: UI complicada e dificuldade na programação  Mercado adotando cada vez mais Python e R. Ex: SQL Server 2016 e ecosistema Hadoop Soluções na núvem abstraem vários detalhes Outras abordagens: Scala, Lua e outras linguagens funcionais
  • 13. Globalcode – Open4education Aprendizado de Weka Ótimos canais do Youtube: https://www.youtube.com/user/WekaMOOC https://www.youtube.com/user/rushdishams/videos MOOC - Cursos da universidade de Waikato: https://weka.waikato.ac.nz/explorer Kaggle: Data Analysis in Weka: https://www.kaggle.com/wiki/Start Livro “Data Mining: Practical Machine Learning Tools and Techniques”
  • 14. Globalcode – Open4education Case: Predição de dificuldade Objetivo: prever barreiras de programadores durante a codificação Carter, C., Dewan P., Pichiliani, M. “Towards Incremental Separation of Surmountable and Insurmountable Programming Difficulties” http://dl.acm.org/citation.cfm? id=2677294&CFID=641140328&CFTOKEN=84606346 Contexto: Detectar tipo de barreira (intransponível ou não) de programadores Java Instrumentação do IDE: captura eventos do Eclipse com plug-in Dependendo da barreira, pode-se oferecer ajuda Aplicações em educação (MOOCs) e projetos de software na indústria
  • 15. Globalcode – Open4education Case: Design Sem dataset treinado: foi necessário elaborar experimento com participantes para gerar amostra classificada Design: features são ações de programação: ContentAssist (intellisense) Inserção, remoção e alteração de texto Run, Compile, Save Navegação na UI Debug, break point Features separadas por intervalos. Critérios: Save Largura da LCS (Longest Common Subsequence) Uso do Weka por facilitar integração com plug-in no Eclipse
  • 16. Globalcode – Open4education Case: Resultados Diversos algoritmos testados. Melhores resultados com K-NN (k=25) Abordagens anteriores com margem de ~50% de predição Resultados obtidos: ~96% de predição (não intransponíveis) e 63% (intransponíveis) Resultados aplicados em tese de doutorado e aprimorados com classificação de programador fazendo progresso ou “emperrado” (stuck) Resultados combinados com outras métricas do programador (body tracking)
  • 17. Globalcode – Open4education Conclusão Existem diversas opções para colocar em prática projetos de ML Weka é ferramenta víável para aprender machine learning Não é usado somente no mundo acadêmico! Weka é forte para quem quer entender funcionamento interno de ML E para criar/customizar seus próprios algoritmos! Difícil para iniciantes em programação. UX ruim.... Conhecimentos específicos em Java são muito úteis Possibilidades para escalar e integar em sistemas/aplicações (desktop) Opinião: R e Python vão continuar sendo tecnologias de destaque no mundo de machine learning
  • 18. Globalcode – Open4education Perguntas? Dr. Mauro Pichiliani mauro@pichiliani.com.br @pichiliani @databasecast