MINERAÇÃO DE DADOS APLICADA Pedro Henrique Bragioni Las Casas [email protected] Processo Weka – uma Ferramenta Livre para Data Mining O que é Weka? • Weka é um Software livre do tipo open source para mineração de dados, desenvolvido em Java. • O sistema foi desenvolvido por um grupo de pesquisadores da Universidade de Waikato, Nova Zelândia. • Ao longo dos anos se consolidou como a ferramenta de data mining mais utilizada em ambiente acadêmico. O que é Weka? • Seu ponto forte é a tarefa de classificação, mas também é capaz de minerar regras de associação e clusters de dados. • Pode ser utilizada no modo console ou através da interface gráfica Weka Explorer. Livro do Weka • As características da Weka e as técnicas nela implementadas são apresentadas no livro “Data Mining: Practical Machine Learning Tools and Techniques” • Os autores do livro são os idealizadores da ferramenta. Como usar o Weka? • Interface Gráfica: o ambiente Weka Explorer permite a execução dos algoritmos de data mining da Weka de forma interativa. Como usar o Weka? • Console: fazendo a chamada aos algoritmos no prompt. java weka.associations.Apriori -t veiculos.arff Formato dos dados • Formatos: • ARFF • CSV • Entre outros Formato ARFF • O formato ARFF é utilizado como padrão para estruturar as bases de dados manipuladas pela Weka. Formato ARFF • Ele corresponde a um arquivo texto contendo um conjunto de registros, precedido por um pequeno cabeçalho. Formato ARFF Formato ARFF Formato ARFF Técnicas • Regras de Associação: identificação de grupos de dados que apresentam co-ocorrência entre si (ex. cesta de compras). • Regressão ou Predição: aprendizado de uma função que pode ser usada para mapear os valores associados aos dados em um ou mais valores reais. Técnicas • Agrupamento (ou clustering): identificação de grupos de dados onde os dados tem características semelhantes aos do mesmo grupo e onde os grupos tenham características diferentes entre si. • Classificação: aprendizado de uma função que pode ser usada para mapear dados em uma de várias classes discretas definidas previamente. Regras de Associação • Encontrar tendências que possam ser usadas para entender e explorar padrões de comportamento dos dados. Regras de Associação • Regras sobre relações e co-ocorrências em bases de dados: • Se X ocorre na base de dados, então Y também ocorre (com alguma relação a X)., • Co-ocorrência: se X, Y e Z ocorrem na base de dados então A também ocorre (com alguma relação a X, Y e Z). • X, Y e Z são os antecedentes da associação; A é o conseqüente. • Muito usado para verificar associações em tabelas de transações (“carrinhos de compra”) Regras de Associação • Exemplo simples: Regras de Associação • Conclusões simples sobre a base de dados da tabela: • Quem compra leite quase sempre compra ovos. • Como definir “quase sempre”? Quantas vezes isso ocorre na base de dados? • Quem compra ovos e açúcar sempre compra leite. • Mas quantas compras contém ovos e açúcar? O que causa a compra de leite? • Quem compra cerveja sempre compra fraldas. • Quantas vezes isso ocorre na base de dados? Isso é relevante? Regras de Associação • Métricas: • Significância em uma associação: ela pode existir mas ser muito rara em uma base de dados (ex. cerveja → fraldas). • Suporte X → Y: número de casos que contém X e Y dividido pelo número total de registros. • Confiança em uma associação: o antecedente pode ocorrer várias vezes na base de dados mas nem sempre com o mesmo conseqüente associado. • Confiança X → Y: número de registros que contém X e Y dividido pelo número de registros que contém X. Regras de Associação • Algoritmo Apriori: 1. Entrada: coleção de dados associados, suporte mínimo, confiança mínima. 2. Considerar K = 1 para criação de K-itemsets 3. Analisar os dados associados e criar uma tabela de K-itemsets com suporte acima do suporte mínimo. 4. Criar com os itemsets filtrados um conjunto de candidatos a (K + 1) itemsets. 5. Usar propriedades do Apriori para eliminar itemsets infreqüentes. 6. Repetir desde o passo 3 até que o conjunto gerado seja vazio. 7. Listar regras de associação (com permutações) e aplicar limite de confiança. Regras de Associação • Simulação do Apriori com suporte mínimo 25% e confiança 75%: Regras de Associação • Simulação do Apriori com suporte mínimo 25% e confiança 75%: Regras de Associação • Simulação do Apriori com suporte mínimo 25% e confiança 75%: Regras de Associação • Simulação do Apriori com suporte mínimo 25% e confiança 75%: Regras de Associação • Simulação do Apriori com suporte mínimo 25% e confiança 75%: Regras de Associação • Simulação do Apriori com suporte mínimo 25% e confiança 75%: Regras de Associação • Simulação do Apriori com suporte mínimo 25% e confiança 75%: Regressão • A análise de regressão entende-se como previsão. Quando fazemos uma regressão, queremos prever resultados. • O objetivo é prever os valores de uma variável dependente com base em resultados da variável independente. • Fórmula da regressão linear: Y = ax + b, sendo x a variável independente e y a variável dependente. Regressão no Weka Regressão no Weka Regressão no Weka Regressão no Weka Regressão no Weka Regressão no Weka • Logo, para descobrir o valor da casa, na pergunta inicial, substituímos os valores. • Granito não tem importância • Banheiros são importantes • Casas maiores reduzem o valor Algoritmos supervisionados e não supervisionados • Algoritmos não-supervisionados: Aprendizado por observação e descoberta. Não requer exemplos rotulados para sua execução. • Algoritmos supervisionados: Aprendizado por exemplos. Requer dados previamente rotulados para serem utilizados em sua execução. Agrupamento (Algoritmo NãoSupervisionado) • Agrupamento ou Clusterização (Clustering) • Algoritmos para criação de grupos de instâncias • Similares entre si • Diferentes de instâncias em outros grupos • Não-supervisionado Agrupamento • Objetivo: dividir automaticamente um conjunto de objetos em grupos (clusters) de acordo com algum de tipo de relacionamento de similaridade existente. Agrupamento • Exemplo: se você tivesse que dividir em dois grupos de acordo com a similaridade, como você faria? Agrupamento • Outras soluções: crianças e adultos, gordos e magros, inteligentes e nem tanto (!), fumantes e não-fumantes, … (veja que clustering é difícil e subjetivo!!!) Agrupamento • Um algoritmo muito conhecido e estabelecido é o K- means Agrupamento • Entrada: instâncias, medida de distância, número de grupos (K) • Cada grupo possui um centróide • O centróide de um cluster é um ponto cujo valores de parâmetros são os valores de parâmetros médios para todos os pontos do cluster • Saída: centróides dos grupos, pertinência das instâncias aos grupos, métricas. • O algoritmo tenta minimizar o erro quadrático calculado entre as instâncias e os centróides dos grupos. Agrupamento • K-means – Passos: 1. Inicializamos os centróides dos K grupos. 2. Marcamos cada instância como pertencente ao grupo (centróide) mais próximo. 3. Recalculamos os centróides dos grupos considerando as pertinências. 4.Recalculamos o erro quadrático total. 5.Verificamos condições de parada e repetimos a partir do passo 2. Agrupamento Agrupamento Agrupamento Agrupamento • Problemas: • Múltiplas iterações considerando todos os dados: problemas de performance. • Inicialização: como escolher centróides iniciais (impacto na convergência). • Singularidades: grupos sem instâncias relacionadas. • Escolha de K? • Existe um K' melhor do que o K? Agrupamento • Existem diversos outros algoritmos para agrupamento • X-means • EM • Lógica Fuzzy • Agrupamento hierárquico Classificação • Predição de uma categoria ou classe discreta. • Como entrada: instâncias para as quais as classes são conhecidas. • Com isso criamos um classificador ou modelo (fase de treinamento). • Como entrada em uma segunda fase, temos vários dados para os quais as classes não são conhecidas. • Usamos o classificador para indicar classes para estes dados. • Podemos avaliar o modelo classificando instâncias com classes conhecidas. Classificação Classificação • Métodos de classificação supervisionada: • Baseados em separabilidade (entropia): árvores de decisão e variantes. • Baseados em particionamento: SVM (support vector machines). Classificação • Árvores de Decisão • Uma árvore representa uma função discreta para aproximar/ representar os dados de treinamento • Árvores de Decisão classificam instâncias ordenando-as da raíz para algum nó folha • Cada nó da árvore representa um atributo Classificação • Árvores de Decisão • Considere a tomada de decisão para o problema “Jogar Tênis” • Classifica se um determinado dia é adequado ou não para jogar tênis • Por exemplo: • Tendo a instância: • <Panorama=Ensolarado, Temperatura=Quente, Umidade=Alta> • Saída: • Não! Classificação • Árvores de Decisão são adequadas para problemas em que: • Instâncias são representadas por pares atributo-valor • Há um conjunto fixo de atributos (ex: Umidade) e seus valores (ex: Alta, Normal) • Situação ideal é quando cada atributo pode assumir poucos valores (discretos), no entanto, árvores de decisão podem, também, trabalhar com atributos reais (contínuos) Classificação • Árvores de decisão • A função a ser aproximada tem valores discretos • No exemplo a função deve produzir “Sim” ou “Não” • Pode-se facilmente estendê-las para produzir mais de dois valores de saída • Tornam-se mais complexas e menos utilizadas em cenários cujos valores de saída são reais (contínuos) Classificação • Aplicações comuns: • Diagnóstico de pacientes • Problemas em equipamentos mecânicos e elétricos • Análise de crédito Classificação • Support Vector Machine (SVM) • Deseja-se construir hiperplanos para separar pontos de duas classes • Em duas dimensões, hiperplanos são linhas • Ex. Classificação linear Classificação • Support Vector Machine (SVM) • Deseja-se a linha que maximiza a margem entre os exemplos de ambas as classes