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:
O Weka utiliza o formato ARFF e marcações como @relation, @attribute (tipo e valores) e @data (instância dos dados). As guias Preprocess, Classify, Cluster e Associate serão utilizadas nos exemplos deste post.
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.
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.
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
- Confiança: determina a frequência que os itens Y aparecem nas transações que contenham X.
O 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) |
Parabéns pelo artigo Leonardo! Trabalho alguns anos com mineração de dados e de fato o Weka é uma boa ferramenta para trabalhar com os algoritmos mencionados. O Cluster (agrupamento) seria um adicional para trabalhar na ferramenta
LikeLike
Ótima recomendação… de fato há bons algoritmos de cluster no Weka
LikeLike