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