Aprendizado de Máquina Introdução ao WEKA Luiz Eduardo S. Oliveira Universidade Federal do Paraná Departamento de Informática http://web.inf.ufpr.br/luizoliveira Luiz S. Oliveira (UFPR) Aprendizado de Máquina 1 / 16
Conteúdo 1 Introdução 2 Conceitos Básicos 3 Ambiente Gráfico Luiz S. Oliveira (UFPR) Aprendizado de Máquina 2 / 16
Weka Waikato Environment for Knowledge Analysis. Conjunto de algoritmos de aprendizagem de máquina Desenvolvido em Java na Universidade de Waikato, Nova Zelândia Software livre (GNU General Public License) Disponibiliza quatro ambientes Explorer Experimenter KnowledgeFlow SimpleCLI (linha de comando) Luiz S. Oliveira (UFPR) Aprendizado de Máquina 3 / 16
Linha de Comando Para realizar qualquer experimento, em geral o ambiente gráfico é suficiente Entretanto, para experimentos mais elaborados, executar os experimentos em linha de comando pode ser mais prático. Integração com outros aplicativos Busca por parâmetros Múltiplas execuções Execução remota sem ambiente gráfico Memória A memória default é de 16 a 64M, o que pode ser pouco para grandes bases de dados Para aumentar a memória use a opção -Xmx1024M, por exemplo (1GB). Luiz S. Oliveira (UFPR) Aprendizado de Máquina 4 / 16
Ambiente Não esqueça de incluir o caminho do arquivo weka.jar na variável CLASSPATH Isso pode ser feito incluindo a seguinte linha no arquivo.profile do seu diretório. export CLASSPATH=/.../tools/weka/weka-3-6-2/weka.jar:$CLASSPATH Luiz S. Oliveira (UFPR) Aprendizado de Máquina 5 / 16
Arquivos.arff O arquivo de características (dataset) é o conceito mais básico na aprendizagem de máquina. Atributos que descrevem o padrão Um dataset é uma coleção de exemplos, cada um deles da classe weka.core.instance Cada instância tem um certo número de atributos, podendo ser Nominal (um de uma lista predefinida de valores) Numeric (um valor inteiro ou real) String Exemplo de um arquivo.arff Luiz S. Oliveira (UFPR) Aprendizado de Máquina 6 / 16
Estatísticas Algumas estatísticas básicas podem ser geradas atravésda rotina weka.core.instances Outras rotinas úteis como weka.core.converters.cvsloader também estão disponíveis. Para mais detalhes consulte o manual. Luiz S. Oliveira (UFPR) Aprendizado de Máquina 7 / 16
Classificadores Qualquer algoritmo de aprendizagem no WEKA é derivado da classe abstrata weka.classifiers.classifier Um classificador mapeia os atributos de cada instância do dataset para uma única classe. A maneira como isso é feito difere de classificador para classificador. Exemplo: java weka.classifiers.bayes.naivebayes -t iris.arff Para opções (exemplo -i para saída detalhada), consulte o manual Luiz S. Oliveira (UFPR) Aprendizado de Máquina 8 / 16
Executando WEKA O ambiente gráfico do WEKA possui quatro aplicações: Explorer: Ambiente para explorar dados, classificadores, etc Experimenter: Ambiente para realizar experimentos e realizar testes estatísticos KnowledgeFlow: Tem a mesma funcionalidade do Explorer com uma interface drag-and-drop SimpleCLI: Interface em linha de comando para sistemas operacionais que não disponibilizam sua propria interface em linha de comando. Luiz S. Oliveira (UFPR) Aprendizado de Máquina 9 / 16
Explorer As seguintes opções estão disponíveis no ambiente explorer (após abrir um arquivo de dados) Preprocess: Escolher e modificar os dados Classify: Treinar e testar diferentes esquemas de classificação Cluster: Aprender agrupamentos (clustering) de dados Select Attributes: Selecionar os atributos mais relevantes Visualize: Vizualização 2D dos dados Status Box Uma caixa de status aparece na parte inferior da janela. Botão direito habilita algumas outras opções como por exemplo o uso de memória. Log Mostra uma janela com um log de tudo que foi realizado durante a sessão. Salvando Gráficos Todo e qualquer janela gráfica pode ser gravada com a seguinte sequência de comandos: alt+shift+left click. Luiz S. Oliveira (UFPR) Aprendizado de Máquina 10 / 16
Carregando Dados Open file: Carrega os dados de um arquivo.arff. Open URL: Carrega os dados de um determinado endereço Open DB: Lê os dados de um banco de dados Generate: Gera dados sintéticos para validar experimentos. Luiz S. Oliveira (UFPR) Aprendizado de Máquina 11 / 16
Filtros Permite transformar os dados de diferentes maneiras. No WEKA eles estão divididos em supervisionados e não supervisionados Os filtros supervisionados levam em consideração as classes, o que não acontece nos não supervisionados. Os filtros podem ser aplicados nas instâncias ou nos atributos. Entre os filtros mais utilizados estão Discretize (supervised): Discretiza valores numéricos em nominais NominalToBinary (supervised): Transforma valores nominais em binários Standardize (non-supervised): Normaliza os atributos para ficarem com média 0 e desvio 1. Após escolher o filtro basta clicar no botão Apply. Note que vários classificadores aplicam filtros de maneira automática. Luiz S. Oliveira (UFPR) Aprendizado de Máquina 12 / 16
Filtros Luiz S. Oliveira (UFPR) Aprendizado de Máquina 13 / 16
Classificação Na lista superior de opções escolha Classify e então clique no botão Choose. As seguintes opções de teste estão disponíveis Use training set: Utiliza o mesmo dataset para treinar e testar o modelo Supplied test set: O usuário fornece um outro arquivo para testes Cross-validation: Realiza validação cruzada utilizando o número de folds indicado pelo usuário. Percentage split: Separa uma partição para treinamento e outra para teste. Clicando com o botão direito sobre um classificador, você pode gravar o modelo aprendido. Mais tarde esse modelo pode ser carregado e testado com uma outra base de dados qualquer. Mais opções estão disponíveis no botão More options (ver manual) Luiz S. Oliveira (UFPR) Aprendizado de Máquina 14 / 16
Clustering Funciona de maneira bastante similar ao processo de classificação Luiz S. Oliveira (UFPR) Aprendizado de Máquina 15 / 16
Clustering Exemplo utilizando KMeans com três clusters Luiz S. Oliveira (UFPR) Aprendizado de Máquina 16 / 16