Buscar

Tema 3 - Treinamento de modelos de aprendizado não supervisionado

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

DESCRIÇÃO
Conceitos de aprendizado não supervisionado e sua aplicação em processos de descoberta de
conhecimento em bases de dados.
PROPÓSITO
Conhecer técnicas de aprendizado não supervisionado é fundamental para o profissional da área de
ciência de dados, uma vez que os resultados oriundos delas permitem descobrir padrões prévios,
incrementar conjuntos de dados já existentes e ajudar a limpar o conjunto de dados.
PREPARAÇÃO
Para a compreensão e reprodução dos exemplos, é importante que você tenha instalado, em sua
máquina de estudos, o ambiente da linguagem Python na versão 3.8 ou superior, com as bibliotecas
Pandas, Numpy, Sklearn e Plotly. Será necessário também instalar o Jupyter, que é um visualizador do
ambiente de programação, instalado como biblioteca do Python, através do comando pip install jupyter.
Além dos códigos Python em formato texto ao longo do conteúdo, estão disponíveis para download os
arquivos dos notebooks contendo os exemplos utilizados nos vídeos dos módulos 2 e 3:
2-kmeans.ipynb
3-hierarchical-cluster.ipynb
OBJETIVOS
MÓDULO 1
Identificar problemas de análise de agrupamentos
MÓDULO 2
Descrever algoritmos de K-Médias
MÓDULO 3
Descrever o método de agrupamento hierárquico
INTRODUÇÃO
Neste conteúdo, aprenderemos a identificar problemas de análise de agrupamentos ou clusterings,
entenderemos quando podemos aplicar um tipo de algoritmo de aprendizado não supervisionado ou
outro, e quais vantagens e desvantagens de tal abordagem implicam ao processo de desenvolvimento
de projetos de KDD (Knowledge Discovery in Databases ou Descoberta de Conhecimento em Bases de
Dados).
javascript:void(0);
javascript:void(0);
Ainda na parte de problemas, compreenderemos quais são as possíveis e correspondentes métricas
mais adequadas para monitorar e avaliar problemas desse tipo de um modo geral, bem como a
matemática por trás dessas métricas. 
Descreveremos o método K-Médias (também conhecido como K-Means), compreendendo o algoritmo e
o processo de definição dos centros de massa (para o K-Means os K-Medoides). Veremos um pouco da
matemática por trás do K-Médias. Depois, apresentaremos uma demonstração em Python para que
possa ser replicada localmente e possa ser modificada para fins de experimentação e exercício de
fixação. 
Por fim, entenderemos o agrupamento hierárquico, uma outra modalidade de agrupamento, que visa
descobrir padrões inter-relacionados e, como o próprio nome diz, hierarquias de padrões. Ainda veremos
as diferentes abordagens de agrupamento hierárquico como o aglomerativo (bottom up), que parte do
princípio de juntar as observações no espaço amostral, e parar quando chegar a um agrupamento maior,
tendo passado por todas as observações; e o divisivo (top down), partindo do princípio de dividir um
agrupamento inicial maior até chegar a agrupamentos menores ou até termos agrupamentos individuais,
ou mesmo uma condição de parada predeterminada. Veremos os algoritmos de ambos, bem como seu
funcionamento. Encerraremos com uma demonstração em Python para que você compreenda e replique
localmente, como exercício de fixação.
MÓDULO 1
 Identificar problemas de análise de agrupamentos
LIGANDO OS PONTOS
Você conhece o problema de agrupamentos? Sabia que ele é utilizado em muitas situações práticas?
Para respondermos a essas perguntas, vamos analisar algumas situações práticas.
Constantemente, nós nos deparamos com situações em que precisamos agrupar elementos. Por
exemplo, quando chegamos a um supermercado, é muito comum encontrarmos itens agrupados por
seções, tais como: congelados, grãos, higiene pessoal e limpeza. É claro que pode haver variação de
acordo com o empreendimento, mas a ideia permanece: a necessidade de criar grupos. E por que isso é
importante? Agrupar elementos facilita criar tratamentos específicos para eles. No exemplo do
supermercado, esse processo tem diversas implicações como estratégias de vendas e de economia de
energia elétrica.
Vamos focar em uma situação específica: imagine que você atua como analista de dados em uma
empresa de vendas online de vestuário e de calçados. Você deseja estudar o comportamento de seus
clientes com o objetivo de segmentá-los em grupos e traçar estratégias mais eficientes para
engajamento. Quais as etapas necessárias para o processo? A primeira etapa sempre será o
levantamento dos dados. Sem dados, tudo é especulação. Em seguida, vem a fase de organização e
limpeza desses dados que consiste em:
Identificação e remoção de dados inconsistentes: como datas incoerentes e valores numéricos
sem sentido.
Transformação dos dados categóricos para dados numéricos: por exemplo, um cliente classificado
como consumidor recorrente deve receber um valor 5, enquanto outro que é classificado como
eventual recebe valor 2.
Normalização dos dados: nessa etapa, precisamos transformar todos os dados em uma faixa de
valores, normalmente de 0 a 1, para que possam ser comparados.
Realizadas essas etapas, agora sim você pode analisar os dados dos clientes e buscar semelhanças
entre eles através de um critério definido que permita agrupá-los. Com esses grupos em mãos, você
pode desenvolver uma estratégia de marketing mais eficiente, sendo que uma campanha bem-sucedida
implica o aumento das vendas e o uso racional dos investimentos em divulgação.
Após a leitura do case, é hora de aplicar seus conhecimentos! Vamos ligar esses pontos?
1. APESAR DE TERMOS NOS FOCADO EM UM CASO, OS PROBLEMAS DE
AGRUPAMENTOS ACONTECEM EM DIVERSAS ÁREAS, INCLUSIVE NAS MENOS
TRIVIAIS, COMO VISÃO COMPUTACIONAL E PROCESSAMENTO DE ÁUDIO E
VOZ. CONHECER ESSAS POSSIBILIDADES DE APLICAÇÃO É UMA FORMA
MUITO INTERESSANTE DE DESENVOLVER UM RACIOCÍNIO SISTEMATIZADO
PARA RESOLVER PROBLEMAS COM A UTILIZAÇÃO DE MECANISMOS
AVANÇADOS QUE OFERECEM ESCALABILIDADE E EFICIÊNCIA DA SOLUÇÃO.
RESOLVER OS PROBLEMAS DE AGRUPAMENTO DE FORMA EFICIENTE É
MUITO ÚTIL PARA DAR SUPORTE A MUITOS PROCESSOS DE DECISÃO.
PENSANDO SOBRE AS APLICAÇÕES DESSAS SOLUÇÕES, SELECIONE A
OPÇÃO QUE TRATA DAS CONDIÇÕES BÁSICAS PARA APLICAR ESSAS
SOLUÇÕES.
A) Identificar a oportunidade de aplicar uma solução de agrupamentos para determinado problema.
B) Utilizar uma linguagem de programação.
C) Aplicar uma ferramenta de software livre que faça os agrupamentos dos dados.
D) Os dados devem ser estruturados.
E) Utilizar algoritmos eficientes para obter as soluções com velocidade.
2. A PARTIR DO EXEMPLO DO CASE APRESENTADO, CONSIDERE OUTRA
SITUAÇÃO: VOCÊ É RESPONSÁVEL POR PROPOR UMA SOLUÇÃO PARA
SEGMENTAR OS CONTRIBUINTES DE UM MUNICÍPIO DE MODO QUE A
PREFEITURA POSSA ESTRUTURAR UMA CAMPANHA DE VACINAÇÃO MAIS
EFICIENTE. ESSA SITUAÇÃO PODE SER TRATADA COMO UM PROBLEMA DE
AGRUPAMENTOS?
A) Sim, pois existem altas chances de todas as pessoas pertencerem aos mesmos grupos de acordo as
faixas etárias.
B) Sim, pois as pessoas de um mesmo município possuem muitas características em comum.
C) Sim, pois as pessoas serão agrupadas conforme se assemelhem conforme um critério de
associação.
D) Não, pois os indivíduos são diferentes entre si.
E) Não, pois não há como garantir que os dados de todas os indivíduos estejam completos.
GABARITO
1. Apesar de termos nos focado em um caso, os problemas de agrupamentos acontecem em
diversas áreas, inclusive nas menos triviais, como visão computacional e processamento de
áudio e voz. Conhecer essas possibilidades de aplicação é uma forma muito interessante de
desenvolver um raciocínio sistematizado para resolver problemas com a utilização de
mecanismos avançados que oferecem escalabilidade e eficiência da solução.
Resolver os problemas de agrupamento de forma eficiente é muito útil para dar suporte a muitos
processos de decisão. Pensando sobre as aplicações dessas soluções, selecione a opção que
trata das condições básicas para aplicar essas soluções.
A alternativa "A " está correta.
A questão mais básica para aplicar uma solução por agrupamentos é identificar a oportunidade de
modelá-lacomo um problema de agrupamentos. A manipulação dos dados, os algoritmos utilizados e a
implementação da solução são consequências desse processo de identificação inicial.
2. A partir do exemplo do case apresentado, considere outra situação: você é responsável por
propor uma solução para segmentar os contribuintes de um município de modo que a prefeitura
possa estruturar uma campanha de vacinação mais eficiente. Essa situação pode ser tratada
como um problema de agrupamentos?
A alternativa "C " está correta.
Agrupar pessoas através de um critério de similaridade significa segmentá-las em grupos conforme as
semelhanças de suas características. O cenário descrito do problema é um caso típico de aplicação de
algoritmos de agrupamento.
3. NO TEXTO, FORAM APRESENTADOS EXEMPLOS QUE
REFORÇAM A IMPORTÂNCIA DOS ALGORITMOS DE
AGRUPAMENTO. UM DOS EXEMPLOS DE APLICAÇÃO
MENCIONADOS FOI O DE VISÃO COMPUTACIONAL. QUE
TIPO DE SITUAÇÃO EM VISÃO COMPUTACIONAL FARIA
SENTIDO APLICAR UM ALGORITMO DE AGRUPAMENTO?
RESPOSTA
De forma bem simples, a visão computacional trata da capacidade de um sistema computacional de distinguir
objetos em imagens. É necessário “ensinar” para o sistema o que é um objeto, mas é impossível apresentar
todas as possíveis variações desses objetos. Portanto, o algoritmo de agrupamento auxilia no processo de
extrair características que possam ser utilizadas para obter similaridades e relacionar os objetos com os
grupos a que eles pertencem. Por exemplo, uma bola pequena ou grande continua sendo uma bola.
javascript:void(0)
VISÃO GERAL
A associação mais correta a ser feita, quando falamos de aprendizado não supervisionado, é o de
aprendizado às cegas, em que buscamos por conta própria explorar o espaço amostral de observações
por padrões e relacionamentos.
Imagem: Shutterstock.com
Descobertos esses padrões, podemos começar a agrupar e organizar tal conhecimento, atualizando
nossos referenciais à medida que vamos organizando a desordem natural inerente do espaço amostral.
Vamos, ao fim, ser capazes de avaliar nosso agrupamento, bem como de visualizar e apresentar essa
informação a outros, e/ou fundirmos esses novos dados na base de conhecimentos preexistentes em
nossas bases de conhecimento.
No entanto, devemos sempre tomar cuidado, pois se trata de um processo de interpretação subjetiva, de
validade relativamente fraca, e que pode ser afetado pelas condições de inicialização do processo. O
processo pode começar muito bem, de forma quase ótima, ou seja, com os seus referenciais quase
perfeitos, ou pode começar com os referenciais enviesados, nas bordas ou nos extremos dos conceitos
e agrupamentos possíveis em questão.
PROBLEMAS DE ANÁLISE DE AGRUPAMENTOS
Entre as tarefas de aprendizado de máquina, o agrupamento ou clustering é uma tarefa que tem o
objetivo de criar grupos e atribuir instâncias a esses grupos, a partir de características ou atributos
dessas instâncias.
 ATENÇÃO
Diferentemente da classificação, no agrupamento não existe uma classe predefinida necessariamente
para cada instância, mas, sim, um novo rótulo baseado nos grupos descobertos.
Imagem: Fernando Cardoso Durier da Silva.
 Problema de Agrupamento.
Como podemos ver na imagem anterior, o problema clássico começa com um conjunto de observações
no espaço amostral, as quais estão dispersas e precisam ser relacionadas de alguma forma para expor
um padrão implícito, mesmo que cada observação já pertença a uma classe prévia. Dito isso, o
algoritmo de aprendizado não supervisionado escolhido para agrupar ou clusterizar, iterativamente,
percorrerá o espaço amostral, relacionando as observações até então dispersas, agrupando-as por
similaridade (ou proximidade).
 EXEMPLOS
São clássicos problemas de agrupamento:
Agrupamento de espécies.
Alternativa para modelagem tópica de documentos.
Agrupamento de perfis de acesso.
Agrupamento de grupos sociais (como social bubbles, echo chambers).
Além do uso tradicional, podemos aplicar a tarefa de agrupamento para “interpolar” novos atributos
para nossas observações; por exemplo, podemos utilizar o agrupamento para enriquecer um conjunto
de dados e, assim, prover um melhor conjunto de treinamento para um algoritmo supervisionado de
regressão ou de classificação.
Podemos utilizar o agrupamento para fundir dados, como em um conjunto bipartido em que há relação,
porém fraca, por exemplo, um conjunto de posts em mídias sociais de usuários comuns e posts de
influenciadores políticos.
E, por último, podemos utilizar o agrupamento para completar dados faltantes por similaridade, por
exemplo, dados faltantes categóricos, que podem ter uma semântica implícita, para a qual as técnicas
tradicionais que dependem estritamente da estatística básica da coluna não servirão como solução.
Como foi dito, o tipo de aprendizado do qual estamos falando é o aprendizado não supervisionado, pois
o algoritmo utilizado não tem uma etapa de treinamento propriamente, mas um treinamento iterativo sob
demanda no espaço amostral em questão.
As etapas do processo de aprendizado não supervisionado são:
SELEÇÃO DE ATRIBUTOS
Reduzir ao máximo a dimensionalidade dos dados, a fim de obter a menor quantidade com a melhor
codificação de atributos.
MEDIDA DE PROXIMIDADE
Definir os critérios ou métodos de cálculo de similaridade e dissimilaridade. Como todos os atributos têm
que ser levados em consideração para o cálculo de similaridade e de forma igualitária (sem pesos), é
necessário normalizar o conjunto de dados.
CRITÉRIO DE AGRUPAMENTO
O critério de agrupamento normalmente é dado pelo que o cientista de dados ou os stakeholders
entendem como característica relevante ao agrupamento. Por exemplo, mais disperso, mais compacto
etc.
ALGORITMO DE AGRUPAMENTO
Muito dependente do critério de agrupamento, pois é ele que leva à escolha do algoritmo. Por exemplo,
se há uma intuição ou restrição quanto à quantidade esperada de clusters, então, tudo indica a escolha
de um K-Médias (K-Means); se não houver restrição e quisermos explorar ao máximo o conjunto de
dados, então, escolheríamos um DBSCAN (do inglês Density-Based Spatial Clustering of Applications
with Noise).
VERIFICAÇÃO DE RESULTADOS
Executado o algoritmo de agrupamento, podemos verificar se o resultado faz sentido, por meio de
aplicação de métricas de acompanhamento predefinidas ou genéricas próprias das técnicas de
agrupamento.
INTERPRETAÇÃO DOS RESULTADOS
Esta é a parte mais divertida da tarefa de agrupamento, que consiste em juntar os padrões descobertos
(os clusters) ao conjunto de dados original e/ou a outras evidências, e conjecturar sobre isso, concluindo
hipóteses, ou reforçando premissas preestabelecidas, mas não explicadas a priori.
Imaginemos que seja o mesmo processo de arrumar nosso quarto ou nossa bancada depois de muito
tempo; entraremos no ambiente sem lembrar exatamente o que temos ali e vamos de coisa em coisa
espalhada, tentando agrupá-las em nichos, de acordo com critérios de similaridade, e só paramos
quando todos os itens tiverem sido arrumados e qualquer coisa que não seja mais útil tenha sido
descartada. Dito isso, quanto maior for a bagunça, ou seja, quanto maior for seu espaço amostral, mais
tempo vamos passar ali recolhendo e agrupando, recolhendo e reajustando os nichos.
Foto: Shutterstock.com
 COMENTÁRIO
Em outras palavras, a vantagem é que teremos um algoritmo robusto e independente, capaz de explorar
qualquer ambiente (ainda que existam melhores escolhas e estratégias para certas situações), trazendo-
nos padrões implícitos que sempre enriquecerão a análise. A contrapartida é que, dependendo do
tamanho do conjunto de dados, o resultado pode ser demorado e computacionalmente muito custoso.
MÉTRICAS ESPECÍFICAS DE AGRUPAMENTO
De um modo geral, aprendizado não supervisionado não pressupõe métricas como acurácia e precisão,
como vemos no aprendizado supervisionado, uma vez que não há rótulos preestabelecidos para haver
esse tipo de comparação de acertosou erros. Mas existem alternativas, como veremos a seguir.
O coeficiente de silhueta indica a distância média entre uma amostra e todos os outros pontos em uma
mesma classe, e entre uma amostra e todos os outros pontos no grupo mais próximo. O coeficiente de
silhueta S para uma única amostra é definido pela fórmula a seguir.
S = 
B - A
MAX ( A , B )
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
onde “a” é a dissimilaridade do objeto em relação a todos os objetos do mesmo grupo e “b” é a
dissimilaridade entre o objeto em relação a todos os objetos do grupo vizinho mais próximo a ele.
Temos também o índice Calinski-Harabaz: indicando por k o número de grupos, Bk e Wk são as
matrizes de dispersão entre agrupamentos e dentro de cada agrupamento, respectivamente, definidos
como:
BK = ∑
K
J = 1NC ( I ) ΜC ( I ) - Μ ΜC ( I ) - Μ T
WK = ∑
M
I = 1 X ( I ) - ΜC ( I ) X ( I ) - ΜC ( I ) T
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
( ) ( )
( ) ( )
O índice Calinski-Harabaz s(k) indica quão bem um modelo de agrupamento define o seu grupo, tal que,
quanto maior for a maior pontuação, mais denso e bem separado estarão os agrupamentos. E é definido
pela seguinte fórmula:
S ( K ) =
TR BK
TR WK ×
N - K
K - 1
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
MÉTRICAS GENÉRICAS PARA AGRUPAMENTO
Entre as métricas genéricas, temos a homogeneidade e a completude. Tais métricas são levadas em
consideração quando temos um rótulo de comparação preexistente, para comparar contra o rótulo
calculado pelo algoritmo de agrupamento (muito utilizado em problemas de enriquecimento de conjuntos
para tarefas de aprendizado supervisionado).
Homogeneidade é a métrica que afere o quão homogêneo é cada grupo do agrupamento, calculando
quantos membros do grupo são da classe que deveria ser e quantos são de outras, como podemos
observar na Fórmula (1). Por exemplo, supondo que 80% do grupo 1 é vermelho e 20% é azul, se
assumirmos que o grupo 1 deveria ser vermelho, então ele seria 80% homogêneo.
Completude é a métrica que afere, do total de observações de uma dada classe i, quantas delas foram
assimiladas no correto agrupamento em sua totalidade, como podemos observar na Fórmula (2).
Podemos fazer um paralelo de homogeneidade e completude com precisão e recall (revocação),
respectivamente.
HOMOGENEIDADE = 1 - 
H ( C | K )
H ( C ) 1
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
( )
( )
( )
COMPLETUDE = 1 - 
H ( K | C )
H ( K ) 2
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
Onde:
H ( C | K ) = - ∑
| C |
C = 1 ∑
| K |
K = 1
NC , K
N . LOG
NC , K
NK
ENTROPIA CONDICIONAL
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
H ( C ) = - ∑
| C |
C = 1
NC
N . LOG
NC
N
ENTROPIA DE CLASSE
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
 COMENTÁRIO
Intuitivamente, a entropia é uma medida da incerteza ou de aleatoriedade (impureza) de uma variável.
Se a entropia H(C) é considerada como uma medida da incerteza sobre uma variável aleatória, então
H(C|K) é uma medida do quanto K não diz sobre C. Isto é, a quantidade de incerteza restando sobre C
depois que K é conhecido.
( )
( )
( )
Finalmente, temos a Medida V, ou em inglês, a V-Measure ou V-Score, dada pela Fórmula (3), onde
β=1 normalmente; para valores de β < 1, se dá mais peso à homogeneidade e, para β > 1, se dá mais
peso à completude.
Essa é a média harmônica entre Homogeneidade e Completude, sendo uma excelente métrica para
resumir bem o processo de agrupamento, assim como a Medida F (média harmônica entre precisão e
recall ou revocação).
A Medida V é simétrica, ou seja, V-Measure (rótulos preditos, rótulos reais) é igual à V-Measure (rótulos
reais, rótulos preditos), o que não é verdade para Homogeneidade e Completude, pois estas são dadas
pela relação inversa (Homogeneidade (a, b) = Completude(b, a)).
Ν = 
( 1 + Β ) × HOMOGENEIDADE × COMPLETUDE
( Β × HOMOGENEIDADE + COMPLETUDE ) 3
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
As vantagens são:
O intervalo de valores possíveis para tais scores é preso em 0 a 1.
0 seria o pior resultado.
Enquanto 1 é o melhor resultado.
 ATENÇÃO
Como tais métricas não pressupõem premissas com relação aos algoritmos a serem comparados, é
possível comparar tipos diferentes de algoritmos.
As desvantagens dessa abordagem genérica são: grandes quantidades de dados podem disfarçar
casos de aleatoriedade, isto é, nem sempre um agrupamento aleatório resultaria em 0 de score; e, como
dito, tais abordagens genéricas exigem que haja o Ground Truth ou Conjunto Verdade preestabelecido
para ser comparado contra o resultado do agrupamento, o que, na prática, implica em a base ter um
atributo de classe ou implica em trabalho manual por parte de anotadores dedicados.
( )
ANÁLISE DE AGRUPAMENTOS E SUAS
MÉTRICAS
No vídeo a seguir, abordamos a técnica de análise de agrupamentos para aprendizado não
supervisionado e as métricas usadas nos problemas de agrupamento.
VERIFICANDO O APRENDIZADO
1. DE ACORDO COM AS MÉTRICAS GENÉRICAS DE HOMOGENEIDADE E
COMPLETUDE, E A MÉDIA HARMÔNICA DAS DUAS, É SABIDO QUE TEMOS UMA
VARIÁVEL DE VIÉS BETA NA FÓRMULA, CUJA VALORAÇÃO É ASSOCIADA
DIRETAMENTE COM O PESO DADO A UMA DAS COMPONENTES. SINALIZE A
OPÇÃO CORRETA:
A) β > 1 implica em dar mais importância à completude, β < 1 implica em dar mais importância à
homogeneidade, β=1 é o valor padrão.
B) β > 1 implica em dar mais importância à homogeneidade, β < 1 é o valor padrão, β=1 implica em dar
mais importância à completude.
C) β > 1 implica em dar mais importância ao Ground Truth, β < 1 implica em dar mais importância à
Acurácia, β=1 é o valor padrão.
D) β > 1 é o valor padrão, β < 1 implica em dar mais valor à completude, β=1 implica em dar mais valor à
homogeneidade.
E) β > 1 implica em dar mais importância à homogeneidade, β < 1 implica em dar mais importância à
completude, β=1 é o valor padrão.
2. OS ALGORITMOS DE APRENDIZADO NÃO SUPERVISIONADO SÃO MUITO
PODEROSOS E, DE CERTA FORMA, INDEPENDENTES POR NATUREZA. ENTRE
ELES, ALGORITMOS DE AGRUPAMENTO SÃO MELHOR APLICÁVEIS EM QUE
CENÁRIOS?
A) Classificação de observações; Enriquecimento de Dados; Fusão de Dados.
B) Predição de valores numéricos para observações; Fusão de Dados; Decomposição de Atributos.
C) Agrupamentos particionados e/ou hierárquicos; Fusão de Dados; Enriquecimento de Dados.
D) Redução de dimensionalidade; Fusão de dados; Enriquecimento de Dados.
E) Classificação de Observações; Predição de Valores Numéricos para Observações; Agrupamentos
particionados e/ou hierárquicos.
GABARITO
1. De acordo com as métricas genéricas de homogeneidade e completude, e a média harmônica
das duas, é sabido que temos uma variável de viés beta na fórmula, cuja valoração é associada
diretamente com o peso dado a uma das componentes. Sinalize a opção correta:
A alternativa "A " está correta.
A variável de viés beta é livre e configurável principalmente na implementação. A opção correta é a letra
A. As opções B e D estão erradas, pois o valor padrão seria 1. A opção C traz duas estatísticas que não
se relacionam ao beta propriamente dito, em que Ground Truth é o conjunto verdade e “denominador” da
Completude e Homogeneidade, enquanto acurácia é uma métrica de problemas de aprendizado
supervisionado. E a opção E inverteu as relações.
2. Os algoritmos de aprendizado não supervisionado são muito poderosos e, de certa forma,
independentes por natureza. Entre eles, algoritmos de agrupamento são melhor aplicáveis em
que cenários?
A alternativa "C " está correta.
A opção A está incorreta devido ao fato de trazer classificação, uma tarefa particular e própria das
técnicas de aprendizado supervisionado. A opção B está incorreta por trazer a regressão, tarefaparticular das técnicas de aprendizado supervisionado. A opção D traz a redução de dimensionalidade,
uma técnica de pré-processamento de dados, que não é proporcionada por agrupamentos, mas por
algoritmos próprios. A opção E mistura técnicas de aprendizado supervisionado e não supervisionado,
que não é o caso.
MÓDULO 2
 Descrever algoritmos de K-Médias
LIGANDO OS PONTOS
Você já ouviu falar do algoritmo de K-Médias? Sabia que algumas versões desse algoritmo já estão
disponíveis em pacotes computacionais para serem utilizadas? Para respondermos a essas perguntas,
vamos analisar algumas situações práticas.
Considerando que você seja um analista financeiro, como aplicaria um problema de agrupamento em
sua área? Bem, a primeira parte da solução consiste na definição dos dados utilizados como base para
a extração de características. Em seguida, vem a etapa de tratamento com a remoção de dados
corrompidos e os ajustes para que todos os dados sejam numéricos. Depois, vem a normalização, para
que os dados estejam no mesmo intervalo numérico, normalmente, entre 0 e 1. Feitas essas etapas,
você poderá obter os grupos pelo método chamado de K-Means, ou alguma variação dele, sendo que o
K do nome do algoritmo representa a quantidade de grupos que pretendemos obter.
Talvez você esteja se perguntando: “quer dizer que sou eu que devo entrar com a quantidade de grupos
que o algoritmo deve obter?”. A resposta para essa é pergunta é: exatamente isso! O K-Means vai
construir os grupos de modo que, muito dificilmente, uma equipe de pessoas muito qualificadas
conseguiria obter. Por outro lado, o conhecimento sobre a aplicação é fundamental. É necessário que
você seja capaz de fornecer quantos grupos espera obter e, depois de o algoritmo fornecer o resultado,
realizar a crítica.
Nesse contexto, você identificou o perfil do investidor: arrojado, moderado e conservador. Em outras
palavras, você determinou três grupos. Porém, o que você faria se, ao estudar os dados, identificasse a
necessidade de trabalhar com outros perfis, como conservador com tendência para moderado e
moderado com tendência para arrojado? Nessa situação, você teria de trabalhar com cinco grupos, ou
seja, K=5, podendo utilizar o algoritmo de agrupamento que aplique o critério de proximidade, tal como o
de distância euclidiana. A ideia é simples: o algoritmo encontra um valor para representar a proximidade
entre os indivíduos que estão no mesmo grupo. Em seguida, ele compara se os indivíduos poderiam
estar mais bem alocados em outros grupos usando a medida de distância.
Atualmente, temos à nossa disposição de bibliotecas e ferramentas que facilitam a utilização do K-
Means e de suas variações. Temos até algoritmos que analisam os dados e propõem a quantidade de
grupos. As linguagens Python e R são bastante adequadas para essa finalidade, inclusive. É muito
interessante ver esse tipo de algoritmo aplicado para resolver problemas reais e utilizado de forma
natural nas reuniões com termos como “centróides”, “critério de aproximação” e “normalização”. A época
que vivemos exige que possamos fornecer soluções eficientes para resolver problemas do mundo real.
Para atingir esse objetivo, é preciso dedicarmo-nos tanto aos estudos como à aplicação desses
conhecimentos na prática.
Após a leitura do case, é hora de aplicar seus conhecimentos! Vamos ligar esses pontos?
1. COMO VOCÊ VIU, O ALGORITMO DE K-MEANS É APLICADO PARA OBTER
AGRUPAMENTOS. SE, AO FINAL DE UMA EXECUÇÃO, O ANALISTA NÃO
FICASSE SATISFEITO COM O RESULTADO, O QUE ELE PODERIA FAZER?
A) Ele não deveria questionar o resultado, pois o algoritmo sempre fornece a melhor solução.
B) Mudar a quantidade de grupos.
C) Tentar executar o algoritmo com os dados originais.
D) Mudar de linguagem de programação.
E) Não utilizar o algoritmo de K-Means, pois ele tem apenas valor teórico.
2. COMO VISTO, O ALGORITMO DE K-MEANS UTILIZA UM CRITÉRIO DE
PROXIMIDADE PARA REALIZAR OS AGRUPAMENTOS. O QUE É UM CRITÉRIO
DE PROXIMIDADE?
A) É uma fórmula matemática.
B) É uma função disponível em algumas linguagens de programação.
C) É a descrição de um comportamento aleatório.
D) É o próprio algoritmo de K-Means.
E) É uma forma de medir exatamente a semelhança entre os indivíduos com o grupo em que estão
alocados e para os demais.
GABARITO
1. Como você viu, o algoritmo de K-Means é aplicado para obter agrupamentos. Se, ao final de
uma execução, o analista não ficasse satisfeito com o resultado, o que ele poderia fazer?
A alternativa "B " está correta.
O algoritmo de K-Means é um importante instrumento na tomada de decisão. Seu objetivo é agrupar
elementos semelhantes de acordo com um critério de aproximação. No entanto, a crítica do especialista
do negócio é fundamental e pode ser necessário mudar os parâmetros do algoritmo e executá-lo
novamente. Um exemplo de mudança é na quantidade de grupos.
2. Como visto, o algoritmo de K-Means utiliza um critério de proximidade para realizar os
agrupamentos. O que é um critério de proximidade?
A alternativa "E " está correta.
Um critério de proximidade tem como objetivo medir de forma exata a semelhança dos elementos com o
grupo em que estão e com outros grupos. O critério mais comum é o de distância euclidiana, mas
existem outros. A escolha de qual critério utilizar depende da natureza do problema que estamos
tratando.
3. CONSIDERE O SEGUINTE CENÁRIO: VOCÊ É O
RESPONSÁVEL POR ANALISAR OS RESULTADOS DOS
GRUPOS PRODUZIDOS PELO ALGORITMO K-MEANS. NO
PROCESSO DE ANÁLISE, VOCÊ PERCEBEU A
NECESSIDADE DE AUMENTAR A IMPORTÂNCIA DE UM DOS
TIPOS DE DADOS DE ENTRADA EM RELAÇÃO AOS
DEMAIS. NESSE CENÁRIO, QUAL SERIA A ESTRATÉGIA
QUE VOCÊ ADOTARIA?
RESPOSTA
Do cenário descrito, percebemos que todas as etapas anteriores de tratamento e transformação de dados já
foram feitas, pois o analista já está estudando os resultados que o algoritmo produziu. Uma forma de
aumentar a importância de um dos tipos de dados em relação aos demais é usar uma ponderação na função
do critério de proximidade, ou seja, identificar a parte da função de critério de proximidade, que faz o cálculo
do tipo de dado que queremos ajustar a importância, e multiplicar por um valor maior do que um.
MÉTODO K-MÉDIAS (K-MEANS)
Geralmente, os algoritmos de agrupamento não são muito complexos de se compreender. O processo
tradicional é definido da seguinte forma:
Primeiro, no espaço amostral, são definidos pontos aleatórios que agirão como centros de gravidade.
Feito isso, na primeira rodada, o algoritmo percorre cada observação no espaço amostral calculando a
distância da observação para o centro de massa mais próximo.
Se houver mais de um centro de massa próximo, o centro mais próximo da observação absorve no
agrupamento a dada observação.
Feito isso, é recalculado o centro de massa, e assim estabelecido um novo centro para aquele cluster.
javascript:void(0)
É feito esse processo iterativamente até que todo o espaço amostral tenha sido devidamente agrupado,
como está ilustrado na imagem a seguir.
Imagem: Fernando Cardoso Durier da Silva
 Algoritmo Genérico de Agrupamento.
A especificidade do algoritmo de K-Médias (K-Means) em relação aos demais algoritmos de
agrupamento (por exemplo, DBSCAN) é que o número de centros de massa inicializados é definido
previamente pelo cientista de dados, daí o nome K-Médias.
Os centros de massa nesse algoritmo têm seu nome dado por k-Medoide, uma vez que ele é o ponto
mediano segundo a distância euclidiana por padrão (configurável, podendo depender de outras métricas
de similaridade). Isso dá ao cientista de dados maior controle sobre o resultado gerado pelo algoritmo,
fazendo com que todas as observações sejam agrupadas em um dos clusters regidos pelos K-
Medoides.
Os demais algoritmos, como o DBSCAN, que não definem um número K específico de centros de
massa, podem classificar observações que não se encaixam em nenhum cluster como ruídos, uma vez
que eles mesmos escolhem quantidades de centros demassa.
Enquanto K-Médias é o algoritmo que depende do número predefinido de K-Medoides inicialmente, o
DBSCAN é a versão de algoritmo de agrupamento no qual não é necessário ou obrigatório passar
nenhum parâmetro predefinido, mas apenas instanciá-lo e deixá-lo percorrer o espaço amostral
“livremente”, agrupando as observações segundo critérios de similaridade.
A segunda diferença com relação ao K-Means e aos seus K-Medoides é que o algoritmo de DBSCAN,
por operar segundo critérios de similaridade, pode deixar de agrupar certas observações que não se
encaixem em nenhum agrupamento aparente como ruído. No DBSCAN, é possível ajustarmos o
algoritmo através dos critérios de quantidade mínima para se constituir um agrupamento, e de distância,
normalmente euclidiana, máxima entre elementos para serem considerados do mesmo cluster.
MATEMÁTICA DO K-MÉDIAS (K-MEANS)
Matematicamente, o agrupamento c do grupo de pontos i e μj é definido pela fórmula a seguir, que,
como podemos ver, é a distância euclidiana mínima entre dois pontos:
C ( I ) = ARGJMIN X ( I ) - ΜJ 2
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
Matematicamente, os K-Medoides do grupo j são definidos pela seguinte fórmula:
ΜJ =
∑
M
I = 11 C ( I ) = J X ( I )
∑
M
I = 11 C ( I ) = J
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
Para fins operacionais, o espaço amostral do conjunto de dados é reduzido de N dimensões, com N
variando com a quantidade de atributos do conjunto através de transformações lineares ou chamadas
aos próprios métodos tradicionais de redução de dimensionalidade, como o PCA (Principal Component
Analysis), o TSNE (T-Distributed Stochastic Neighbour Embedding) ou o LLE (Local Linear Embedding).
E, para fins de monitoramento, temos a função de distorção dada pela fórmula a seguir, com a qual
verificamos se o algoritmo converge.
J ( C , Μ ) = ∑
M
I = 1 X ( I ) - ΜC ( I ) 2
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
O algoritmo de K-Médias pode ser expresso pelo algoritmo em pseudocódigo a seguir:
| | | |
{ }
{ }
| | | |
a. Inicialize K centros de massa iniciais de forma aleatória no espaço amostral;
b. Forme k grupos associando cada observação ao k-medoide mais próximo;
c. Recalcule a posição do k-medoide com base no centro de gravidade do grupamento atualizado;
d. Repita b e c até que os k-medoides parem de se mexer, i.e., convirjam.
 COMENTÁRIO
O principal problema do K-Means é ter um bom começo de rodada. Como a sua inicialização é aleatória,
isso pode implicar em uma inicialização perfeita logo de cara, tornando a complexidade ótima, ou por
falta de sorte ter um começo ruim e inicializar os K-Medoides nas bordas dos seus grupos, fazendo com
que mais recálculos ocorram.
Para o algoritmo do K-Médias, o critério de otimização consiste em minimizar a distância das
observações intracluster, e maximizar a distância intercluster. Entre os critérios de otimização, podemos
utilizar a Soma dos Erros Quadrados ou o Critério de Dispersão, que observamos anteriormente.
 ATENÇÃO
A Soma dos Erros Quadrados é relativamente mais simples, mas é muito mais suscetível a outliers,
além de não funcionar bem para grupos muito dispersos, podendo agregar, ao invés de dividi-los.
DEMONSTRAÇÃO DO K-MÉDIAS EM PYTHON
COM SKLEARN
Para trabalharmos o algoritmo K-Means de forma prática, vamos precisar do Python na versão 3.8 ou
superior, com as bibliotecas Pandas, Plotly, Numpy e Sklearn. No ambiente da linguagem, é necessário
importar as bibliotecas.
```
import pandas as pd
import plotly.express as px
import numpy as np
from sklearn.cluster import KMeans
```
Para fins de aprendizado, vamos criar um conjunto de dados sintético, utilizando o Numpy e seus
métodos de geração por função aleatória de distribuição de probabilidade.
```
X = np.random.randint(100, size=(100,2))
```
Ao utilizarmos o np.random.randint(100, size=(100,2)), estamos gerando um conjunto de dimensões
com 100 observações de dimensão 2 (x,y), sendo que o x e o y podem ser populados randomicamente
por valores variando de 0 a 100, constituindo assim nosso espaço amostral.
Agora vamos inicializar o K-Means e aplicá-lo ao nosso conjunto. Faremos isso definindo k = 3, e estado
randômico = 0, para que os resultados sejam reproduzíveis.
```
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
```
Feito isso, cada observação foi devidamente agrupada e rotulada a partir do seu K-Medoide respectivo.
Agora, vamos trazer essa nova informação ao conjunto de dados. Faremos isso através da biblioteca
Pandas, assim simulando uma fusão de dados entre o conjunto de dados original e o novo dado trazido
pela rotulação do K-Médias (K-Means).
```
xdf = pd.DataFrame(X)
xdf[‘class’] = kmeans.labels_
xdf[‘class’] = xdf['class'].astype('string')
```
Com esse bloco de código, nós transformamos nosso conjunto de dados em um DataFrame, depois
aproveitamos o fato de que o K-Means armazena os rótulos na mesma ordem que as observações
foram apresentadas e, então, é só passar para a coluna nova chamada class. Por formalidade e
coerência, adequamos o tipo dessa coluna de inteiro para categórico. E agora podemos interpretar
através de visualização no Plotly o resultado do nosso agrupamento.
```
px.scatter(xdf,x=0,y=1,color='class', title='K-Means')
```
Esse comando gera o gráfico a seguir:
 Gráfico: Dispersão da Interpretação do K-Means.
Elaborado por Fernando Cardoso Durier da Silva no ambiente da linguagem Python.
Podemos ver que, por mais que tenhamos construído um conjunto de dados “aleatório”, o K-Means foi
capaz de encontrar padrões escondidos. Podemos imaginar essa ideia para outros tipos de problemas:
por exemplo, sobre um conjunto de clientes de um mercado, podemos rodar o K-Means e descobrir
extratos de compras de clientes, associar produtos mais adequados a determinados nichos, o que
combinaria o poder do K-Means com um algoritmo de Regras de Associação, como o Apriori.
Assim como demais modelos de aprendizado de máquina, podemos utilizar o modelo resultante do
nosso K-Means para rotular novas observações entrantes nesse espaço amostral da seguinte maneira:
```
kmeans.predict([[0, 0], [12, 3]])
```
Isso terá como resultado para os pontos (0,0) e (12,3) o rótulo 2, por exemplo, nessa nossa
demonstração. Outra coisa interessante que podemos obter de antemão é o conjunto de K-Medoides do
nosso modelo, os pontos de referência para novas classificações. Para isso, utilizaremos o seguinte
comando:
```
kmeans.cluster_centers_
```
Esse comando nos retornará o conjunto de K-Medoides, que são 3 como definimos inicialmente:
```
array([[45.79411765, 76.79411765],
[75.13513514, 27.54054054],
[23.31034483, 32.72413793]])
```
Para fins de comparação, utilizando o mesmo conjunto de dados, o gráfico a seguir mostra o
agrupamento gerado pelo DBSCAN, o algoritmo agrupador que não requer um número predefinido de k
centroides. Na legenda de cores podemos ver que ele achou cinco rótulos, e um sexto rótulo chamado
NoIsE, do inglês ruído. O ruído nada mais é do que pontos que não se enquadram nos critérios-padrão
básicos de composição de um grupo. Ou seja, o DBSCAN achou mais padrões ocultos, mas, em
contrapartida, achou muito ruído (a configuração utilizada foi de distância 8 e mínimo número de
amostras para constituir o cluster de 5).
 Gráfico: Agrupamento gerado pelo algoritmo DBSCAN.
Elaborado por Fernando Cardoso Durier da Silva no ambiente da linguagem Python.
DEMONSTRAÇÃO DO MÉTODO DE K-MEANS
NO PYTHON
Para encerrar este módulo, apresentamos, no vídeo a seguir, o método de K-Means para aprendizado
não supervisionado.
VERIFICANDO O APRENDIZADO
1. O K-MEANS É UM ALGORITMO CLÁSSICO DE AGRUPAMENTO CUJO
DIFERENCIAL É
A) inicialização de um conjunto inicial de quantidade predefinida.
B) autonomia total na execução do algoritmo.
C) agrupamento das observações mais relevantes apenas.
D) reduçãoda dimensionalidade.
E) particionamento hierárquico.
2. O K-MEANS É UM ALGORITMO MUITO PODEROSO, E AMPLAMENTE USADO.
MAS QUAIS SÃO SUAS DESVANTAGENS?
A) É difícil de explicar; requer muitos exemplos para funcionar bem.
B) É adequado apenas para dados textuais; é difícil de explicar.
C) É difícil de explicar; complexidade proporcional ao tamanho do conjunto de dados.
D) Complexidade proporcional ao tamanho do conjunto de dados; dependente da inicialização.
E) Requer muitos exemplos para funcionar bem; dependente da inicialização.
GABARITO
1. O K-Means é um algoritmo clássico de agrupamento cujo diferencial é
A alternativa "A " está correta.
A opção B é incorreta, pois é característica do DBSCAN, o K-Means opera justamente ao contrário, ele
não é totalmente independente, e sim depende do fator K passado. A opção C não é verdade, pois o K-
Means agrupará todas as observações, ele só para quando tudo estiver agrupado e os K-Medoides
convergirem. A opção D não é verdadeira, pois K-Means não serve para reduzir dimensionalidade, não é
o objetivo dele. A opção E é característica dos agrupamentos hierárquicos e dos dendrogramas.
2. O K-Means é um algoritmo muito poderoso, e amplamente usado. Mas quais são suas
desvantagens?
A alternativa "D " está correta.
A opção A é incorreta, pois não só é um dos algoritmos mais fáceis de serem explicáveis, mas também
não faz premissas sobre o conjunto de dados, ou seja, não precisa ser somente muito grande, ou
somente muito pequena. A opção B não é verdade, pois não tem ressalvas contra dados apenas
numéricos, nem outro tipo de premissa com relação ao conjunto em si. A opção C está errada pelas
mesmas razões de A, ainda que realmente a complexidade de seu algoritmo, assim como dos demais
de agrupamento, seja proporcional ao tamanho do conjunto. A opção E é incorreta, pois faz premissa
com relação ao conjunto de dados, em contrapartida o outro aspecto está certo, o K-Means é
dependente da inicialização, pois pode ser ótimo caindo no ponto ideal para ser centroide, ou não e cair
na borda.
MÓDULO 3
 Descrever o método de agrupamento hierárquico
LIGANDO OS PONTOS
Você conhece agrupamento hierárquico? Sabe em que tipo de situações ele pode ser muito útil? Para
entendermos sobre os conceitos na prática, vamos analisar uma situação.
Os problemas de agrupamentos mais comuns na prática são aqueles em que um indivíduo é associado
a apenas um conjunto (cluster). Nesse tipo de problema, os indivíduos devem estar o mais próximo
possível dos que estão no mesmo grupo e o mais distante dos que estão em outros grupos. Mas existe
outra categoria de problemas de agrupamentos que trabalha de um modo diferente: agrupamento
hierárquico.
O nome desse tipo de problema é bem didático: os indivíduos são agrupados em níveis hierárquicos.
Desse modo, precisamos analisar diferentes níveis de agrupamentos para estudar a proximidade dos
elementos. A forma mais comum, inclusive, de representar esse tipo de agrupamento é por meio de uma
visualização chamada de dendrograma.
Nesse contexto, você é um consultor de RH responsável pela classificação dos analistas financeiros de
uma corretora de um grande banco comercial. Os referidos analistas possuem seus respectivos
desempenhos financeiros, tempo de contratação, quantidade de horas trabalhadas e percentual de
metas atingidas. O resultado do seu trabalho será utilizado pelo RH, que poderá implementar estratégias
mais eficientes para treinamento e/ou coaching a fim de alavancar as carteiras da referida instituição
financeira.
Quais as etapas você deverá estabelecer para a resolução do problema utilizando agrupamento
hierárquico? Inicialmente, precisará focar na organização dos dados e, depois, realizar os devidos
tratamentos e transformações para garantir que estejam consistentes. Com os dados consistentes,
poderá aplicar o método de agrupamento hierárquico, pois existem níveis que precisam ser
considerados para associar os analistas adequadamente. Como resultado, você terá identificado
semelhanças entre os indivíduos dentro de mesmos grupos, bem como os tipos de estratégia de
treinamento e/ou coaching mais adequados para alavancar as referidas carteiras.
Além do mais, é empolgante saber que você pode contar com diversas bibliotecas que possuem
algoritmos prontos para serem utilizados, poupando, assim, da necessidade de entrar em detalhes de
implementação, focando no objetivo do negócio. Além de linguagens de programação poderosas como o
Python e o R, temos ferramentas como o Power BI que o auxiliará na aplicação deste tipo de algoritmo.
Novamente, você precisa ter a clareza de que a utilização destas técnicas e de ferramentas apenas
valorizam o tempo e a experiência de profissionais que podem se concentrar na análise dos resultados e
de como aplicá-los para melhorar as suas estratégias nos negócios.
Após a leitura do case, é hora de aplicar seus conhecimentos! Vamos ligar esses pontos?
1. COMO VOCÊ LEU NO CASE, O ALGORITMO DE AGRUPAMENTOS
HIERÁRQUICO É DIFERENTE DO MÉTODO DE K-MEANS. FAZ SENTIDO UTILIZÁ-
LOS PARA RESOLVER OS MESMOS PROBLEMAS?
A) Sim, pois ambos são algoritmos de agrupamentos.
B) Sim, pois ambos utilizam os mesmos critérios de proximidade.
C) Sim, pois a diferença entre os algoritmos está apenas na visualização dos resultados.
D) Não, pois os algoritmos não têm os mesmos objetivos gerais.
E) Não, pois os algoritmos utilizam diferentes estratégias para formação dos grupos.
2. COMO VOCÊ LEU NO CASE, OS AGRUPAMENTOS HIERÁRQUICOS PODEM
UTILIZAR UMA REPRESENTAÇÃO CHAMADA DE DENDROGRAMA PARA
VISUALIZAR OS GRUPOS NOS QUAIS OS INDIVÍDUOS FORAM ALOCADOS.
PELA DESCRIÇÃO DADA NO TEXTO, SELECIONE A OPÇÃO CORRETA SOBRE O
DENDROGRAMA.
A) É semelhante a uma tabela.
B) É semelhante a uma estrutura de árvore.
C) Utiliza uma representação de conjuntos sem intersecção para destacar os grupos.
D) Apresenta cada indivíduo com os respectivos grupos a que pertencem.
E) Organiza os dados em uma lista de modo a facilitar a visualização dos grupos.
GABARITO
1. Como você leu no case, o algoritmo de agrupamentos hierárquico é diferente do método de K-
Means. Faz sentido utilizá-los para resolver os mesmos problemas?
A alternativa "E " está correta.
Os algoritmos de K-Means e de agrupamentos hierárquicos possuem o mesmo objetivo geral: organizar
os dados em grupos. No entanto, eles se diferenciam sobre as estratégias para formação desses
grupos, pois, no caso do K-Means, os dados são agrupados em conjuntos que não possuem
intersecção. Já no caso do método hierárquico, os dados são agrupados em níveis. Portanto, não
podem ser utilizados para resolver os mesmos problemas.
2. Como você leu no case, os agrupamentos hierárquicos podem utilizar uma representação
chamada de dendrograma para visualizar os grupos nos quais os indivíduos foram alocados.
Pela descrição dada no texto, selecione a opção correta sobre o dendrograma.
A alternativa "B " está correta.
A representação de dendrograma é semelhante a uma árvore. Assim, é fácil visualizar os diferentes
níveis em que os elementos estão alocados.
3. CONSIDERE O SEGUINTE CENÁRIO: VOCÊ É
RESPONSÁVEL PELA CLASSIFICAÇÃO DOS ALUNOS DE
UMA ESCOLA DE ACORDO COM DESEMPENHO
ACADÊMICO, ANO ESCOLAR, IDADE E PERCENTUAL DE
PRESENÇA NAS AULAS. O RESULTADO DO SEU
TRABALHO SERÁ UTILIZADO COMO INSUMO PARA QUE OS
PEDAGOGOS E RESPONSÁVEIS DA ESCOLA POSSAM
DESENVOLVER ESTRATÉGIAS MAIS EFICIENTES PARA
AUXILIAR OS ALUNOS NO PROCESSO DE APRENDIZAGEM.
COM BASE EM SUA EXPERIÊNCIA, COMO VOCÊ
CUMPRIRIA ESSA MISSÃO?
RESPOSTA
A primeira etapa desse projeto deve ser a organização dos dados. Em seguida, é preciso realizar os devidos
tratamentos e transformações para garantir que estejam consistentes. A próxima etapa é da aplicação do
método para análise. É o caso típico de utilização de agrupamento hierárquico, pois existem níveis que
javascript:void(0)
precisam ser considerados para associar os alunos adequadamente. O resultado desse trabalho vaiauxiliar
os tomadores de decisão a identificar semelhanças entre os indivíduos dentro de mesmos grupos e que tipo
de estratégia pedagógica é mais adequada para auxiliar no processo de aprendizagem.
MÉTODO DE AGRUPAMENTO HIERÁRQUICO
Os algoritmos de agrupamento podem ser divididos em: partitivos ou hierárquicos.
Os partitivos dividem o conjunto em K clusters e produzem agrupamentos simples, como vimos no K-
Médias tentando criar agrupamentos os mais compactos e separados possível.
 ATENÇÃO
Os agrupamentos hierárquicos decompõem o conjunto de dados hierarquicamente, resultando em um
dendrograma, uma árvore que divide o conjunto de dados iterativamente em subconjuntos, até a folha
que seria um item individual. Nessa árvore, cada nó interno corresponde a um agrupamento, e à medida
que subimos o nível temos uma hierarquia, sendo a raiz a integridade do conjunto.
A motivação por trás do agrupamento hierárquico é a possibilidade de haver relações dentro dos
próprios agrupamentos ou sobreposição. Ou seja, existe algo similar à autocorrelação dentro dos
grupos, em que uma informação pode ser muito útil para resolver problemas de delegação de tarefas,
hierarquização etc.
A vantagem é que o agrupamento hierárquico não só revela a relação entre grupos e possíveis
sobreposições (overlaps) dimensionais, mas também o artefato produzido como resultado do algoritmo,
o dendrograma, é altamente explicável uma vez que se trata de uma árvore de decisão para
agrupamento.
A desvantagem do agrupamento hierárquico é o fato de ele ter sua complexidade computacional
proporcional ao tamanho do conjunto de dados. Além disso, para fins de hierarquia, ou teremos um
agrupamento completo que força um dendrograma contra o conjunto de dados, ou teremos um
dendrograma que pode ter profundidade variável de acordo com a heurística utilizada. Essa
profundidade dependeria da heurística ou da limitação de recursos computacionais, uma vez que
hierarquias menos profundas consumiriam menos recurso computacional.
Uma desvantagem que compartilha com os demais algoritmos que dependem de percorrer o espaço
amostral é o fator de inicialização, que pode ser ótimo ou pode ser ruim.
 COMENTÁRIO
Um bom exemplo para o problema de inicialização é um aluno autodidata. Ele tentará angariar o maior
número possível de materiais sobre determinado assunto, de forma semialeatória, pois um assunto
invariavelmente leva a outro específico relacionado. Porém, por mais que ele tente organizar o material
e extrair um conhecimento dali, existe uma sequência adequada mínima para o bom entendimento, ou
seja, para as coisas se conectarem e estabelecerem um fluxo de raciocínio. Se, por acaso, ele
fortuitamente explorar os assuntos na ordem adequada, então, a complexidade de construção do novo
conhecimento será normal ou ótima, mas se ele começar pelo meio ou fim, será muito mais dispendioso
entender e construir o conhecimento, já que haverá várias interações repetidas até entender o assunto
em sua totalidade.
Imagem: Shutterstock.com
TIPOS DE AGRUPAMENTO HIERÁRQUICO
Os algoritmos hierárquicos podem seguir uma abordagem aglomerativa (bottom-up), que começa
considerando os itens individuais como entrada, e vai agrupando cada item segundo um critério de
distância, até que se chegue à raiz.
Já outros algoritmos seguem a abordagem divisiva (top-down), em que se começa da raiz e desce às
folhas, considerando inicialmente todos os elementos do conjunto de entrada agrupados em um grande
grupo único (raiz), e realizando sucessivas divisões em agrupamentos até que se obtenha N
agrupamentos, ou se chegue a uma condição de parada definida.
A abordagem aglomerativa é intuitivamente a mais prática, dada pelo seguinte algoritmo, visualizável na
imagem a seguir:
Computar a matriz de proximidade dos pontos do espaço amostral do conjunto de dados.
Atribuir cada observação como um grupo por si só.
Repetir:
Juntar os dois grupos mais próximos;
Atualizar a matriz de proximidade.
Parar quando houver apenas um grupo.
Imagem: Fernando Cardoso Durier da Silva
 Agrupamento Hierárquico Aglomerativo.
A abordagem divisiva, top-down, é justamente o contrário. Começa-se com um grupo maior, que
agrega todas as observações e depois prossegue com N rodadas de subdivisão desse grupo maior em
subgrupos menores, baseados em critérios de similaridade ou dissimilaridade predefinidos. E a condição
de parada nesse caso pode variar, desde uma altura tolerável de particionamento até a individualidade
de cada observação.
A diferença se encontra no critério de divisão do cluster, que dependerá sempre de alguma heurística,
uma vez que existem 2n formas de dividir o cluster. Nas heurísticas, existem possibilidades de dividir por
similaridade, por variância, por Min, por Max, entre outras.
 COMENTÁRIO
A vantagem dos agrupamentos hierárquicos é que permitem uma ótica diferente da tradicional de
simples agrupamento, pois, com esse tipo de técnica, nós podemos entender melhor não só como as
observações se agrupam em relação às outras, mas, também, como é a dinâmica dentro de cada grupo,
qual a possível hierarquia. Porém, isso acarreta análises cada vez mais subjetivas por parte do cientista
de dados em questão.
DEMONSTRAÇÃO DO AGRUPAMENTO
HIERÁRQUICO EM PYTHON COM SKLEARN
Para implementar o agrupamento hierárquico em Python, vamos utilizar as bibliotecas Pandas, Numpy,
Plotly e Sklearn. Para tal demonstração e para fins de estudo, produziremos um conjunto de dados
sintético de pontos no espaço do R2.
Vamos inicializar o projeto, importando as bibliotecas necessárias:
```
import pandas as pd
import numpy as np
import plotly.express as px 
```
Feito isso, vamos sintetizar nosso conjunto de dados a partir do Numpy e sua geração de amostras
aleatórias baseadas em funções de distribuição de probabilidade. Para isso, vamos fazer um exemplo
simples, com 6 observações apenas, para que possamos obter uma visualização facilitada. Para isso,
precisaremos do seguinte bloco de código:
```
X = np.random.randint(10, size=(6,2))
```
Para fins de praticidade e por ser mais explicável, vamos fazer um agrupamento hierárquico
aglomerativo. Para que o algoritmo compute todas as observações, vamos setar o distance_threshold =
0, e o n_clusters=None. Dessa forma:
```
clustering = AgglomerativeClustering(
 distance_threshold=0, 
 n_clusters=None
).fit(X)
```
Treinado nosso modelo, vamos interpretá-lo agora. Primeiro, vamos enriquecer nosso conjunto de dados
original. Incialmente, converteremos o conjunto original em DataFrame. Depois, fundiremos os rótulos do
cluster hierárquico no nosso conjunto de dados original, converteremos esse rótulo novo de numérico
para categórico. Em seguida, vamos criar uma coluna index em nosso conjunto de dados, para
podermos plotar em um gráfico posterior, convertendo-o também para categórico. Tudo isso com este
bloco de código:
```
xdf = pd.DataFrame(X)
xdf['class'] = clustering.labels_
xdf['class'] = xdf['class'].astype('string')
xdf = xdf.reset_index()
xdf['index'] = xdf['index'].astype('string')
```
Agora, vamos analisar como nossos dados estão no espaço amostral. Para isso, usaremos um gráfico
de dispersão 3D, em que:
no eixo X, teremos a primeira coordenada das observações;
no eixo Y, a segunda coordenada;
e, para fins de contexto, no eixo Z, o index.
```
px.scatter_3d(xdf,x=0,y=1,z='index',color='index')
```
 Gráfico: Dispersão do conjunto de dados Sintético.
Elaborado por Fernando Cardoso Durier da Silva no ambiente da linguagem Python.
Como podemos ver, várias abordagens poderiam ser tomadas para agrupar esses dados. Vamos ver
como o modelo fez para agrupar essas observações através do dendrograma, que seria como se fosse
o log de operações dele. Para isso, vamos usar o Plotly, da seguinte forma:
```
import plotly.figure_factory as ff
fig = ff.create_dendrogram(xdf)
fig.update_layout(width=800, height=500)
fig.show()
```
Resultando no seguinte dendrogramada imagem a seguir:
 Gráfico: Dendrograma.
Elaborado por Fernando Cardoso Durier da Silva no ambiente na linguagem Python
De acordo com o dendrograma, podemos compreender que o agrupamento hierárquico começou pelo
index 0, que olhou nas suas vizinhanças e agregou com o mais próximo, no caso do index 2, depois
partiu para o index 1, e agregou ao cluster 0-2.
Logo em seguida, partiu para o index 3, fazendo o cluster 0-1-2-3. Ao ir para o index 4, ele julgou que a
observação mais próxima seria o index 5, formando o agrupamento 4-5.
Na rodada seguinte, ele comparou os clusters finais e os aglutinou em um cluster final inteiriço.
Por default, a implementação Agglomerative Hierarchical Cluster do Scikit-Learn usa como critério de
ligação (linkage), o Ward.
O critério de Ward, também conhecido como Método de Mínima Variância de Ward, preza pela
aglutinação de grupos, minimizando a variância entre eles.
Existem outros critérios de ligação que valem a pena ser explorados em simulações em seus
computadores, como, por exemplo, a average, que prioriza a menor distância média entre todas as
observações dos clusters em questão (ou seja, prefere o agrupamento mais próximo sempre).
De um modo geral, o agrupamento hierárquico tem a função de estabelecer relações entre os grupos,
por exemplo, de acordo com nosso experimento, vemos que 1 está contido no grupamento de 0-2, mas
ainda está muito desconexo de 4-5.
 COMENTÁRIO
Poderíamos pensar em 0-2 como dois times de desenvolvimento do mesmo departamento e 1 como um
departamento de mesmo nível, sendo 3 um departamento maior como o Chief Information Officer (CIO),
enquanto 4-5 representaria executivos de outros dois departamentos estratégicos.
O agrupamento hierárquico contribui para o conjunto de dados mais espacialmente do que
“numericamente”, uma vez que essas relações são difíceis mesmo de representar no conjunto de dados,
senão por chaves estrangeiras, ou links.
DEMONSTRAÇÃO DO MÉTODO DE
AGRUPAMENTO HIERÁRQUICO NO PYTHON
Para concluir o estudo deste módulo, apresentamos o método de agrupamento hierárquico no vídeo a
seguir.
VERIFICANDO O APRENDIZADO
1. AGRUPAMENTO HIERÁRQUICO TEM COMO OBJETIVO
A) agrupar de forma top down ou bottom up observações do espaço, a fim de mostrar as relações
implícitas entre os agrupamentos.
B) classificar observações em conjuntos de classes bem definidas e altamente relacionadas.
C) prever um valor numérico para cada observação no espaço amostral, a fim de prever lucro para o
negócio.
D) descobrir redes sociais de trabalho.
E) minerar processos de negócio implícitos em logs de processos da empresa.
2. O QUE É AGRUPAMENTO HIERÁRQUICO DIVISIVO, OU TOP DOWN?
A) É algoritmo baseado em vetores de suporte, que classifica observações do espaço amostral baseado
no vetor central “imaginário” gerado pelos de suporte.
B) É a árvore de decisão que separa as observações do espaço amostral, segundo entropia da
informação.
C) É o algoritmo de agrupamento baseado em centroides predefinidos, que agrupa todo o espaço
amostral.
D) É o algoritmo de agrupamento hierárquico que monta seu dendrograma da raiz para as folhas,
dividindo um cluster inicial gigante em subclusters, até chegar a clusters individuais.
E) É o algoritmo de agrupamento hierárquico que monta seu dendrograma das folhas para a raiz,
aglutinando clusters individuais em subclusters, até gerar um cluster inteiriço ao conjunto de dados.
GABARITO
1. Agrupamento hierárquico tem como objetivo
A alternativa "A " está correta.
A opção B é incorreta, pois é relativa aos algoritmos de classificação. A opção C está incorreta, pois é
relativa aos algoritmos de regressão. A opção D não é obrigação nem objetivo dos algoritmos de
agrupamento hierárquico, mas pode ser um fator motivador. A opção E se encaixaria melhor no contexto
de mineração de regras de associação.
2. O que é agrupamento hierárquico divisivo, ou top down?
A alternativa "D " está correta.
A opção A é o SVM. A opção B é a Árvore de Decisão. A opção C é o K-Means. A opção E é a
abordagem bottom up do agrupamento hierárquico.
CONCLUSÃO
CONSIDERAÇÕES FINAIS
Como pudemos ver, existem alternativas de aprendizado de máquina que, de certa forma, são mais
independentes e podem ser usadas em combinação com técnicas de aprendizado clássicas
supervisionadas. 
Estudamos que, por mais que o aprendizado de máquina não supervisionado passe a impressão de
livre, heurístico ou até mesmo instintivo, na realidade, pode ser mensurado não só por suas métricas
próprias, como o coeficiente de silhueta, mas também através de métricas genéricas bastante
semelhantes às do aprendizado supervisionado, como completude, homogeneidade, e Medida V (a
média harmônica entre homogeneidade e completude), que poderiam ser entendidas como o recall, a
acurácia, e a Medida F, respectivamente.
Pudemos entender as diferenças entre os principais tipos de agrupamento: o particionado e o
hierárquico. Vimos o funcionamento do K-Médias, uma excelente ferramenta no acervo de qualquer bom
cientista de dados, um algoritmo prático, explicável e altamente aplicável. Vimos também o
funcionamento do agrupamento hierárquico aglomerativo ou bottom-up, e discutimos sobre o divisivo ou
top-down. 
É importante analisar o problema de agrupamento a ser resolvido e qual parte dele é mais relevante
para o negócio, pois isso orientará a escolha do algoritmo, o melhor jeito de fundir seus dados com o
resultado do agrupamento e, finalmente, a métrica de acompanhamento.
AVALIAÇÃO DO TEMA:
REFERÊNCIAS
AMARAL, F. Introdução à Ciência de Dados: mineração de dados e big data. Rio de Janeiro: Alta
Books, 2016.
AMIDI, A.; AMIDI, S. Dicas de Aprendizado Não Supervisionado. Consultado na internet em: 1 jun.
2020.
ESCOVEDO, T.; KOSHIYAMA, A. Introdução a Data Science — Algoritmos de Machine Learning e
métodos de análise. São Paulo: Casa do Código, 2020. 
IZBICKI, R.; SANTOS, T. M. Aprendizado de máquina: uma abordagem estatística. São Carlos, SP:
Rafael Izbicki, 2020 (ebook).
MITCHELL, T. Machine Learning. Nova York: McGraw Hill, 1997.
EXPLORE+
Pesquise outros algoritmos de agrupamento como o DBSCAN e compare sua performance não só de
resultados, mas também de custo computacional com relação ao K-Means.
Experimente utilizar o K-Means em uma pipeline de KDD. E faça um teste de hipótese entre os modelos
que treinarem com o conjunto de dados tradicional e o conjunto de dados enriquecidos pelo K-Means.
Veja se há melhora ou piora. (Dica: gere as amostras com validação cruzada).
Tente implementar a abordagem divisiva ou top down do agrupamento hierárquico. (Dica: em caso de
tentar implementar até o algoritmo, olhe o critério de divisão de nó da árvore de decisão, é parecido).
Tente utilizar a abordagem aglomerativa ou bottom up em um cenário mais prático, como, por exemplo,
mineração de logs de processos, ou de comunicações entre funcionários de uma empresa.
Dentro da área de aprendizado não supervisionado, pesquise sobre outros algoritmos como os de regra
de associação; entre eles, pesquise sobre o mais conhecido algoritmo da área, o Apriori.
CONTEUDISTA
Fernando Cardoso Durier da Silva

Continue navegando