Python x R: mas e o Weka?
-
Upload
pichiliani -
Category
Technology
-
view
974 -
download
1
Transcript of Python x R: mas e o Weka?
Globalcode – Open4education
Trilha machine learning - Python x R: mas e o Weka?
Dr. Mauro [email protected]
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 WekaColeçã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 miningPré-processamento de textoClassificaçãoRegressãoClustertingRegras de associaçãoVisualização de dados
Pode ser utilizado stand-alone (GUI) ou chamado em código JavaEmbutido na suíte da PentahoMuita documentação e forte comunidade de desenvolvedores
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.arffDados de animais de um zoológico (classificação de tipo) – zoo.arffDiversos 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+UseNota: 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 dados3) Instancia o algoritmo utilizando alguma classe Classifier4) Chame buildClassifier() do modelo5) 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çãoFoco do Weka é no ensino/aprendizado aprofundadoMais de 70 projetos ativos baseados no Weka: http://weka.wikispaces.com/Related+Projects
Weka com Spark? distributedWekaSparkWeka com Python? python-weka-wrapperWeka com Matlab? Matlab Weka InterfaceWeka em R? RWeka - an R interface to Weka.Grid computing: Grid Weka
Pentaho possui repositório com + 170 pacotes para Weka: http://bit.ly/29xZxSpWeka: muito bom para customizar algoritmo e não apenas para ficar utilizando algo pronto
Globalcode – Open4education
R x Python x WekaR: muito utilizado por quem já conhecia MatLab (estatísticos e engenheiros)Python: facilidade de aprendizado na linguagemWeka: UI complicada e dificuldade na programação
Mercado adotando cada vez mais Python e R. Ex: SQL Server 2016 e ecosistema HadoopSoluções na núvem abstraem vários detalhesOutras abordagens: Scala, Lua e outras linguagens funcionais
Globalcode – Open4education
Aprendizado de WekaÓtimos canais do Youtube:
https://www.youtube.com/user/WekaMOOChttps://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 JavaInstrumentação do IDE: captura eventos do Eclipse com plug-inDependendo da barreira, pode-se oferecer ajudaAplicações em educação (MOOCs) e projetos de software na indústria
Globalcode – Open4education
Case: DesignSem 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 textoRun, Compile, SaveNavegação na UIDebug, break point
Features separadas por intervalos. Critérios:SaveLargura 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ãoExistem diversas opções para colocar em prática projetos de MLWeka é ferramenta víável para aprender machine learning
Não é usado somente no mundo acadêmico!
Weka é forte para quem quer entender funcionamento interno de MLE para criar/customizar seus próprios algoritmos!
Difícil para iniciantes em programação. UX ruim....Conhecimentos específicos em Java são muito úteisPossibilidades 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