Data Mining com a Ferramenta
Weka
Diogo Fernando Veiga
Pedro de Stege Cecconello
Data Mining com o Weka
Software Weka
• Software para data mining/machine learning
escrito em Java (distribuído sob GNU Public
License)
• Utilizado em pesquisa e educação
• Principais características:
• Extenso conjunto de rotinas para pré-processamento,
esquemas de aprendizagem, além de métodos de
avaliação
• GUIs (inclusive para visualização dos dados)
• Ambiente para comparação de algortimos de
aprendizagem.
Data Mining com o Weka
Versões Weka
• WEKA 3.0: “book version” compatível com a
descrição do livro
• WEKA 3.4: Última versão (utilizada na
apresentação)
• Esquema de versões Linux
Data Mining com o Weka
Weka trabalha com flat files
@relation heart-disease-simplified
@attribute age numeric
@attribute sex { female, male}
@attribute chest_pain_type { typ_angina, asympt, non_anginal, atyp_angina}
@attribute cholesterol numeric
@attribute exercise_induced_angina { no, yes}
@attribute class { present, not_present}
@data
63,male,typ_angina,233,no,not_present
67,male,asympt,286,yes,present
67,male,asympt,229,yes,present
38,female,non_anginal,?,no,not_present
...
Data Mining com o Weka
Weka trabalha com flat files
@relation heart-disease-simplified
Atributo numérico
@attribute age numeric
Atributo nominal
@attribute sex { female, male}
@attribute chest_pain_type { typ_angina, asympt, non_anginal, atyp_angina}
@attribute cholesterol numeric
@attribute exercise_induced_angina { no, yes}
@attribute class { present, not_present}
@data
63,male,typ_angina,233,no,not_present
67,male,asympt,286,yes,present
67,male,asympt,229,yes,present
38,female,non_anginal,?,no,not_present
...
Data Mining com o Weka
Weka: vários ambientes
Data Mining com o Weka
Explorer: Pre-processing
• Importação dos dados em vários formatos:
ARFF, CSV, C4.5, binary
• Dados também podem ser lidos de uma URL ou
de um banco de dados (utilizando o pacote
JDBC)
• Rotinas de pré-processamento no Weka são
chamados de filtros
• Weka tem filtros para:
• Discretização, normalização, amostragem, seleção de
atributos, transformação e combinação de atributos,
entre outros.
Data Mining com o Weka
Filtros: Redução dos dados
• Metodos supervisados
weka.filters.supervised.instance.*
• Resample : Faz uma amostragem estratificada com o
dataset fornecido. O dataset deve ter um atributo
nominal informando a classe. Bias para distribuição das
classes na amostra seja uniforme.
• StratifiedRemoveFolds: Cria um fold estratificado para o
cross-validation.
• SpreadSubsample: Produz uma amostra aleatória dos
dados. Este filtro permite definir o máximo spread entre a
classe mais rara e a classe mais comum. Por exemplo,
5:1
Data Mining com o Weka
Filtros: Redução dos dados
• Metodos não-supervisados
weka.filters.unsupervised.instance.*
• Resample: amostragem aleatória (não estratificada) do
dataset
• Randomize - embaralha conjunto de dados
• RemoveFolds – Define um fold para o crossvalidation
• RemovePercentage – Remove uma proporção do
dataset
• RemoveRange - Remove um determinado intervalo de
instâncias do dataset.
Data Mining com o Weka
Filtros: Redução dos Atributos
• Metodos não-supervisados
weka.filters.unsupervised.attribute.*
• Normalize: valores no intervalo [0,1], exceto o atributo
de classe
• NumericTransform - Aplica uma função matemática
qualquer aos valores do atributo (classe Java)
• ReplaceMissingValues – Preenche com a média (atrib.
numerico ) ou a moda (atrib.nominal)
• Standardize – transformação dos valores para uma N (0,1)
• RemoveUseless - Remove atribs. nominais que variam
muito (threshold definido pelo usuário, ex.: 95%) e
atributos constantes (nme/nml)
Data Mining com o Weka
Filtros: Redução dos Atributos
• Metodos supervisados
weka.filters.supervised.attribute.*
• AttributeSelection : Permite a combinacao de varios
metodos de avaliacao e busca de atributos.
•
Avaliação: ganho de info., PCA e vários outros
•
Busca: best first, greedy, genetic search, exhaustive search, rank
search
• Discretize: Discretiza um intervalo de atributos
numericos utilizando a tecnica MDL (Fayyad & Irani's) ou
MDL (Kononenko)
• NominalToBinary: Converte todos os atributos nominais
para atributos binários numéricos
Data Mining com o Weka
Explorer: Attribute Selection
• Usado para investigar quais atributos
(subconjuntos deles) são mais preditivos
• AttributeSelection em 2 etapas:
•
Um método de busca
•
Um método de avaliação
• Flexibilidade: (quase) qualquer combinação de
busca/avaliação
Data Mining com o Weka
Weka:Clustering
• Metódos para variáveis numéricas e nominais:
• EM
• k-Means
• CobWeb
• Exemplo
Data Mining com o Weka
Weka: Classificadores
• Modelos para a previsão de classes (nominal ou
númerica):
• Weka implementa:
• Árvore de decisão, listas, classificadores baseado em
instâncias, multi-layer perceptrons, regressão, redes
bayesianas, ...
• “Meta”-classificadores:
• Bagging, boosting, stacking, error-correcting output code,
locally weighted learning, ...
Data Mining com o Weka
Weka: Associações
• Identificar dependências estatísticas entre grupos
de atributos
• 3 algorítimos para aprender associações:
• Apriori;
• PredictiveApriori;
• Tertius;
• Trabalha somente com dados nominais;
• Computa regras que dêem um suporte mínimo e
ultrapasse um nível de confiança.
Data Mining com o Weka
Weka: Visualização
• Ajuda a identificar a dificuldade na aprendizagem
do problema
• Visualização 2D
• Difere as classes por cor
Data Mining com o Weka
Weka: Experimentos em conjunto
• Experimenter: permite a comparação de diferentes
estratégias de aprendizagem.
• Para problemas de classificação e regressão
• Resultados escritos em um arquivo ou base de
dados
• Opções de avaliação: cross-validation, curva de
aprendizagem, hold-out
• Pode ser executado com diferentes configurações
de parâmetros
• Teste de significância acoplado
Data Mining com o Weka
Data Mining com o Weka
Data Mining com o Weka
Data Mining com o Weka
Data Mining com o Weka
Data Mining com o Weka
Data Mining com o Weka
Data Mining com o Weka
Data Mining com o Weka
Data Mining com o Weka
Data Mining com o Weka
Download

Weka