Mineração de Dados: Conceitos, Aplicações e Experimentos com Weka Aurora Trinidad Ramirez Pozo [email protected] Departamento de Informática Universidade Federal do Paraná Motivação A informatização dos meios produtivos permitiu a geração de grandes volumes de dados: • Transações eletrônicas; • Novos equipamentos científicos e industriais para observação e controle; • Dispositivos de armazenamento em massa; Aproveitamento da informação permite ganho de competitividade: “conhecimento é poder (e poder = $$!)” Conhecimento Volume $ Conhec. Informação Dados agreguem valor aos seus negócios Valor Motivação Os recursos de análise de dados tradicionais são inviáveis para acompanhar esta evolução Solução: • ferramentas de automatização das tarefas repetitivas e sistemática de análise de dados • ferramentas de auxílio para as tarefas cognitivas da análise • integração das ferramentas em sistemas apoiando o processo completo de descoberta de conhecimento para tomada de decisão Aplicação Um problema do mundo dos negócios: entender o perfil dos clientes • desenvolvimento de novos produtos; • controle de estoque em postos de distribuição; • propaganda mal direcionada gera maiores gastos e desestimula o possível interessado a procurar as ofertas adequadas; Quais são meus clientes típicos? Descoberta de Conhecimento em Bancos de Dados “O processo não trivial de extração de informações implícitas, anteriormente desconhecidas, e potencialmente úteis de uma fonte de dados”; O que é um padrão interessante ? (válido, novo, útil e interpretável) Transformar dados em informação e conhecimento • úteis para o suporte à decisão, • gerenciamento de negócios, controle de produção • análise de mercado ao projeto de engenharia e exploração científica KDD x Data Mining Mineração de dados é o passo do processo de KDD que produz um conjunto de padrões sob um custo computacional aceitável; KDD utiliza algoritmos de data mining para extrair padrões classificados como “conhecimento”. Incorpora também tarefas como escolha do algoritmo adequado, processamento e amostragem de dados e interpretação de resultados; Posicionamento Etapas do Processo Seleção Pré-processamento Transformação Data mining (aprendizagem) Interpretação e Avaliação Processo Processo mínimo de descoberta do conhecimento Compreensão do domínio e dos objetivos da tarefa; Criação do conjunto de dados envolvendo as variáveis necessárias; Processo Seleção de Dados Selecionar ou segmentar dados de acordo com critérios definidos: • Ex.: Todas as pessoas que são proprietárias de carros é um subconjunto de dados determinado. Processo 12 Processo mínimo Operações como identificação de ruídos, outliers, como tratar falta de dados em alguns campos, etc. Processo Pré-Processamento Estágio de limpeza dos dados, onde informações julgadas desnecessárias são removidas. Reconfiguração dos dados para assegurar formatos consistentes (identificação) – Ex. : sexo = “F” ou “M” sexo = “M” ou “H” Processo 14 Processo mínimo Redução de dimensionalidade, combinação de atributos; Processo Transformação Transformam-se os dados em formatos utilizáveis. Esta depende da técnica data mining usada. Disponibilizar os dados de maneira usável e navegável. Processo 16 Processo mínimo Escolha e execução do algoritmo de aprendizagem de acordo com a tarefa a ser cumprida Processo Data Mining É a verdadeira extração dos padrões de comportamento dos dados (exemplos) Processo 18 Processo mínimo Interpretação dos resultados, com possível retorno aos passos anteriores; Consolidação: incorporação e documentação do conhecimento e comunicação aos interessados; Processo Interpretação e Avaliação Identificado os padrões pelo sistema, estes são interpretados em conhecimentos, os quais darão suporte a tomada de decisões humanas Processo 20 Etapas do Processo O processo de KDD é interativo, iterativo, cognitivo e exploratório, envolvendo vários passos muitas decisões sendo feitas pelo analista ( especialista do domínio dos dados) Técnicas de pré-processamento e transformação de dados são aplicadas para aumentar a qualidade e o poder de expressão dos dados a serem minerados. Estas fases tendem a consumir a maior parte do tempo dedicado ao processo de KDD (aproximadamente 70%). Métodos de mineração de dados Métodos de mineração de dados normalmente são extensões ou combinações de uns poucos métodos fundamentais; Porém, não é viável a criação de um único método universal: cada algoritmo possui sua própria tendência indutiva; Métodos Tarefas básicas Previsão • Cálculo de variáveis de interesse a partir dos valores de um conjunto de variáveis de explicação; • É comumente visada em aprendizado de máquina/estatística; • Exemplos: classificação e regressão; Métodos Tarefas básicas Descrição • Reportar relações entre as variáveis do modelo de forma simétrica; • À princípio, está mais relacionada ao processo de KDD; • Exemplos: agrupamento, sumarização (incluindo sumário de textos), dependências, análise de desvio; Métodos Exemplo de previsão (I) Análise de crédito sem crédito x débito x x x x o o x o Um hiperplano paralelo de separação: pode ser interpretado diretamente como uma regra: o o o o t x: exemplo recusado o: exemplo aceito x o o o renda • se a renda é menor que t, então o crédito não deve ser liberado Exemplo: • árvores de decisão; • indução de regras Métodos Exemplos Áreas de aplicações potenciais: • Vendas e Marketing • Identificar padrões de comportamento de consumidores • Associar comportamentos à características demográficas de consumidores • Campanhas de marketing direto (mailing campaigns) • Identificar consumidores “leais” Exemplos Exemplo de previsão (II) Análise de crédito sem crédito x débito x x x o x o o x o o o o t x: exemplo recusado o: exemplo aceito x o o o Hiperplano oblíquo: melhor separação: Exemplos: • regressão linear; • perceptron; renda Métodos Exemplo de previsão (III) Análise de crédito sem crédito x débito x x x o x o o x o o o o t x: exemplo recusado o: exemplo aceito x o o o renda Superfície não linear: melhor poder de classificação, pior interpretação; Exemplos: • perceptrons multicamadas; • regressão não-linear; Métodos Exemplo de previsão (IV) Análise de crédito sem crédito x débito x x x o o x o Métodos baseado em exemplos; Exemplos: o x o o o t x: exemplo recusado o: exemplo aceito x o o o • k-vizinhos mais próximos; • raciocínio baseado em casos; renda Métodos Exemplo de descrição (I) Análise de crédito + + débito + + + + + + + + + + t Agrupamento Exemplo: + • vector quantization; + + + + renda +: exemplo Métodos Exemplo de descrição (II) Regras de associação • “98% dos consumidores que adquiriram pneus e acessórios de automóveis também se interessaram por serviços automotivos”; • descoberta simétrica de relações, ao contrário de métodos de classificação qualquer atributo pode ser uma classe ou um atributo de discriminação; Métodos Técnicas Revisão geral de Aprendizagem: CBR Exemplos Áreas de aplicações potenciais: • Bancos • Identificar padrões de fraudes (cartões de crédito) • Identificar características de correntistas • Mercado Financeiro ($$$) Exemplos Exemplos Áreas de aplicações potenciais • Médica • Comportamento de pacientes • Identificar terapias de sucessos para diferentes tratamentos • Fraudes em planos de saúdes • Comportamento de usuários de planos de saúde Exemplos Introdução Exemplo (1) - Fraldas e cervejas • O que as cervejas tem a ver com as fraldas ? • homens casados, entre 25 e 30 anos; • compravam fraldas e/ou cervejas às sextas-feiras à tarde no caminho do trabalho para casa; • Wal-Mart otimizou às gôndolas nos pontos de vendas, colocando as fraldas ao lado das cervejas; • Resultado: o consumo cresceu 30% . Exemplos Exemplos Exemplo (2) - Lojas Brasileiras (Info 03/98) • Aplicou 1 milhão de dólares em técnicas de data mining • Reduziu de 51000 produtos para 14000 produtos oferecidos em suas lojas. • Exemplo de anomalias detectadas: – Roupas de inverno e guarda chuvas encalhadas no nordeste – Batedeiras 110v a venda em SC onde a corrente elétrica é 220v Exemplos Exemplos Exemplo (3) - Bank of America (Info 3/98) • Selecionou entre seus 36 milhões de clientes • Aqueles com menor risco de dar calotes • Tinham filhos com idades entre 18 e 21 anos • Resultado em três anos o banco lucrou 30 milhões de dólares com a carteira de empréstimos. Exemplos Software Weka Waikato 2004, Witten & Frank 2000 Ferramenta algoritmos de • preparação de dados • aprendizagem de máquina (mineração) • validação de resultados /public/soft/linux/weka... Java –jar weka.jar 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. 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 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 ... 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 ... Weka: vários ambientes 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. 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 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. 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) N (0,1) • 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) 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 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 Weka:Clustering Metódos para variáveis numéricas e nominais: • EM • k-Means • CobWeb Exemplo 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, ... 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. Weka: Visualização Ajuda a identificar a dificuldade na aprendizagem do problema Visualização 2D Difere as classes por cor 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