Mineração de Dados Aplicada

Propaganda
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
Download