O Weka (Waikato Enviroment for Knowledge Analysis) é um software livre utilizado neste Post para aplicar técnicas de mineração de dados. A ferramenta Weka dispõe de algoritmos de Data Mining, tais como:

  • Classificação: Árvore de decisão, Naive Bayes, entre outras
  • Predição numérica: Regressão linear, perceptron multicamadas e outras
  • Agrupamento: SimpleKMeans, DBScan e outras
  • Associação: Apriori, FPGrowth e outras

O Data Mining está inserido no processo de KDD (Knowledge Discovery in Databases), que segundo Fayyad et al. (1996), trata-se de um processo não trivial de identificação de padrões, que tem por objetivo a descoberta de conhecimento em banco de dados, a fim de extrair informações implícitas e potencialmente úteis.

Alguns conceitos como KDD e as tarefas da Mineração de Dados são imprescindíveis para a compreensão e aplicabilidade dos recursos em seu ambiente. Na minha Dissertação do Mestrado explico em detalhes o conteúdo teórico.

A opção Explorer (tela inicial do Weka) é a principal interface para Data Mining:

weka.png

O Weka utiliza o formato ARFF e marcações como @relation, @attribute (tipo e valores) e @data (instância dos dados). As guias PreprocessClassify, Cluster Associate serão utilizadas nos exemplos deste post.

weka-tela-inicial


Regressão Linear
“A Regressão Linear é uma equação para se estimar a condicional (valor esperado) de uma variável y, dados os valores de algumas outras variáveis x”. No primeiro exemplo, utilizamos a classe weka.classifiers.LinearRegression para descobrir o custo de indisponibilidade na empresa, ocasionadas por falhas em sistemas.

weka-linear-regression

Como a equação só trabalha com valores numéricos, alguns valores foram convertidos para utilização do algoritmo. O coeficiente indica os atributos com maior peso na equação.

Classificação
O algoritmo J48 trabalha com modelos de decisão em árvore, construídas de forma hierárquica, selecionando o atributo mais apropriado para cada situação. Neste exemplo, o algoritmo trabalhou com treinamento de 70% do conjunto e 30% para testes. No final é apresentada a classificação das instâncias, utilizando o índice kappa – medida de qualidade do modelo – e apresentou 0,834 de concordância, o que indica poucas amostras classificadas erroneamente.

weka-j48

Também pode ser utilizada a opção Visualize Tree para a representação da classificação em árvore de decisão.

 

Associação
Por fim, a regra de associação é um padrão da forma X → Y (X implica em Y), em que X e Y são conjuntos disjuntos de valores (X ∩ Y ≠ φ). A força da regra pode ser medida em (TAN et al., 2009):

  • Suporte: determina a frequência da aplicação de uma regra a um determinado conjunto de dados

weka-suporte

  • Confiança: determina a frequência que os itens Y aparecem nas transações que contenham X.

weka-confianca

algoritmo Apriori (de classificação) é utilizado para descobrir relacionamentos no conjunto de dados. É necessário configurar um suporte e confiança mínima nos parâmetros do Weka – parâmetros lowerBoundMinSupport (suporte mínimo) e minMetric (confiança mínima). O resultado será as regras de associação com maior confiança, como apontado no exemplo abaixo, baseado nos atributos configurados.

  Regra de associação Confiança
1 Tipo=0 Parada=0 3052 ==> Contorno=0 3017 conf:(0.99)
2 Tipo=1 Contorno=0 3165 ==> Parada=0 3103 conf:(0.98)
3 Reincidente=1 3907 ==> Parada=0 Contorno=0 3733 conf:(0.96)
4 Tipo=1 Parada=0 4324 ==> Duracao_menor_8h=1 3921 conf:(0.91)
5 Reincidente=0 3610 ==> Duracao_menor_8h=1 Parada=0 3016 conf:(0.84)
6 Duracao_menor_8h=1 Parada=0 4252 ==> Reincidente=0 3016 conf:(0.71)