SlideShare uma empresa Scribd logo
1 de 4
Clustering - Agrupamento de dados
No último post, no qual foi falado a respeito de mineração de dados, foi
comentado sobre agrupamento de dados. A idéia é simples como o nome sugere: agrupar dados.
Porém, conforme a finalidade da descoberta dos grupos e o tipo dos dados em questão a tarefa pode
se tornar terrivelmente complexa, árdua e demorada (haja joguinhos no pc enquanto espera o
processamento terminar! =P).
Vamos mostrar aqui a teoria básica do assunto e os principais algoritmos. Em próximos artigos,
vamos enviar a teoria e implementação de cada um deles.

Há também o clustering que se refere a elaboração e montagem de clusters de computadores.
Grandes redes de máquinas que trabalham como uma só. Subárea de sistemas distribuídos. Aqui
estamos lidando com uma subárea de inteligência artificial.


O que é clustering?
Clustering, análise de clusters (grupos) ou agrupamento é a tarefa de inserir objetos dispersos em
grupos (chamados de clusters) de forma que os objetos no mesmo cluster sejam mais similares -
segundo algum critério definido no caso - entre si do que entre os objetos em outros clusters.




                                                 Clustering é uma das principais áreas da
mineração de dados e uma técnica muito comum para análise de dados estatísticos em muitas áreas,
como aprendizado de máquina, reconhecimento de padrões, análise de imagens, recuperação de
informação e bioinformática.

A análise de clusters não é um algoritmo específico, mas uma classe de problemas a serem
resolvidos por vários algoritmos que diferem muito entre si, tanto na maneira de como formam os
clusters, quanto na eficiência que o fazem. Dentre as maneiras mais comuns de se formar grupos
podemos citar menor distância entre os membros do cluster, áreas mais densas na distribuição
espacial, intervalos ou distribuições estatísticas específicas. Clustering pode ser formulado como
um problema de otimização com múltiplos objetivos. Onde o algoritmo a se escolher e seus
parâmetros (valores como a função de distância, o limiar de densidade ou o número esperado de
clusters) dependem dos dados e do tipo de resultado procurado. Além de o próprio algoritmo poder
ser considerado
um parâmetro, já que dificilmente sabemos de antemão qual apresentará os melhores resultados.
A análise de clusters não é uma tarefa automática, é um processo de descoberta de conhecimento
iterativo que envolve muita tentativa e erro. Normalmente é preciso mudar o pré-processamento,
parâmetros e mesmo os algoritmos até obter as propriedades desejadas.


Clustering x Classificação
Sempre há confusão quanto a essas duas áreas. Pois a diferença entre elas é sutil em seu primeiro
ver. Mas a diferença mais básica entre elas é que em clustering nós recebemos os dados e vamos
descobrir grupos ali dentro utilizando técnicas não supervisionadas. Ou seja, nosso resultado
são grupos.
Já em classificação, nós já conhecemos os grupos de antemão. Queremos é descobrir em qual
desses grupos os dados que possuímos se encaixam. Ou seja, nosso resultado são dados
classificados, geralmente, para tomada de decisão.

Num exemplo isso fica mais claro. Vamos supor que você tem em mãos um grande banco de dados
de um grande loja e foi te dada a tarefa de descobrir quantos e quais são os principais perfis de
clientes que frequentam a loja relativo, é claro, ao consumo. Isto é uma tarefa de clustering: você não
tem os grupos, quer descobri-los.

Agora, suponha que você trabalhe para um banco e tenha que montar um sistema para descobrir
quais clientes são bons ou maus pagadores. O banco precisa de uma forma automatizada para
auxiliar os gerentes. Assim eles podem conceder empréstimos ou não com mais segurança. Isto é
uma tarefa de classificação: você tem os grupos (bom pagador e mau pagador) e quer classificar os
clientes neles.

Clustering e classificação tem diversos termos em comum. Por isso explicamos desde já a diferença
para evitar confusões no futuro. Por exemplo, o ato de encontrar clusters, muitas vezes é chamado
de classificação, da mesma forma como o ato de classificar, de fato, em classificação. A coisa fica
muito confusa quando misturamos as duas áreas. Porém, vamos prosseguir só com o clustering. A
classificação fica para outro dia.



Aplicações de clustering

Algoritmos de clustering podem ser utilizados em praticamente qualquer área de conhecimento, por
exemplo:
        Marketing: encontrar grupos de consumidores com comportamento similar data uma base de
dados grande contendo seus bens e compras passadas;
        Biologia: classificação de plantas e animais a partir de suas características;
        Livrarias: otimizar a organização dos livros;
        Seguros: identificar grupos com grandes chances de custo acima do normal, ou fraudes;
        Planejamento de cidades: identificar grupos de casas conforme seu tipo, valor e localização;
        Estudo de terremotos: analisar epicentros de terremotos para identificar áreas perigosas;
       WWW: classificação de documentos; agrupamento de dados de blogs para descobrir grupos
com padrões de acesso similares.

Algoritmos - Requisitos

Os requisitos que um algoritmo de clustering tem de satisfazer são:
       escalabilidade (ser capaz de lidar com grandes volumes de dados);
        lidar com diferentes tipos de atributos (texto, imagem, números, ;
        descobrir clusters com tamanhos e formas arbitrários;
        exigirem conhecimentos de área mínimo para determinar os parâmetros de entrada;
        habilidade de lidar com ruído e outliers(dados extremamente fora do padrão);
        insensibilidade a ordem dos dados;
        alta dimensionalidade (lidar com dados com muitas dimensões/atributos);
        interpretabilidade (a resposta do algoritmo tem que ser inteligível para seres humanos);
        usabilidade (ser fácil de aprender/usar ajuda)
Algoritmos - Problemas
Há vários problemas com as tarefas de clustering. Claro! Sempre tem problemas sobrando. Mesmo
dentro de algo que deveria ser uma solução. Dentre eles:
        nenhum dos algoritmos de clustering atuais cobrem todos os requisitos corretamente
(convenhamos, que boa parte dos requisitos são querer demais);
        lidar com muitas dimensões e muitos dados pode ser problemático por questões de tempo
(50 anos de processamento não é algo muito interessante, não concorda?);
         a efetividade do algoritmo depende da função distância usada no caso (para algoritmos baseados em
distância);
        se uma distância óbvia não existe, nós devemos defini-la. O que nem sempre é fácil, especialmente em
espaços multi-dimensionais;
        o resultado do algoritmo de clustering é sujeito a múltiplas interpretações (muitas vezes o próprio
algoritmo pode).

Algoritmos de clustering
Os algoritmos de clustering podem ser divididos em algumas categorias:
         Clustering exclusivo
         Clustering de sobreposição (Overlapping)
         Clustering hierárquico
        Clustering probabilístico
Clustering exclusivo: neste caso, os dados são agrupados de forma exclusiva, ou seja, cada dado só pode ser
 inserido em um único grupo. Um exemplo simples disso é mostrado na figura abaixo, onde a separação dos é
   conseguida usando uma reta. Aí temos dois grupos, com dados acima de reta e abaixo, nenhum em ambos
                                                  grupos.




 Clustering de sobreposição (Overlapping): ao contrário dos exclusivos, esta categoria utiliza grupos
fuzzy para agrupar os dados. O que significa que dados podem pertencer a vários grupos ao mesmo
    tempo com diferentes graus de associação. Geralmente o valor do grau de associação é um
                 percentual que representa o quanto esse dado pertence a um grupo.

   Clustering hierárquico: Aqui, os algoritmos se baseiam na união de grupos muito próximos.
  Começando por definir cada dado como um grupo. Depois de uma série de iterações, os clusters
                                     desejados são obtidos.

 Clustering probabilístico: como o nome diz, utiliza métodos probabilísticos para montar os grupos.

                     E, claro, um algoritmo pode pertencer a mais de uma categoria.
Para finalizar, temos aqui uma lista de alguns dos algoritmos mais usados nessa área (aos poucos
                            todos eles serão explicados aqui no Legauss):
        Canopy
        C-médiasfuzzy
        DirichletProcessClustering
        K-médias
        K-média fuzzy
        LatentDirichletAllocation (LDA)
        Maximização de expectativa (EM)
        Mean Shift
        MixtureofGaussians
        Shi–Malik
        SLINK


                  Espero que gostem deste e da série de artigos que está por vir. ;)
Que a salsicha esteja com você!



Fontes:
Data Clustering (Principles of Knowledge Discovery in Databases), Clustering - Introduction, Cluster
analysis - Wikipedia, the free encyclopedia, Different Techniques of Data Clustering, Data
Clustering e Data Clustering Simulation in Python and PyGame - CodeProject.
Postado por Jayme Tosi Neto @ 09:15
Marcadores: classificação, clustering, Computação, IA, mineração de dados, piu

Posts Relacionados
        Clustering - Agrupamento de dados

        Mineração de dados - O pesadelo dos usuários
        Algoritmos tontos - Só pra distrair um pouco
        Django - Como ocultar condicionalmente inlines no admin?

        Como converter Xoops-SmartSectionparaWordPress

Mais conteúdo relacionado

Semelhante a Clustering informatizado

6.3 Clustering_338ca79f26242f5b9b48a218cfc35819.pdf
6.3 Clustering_338ca79f26242f5b9b48a218cfc35819.pdf6.3 Clustering_338ca79f26242f5b9b48a218cfc35819.pdf
6.3 Clustering_338ca79f26242f5b9b48a218cfc35819.pdfDavidLarronda1
 
Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...Geanderson Lenz
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dadosUFT
 
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014 Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014 Marcos Vinicius Fidelis
 
Redes Neurais com C#
Redes Neurais com C#Redes Neurais com C#
Redes Neurais com C#POANETMeetup
 
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...Tchelinux
 
Análise de Clusters - White Paper ELOGroup
Análise de Clusters - White Paper ELOGroupAnálise de Clusters - White Paper ELOGroup
Análise de Clusters - White Paper ELOGroupEloGroup
 
59 algoritmosgeneticos(1)
59 algoritmosgeneticos(1)59 algoritmosgeneticos(1)
59 algoritmosgeneticos(1)arapido
 
Inteligência artificial para sistemas colaborativos
Inteligência artificial para sistemas colaborativosInteligência artificial para sistemas colaborativos
Inteligência artificial para sistemas colaborativosRodrigo de Oliveira
 
Poo apostila a programacao orientada
Poo   apostila a programacao orientadaPoo   apostila a programacao orientada
Poo apostila a programacao orientadarobinhoct
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosRamon Mayor Martins
 
Apresentação na maplink de machine learning
Apresentação na maplink de machine learningApresentação na maplink de machine learning
Apresentação na maplink de machine learningErnani Britto
 

Semelhante a Clustering informatizado (20)

6.3 Clustering_338ca79f26242f5b9b48a218cfc35819.pdf
6.3 Clustering_338ca79f26242f5b9b48a218cfc35819.pdf6.3 Clustering_338ca79f26242f5b9b48a218cfc35819.pdf
6.3 Clustering_338ca79f26242f5b9b48a218cfc35819.pdf
 
Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...
 
ID3 Algorithm
ID3 AlgorithmID3 Algorithm
ID3 Algorithm
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014 Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
 
Cluster individual
Cluster   individualCluster   individual
Cluster individual
 
Redes Neurais com C#
Redes Neurais com C#Redes Neurais com C#
Redes Neurais com C#
 
Desvendando os mistérios do Data Science
Desvendando os mistérios do Data ScienceDesvendando os mistérios do Data Science
Desvendando os mistérios do Data Science
 
Data mining
Data miningData mining
Data mining
 
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
 
Análise de Clusters - White Paper ELOGroup
Análise de Clusters - White Paper ELOGroupAnálise de Clusters - White Paper ELOGroup
Análise de Clusters - White Paper ELOGroup
 
DataTechDay4 - Carlos Oeiras
DataTechDay4 - Carlos OeirasDataTechDay4 - Carlos Oeiras
DataTechDay4 - Carlos Oeiras
 
59 algoritmosgeneticos(1)
59 algoritmosgeneticos(1)59 algoritmosgeneticos(1)
59 algoritmosgeneticos(1)
 
ENIA2005
ENIA2005ENIA2005
ENIA2005
 
Inteligência artificial para sistemas colaborativos
Inteligência artificial para sistemas colaborativosInteligência artificial para sistemas colaborativos
Inteligência artificial para sistemas colaborativos
 
Apache mahout
Apache mahoutApache mahout
Apache mahout
 
Poo apostila a programacao orientada
Poo   apostila a programacao orientadaPoo   apostila a programacao orientada
Poo apostila a programacao orientada
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
Apresentação na maplink de machine learning
Apresentação na maplink de machine learningApresentação na maplink de machine learning
Apresentação na maplink de machine learning
 

Clustering informatizado

  • 1. Clustering - Agrupamento de dados No último post, no qual foi falado a respeito de mineração de dados, foi comentado sobre agrupamento de dados. A idéia é simples como o nome sugere: agrupar dados. Porém, conforme a finalidade da descoberta dos grupos e o tipo dos dados em questão a tarefa pode se tornar terrivelmente complexa, árdua e demorada (haja joguinhos no pc enquanto espera o processamento terminar! =P). Vamos mostrar aqui a teoria básica do assunto e os principais algoritmos. Em próximos artigos, vamos enviar a teoria e implementação de cada um deles. Há também o clustering que se refere a elaboração e montagem de clusters de computadores. Grandes redes de máquinas que trabalham como uma só. Subárea de sistemas distribuídos. Aqui estamos lidando com uma subárea de inteligência artificial. O que é clustering? Clustering, análise de clusters (grupos) ou agrupamento é a tarefa de inserir objetos dispersos em grupos (chamados de clusters) de forma que os objetos no mesmo cluster sejam mais similares - segundo algum critério definido no caso - entre si do que entre os objetos em outros clusters. Clustering é uma das principais áreas da mineração de dados e uma técnica muito comum para análise de dados estatísticos em muitas áreas, como aprendizado de máquina, reconhecimento de padrões, análise de imagens, recuperação de informação e bioinformática. A análise de clusters não é um algoritmo específico, mas uma classe de problemas a serem resolvidos por vários algoritmos que diferem muito entre si, tanto na maneira de como formam os clusters, quanto na eficiência que o fazem. Dentre as maneiras mais comuns de se formar grupos podemos citar menor distância entre os membros do cluster, áreas mais densas na distribuição espacial, intervalos ou distribuições estatísticas específicas. Clustering pode ser formulado como um problema de otimização com múltiplos objetivos. Onde o algoritmo a se escolher e seus parâmetros (valores como a função de distância, o limiar de densidade ou o número esperado de clusters) dependem dos dados e do tipo de resultado procurado. Além de o próprio algoritmo poder ser considerado um parâmetro, já que dificilmente sabemos de antemão qual apresentará os melhores resultados. A análise de clusters não é uma tarefa automática, é um processo de descoberta de conhecimento iterativo que envolve muita tentativa e erro. Normalmente é preciso mudar o pré-processamento, parâmetros e mesmo os algoritmos até obter as propriedades desejadas. Clustering x Classificação
  • 2. Sempre há confusão quanto a essas duas áreas. Pois a diferença entre elas é sutil em seu primeiro ver. Mas a diferença mais básica entre elas é que em clustering nós recebemos os dados e vamos descobrir grupos ali dentro utilizando técnicas não supervisionadas. Ou seja, nosso resultado são grupos. Já em classificação, nós já conhecemos os grupos de antemão. Queremos é descobrir em qual desses grupos os dados que possuímos se encaixam. Ou seja, nosso resultado são dados classificados, geralmente, para tomada de decisão. Num exemplo isso fica mais claro. Vamos supor que você tem em mãos um grande banco de dados de um grande loja e foi te dada a tarefa de descobrir quantos e quais são os principais perfis de clientes que frequentam a loja relativo, é claro, ao consumo. Isto é uma tarefa de clustering: você não tem os grupos, quer descobri-los. Agora, suponha que você trabalhe para um banco e tenha que montar um sistema para descobrir quais clientes são bons ou maus pagadores. O banco precisa de uma forma automatizada para auxiliar os gerentes. Assim eles podem conceder empréstimos ou não com mais segurança. Isto é uma tarefa de classificação: você tem os grupos (bom pagador e mau pagador) e quer classificar os clientes neles. Clustering e classificação tem diversos termos em comum. Por isso explicamos desde já a diferença para evitar confusões no futuro. Por exemplo, o ato de encontrar clusters, muitas vezes é chamado de classificação, da mesma forma como o ato de classificar, de fato, em classificação. A coisa fica muito confusa quando misturamos as duas áreas. Porém, vamos prosseguir só com o clustering. A classificação fica para outro dia. Aplicações de clustering Algoritmos de clustering podem ser utilizados em praticamente qualquer área de conhecimento, por exemplo: Marketing: encontrar grupos de consumidores com comportamento similar data uma base de dados grande contendo seus bens e compras passadas; Biologia: classificação de plantas e animais a partir de suas características; Livrarias: otimizar a organização dos livros; Seguros: identificar grupos com grandes chances de custo acima do normal, ou fraudes; Planejamento de cidades: identificar grupos de casas conforme seu tipo, valor e localização; Estudo de terremotos: analisar epicentros de terremotos para identificar áreas perigosas; WWW: classificação de documentos; agrupamento de dados de blogs para descobrir grupos com padrões de acesso similares. Algoritmos - Requisitos Os requisitos que um algoritmo de clustering tem de satisfazer são: escalabilidade (ser capaz de lidar com grandes volumes de dados); lidar com diferentes tipos de atributos (texto, imagem, números, ; descobrir clusters com tamanhos e formas arbitrários; exigirem conhecimentos de área mínimo para determinar os parâmetros de entrada; habilidade de lidar com ruído e outliers(dados extremamente fora do padrão); insensibilidade a ordem dos dados; alta dimensionalidade (lidar com dados com muitas dimensões/atributos); interpretabilidade (a resposta do algoritmo tem que ser inteligível para seres humanos); usabilidade (ser fácil de aprender/usar ajuda)
  • 3. Algoritmos - Problemas Há vários problemas com as tarefas de clustering. Claro! Sempre tem problemas sobrando. Mesmo dentro de algo que deveria ser uma solução. Dentre eles: nenhum dos algoritmos de clustering atuais cobrem todos os requisitos corretamente (convenhamos, que boa parte dos requisitos são querer demais); lidar com muitas dimensões e muitos dados pode ser problemático por questões de tempo (50 anos de processamento não é algo muito interessante, não concorda?); a efetividade do algoritmo depende da função distância usada no caso (para algoritmos baseados em distância); se uma distância óbvia não existe, nós devemos defini-la. O que nem sempre é fácil, especialmente em espaços multi-dimensionais; o resultado do algoritmo de clustering é sujeito a múltiplas interpretações (muitas vezes o próprio algoritmo pode). Algoritmos de clustering Os algoritmos de clustering podem ser divididos em algumas categorias: Clustering exclusivo Clustering de sobreposição (Overlapping) Clustering hierárquico Clustering probabilístico Clustering exclusivo: neste caso, os dados são agrupados de forma exclusiva, ou seja, cada dado só pode ser inserido em um único grupo. Um exemplo simples disso é mostrado na figura abaixo, onde a separação dos é conseguida usando uma reta. Aí temos dois grupos, com dados acima de reta e abaixo, nenhum em ambos grupos. Clustering de sobreposição (Overlapping): ao contrário dos exclusivos, esta categoria utiliza grupos fuzzy para agrupar os dados. O que significa que dados podem pertencer a vários grupos ao mesmo tempo com diferentes graus de associação. Geralmente o valor do grau de associação é um percentual que representa o quanto esse dado pertence a um grupo. Clustering hierárquico: Aqui, os algoritmos se baseiam na união de grupos muito próximos. Começando por definir cada dado como um grupo. Depois de uma série de iterações, os clusters desejados são obtidos. Clustering probabilístico: como o nome diz, utiliza métodos probabilísticos para montar os grupos. E, claro, um algoritmo pode pertencer a mais de uma categoria.
  • 4. Para finalizar, temos aqui uma lista de alguns dos algoritmos mais usados nessa área (aos poucos todos eles serão explicados aqui no Legauss): Canopy C-médiasfuzzy DirichletProcessClustering K-médias K-média fuzzy LatentDirichletAllocation (LDA) Maximização de expectativa (EM) Mean Shift MixtureofGaussians Shi–Malik SLINK Espero que gostem deste e da série de artigos que está por vir. ;) Que a salsicha esteja com você! Fontes: Data Clustering (Principles of Knowledge Discovery in Databases), Clustering - Introduction, Cluster analysis - Wikipedia, the free encyclopedia, Different Techniques of Data Clustering, Data Clustering e Data Clustering Simulation in Python and PyGame - CodeProject. Postado por Jayme Tosi Neto @ 09:15 Marcadores: classificação, clustering, Computação, IA, mineração de dados, piu Posts Relacionados Clustering - Agrupamento de dados Mineração de dados - O pesadelo dos usuários Algoritmos tontos - Só pra distrair um pouco Django - Como ocultar condicionalmente inlines no admin? Como converter Xoops-SmartSectionparaWordPress