Big Data & Analytics
Tutorial Weka
Sumário
Descrição .................................................................................................................... 2
Etapas ........................................................................................................................ 2
A. Instalar o software Weka ....................................................................................... 3
B. Fazer download da base de dados .......................................................................... 9
C. Realizar pré-processamento de dados e seleção de atributos ............................... 31
D. Selecionar Algoritmo de Classificação .................................................................. 42
Descrição
Weka é uma plataforma de software open source para análise de dados,
desenvolvida pela Universidade de Waikato, na Nova Zelândia. O software
contém uma coleção de algoritmos de Machine Learning e Data Mining escritos
em linguagem Java.
Este tutorial demonstra como a plataforma pode ser utilizada para a análise de
dados, usando como base um conjuntos de dados inseridos na própria
plataforma.
Etapas
Este tutorial é composto por quatro etapas. São elas:
A. Instalar o software Weka.
B. Base de Dados.
C. Pré-processamento de dados e seleção de atributos.
D. Algoritmo de classificação.
2
A. Instalar o software Weka
Acesse o site: [Link]
Realize o download de acordo com o seu sistema operacional. Caso seja
Windows, clique no ícone destacado em vermelho.
Você será redirecionado para o site:
[Link]
[Link]/download?use_mirror=razaoinfo
3
Espere o tempo de 5 segundos, e o download iniciará automaticamente. Uma
janela de pop-up será aberta, solicitando que você salve o arquivo de instalação
em seu computador.
Acesse a pasta onde você salvou o arquivo de instalação, e dê um duplo clique
no arquivo para iniciar a instalação do software.
Clique em Next.
Para concordar com os termos da Licença, clique em I Agree.
4
Em seguida, clique e Next.
Clique novamente em Next.
Em seguida, clique em Install.
5
O procedimento de instalação será executado. Aguarde.
Ao término da instalação, clique em Next.
Na tela seguinte, clique em Finish para finalizar a instalação do Weka.
6
Na sequência, abra o software para prosseguir à análise de dados de um
conjunto de dados. Na tela inicial do software, clique em Explorer.
Na tela seguinte, clique em Open file.
Em seguida, acesse a pasta Weka e dê duplo clique no arquivo data.
Clique na seta indicada, e navegue até a pasta de instalação do software Weka.
7
Dica!
Se você seguiu os passos anteriores, a pasta se encontra em
C:\Program Files\Weka-3-8-4\data
Na tela seguinte, estão disponibilizadas as bases de dados que vem por
padrão no software Weka.
Neste tutorial, você não utilizará nenhuma dessas bases. Para criar o
modelo preditivo, você utilizará uma base de dados disponibilizada pela
NASA para fins educacionais.
Por enquanto, saia do ambiente do Weka para realizar o download da base
de dados, seguindo os passos explicados a seguir.
8
B. Fazer download da base de dados
Acesse o repositório de modelos preditivos disponibilizado pela NASA para fins
educacionais, por meio do link:
[Link]
Dentre as bases de dados que aparecem na página, selecione o estudo sobre a
degradação de motores. Para isso, desça a página para baixo e clique no link de
download do Data Set Turbofan Engine Degradation.
9
Clique em: + Download Turbofan Engine Degradation Simulation Data Set.
Uma janela pop-up será aberta solicitando que você salve o arquivo em seu
computador.
Após salvar o arquivo, clique com o botão direito do mouse sobre ele e escolha
Extrair aqui.
Após baixar descompactar o arquivo, você terá acesso à seguinte pasta, que
contém os arquivos de texto:
O arquivo readme explica as informações contidas em todos os arquivos em
formato (.txt). Dê duplo clique e abra o arquivo readme. Observe que uma das
informações contidas é a seguinte:
10
Essa informação se refere ao Data Set FD001, que será utilizado para os estudos
neste tutorial. Observe que os conjuntos de dados são referentes à degradação
de motores na condição 1: a nível do mar, com modo de falha 1: HPC
Degradation. Mais abaixo do arquivo readme, observe as demais informações:
Como informado no documento, o conjunto de Data Sets consiste em múltiplas
variáveis de séries temporais, divididos em subconjuntos de treino e teste,
contendo informações de diversos motores de uma mesma frota. O documento
deixa claro que cada motor inicia a coleta de dados em um estado de degradação
diferente e condições de fabricação distintas, porém em condições normais e
sem falhas mecânicas.
O documento também informa que os sensores dos motores, os quais originaram
as bases de dados, fornecem dados com ruídos.
No início das séries temporais, os motores operam em condição normal (sem
falhas mecânicas), até que em certo momento desenvolvem uma falha
mecânica. O tempo de operação é medido pelo número de ciclos em relação ao
início da coleta de dados.
11
Nos Data Sets de treino (training set), a falha se desenvolve e termina de forma
completa, já nos Data Sets de teste (test set) a coleta de dados é interrompida
antes da falha completa do sistema.
As bases de dados são compostas por diversas linhas, cada uma
correspondendo a um ciclo de operação diferente de um mesmo motor, onde as
informações (separadas por espaços simples) representam a média de cada
variável no ciclo de operação. As colunas são compostas por diversas variáveis,
sendo 3 referentes a medições operacionais e 26 medições de sensores.
O objetivo do modelo preditivo é prever o tempo de vida útil do motor de acordo
com os dados das variáveis. Dessa forma, uma empresa conseguiria prever
quais motores deveriam ser priorizados para a manutenção. Para isso, você irá
desenvolver um modelo supervisionado do algoritmo.
Na sequência, navegue até a pasta onde salvou o arquivo (Data-Set Motores)
abra o arquivo train_FD001.txt da pasta, que contém uma grande base de dados
com as medições de diversos motores, desde os ciclos iniciais de operação até
a falha completa, nas condições 1 (já explicadas anteriormente).
12
A análise será baseada somente no motor 1. A primeira coluna indica o motor ao
qual as medições da linha se referem.
A segunda coluna se refere ao ciclo de operação do motor. Note que descendo
a barra de rolagem, em determinado ciclo de operação, a coleta de dados do
motor 1 se encerra, momento em que a falha ocorreu.
13
Portanto, observe que o primeiro motor possui medições de suas variáveis nos
192 ciclos de operação até a falha se desenvolver por completo.
Selecione toda a informação do primeiro motor (do ciclo 1 até o 192). Clique no
menu iniciar do Windows, abra o bloco de notas, copie e cole o trecho
destacado abaixo:
14
Esse arquivo possui os dados de medições dos 192 ciclos de operação do motor
1 até a falha completa.
Na sequência, salve o arquivo em algum local do seu computador, com o nome
de tutorial motor ou outro nome de sua preferência.
15
Antes de criar o modelo no Weka, é necessário modificar os dados para
simplificar o modelo e retirar informações desnecessárias. Por facilidade de uso,
utilize a plataforma Google Sheets. Para isso, acesse:
[Link]
Na sequência, clique em Ir para o Planilhas Google.
Caso você não tenha uma conta de e-mail Google, crie uma. Na sequência entre
em sua conta, informando o e-mail, clicando em Próxima e informando a senha.
16
Você será redirecionado para a seguinte página:
Clique em: Blank e na planilha da plataforma do Google Sheets, clique em
Arquivo e selecione a opção Importar.
17
Clique na opção Upload e aperte o botão Selecionar um arquivo do seu
dispositivo. Na janela aberta, procure pelo arquivo (.txt) que você salvou com
as 192 medições do motor 1 da base de dados train_FD001.txt (neste tutorial,
nomeamos tutorial motor) e clique em Abrir.
18
Na janela aberta, no tópico: Tipo de separador, selecione a opção
Personalizado e aperte a barra de espaço do seu teclado no campo de texto.
Isso é necessário pois as medições em uma mesma linha estão separadas por
um espaço simples.
Na sequência, clique em Importar dados.
19
Com os dados exportados para planilha do Google Sheets, você realizará
algumas modificações antes de salvá-la como um arquivo (.csv).
Como você criará o modelo em aprendizado supervisionado, é necessário rotular
os dados, pois, como você estudou durante o módulo, modelos preditivos
precisam ser treinados de forma supervisionada.
E, somente pelos valores das variáveis, não é possível identificar a condição
exata do motor para cada ciclo de operação. Porém, sabe que, no início dos
ciclos, ele está em condição normal, e que ao término (192 ciclos) estará
deteriorado.
Dessa forma, embora você não saiba exatamente como a falha se desenvolveu
ao longo do tempo, você sabe que algumas variáveis podem indicar uma
tendência ao longo dos ciclos de operação, conforme a falha se desenvolve.
Por exemplo, o aumento da vibração do equipamento ao longo do tempo pode
ser um indício de deterioração, até que, em certo momento, ele falhe por
completo. A vibração, portanto, é uma variável relevante para indicar a condição
do equipamento.
Você utilizará, portanto, o princípio de tendência para rotular os dados ao longo
dos ciclos de operação até a falha, seguindo o critério: perto da falha completa
(192 ciclos), ou seja, durante os últimos ciclos de operação, você rotulará como
20
condição urgente de manutenção. E nessa lógica, antes da condição urgente,
rotulará como curto, médio e longo o período de vida útil do motor.
Agora que você já sabe como rotular os dados para o aprendizado
supervisionado, realize as modificações na tabela.
Clique com o botão direito na primeira linha da tabela e seleciona a opção Inserir
1 acima.
Note que uma linha vazia foi criada na tabela. Nessa linha, preencha o nome dos
atributos.
21
Nomeie a primeira coluna como Unidade, referente a identificação do motor que
será sempre 1, a segunda como Ciclo, referente ao ciclo de operação do motor,
que vai desde o 1 até o 192, e as demais colunas como Var1, Var2, Var3, Var4,
..., e assim por diante, até a última coluna, de Var24.
Para não ter que digitar: Var1 até o Var24, você pode selecionar a coluna: Var1,
e clicar com o botão esquerdo, e sem soltar o botão de clique arrastar a seleção
até o final da última coluna. Clique no local destacado a seguir, para realizar esta
operação.
22
Por fim, ao lado da última coluna Var24, crie a coluna Condição, a qual atribuirá
os rótulos (longo, médio, curto e urgente), de acordo com o ciclo de operação.
Agora, estabeleça um critério para dividir os rótulos entre os ciclos de operação.
Claro que, na prática, diversos critérios poderiam ser testados e você validaria o
melhor deles.
Para simplificar o modelo didático, utilize o seguinte critério: como foi assumido
que serão 4 classes: longo, médio, curto e urgente, utilize 25% dos dados para
cada. Como há 192 ciclos de operação, rotule a base de dados em quatro
divisões de 48 ciclos de operação, conforme esquema a seguir:
Ciclo 1 ao 48: longo;
Ciclo 49 ao 96: médio;
Ciclo 97 ao 144: longo;
Ciclo 145 ao 192: urgente.
Para facilitar o processo de preenchimento, selecione a tabela inteira clicando
no ícone no canto extrema esquerdo da tabela.
23
Com toda a tabela selecionada, vá até a coluna Condição, passe o mouse por
cima da segunda linha de divisão da célula AA (a linha fica colorida quando o
mouse está por cima) e dê duplo clique.
Note que a tabela ficou reduzida.
24
Para facilitar o preenchimento dos rótulos, selecione da coluna Var1 até a coluna
Var24, clique com o botão direito do mouse e escolha a opção Ocultar colunas
C-Z.
25
Com as colunas das medições ocultadas, preencher os rótulos ficou bem mais
simples.
Agora, preencha os rótulos na coluna Condição, seguindo as regras citadas
anteriormente:
Ciclo 1 ao 48: Longo;
Ciclo 49 ao 96: Médio;
Ciclo 97 ao 144: Longo;
Ciclo 145 ao 192: Urgente.
A tabela ficará preenchida de acordo com a imagem a seguir.
26
As transições de classe ocorrem do 48 para 49 (longo para médio), 96 para 97
(médio para curto) e 144 para 145 (curto para urgente), conforme imagens a
seguir.
Por fim, salve o conjunto de dados em formato (.csv). Para isso, clique em
Arquivo, na opção Fazer Download selecione Valores separados por vírgula
(.csv, página atual).
27
Com o arquivo baixado em seu computador em formato (.csv), poderá seguir à
análise de dados no software Weka. Abrindo o arquivo em bloco de notas,
observe a seguinte estrutura de dados no formato (.csv).
Agora, copie o arquivo (.csv) extraído do Google Sheets na pasta de instalação
do software Weka (Este Computador\C:Arquivos de Programa\Weka-3-8-4\
Data).
28
Por fim, abra o software Weka, clique em Open file.... Acesse a pasta do Weka
e a pasta data. Foi nesse ponto que você parou, antes de baixar a base de dados
da NASA.
Note que o conjunto de dados (.csv) que você acabou de colar na pasta data
ainda não aparece nessa tela, pois só aparecem os arquivos em formato (.arff)
padrão do Weka.
Para abrir o arquivo no formato (.csv), clique em: Arquivos do tipo e selecione
a opção CSV data files (*.csv).
29
Agora o arquivo em formato (.csv) está visível, selecione-o e clique em Abrir.
Por fim, o conjunto de dados é carregado no Weka.
Na sequência, você fará a etapa de análise de dados.
30
C. Realizar pré-processamento de dados e seleção de atributos
Antes de desenvolver o modelo, é importante realizar a etapa de pré-
processamento de dados e seleção de atributos. A base de dados disponibilizada
pela NASA é composta de 24 variáveis no total; porém, não necessariamente
todas são úteis para serem utilizadas no algoritmo.
Para avaliar a importância de cada variável, na tela inicial do Weka, após o
carregamento da base de dados, clique no botão Visualize All.
A seguinte tela será aberta:
31
Dos gráficos acima, observe que muitos atributos são constantes ao longo dos
ciclos de operação. Portanto, essas variáveis não são úteis para captar
tendências e padrões de comportamento em seu algoritmo. Nesse caso, é
possível remover esses atributos para não prejudicar os modelos preditivos.
Você pode remover as seguintes variáveis da base de dados:
Primeiramente, você pode eliminar as 8 variáveis representadas acima: Var3,
Var4, Var8, Var9, Var13, Var19, Var21, Var22. Para isso, basta assinalar as
variáveis clicando na caixa de seleção entre as colunas: No. e Name. Após
selecionadas as caixas de seleção, clique em Remove.
32
Observe que após essa etapa, a quantidade de atributos é reduzida.
Além das variáveis constantes, é interessante avaliar o potencial das outras
variáveis, o que pode ser analisado pela tendência da variável ao longo dos
ciclos de operação. Para isso, na aba Visualize, clique no primeiro quadrado.
Uma janela será aberta.
33
34
Agora você analisará as variáveis em relação aos ciclos de operação. Para isso,
selecione, na primeira caixa de seleção, a variável Ciclo (Num); e na segunda
caixa de seleção, selecione a variável Var1, Var2 Var5, ..., até a última variável.
O seguinte gráfico será gerado na tela:
35
Observe que a Var1 é aproximadamente constante e não apresenta uma
tendência ao longo dos ciclos de operação, sendo, portanto, um exemplo de
variável que pode ser excluída do modelo. Todas as variáveis que não
apresentarem uma tendência serão removidas do modelo.
Seguindo a lógica, selecione a variável Var5 para gerar o gráfico.
36
Observe que existe uma tendência de crescimento nos dados ao progredir no
número de ciclos de operação. Portanto, esta variável é relevante e pode ser
utilizada em seu modelo.
Seguindo essa análise para todas as demais variáveis, você chegará à
conclusão que se pode retirar as variáveis: Var1, Var2 e Var20, por serem
aproximadamente constantes.
Var2:
Var20:
37
Da mesma forma, você removerá essas variáveis selecionando as caixas de
seleção e clicando em Remove. Clique na aba Preprocess, e selecione as
variáveis Var1, Var2, Var20.
Das variáveis restantes, remova também Unidade, pois é apenas o identificador
do motor proveniente da base de dados da Nasa (constante com valor 1) e Ciclo,
pois essa variável apenas revela o ciclo de operação correspondente às
medições coletados naquele ciclo de operação do motor.
Estas variáveis obrigatoriamente precisam ser removidas, pois não são variáveis
preditoras do modelo preditivo e prejudicam os resultados do algoritmo. Da
mesma forma, selecione a caixa de seleção das duas e clique em Remove.
38
Por fim, você ficará com as seguintes variáveis em seu modelo.
Como você pode observar, seu modelo utilizará, ao total, 13 variáveis, além da
variável de rótulo Condição.
Das etapas acima, você realizou uma seleção de variáveis da base de dados
original. A próxima etapa é a normalização dos dados, sendo de extrema
importância, pois as ordens de grandeza são bem diferentes entre as variáveis.
39
Para isso, clique em Choose, filters, unsupervised, attribute e selecione
Normalize.
40
Observe que já consta Normalize no campo de texto ao lado de Choose, basta
clicar em Apply para utilizar a função na base de dados.
Após a aplicação da normalização, o conjunto de dados está normalizado, todas
as variáveis ficam dentro do intervalo de valores de no mínimo 0 e máximo 1.
41
D. Selecionar Algoritmo de Classificação
A partir deste momento, você já pode partir para o modelo de classificação. Para
isso, clique na aba Classify na parte superior da tela, outra tela é aberta no
software.
Nessa tela, para selecionar o algoritmo que você utilizará, clique em Choose, no
canto superior esquerdo. Uma seleção de tipos de algoritmo será aberta.
42
Como algoritmo, você utilizará as árvores de decisão, clique em trees.
Na sequência, clique no algoritmo de árvore de decisão J48. Ao clicar, o campo
de texto ao lado de Choose e o algoritmo em questão aparecerão.
43
A seguir, antes de inicializar o algoritmo, você precisará definir a forma de
aprendizado e teste dos dados, seja por validação cruzada (cross-validation) ou
por divisão simples (percentage split) na base de dados. No tutorial, você pode
utilizar uma divisão simples de 70% e 30%, ou seja, você dividirá sua base de
dados em duas partes: 70% para treino do algoritmo; e 30% para teste e
avaliação dos resultados. Para isso, selecione a opção Percentage Split e digite
70 na caixa de texto.
Por fim, clique em Start para rodar o algoritmo de árvore de decisão.
Ao rodar o algoritmo, algumas informações aparecerão na tela com os
resultados. Aqui, você irá se concentrar nos índices principais, como a acurácia
e a matriz de confusão. A seguir, você terá as informações gerais do algoritmo
que aparecem na tela.
44
Como observado na imagem acima, são 192 instâncias de dados, 14 atributos
no total que você selecionou anteriormente, 70% dos dados para o treino e 30%
para o teste do algoritmo, também selecionados anteriormente. O algoritmo que
você selecionou é a árvore de decisão com poda da árvore (J48 pruned tree).
45
A estrutura da árvore de decisão gerada é composta por 20 folhas, ou seja, 20
nós de término como classificação (Longo, Médio, Curto ou Urgente) e 39 ramos
de tamanho da árvore.
A imagem acima representa um resumo dos resultados. A acurácia do algoritmo
foi por volta de 67,24%. O cálculo para o atingimento dessa acurácia é a razão
entre o total de acertos, ou seja, 39 (Correctly Classified Instances) e o total de
instâncias de teste, ou seja, 58 (Total Number of Instances), 30% do total das
192 instâncias da base de dados original.
Em problemas de classificação, é importante avaliar a acurácia, porém não é o
fator mais relevante gerado como resultado em problemas desse tipo. Para um
entendimento mais completo dos resultados, é necessária a análise da matriz de
confusão (Confusion Matrix), também ilustrada na imagem acima.
46
A matriz de confusão representa os acertos e erros das classes separadamente
(Longo, Médio, Curto e Urgente). Essa análise é extremamente importante, pois
imagine uma situação em que a máquina está em condição Urgente, e o
algoritmo classifique os dados como tempo de vida Médio.
Esse erro é muito mais grave do que o contrário, ou seja, uma máquina que
possui um tempo de vida Médio e o algoritmo a classifica como Urgente. Imagine
o setor de manutenção de uma empresa deixar operar uma máquina que está
em condições precárias. Isso pode resultar em falhas repentinas, custosas ou
até mesmo catastróficas, diferentemente de um alarme falso, em que o máximo
que poderia acontecer é a interrupção da operação da máquina, o que seria
averiguado rapidamente pela equipe de manutenção.
A diagonal principal da matriz de confusão são os dados de todas as classes
classificadas corretamente. Da matriz gerada pelo algoritmo J48, 11 instâncias
foram classificadas como Longo, e o algoritmo acertou; assim como 6 para
Médio, 13 para Curto e 9 para Urgente. Observe que a soma corresponde aos
39 acertos que foi explicitado anteriormente (11 + 6 + 13 + 9 = 39).
Os valores fora da diagonal principal são os erros cometidos pelo algoritmo. Por
exemplo, o primeiro valor significa que 4 instâncias foram classificadas como
Médio quando, na verdade, o tempo de vida era Longo, e assim por diante. Como
47
já foi explicado, é preciso analisar mais a fundo a matriz de confusão, onde a
última coluna de urgente é a mais crítica, pois classificar incorretamente uma
máquina que está em condição urgente pode ser catastrófico para a empresa.
Desta forma, o valor atingido pelo algoritmo é aceitável, pois cometeu apenas
um erro na condição Urgente e classificou-o como Curto, ou seja, mesmo que o
algoritmo tenha errado, ele afirmou que o tempo de vida útil da máquina era
curto. A maior parte dos erros cometidos pelo algoritmo foram cometidos quando
a máquina ainda estava em condições de operar, em tempo de vida Longo e
Médio, respectivamente. Observe que a soma dos erros também contabiliza 19,
assim como apontado pelos resultados do algoritmo (4 + 3 + 5 + 2 + 1 + 3 + 1 =
19).
Para tratar de forma diferente os erros cometidos em cada classe, seria possível
utilizar a técnica de matriz de custo (cost matrix), priorizando a classe Urgente;
penalizando mais os erros quando essa classe for incorretamente classificada.
Isso não será utilizado neste tutorial, mas é válido conhecer a técnica para as
suas futuras aplicações.
Por fim, é possível visualizar o algoritmo gerado seguindo os passos a seguir.
Clique com o botão direito no ícone do algoritmo gerado e selecione a opção
Visualize tree.
48
A seguinte tela será aberta.
Observe que a informação está toda condensada em um pequeno espaço. Para
melhorar a visualização, maximize a página.
A seguir, clique com o botão direito do mouse e selecione a opção Fit to Screen.
49
A seguinte tela será aberta.
Por meio dela, você conseguirá visualizar claramente o algoritmo e como estão
estruturados os caminhos e lógicas de tomada de decisão até a classificação da
instância, verificando também a quantidade de 20 nós folha e tamanho de árvore
de 39.
E, assim, você finalizou o estudo deste tutorial.
50