Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TDC2016SP - Python x R: mas e o Weka?

292 views

Published on

Python x R: mas e o Weka?

Published in: Education
  • Be the first to comment

TDC2016SP - Python x R: mas e o Weka?

  1. 1. Globalcode – Open4education Trilha machine learning - Python x R: mas e o Weka? Dr. Mauro Pichiliani mauro@pichiliani.com.br
  2. 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. 3. Globalcode – Open4education Agenda Machine learning e ferramentas O Weka Demo R x Python x Weka Case: Predição de dificuldade Conclusão
  4. 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. 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. 6. Globalcode – Open4education O Weka – interesse
  7. 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. 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. 9. Globalcode – Open4education O Weka – Demo Classificação do ‘iris dataset’ utilizando o algoritmo J48 (árvore de decisão)
  10. 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. 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. 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. 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. 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. 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. 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. 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. 18. Globalcode – Open4education Perguntas? Dr. Mauro Pichiliani mauro@pichiliani.com.br @pichiliani @databasecast

×