Prof. Msc. Eduardo Siqueira Martins
O que é? ◦
De forma rma bast bastan ante te sin sintéti téticca, pode pode-se dize dizerr que Mineração de Dados (Data Mining) se relaciona ao processo de transformar d ados brutos brutos em dados conhecimento. conhecimento.
Como? ◦
Extraindo padrões Extraindo padrões padrões e padrões e construindo modelos modelos a modelos a partir dos conjuntos de dados disponíveis para descobrir conhecimento novo conhecimento novo novo e novo e útil útil útil.. útil
Por que fazer? ◦
◦
◦
Por necessidade: ccrescimento resc re scim imeento explosivo expl plo osi sivvo da quantidade de dados coletada, armazenada e disponível nas últimas décadas Mas o que fazer com estes dados? Como lidar com eles? Estamos afogados em dados e carentes de conh co nhec ecim imen ento to,, entendimento ente en tend ndim imen ento to do dos dados que conhecimento, possuímos.
Por que é importante? ◦
◦
◦
Muito do que se desenvolve hoje é orientado por hipóteses. Nos processos científicos, os pesquisadores partem de uma hipótese, projetam experimentos, coletam dados, geram resultados (novos dados) e analisam analisam estes dados chegando a conclusões que validam, refutam ou reformulam suas hipóteses. Na indústria e nos negócios, também é comum o cenário onde dados dados são coletados e analisados analisados para dados analisados se validar ou refutar hipóteses levantadas acerca de clientes, produtos, fornecedores etc e, a partir daí, tirar conclusões conclusões e decisões gerenciais. conclusões tomar decisões decisões
Pré-processamento. Data Mining (DM) ou Mineração de Dados (MD). Pós-processamento.
Ok, que tal uma definição agora para organizar o que vimos? Processo automático automático de descoberta de novas novas automático informações e conhecimento, úteis a uma aplicação, no formato de regras regras e padrões padrões, padrões escondidas, em geral, em grandes quantidades de dados, estejam estes dados armazenados em bancos de dados tradicionais, em Data Warehouse ou em outra forma de repositório.
Mineração de Dados: confluência de múltiplas disciplinas.
A utilização de Data Mining agilizando empresas.
Quem compra tal produto?
A pesquisa de padrões nas doenças de vários pacientes e suas relações com o tratamento e resultados.
Traçar perfis de estudantes. Melhorar a interação. Verificar necessidade de mudanças Entre outras.
As redes sociais geram um tipo de informação que pode ser chamado de Mídia Social. A empresa poderá monitorar o comportamento dos consumidores nas redes sociais e se comunicar com eles pelas redes e também pelas plataformas móveis, como os celulares.
Por um lado a mineração de dados sobre nossos perfis e gostos pode nos trazer comodidades no dia a dia (as empresas sabem o que você quer, por exemplo), mas até que ponto isso não é invasão de privacidade?
O que é crime? O que é imoral? O que é normal?
Venda de bancos de dados contento informações privadas. Mais comuns: Informações Criminais Informações Trabalhistas Informações Crediticias
◦
◦
◦
Mesmo não constituindo crime, é comum as empresas visitarem os perfis dos usuários em redes sociais para verificar sua conduta. Isso as vezes é utilizado como forma de eliminação em entrevistas.
Pesquisa de usuários por interesse pessoal. Ex: Procurar alguém que conheceu em uma festa.
Bases Bases de Dados Relacionais Data Warehousings (Base Multidimensional) Data Bases de Dados Transacionais Bases Streams de dados e dados de sensores Dados de séries temporais e sequenciais Dados estruturais, grafos, redes sociais Bases de dados Objeto-Relacionais Bases Bases de Dados heterogêneas Dados espaciais e espaço-temporais Multimídia, texto, Web Etc.
Grandes quantidades de dados. Algoritmos devem ser altamente escaláveis para lidar com quantidades como tera-bytes de dados. Alta dimensionalidade de dados e alta complexidade de dados. Conflitos semânticos, redundâncias de variáveis. Processamento em tempo real. Estruturas de dados complexas, como multigrafos, supergrafos etc. Heterogeneidade da origem de dados e bases de dados legadas. Fontes de dados não estruturas e subjetivas, como texto. Etc.
Todo esse cenário pode demandar tarefas de engenharia e análise prévia de dados. Atividades valiosas para a qualidade dos resultados obtidos. Esta etapa demanda a maior parte do esforço e do custo de um processo de KDD, entre coletar, integrar, processar, transformar, enriquecer, padronizar etc e preparar os dados para a mineração.
Regras Convencionais
Regras Quantitativas
Regras em Taxonomias
Regras de Associação Negativas
Representa um padrão de relacionamento entre itens de dados do domínio da aplicação que ocorre com uma determinada frequência na base de dados (transacional).
Exemplo de base de dados transacional
Regras de associação são da forma {X} => {Y} (lê-se: “se X, então Y”), onde: ◦
◦
◦
Significa que, com um certo grau de certeza, que se uma transação da base de dados inclui os itens de um conjunto X, então inclui também os itens do conjunto Y. X é o antecedente e Y o consequente da regra. Condições: os conjuntos X e Y não podem ser vazios e ter interseções, além de conter somente itens do domínio de aplicação.
As regras de associação possuem medidas de interesse que indicam sua relevância e validade. Exemplo: modelo suporte/confiança. No modelo suporte/confiança, o grau de certeza de uma regra é definido por dois índices: ◦
◦
◦
Fator de suporte suporte:: porcentagem das transações da base de dados que contêm os itens de X e os item de Y; Fator de confiança: confiança: porcentagem das transações da base de dados que contêm os itens de X e de Y, dentre aquelas transações que contêm os itens de X. Exemplo Exemplo:: extrair regras de uma base de compras com suporte mínimo de 50% 50% e confiança mínima de 80% 80%.
Quais conjuntos de mais um item têm suporte mínimo de 50% 50% na base de dados ?
? 2 ocorrências, em 5 transações: Suporte = 40%
Quais conjuntos de mais um item têm suporte suporte mínimo de 50% 50% na base de dados ?
? 2 ocorrências, em 5 transações: Suporte = 40%
? 3 ocorrências, em 5 transações: Suporte = 60%
Quais conjuntos de mais um item têm suporte suporte mínimo de 50% 50% na base de dados ? 80% 80%
60% 60%
60% 60%
Quais regras regras podem ser estabelecidas a partir dos conjuntos frequentes, que tenham confiança mínima de 80% 80% ? 80% 80%
60% 60%
60% 60%
Quais regras podem ser estabelecidas a partir dos conjuntos frequentes, que tenham confiança mínima de 80% 80% ?
Quais regras podem ser estabelecidas a partir dos conjuntos frequentes, que tenham confiança mínima de 80% 80% ? 80% 80%
60% 60%
5 transações contém Leite. Dessas, 3 contém leite e gelatina: Confiança = 60%
60% 60% 3 transações contém Gelatina. Dessas, 3 contém gelatina e leite: Confiança = 100%
São utilizadas quando se deseja minerar padrões em bases de dados relacionais (formadas por atributos quantitativos e atributos categóricos).
Exemplo (base de dados sobre a AIDS): Esta regra hipotética indica, com certo grau de certeza, que pacientes com AIDS, heterossexuais, entre 20 e 30 anos, do sexo masculino são usuários de drogas.
está entre os 10 algoritmos de MD mais utilizados na comunidade acadêmica. Satisfaz o suporte mínimo definido pelo usuário e é o mais utilizado para geração dos conjuntos de itens frequentes.
sejam X e Y dois conjuntos de itens quaisquer. Se X for frequente, então qualquer subconjunto Y que estiver contido em (ou for igual a) X também é frequente. Se X não for frequente, então qualquer subconjunto Y que contiver (ou for igual a) X também não é frequente. Esta regra é utilizada para reduzir o número de candidatos a serem comparados com cada transação.
Na primeira é feito o cálculo do suporte para cada item separadamente (conjunto-de-1-item) e depois selecionado os itens que satisfazem o suporte mínimo preestabelecido, formando os conjuntos-de-1-item frequentes. Na segunda ocorre a geração dos conjuntos-de2-itens pela junção dos conjuntos-de-1-item frequentes encontrados na etapa anterior. É feito o cálculo do suporte e comparado ao suporte mínimo e assim é formado o conjunto-de-2-itens frequentes. O algoritmo continua esse processo, até que o conjunto-de-k-itens frequentes seja um conjunto vazio.
Relação dos itens comprados por transação
Suporte mínimo de 50% 50% ◦
Cálculo de suporte conjuntoconjunto-dede-1-item
para
Suporte mínimo de 50% 50% ◦
Geração do conjuntoconjunto-dede-1-item frequentes
Suporte mínimo de 50% 50% ◦
◦
Cálculo de suporte para conjuntoconjunto-dede-2-itens
Geração do conjuntoconjunto-dede-2-itens frequentes
Suporte mínimo de 50% 50% ◦
Cálculo de suporte para conjuntoconjunto-dede-3-itens
Identificação da classe a qual um elemento pertence a partir de suas características. Exemplo: ◦
◦
Classificar cada veículo em popular ou de luxo conforme os seus opcionais tais como: preço, número de portas, itens de série, cilindrada, tipo de câmbio. Classificar um indivíduo a partir de suas características e determinar a que classe social ele pertence como, por exemplo A, B, C, D ou E.
Exemplo: ◦
◦
Suponha que você é gerente de uma grande loja e disponha de um banco de dados de clientes, contendo informações tais como nome, idade, renda mensal, profissão e se comprou ou não produtos eletrônicos na loja. Você está querendo enviar um material de propaganda pelo correio a seus clientes, descrevendo novos produtos eletrônicos e preços promocionais de alguns destes produtos. Para não fazer despesas inúteis você gostaria de enviar este material publicitário apenas a clientes que sejam potenciais compradores de material eletrônico. Outro ponto importante: você gostaria de, a partir do banco de dados de clientes de que dispõe no momento, desenvolver um método que lhe permita saber que tipo de atributos de um cliente o tornam um potencial comprador de produtos eletrônicos e aplicar este método no futuro, para os novos clientes que entrarão no banco de dados.
Exemplo: ◦
◦
◦
Isto é, a partir do banco de dados que você tem hoje, você quer descobrir regras que classificam os clientes em duas classes : os que compram produtos eletrônicos e os que não compram. Que tipos de atributos de clientes (idade, renda mensal, profissão) influenciam na colocação de um cliente numa ou noutra classe ? Uma vez tendo estas regras de classificação de clientes, você gostaria de utilizá-las no futuro para classificar novos clientes de sua loja. Por exemplo: regras que você poderia descobrir seriam :
Se idade está entre 30 e 40 e a renda mensal é ‘Alta’ então ClasseProdEletr = ‘Sim’. ‘Sim’. Se idade está entre 60 e 70 então ClasseProdEletr = ‘Não’. ‘Não’. Quando um novo cliente João, com idade de 35 anos e renda mensal ‘Alta’ e que tenha comprado Celular, é catalogado no banco de dados, o seu classificador lhe diz que este cliente é um potencial comprador de aparelhos eletrônicos. Este cliente é colocado na classe ClasseProdEletr = ‘Sim’, mesmo que ele ainda não tenha comprado nenhum produto eletrônico eletrônico..
Classificação é um processo que é realizado em três etapas : 1. Etapa da criação do modelo de classificação. classificação. Este modelo é constituído de regras que permitem classificar as tuplas do banco de dados dentro de um número de classes pré-determinado. Este modelo é criado a partir de um banco de dados de treinamento cujos elementos são chamados de amostras ou exemplos. Ex:
1. Etapa da criação do modelo de classificação. classificação. Ex:
Esta etapa também é chamada de Etapa de Aprendizado : através de técnicas especiais de aprendizado aplicadas no banco de dados de treinamento, um modelo de classificação é criado e as seguintes regras de classificação podem ser produzidas : (a) Se idade = 41..50 e Renda = Media-Alta então ClasseProdEletr = Sim. (b) Se Renda = Baixa então ClasseProdEletr = Não.
2. Etapa da verificação do modelo ou Etapa de Classificação As regras são testadas sobre um outro banco de dados, completamente independente do banco de dados de treinamento, chamado de banco de dados de testes. A qualidade do modelo é medida em termos da porcentagem de tuplas do banco de dados de testes que as regras do modelo conseguem classificar de forma satisfatória. É claro que se as regras forem testadas no próprio banco de dados de treinamento, elas terão alta probabilidade de estarem corretas, uma vez que este banco foi usado para extraí-las. Por isso a necessidade de um banco de dados completamente novo. As tuplas (1), (2), (3) não são bem classificadas pelo modelo. As tuplas (4),(5),(6) o são. Logo, o grau de acertos (accuracy) do modelo é de 50%. Caso este grau de acertos for considerado bom, pode-se passar para a etapa seguinte.
3. Etapa da utilização do modelo em novos dados Após o modelo ter sido aprovado nos testes da etapa anterior, ele é aplicado em novos dados.
Mais adiante vamos estudar alguns métodos de classificação. Tais métodos podem ser comparados e avaliados de acordo com os seguintes critérios: 1. O grau de acertos (accuracy) : este critério refere-se a capacidade do modelo em classificar corretamente as tuplas do banco de dados de testes. 2. Rapidez : refere-se ao tempo gasto no processo de classificação. 3. Robustez : refere-se à habilidade do modelo em fazer uma classificação correta mesmo em presença de ruídos ou valores desconhecidos em alguns campos dos registros. 4. Escalabilidade : refere-se à eficiência do processo de aprendizado (construção do modelo) em presença de grandes volumes de dados de treinamento. 5. Interpretabilidade : refere-se ao nível de entendimento que o modelo fornece, isto é, o quanto as regras fornecidas são entendidas pelos usuários do classificador.
Os seguintes passos de pré-processamento podem ser aplicados aos dados a fim de aumentar a qualidade (accuracy), eficiência e escalabilidade do processo de classificação: 1. Limpeza Limpeza dos dados dados: remover ruídos e resolver problemas de tuplas com valores desconhecidos, por exemplo, substituindo estes valores pelos valores mais correntes do atributo correspondente, ou o valor mais provável, baseado em estatística. Este passo ajuda a reduzir possível confusão durante o aprendizado. 2. Análise Análise de Relevância Relevância: Relevância: Alguns atributos podem ser totalmente irrelevantes para a tarefa de classificação. Por exemplo, a informação sobre telefone e e-mail dos clientes não influência sua classificação em “Comprador de Produto Eletrônico” ou “Não comprador de Produto Eletrônico". Assim, é importante se fazer uma análise prévia de quais atributos realmente são essenciais para a tarefa de classificação.
Os seguintes passos de pré-processamento podem ser aplicados aos dados a fim de aumentar a qualidade (accuracy), eficiência e escalabilidade do processo de classificação: Categorização : Atributos que assumem uma grande variedade de valores, podem ser agrupados em algumas poucas categorias. Por exemplo, a renda mensal do cliente pode ser agrupada em 4 categorias : Baixa, Média, Média-Alta e Alta. A idade do cliente também pode ser agrupada em faixas etárias : =< 20, 21..30, > 60, etc. Generalização: Generalização: Certos atributos, como RUA, podem ser substituídos por um atributo mais geral CIDADE. Assim, ao invés de registrar a rua onde mora o cliente, simplesmente registra-se a cidade. Normalização: Normalização: Certos dados também podem ser normalizados, sobretudo quando se utiliza, no processo de aprendizado métodos envolvendo medidas de distância. A normalização envolve escalonar os valores de um atributo de modo que fiquem compreendidos dentro de um intervalo pequeno, por exemplo [-1,1] ou [0,1]. Nestes métodos, isto evitaria que atributos com valores com um grande espectro de variação (por exemplo, renda mensal) tenham preponderância sobre atributos com um baixo espectro de variação (atributos com valores binários, por exemplo).
É construída do topo para a base, o atributo mais significativo, ou seja, o mais generalizado, quando comparado a outros atributos do conjunto, é considerado raiz da árvore. Na sequência da construção, o próximo nó da árvore será o segundo atributo mais significativo, e, assim, sucessivamente, até gerar o nó folha, que representa o atributo alvo da instância.
Uma árvore de decisão é uma estrutura de árvore onde :
cada nó interno é um atributo do banco de dados de amostras, diferente do atributo-classe, as folhas são valores do atributo-classe, cada ramo ligando um nó-filho a um nó-pai é etiquetado com um valor do atributo contido no nó-pai. Existem tantos ramos quantos valores possíveis para este atributo. um atributo que aparece num nó não pode aparecer em seus nós descendentes.
Árvore de Decisão ou Árvore de Classificação.
A partir de uma base de treinamento, extrai-se o modelo de classificação (por exemplo: árvore de decisão).
Árvore de Decisão Ou Classificação
Regras de classificação obtidas a partir da árvore de decisão: decisão:
A que classe pertence João, 38 anos, Doutor em Genética, que trabalha como pesquisador numa universidade e tem salário de R$5100,00? Resposta: B B
A que classe pertence João, 38 anos, Doutor em Genética, que trabalha como pesquisador numa universidade e tem salário de R$5100,00? Resposta: B B
Serão feitas algumas observações para que você possa entender como os dados podem ser analisados ou interpretados no Weka. Tais resultados foram obtidos através da aplicação do algoritmo de classificação J48 que trabalha com árvore de decisão. Será analisado as instâncias corretas e incorretas; estatística de Kappa, erros quadráticos e absolutos, precisão e matriz de confusão.
A figura mostra a quantidade de instâncias classificadas de forma correta e incorreta. A estatística de Kappa exibe o quanto aquele atributo escolhido para ser o classificador dos dados foi bom. Quanto mais próximo de 1 (100%) melhor. Os erros demonstram o percentual de erros ao executar as instâncias. Quanto mais próximo de 0 (0%) melhor.
Estatística de Kappa Erros absolutos Erros quadráticos
Quantidade de instâncias classificadas de forma correta e incorreta para cada regra gerada pelo algoritmo.
O que significam os valores ( 318.0 / 22.0 ): - 318 significa o número de acertos, ou seja, 318 registros, nos quais a regra acima se aplica corretamente; 22 significa o número de erros, ou seja, 22 registros, nos quais a regra acima não se aplica corretamente.
A figura mostra a precisão de cada classe. Quanto mais próximo de 1 (100%) melhor.
Matriz de confusão Contém informações muito importantes para o entendimento do resultado do algoritmo, dentre elas: ◦
◦
◦
a quantidade de instâncias classificadas corretamente; a quantidade de instâncias classificadas erroneamente; a quantidade de instâncias que o algoritmo acreditava ser de um tipo e na verdade foram classificadas como outro, por exemplo:
Matriz de confusão É possível analisar que: - dos 15 exemplos (1ªlinha), 12 foram classificados corretamente como eleito, 3 foram classificados erroneamente como suplente; - dos 3 exemplos (2ªlinha), 1 foi classificado erroneamente como eleito e 2 foram classificados erroneamente como suplente; - dos 4 exemplos (3ªlinha), 4 foram classificados erroneamente como suplente; - dos 101 exemplos (4ªlinha), 100 foram classificados de forma correta.
Matriz de confusão Mas como chegou-se ao numero das instâncias classificadas corretamente e erroneamente no exemplo acima? Para isso, basta analisar o quadro abaixo, no qual a somatória dos valores, que fazem parte da diagonal marcada como azul, representam os valores classificados como corretos e os demais valores somados em suas respectivas diagonais, correspondem aos valores classificados erroneamente. Obviamente, na somatória dos valores errados, devese excluir os valores que fazem intersecção com a linha em azul.
Com isto, obtemos o seguinte resultado: Instâncias classificadas corretamente: 112; Instâncias classificadas erroneamente: 11; Perfazendo um total de 123 instâncias analisadas.
O problema de Clustering é descrito como: recebido um conjunto de dados (de objetos), tentar agrupá-los de forma que os elementos que compõem cada grupo sejam mais parecidos entre si do que parecidos com os elementos dos outros grupos. Em resumo, é colocar os iguais (ou quase iguais) juntos num mesmo grupo e os desiguais em grupos distintos. 64
65
Dado um conjunto de objetos, colocar os objetos em grupos baseados na similaridade entre eles
Como agrupar os animais seguintes?
Inerentemente é um problema não definido claramente
Adaptado de material de Marcílio C. P. de Souto -
DIMAp/UFRN
Dado um conjunto de objetos, colocar os objetos em grupos baseados na similaridade entre eles
Como agrupar os animais seguintes?
Inerentemente é um problema não definido claramente
Com bico
Sem bico
Adaptado de material de Marcílio C. P. de Souto -
DIMAp/UFRN
Dado um conjunto de objetos, colocar os objetos em grupos baseados na similaridade entre eles
Como agrupar os animais seguintes?
Inerentemente é um problema não definido claramente
Água Adaptado de material de Marcílio C. P. de Souto -
Terra DIMAp/UFRN
Dado um conjunto de objetos, colocar os objetos em grupos baseados na similaridade entre eles
Como agrupar os animais seguintes?
Ave
Inerentemente é um problema não definido claramente
Mamífero
Adaptado de material de Marcílio C. P. de Souto -
DIMAp/UFRN
Dado um conjunto de objetos, colocar os objetos em grupos baseados na similaridade entre eles Distâncias intracluster são minimizadas
Distâncias entre cluster são maximizadas
Reconhecimento de padrões: Análise de dados espaciais:
Criação de mapas temáticos em GIS por agrupamento de espaços de características; Detecção de clusters espaciais e sua explanação em data mining;
Processamento Processamento de imagens; Pesquisa de mercado; Pesquisa WWW:
classificação de documentos; Agrupamento de dados de weblogs, redes sociais para descobrir padrões similares de informações;
Sumarização Sumarização
Reduzir o tamanho de grandes conjuntos de dados
Quantos clusters?
Seis Clusters
Dois Clusters
Quatro Clusters
Clusterização dificuldades Encontrar o melhor agrupamento para um conjunto de objetos não é uma tarefa simples, a não ser que n (número de objetos) e k (número de clusters) sejam extremamente pequenos, visto que o número de partições distintas em que podemos dividir n objetos em k clusters é aproximadamente
kn/k!
Ex. k=2 e n=5 então são 16 formas de dividir 5 elementos em 2 grupos. 73
Clusterização dificuldades Porque a efetividade dos algoritmos de Clustering é um problema: 1. Quase todos os algoritmos de Clustering requerem valores para os parâmetros de entrada que são difíceis de determinar, especialmente para conjuntos de dados do mundo real contendo objetos com muitos atributos. 74
Clusterização dificuldades 2. Os algoritmos são muito sensíveis a estes valores de parâmetros, freqüentemente produzindo partições muito diferentes do conjunto de dados mesmo para ajustes de parâmetros significativamente pouco diferentes. 3. Conjuntos de dados reais de alta dimensão (muitos atributos) têm uma distribuição muito ampla o que dificulta a análise. 75
Clusterização
representações de dados • A entrada para um algoritmo de clusterização normalmente é um vetor (tuple ou record). • Os tipos de dados podem ser: numérico, de categoria ou boleano Numa clínica médica, por exemplo pode-se encontrar dados como: Idade (numérico), Peso (numérico), Sexo (categoria), Doente (boleano)
Deve incluir um método para computar a similaridade 76 de vetores ou a distância entre vetores.
Clusterização medidas de similaridade As medidas de similaridade fornecem valores numéricos que expressam a “distância” entre dois objetos. Quanto menor o valor desta “distância”, mais semelhantes serão os objetos, e tenderão a ficar no mesmo cluster . Quanto maior a “distância”, menos similares serão os objetos e, em conseqüência, eles deverão estar em grupos distintos. 77
Clusterização medidas de similaridade Uma função de distância deve ser tal que:
não assuma valores negativos (o menor valor é 0);
ser simétrica (a distância do objeto i ao j tem que ser igual à distância do objeto j ao i );
forneça o valor 0 quando calculada a distância do objeto a si mesmo ou quando dois objetos são idênticos;
respeite a desigualdade triangular, (dados 3 objetos, a distância entre dois deles tem que ser menor ou igual a soma das distâncias entre esses dois objetos e o terceiro).
Clusterização medidas de similaridade
Distância Euclidiana d ( x, y ) =
( x1 − y1 )
+
( x2
−
y2 )
2
+ ... +
( x p
−
y p )
2
City block (Manhattan) d ( x, y ) = x1 − y1
2
+
x2 − y2
+ ... +
x p
−
y p
Realizando uma analogia entre a diferença entre essas duas distâncias, vamos imaginar uma a rota de GPS para dois veículos, uma para um carro e outra para um helicóptero. A Distância Euclidiana seria o segmento de uma reta na qual indicaria uma possível rota de helicóptero (na qual não haveria preocupação com as ruas já que é um veículo aéreo, e geometricamente seria a hipotenusa de um triângulo) e a Distância Manhattan seria um segmento de retas na vertical quanto na horizontal semelhante a uma rota de carro (já que esse obedece o sentido das ruas, e devido à esse comportamento essa medida de distância é também conhecida como City Block, e geometricamente seriam a soma dos catetos).
Clusterização medidas de similaridade Não há uma medida de similaridade que sirva para todos os tipos de variáveis que podem existir numa base de dados. Variáveis numéricas: A medida que é normalmente usada para computar as dissimilaridades de objetos descritos por variáveis numéricas é a Distancia Euclidiana A normalização faz com que todas as variáveis tenham um peso igual. A normalização deve ser efetuada para todos os atributos. 80
Particionamento (K-médias e variantes) ◦
Hierárquica (Hierarchical clustering) ◦
Divide os pontos (dados) em conjuntos disjuntos (clusters) tal que cada ponto pertence a um único cluster
Um conjunto de clusters aninhados organizados como uma árvore
Baseadas em densidade (DBSCAN) ◦
Encontra clusters baseado na densidade de regiões
Abordagem por particionamento Cada cluster está associado a um centróide (ponto central) Cada ponto é associado ao cluster cujo centróide está mais próximo Número de clusters, K, precisa ser especificado O algoritmo básico é bem simples e irá gerar K clusters:
o o o o o o o
1 – Coloque K centroides aleatoriamente 2 – Atribua cada item a um centróide mais próximo. 3 – Calcule a média entre os pontos internos de cada ponto atribuido a um centroide. 4 – A posição média é atribuida ao centróide (que muda de posição) 5 – O cálculo deve ser refeito a partir do nº 2 até que se estabilize
Diagrama de Voronoi – poliedros convexos em torno dos centróides
Usar k=2 (parâmetro informado pelo usuário)
Dataset a ser clusterizado Variáveis Item
x1
x2
A
5
3
B
-1
1
C
1
-2
D
-3
-2
Passo 1 Determina-se os centróides iniciais (normalmente pega-se ao acaso k pontos (registros): por exemplo os registros A e B), Variáveis isto é: Item
C1(1) = (5,3) C2(1) = (-1,1)
x1
x2
A
5
3
B
-1
1
C
1
-2
D
-3
-2
Passo 2: Calcula-se as distâncias de cada ponto aos centróides, para definir os cluster iniciais.
Os clusters são: C1 = {A} C2 = {B,C,D} Pois C e D estão mais perto de B do que de A
Passo 3: cálculo dos novos centróides
C1(2)= (5,3) C2(2)= Variáveis Item
x1
x2
A
5
3
B
-1
1
C
1
-2
D
-3
-2
3
2.5
Pontos originais
2
1.5 y
1
0.5
0
-2
- 1.5
-1
-0.5
0
0.5
1
1.5
2
x
3
3
2.5
2.5
2
2
1.5
1.5
y
y
1
1
0.5
0.5
0
0
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
x
Particionamento ótimo
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
x
Particionamento sub-ótimo
Iteration 6 1 2 3 4 5 3
2.5
2
1.5 y
1
0.5
0
-2
- 1.5
-1
-0.5
0
x
0.5
1
1.5
2
Iteration 1
Iteration 2
Iteration 3
3
3
3
2.5
2.5
2.5
2
2
2
1.5
1.5
y
1.5
y
y
1
1
1
0.5
0.5
0.5
0
0
0
-2
- 1.5
-1
-0.5
0
0.5
1
1.5
2
-2
-1.5
-1
-0.5
x
0
0.5
1
1.5
2
-2
Iteration 4
Iteration 5 3
2.5
2.5
2.5
2
2
2
1.5
1.5
y
1
1
0.5
0.5
0.5
0
0
0
0
x
0.5
1
1.5
2
0.5
1
1.5
2
1
1.5
2
y
1
-0.5
0
1.5
y
-1
-0.5
Iteration 6
3
- 1.5
-1
x
3
-2
-1.5
x
-2
-1.5
-1
-0.5
0
x
0.5
1
1.5
2
-2
-1.5
-1
-0.5
0
x
0.5
A medida mais comum é a soma dos erros quadrados (Sum of Squared Error - SSE) Para
cada ponto, o erro é a distância ao centróide mais próximo K
SSE = ∑ ∑ dist 2 ( mi , x ) i =1 x∈C i
é um ponto de dados no cluster C i e m i é o ponto representativo (centróide) do cluster C i Uma maneira fácil de reduzir o SSE é aumentar K, o número de clusters x
Um bom particionamento com um K pequeno pode ter um SSE menor do que um mau particionamento com um K maior
Iteration 5 1 2 3 4 3
2.5
2
1.5 y
1
0.5
0
-2
- 1.5
-1
-0.5
0
x
0.5
1
1.5
2
Importância da escolha dos centróides iniciais Iteration 1
Iteration 2
3
3
2.5
2.5
2
2
1.5
1.5
y
y
1
1
0.5
0.5
0
0
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
-2
-1.5
-1
-0.5
x
0
0.5
Iteration 3
3
2.5
2.5
2.5
2
2
2
1.5
1.5
y
1.5
y
y
1
1
1
0.5
0.5
0.5
0
0
0
-1
-0.5
0
x
0.5
2
Iteration 5
3
- 1.5
1.5
Iteration 4
3
-2
1
x
1
1.5
2
-2
-1.5
-1
-0.5
0
x
0.5
1
1.5
2
-2
-1.5
-1
-0.5
0
x
0.5
1
1.5
2
Iteration 4 1 2 3 8
6
4
2
y
0
-2
-4
-6
0
5
10
15
20
x
Iniciando com dois centróides em um cluster para cada par de clusters
Iteration 1
Iteration 2
8
8
6
6
4
4
2
2
y
y
0
0
-2
-2
-4
-4
-6
-6
0
5
10
15
20
0
5
x
10
15
20
15
20
x
Iteration 3
Iteration 4
8
8
6
6
4
4
2
2
y
y
0
0
-2
-2
-4
-4
-6
-6
0
5
10
x
15
20
0
5
10
x
Iniciando com dois centróides em um cluster para cada par de clusters
Iteration 4 1 2 3 8
6
4
2
y
0
-2
-4
-6
0
5
10
15
20
x Iniciando com um par de clusters tendo 3 centróides iniciais e outro par com somente um.
Iteration 1
Iteration 2
8
8
6
6
4
4
2
2
y
y
0
0
-2
-2
-4
-4
-6
-6
0
5
10
15
20
0
5
x Iteration 3
10
15
20
15
20
x Iteration 4
8
8
6
6
4
4
2
2
y
y
0
0
-2
-2
-4
-4
-6
-6
0
5
10
x
15
20
0
5
10
x
Iniciando com um par de clusters tendo 3 centróides iniciais e outro par com somente um.
Pré-processamento ◦
◦
Normalize os dados Elimine exceções (outliers)
Pós-processamento ◦
Elimine clusters pequenos que podem representar outliers
◦
◦
Divida clusters “fracos” i.e., clusters com SSE relativamente alto Junte clusters que estão “perto” e que tenham SSE relativamente baixo
K-médias tem problemas quando os clusters têm ◦
◦
◦
Tamanhos diferentes Densidades diferentes Formato não esférico
K-médias tem problemas quando os dados contêm outliers .
Pontos originais
K-médias (3 Clusters)
pontos originais
K-médias (3 Clusters)
Pontos originais
K-médias (2 Clusters)
Pontos originais
Clusters do K-médias
Uma solução é usar muitos clusters. Encontra partes de clusters, mas que precisam ser unidos.
Pontos originais
clusters do K-médias
Pontos originais
clusters do K-médias
Métodos de K K-medoids (K (K-medianas) O algoritmo K-médias médias é sensível a ruídos visto que um objeto com um valor extremamente grande pode, distorcer a distribuição de dados. Para diminuir essa sensibilidade, no algoritmo K- medoids medoids, ao invés de utilizar o valor médio dos objetos em um cluster como um ponto referência, a mediana é utilizada, que é o objeto mais centralmente localizado em um cluster .