28
Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Embed Size (px)

Citation preview

Page 1: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com a Ferramenta Weka

Diogo Fernando Veiga

Pedro de Stege Cecconello

Page 2: 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.

Page 3: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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

Page 4: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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}

@data63,male,typ_angina,233,no,not_present67,male,asympt,286,yes,present67,male,asympt,229,yes,present38,female,non_anginal,?,no,not_present...

Page 5: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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}

@data63,male,typ_angina,233,no,not_present67,male,asympt,286,yes,present67,male,asympt,229,yes,present38,female,non_anginal,?,no,not_present...

Atributo numérico

Atributo nominal

Page 6: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka

Weka: vários ambientes

Page 7: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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.

Page 8: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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

Page 9: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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.

Page 10: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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• RemoveUseless - Remove atribs. nominais que variam

muito (threshold definido pelo usuário, ex.: 95%) e atributos constantes (nme/nml)

)1,0(N

Page 11: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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

Page 12: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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

Page 13: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka

Weka:Clustering• Metódos para variáveis numéricas e nominais:

• EM

• k-Means

• CobWeb

• Exemplo

Page 14: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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, ...

Page 15: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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.

Page 16: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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

Page 17: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

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

Page 18: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka

Page 19: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka

Page 20: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka

Page 21: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka

Page 22: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka

Page 23: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka

Page 24: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka

Page 25: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka

Page 26: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka

Page 27: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka

Page 28: Data Mining com a Ferramenta Weka Diogo Fernando Veiga Pedro de Stege Cecconello

Data Mining com o Weka