Exercícios — Aula 3: Topografia de Densidade e Grafos — Clustering Hierárquico e HDBSCAN
Aprendizado Não Supervisionado
Marcos M. Raimundo — Instituto de Computação, UNICAMP
18 de setembro de 2026
Questões discursivas
Particionar o espaço por proximidade a um conjunto fixo de protótipos (como no K-Means) sempre gera regiões poligonais convexas (uma tesselação de Voronoi) — por isso, esse tipo de método falha em recuperar clusters não-convexos, como duas “luas” entrelaçadas em forma de crescente ou dois anéis concêntricos (um envolvendo o outro por todos os lados). Considere agora a definição alternativa de cluster como componente conexa de um conjunto de nível de densidade \(L_\lambda = \{\mathbf{x} : p(\mathbf{x}) \ge \lambda\}\) (um cluster é um bloco de densidade alta e conectada, percorrível inteiro sem nunca descer abaixo do limiar \(\lambda\)). Explique por que essa definição não herda a mesma limitação de convexidade — e dê um exemplo (pode ser diferente dos citados acima) de uma forma de cluster que nenhum método baseado em protótipos fixos conseguiria capturar, mas que uma componente conexa de densidade capturaria sem dificuldade.
Para um ponto \(\mathbf{x}\), seja \(\mathrm{core}_K(\mathbf{x})\) a distância de \(\mathbf{x}\) ao seu \(K\)-ésimo vizinho mais próximo — pequena numa região densa, grande numa região isolada/rara. Defina a distância de alcançabilidade mútua entre dois pontos \(a\) e \(b\) como \(d_{\mathrm{mreach}}(a,b) = \max(\mathrm{core}_K(a), \mathrm{core}_K(b), d(a,b))\), onde \(d(a,b)\) é a distância euclidiana bruta entre eles. Explique por que essa distância nunca é menor que a distância bruta \(d(a,b)\), e construa um argumento (sem precisar de números) de por que essa propriedade é exatamente o que se quer para “acalmar” um ponto isolado sem alterar as distâncias dentro de uma região já densa.
No dataset Breast Cancer Wisconsin (\(569\) pacientes, rotulados como tumor benigno ou maligno), rodar o algoritmo HDBSCAN usando apenas \(2\) atributos numéricos padronizados do tumor (sem usar o rótulo de diagnóstico) encontrou um cluster de \(54\) pacientes \(100\%\) malignos e um cluster de \(347\) pacientes \(\approx 90{,}8\%\) benignos, com \(168\) pacientes (\(\approx 29{,}5\%\)) marcados como ruído — e, dos \(212\) pacientes malignos totais, \(126\) (\(\approx 59{,}4\%\)) caíram nesse ruído. Separadamente, rodar o mesmo HDBSCAN nos \(30\) atributos originais do mesmo dataset (todos padronizados, sem nenhuma seleção de atributos) mostrou uma queda drástica de estrutura encontrada: a fração de pacientes em algum cluster despenca à medida que a dimensão sobe, chegando a \(100\%\) de ruído (nenhum cluster sobrevive) com um
min_cluster_sizemoderado — um efeito da maldição da dimensionalidade, em que distâncias entre pontos perdem poder de discriminar “perto” de “longe” à medida que o número de atributos cresce. Usando esse resultado, discuta se aumentar o número de atributos usados na visualização anterior (por exemplo, de \(2\) para \(10\)) tenderia a diminuir ou aumentar a fração de pacientes malignos capturados no cluster puro — e por quê.
Questões de Verdadeiro/Falso
Cada bloco de 4 itens trata do mesmo tema. A questão só é considerada correta se todos os 4 itens forem julgados corretamente (deixar em branco tem penalidade de 20% da nota da questão).
Considere duas definições possíveis de cluster. Na primeira, cada ponto é atribuído ao protótipo (centro) mais próximo dentre um conjunto fixo de protótipos — a regra usada pelo K-Means — o que sempre particiona o espaço em regiões poligonais convexas (uma tesselação de Voronoi). Na segunda, para uma densidade estimada \(p(\mathbf{x})\) e um limiar \(\lambda\ge 0\), define-se o conjunto de nível \(L_\lambda=\{\mathbf{x}:p(\mathbf{x})\ge\lambda\}\) (os pontos do espaço com densidade pelo menos \(\lambda\)), e um cluster é uma componente conexa de \(L_\lambda\) — um bloco de densidade alta que se pode percorrer inteiro sem nunca sair de \(L_\lambda\).
- □ Se um cluster verdadeiro tem formato de “U” (uma curva fechada quase se tocando nas duas pontas), uma atribuição por protótipo mais próximo com um número suficientemente grande de protótipos eventualmente recupera esse formato exato como um único cluster.
- □ A convexidade de cada célula de Voronoi é uma consequência necessária de usar distância euclidiana ao protótipo mais próximo como regra de atribuição — não uma escolha adicional independente de qual algoritmo específico é usado para posicionar os protótipos.
- □ Um cluster definido como componente conexa de um conjunto de nível \(L_\lambda\) pode, em princípio, ter qualquer formato geométrico, inclusive não-convexo, desde que exista um caminho contínuo dentro de \(L_\lambda\) ligando quaisquer dois de seus pontos.
- □ Se dois pontos pertencem à mesma componente conexa de \(L_\lambda\), isso implica que a distância euclidiana direta entre eles é menor do que a distância de qualquer um dos dois a pontos fora dessa componente.
Lembrete: para uma densidade \(p(\mathbf{x})\) e um limiar \(\lambda\ge0\), \(L_\lambda=\{\mathbf{x}:p(\mathbf{x})\ge\lambda\}\), e um cluster (nesse \(\lambda\) fixo) é uma componente conexa de \(L_\lambda\). Hastie, Tibshirani & Friedman (The Elements of Statistical Learning, ESL, 2009, p. 507) catalogam três paradigmas de clustering: o combinatório (atribuição a um conjunto fixo de protótipos, como no K-Means), a modelagem por mistura (assume uma densidade paramétrica com \(K\) componentes, como uma mistura de gaussianas ajustada pelo algoritmo EM) e os “buscadores de moda” (mode seekers), que estimam diretamente as regiões de alta densidade — a abordagem via \(L_\lambda\) descrita acima.
- □ Decrescer \(\lambda\) de um valor alto para um valor baixo pode dividir uma componente conexa de \(L_\lambda\) em duas, além de poder fundir componentes existentes.
- □ Se duas regiões de alta densidade são separadas por um vale de densidade exatamente zero em pelo menos um ponto em qualquer caminho entre elas, então, para qualquer \(\lambda>0\), elas nunca aparecem como uma única componente conexa de \(L_\lambda\).
- □ A definição de cluster via \(L_\lambda\) dispensa completamente a necessidade de qualquer parâmetro de escala, ao contrário de uma atribuição por protótipos fixos (que exige escolher quantos protótipos usar).
- □ ESL (p. 507) descreve “buscadores de moda” (mode seekers) como um paradigma que estima diretamente as modas da densidade e atribui cada observação à moda mais próxima — um paradigma distinto tanto do combinatório quanto da modelagem por mistura.
Para um ponto \(\mathbf{x}\) e um inteiro \(K\), seja \(d_K(\mathbf{x})\) a distância de \(\mathbf{x}\) ao seu \(K\)-ésimo vizinho mais próximo (sem contar o próprio ponto) — \(d_K(\mathbf{x})\) pequeno significa que \(\mathbf{x}\) tem muitos vizinhos por perto (região densa); \(d_K(\mathbf{x})\) grande significa que foi preciso ir longe para achar \(K\) vizinhos (região rara/isolada). Define-se \(\mathrm{core}_K(\mathbf{x}) = d_K(\mathbf{x})\), chamando-a de core distance: a mesma quantidade, usada aqui como peso de aresta num grafo, não mais só como estimador direto de densidade.
- □ \(\mathrm{core}_K(\mathbf{x})\) pequeno continua significando região densa — a fórmula não mudou, só o papel que a quantidade desempenha (estimador de densidade vs. peso de aresta).
- □ Se \(K\) for aumentado (por exemplo, de \(5\) para \(50\)), o valor de \(\mathrm{core}_K(\mathbf{x})\) para um ponto numa região densa tende a variar relativamente menos do que o mesmo aumento de \(K\) produziria para um ponto numa região rara — porque, numa região densa, os vizinhos adicionais estão a distâncias parecidas às já contadas, enquanto numa região rara é preciso alcançar vizinhos cada vez mais distantes.
- □ Dois pontos com o mesmo valor de \(\mathrm{core}_K\), para o mesmo \(K\), necessariamente moram na mesma região do espaço de atributos.
- □ \(\mathrm{core}_K(\mathbf{x})\), como definido acima, não depende em nada da escolha de \(K\) — é uma propriedade fixa de cada ponto, independente de qualquer parâmetro.
Lembrete: \(\mathrm{core}_K(\mathbf{x})\) é a distância de \(\mathbf{x}\) ao seu \(K\)-ésimo vizinho mais próximo — pequena em regiões densas, grande em regiões raras/isoladas. A partir dela, define-se a distância de alcançabilidade mútua entre dois pontos \(a,b\): \[d_{\mathrm{mreach}}(a,b) = \max\bigl(\mathrm{core}_K(a),\ \mathrm{core}_K(b),\ d(a,b)\bigr),\] onde \(d(a,b)\) é a distância euclidiana bruta entre eles.
- □ \(d_{\mathrm{mreach}}(a,b) \ge d(a,b)\) vale sempre, para quaisquer \(a,b\) e qualquer \(K\) — a alcançabilidade mútua nunca aproxima dois pontos além de sua distância bruta.
- □ Se \(a\) e \(b\) estão ambos em regiões muito densas (ambos os core distances pequenos), \(d_{\mathrm{mreach}}(a,b)\) é, em geral, determinado pela distância bruta \(d(a,b)\), não pelos núcleos.
- □ Num cenário em que \(a\) está numa região densa e \(b\) está isolado bem longe de qualquer vizinho, \(d_{\mathrm{mreach}}(a,b)\) é necessariamente igual a \(d(a,b)\), porque o núcleo de \(a\) (pequeno) domina o máximo.
- □ Trocar a distância bruta \(d\) por \(d_{\mathrm{mreach}}\) em todo o grafo pode mudar quais arestas pertencem à MST, comparado à MST construída sobre a distância bruta original.
Dado um conjunto de \(N\) pontos com uma matriz de distâncias par a par, a Árvore Geradora Mínima (MST, Minimum Spanning Tree) é a árvore (subgrafo conexo, sem ciclos, com \(N-1\) arestas) que liga todos os \(N\) pontos minimizando a soma dos pesos das arestas. Ligação simples (single linkage) é o critério de clustering hierárquico aglomerativo em que a distância entre dois grupos \(G,H\) é a menor distância entre um ponto de cada grupo: \(d_{SL}(G,H)=\min_{i\in G,i'\in H}d_{ii'}\). A construção da MST vale para qualquer matriz de distâncias válida — inclusive a distância de alcançabilidade mútua \(d_{\mathrm{mreach}}(a,b)=\max(\mathrm{core}_K(a),\mathrm{core}_K(b),d(a,b))\), que combina a distância bruta com uma medida de densidade local.
- □ Para um conjunto de \(N\) pontos, a MST sobre a matriz de distâncias brutas tem sempre exatamente \(N-1\) arestas, independente de quantos clusters “verdadeiros” existam nos dados.
- □ Cortar as \(k-1\) arestas mais pesadas da MST produz sempre uma partição em exatamente \(k\) componentes conexas, para qualquer \(1\le k\le N\).
- □ Se a MST inteira for reconstruída usando \(d_{\mathrm{mreach}}\) em vez da distância bruta, o resultado de “cortar as \(k-1\) arestas mais pesadas” ainda corresponde ao clustering de ligação simples — mas agora sobre as distâncias de alcançabilidade mútua, não sobre as distâncias brutas originais.
- □ Considere um exemplo com \(7\) pontos formando três grupos visuais: A \(=\{0,1,2\}\), B \(=\{3,4,5\}\), e um ponto isolado, o ponto \(6\). A menor distância entre um ponto de A e um ponto de B é \(6{,}14\); a menor distância entre o ponto \(6\) e qualquer ponto de A ou de B é \(6{,}22\). Ao cortar a aresta mais pesada da MST (para obter \(k=2\) clusters), A e B se fundem entre si antes de o ponto \(6\) se juntar a qualquer um dos dois grupos — isso é uma inconsistência do algoritmo de ligação simples, não uma consequência esperada da definição \(d_{SL}(G,H)=\min_{i\in G,i'\in H}d_{ii'}\).
Lembrete: na ligação simples, a distância entre dois grupos é a menor distância entre um ponto de cada grupo. O fenômeno de encadeamento (chaining) citado abaixo é atribuído por Hastie, Tibshirani & Friedman (ESL, 2009, p. 524) a esse critério. O HDBSCAN (Hierarchical DBSCAN) é o algoritmo que constrói a hierarquia completa de ligação simples sobre a distância de alcançabilidade mútua \(d_{\mathrm{mreach}}(a,b)=\max(\mathrm{core}_K(a),\mathrm{core}_K(b),d(a,b))\) e extrai clusters usando um parâmetro min_cluster_size — o número mínimo de pontos para que um ramo da hierarquia conte como cluster, em vez de ser tratado como pontos perdidos do ramo-pai.
- □ O encadeamento citado do ESL ocorre porque a ligação simples define a proximidade entre dois grupos pelo par mais próximo entre eles, ignorando todos os outros pares — uma única cadeia de pontos intermediários basta para acionar uma fusão.
- □ Ligação completa (complete linkage, que usa a distância máxima entre pares, não a mínima) sofreria exatamente do mesmo defeito de encadeamento que a ligação simples, pela mesma razão matemática.
- □ Um único ponto de ruído inserido bem no meio do vale entre dois clusters genuinamente distintos pode, por si só, fazer a ligação simples fundir os dois num nível de dissimilaridade artificialmente baixo.
- □ \(d_{\mathrm{mreach}}\) reduz a chance de encadeamento causado por pontos isolados de baixa densidade, mas não elimina, por si só, todo encadeamento possível — daí a necessidade adicional de
min_cluster_sizeno HDBSCAN.
O HDBSCAN constrói a hierarquia completa de ligação simples sobre a distância de alcançabilidade mútua \(d_{\mathrm{mreach}}\) e a condensa: com um parâmetro min_cluster_size (o número mínimo de pontos para contar como cluster), sempre que um ramo da hierarquia se divide em dois, o lado com menos que min_cluster_size pontos é tratado como pontos perdidos do ramo-pai (não como um ramo novo) — só divisões em que ambos os lados são grandes o bastante viram novos ramos (o ramo original passa a ser o cluster-pai dos dois ramos-filhos) na árvore condensada.
- □ Na árvore condensada, um ramo com menos que
min_cluster_sizepontos, ao se separar do seu ramo-pai, é tratado como “pontos perdidos” do pai, não como um cluster novo — mesmo que, na hierarquia completa (não condensada), esse ramo aparecesse como uma divisão legítima. - □ Condensar a árvore usando
min_cluster_sizeelimina completamente a necessidade de qualquer outro parâmetro de escala no HDBSCAN, já que a persistência decide tudo o mais automaticamente. - □ Aumentar
min_cluster_sizetende a reduzir o número de ramos que sobrevivem como clusters candidatos na árvore condensada, comparado a ummin_cluster_sizemenor sobre a mesma hierarquia completa. - □ A árvore condensada de um conjunto de dados sem nenhuma estrutura de cluster real (por exemplo, uma única Gaussiana multivariada bem comportada) pode, ainda assim, ter ramos que sobrevivem ao condensamento, dependendo de
min_cluster_sizeescolhido.
Na árvore condensada do HDBSCAN, cada ramo (cluster candidato) nasce num certo nível de densidade \(\lambda\) e vai perdendo pontos (que viram ruído, ou passam a um ramo-filho quando o ramo se divide) até desaparecer. A persistência (excesso de massa) de um ramo \(C\), nascido em \(\lambda_{\mathrm{nasc}}(C)\), é \[\text{persistência}(C)=\sum_{p\in C}\bigl(\lambda_p-\lambda_{\mathrm{nasc}}(C)\bigr),\] onde \(\lambda_p\) é o valor de \(\lambda\) em que o ponto \(p\) deixou \(C\) — cada ponto contribui uma quantidade proporcional a quanto tempo (em \(\lambda\)) ficou dentro do ramo antes de sair. Clusters de maior persistência total sobreviveram por mais tempo como blocos coerentes.
- □ A persistência de um cluster candidato é definida somando, para cada ponto do ramo, o intervalo de \(\lambda\) (ou de \(1/d_{\mathrm{mreach}}\)) em que esse ponto pertenceu a esse cluster específico antes de ser absorvido pelo pai ou virar ruído.
- □ Um cluster que aparece por uma faixa muito curta de \(\lambda\) antes de se fundir com outro tem, em geral, persistência mais baixa do que um cluster de tamanho comparável que sobrevive por uma faixa longa de \(\lambda\).
- □ A extração final por persistência, em cada ramificação da árvore condensada, escolhe sempre “dividir nos dois filhos” em vez de “manter o pai inteiro”, porque dois clusters específicos têm, por definição, mais persistência somada do que um cluster genérico.
- □ Se dois clusters candidatos tivessem exatamente o mesmo tamanho (mesmo número de pontos), eles teriam, necessariamente, a mesma persistência, independente de quanto tempo cada um sobreviveu na hierarquia.
No dataset Breast Cancer Wisconsin (\(569\) pacientes, cada um com diagnóstico rotulado como tumor benigno ou maligno), o HDBSCAN foi rodado usando apenas dois atributos numéricos do tumor, sem usar o rótulo de diagnóstico, encontrando dois clusters: o Cluster 0, com \(54\) pacientes, todos malignos (\(100\%\) de pureza maligna); e o Cluster 1, com \(347\) pacientes, dos quais \(315\) benignos e \(32\) malignos (\(\approx90{,}8\%\) de pureza benigna). Os demais \(168\) pacientes (\(\approx29{,}5\%\) do total) ficaram marcados como ruído, fora dos dois clusters. Dos \(212\) pacientes malignos ao todo, \(126\) (\(\approx59{,}4\%\)) caíram nesse ruído. O rótulo de diagnóstico só foi usado depois, para comparar com a partição encontrada — nunca durante o clustering.
- □ O cluster de \(54\) pacientes, sendo \(100\%\) malignos, é uma evidência de que o HDBSCAN funcionou como um classificador treinado no rótulo
diagnosis. - □ O fato de \(126\) dos \(212\) pacientes malignos totais caírem em ruído (não em nenhum dos dois clusters) é consistente com a ideia de que tumores malignos variam mais em apresentação clínica do que tumores benignos, formando uma “montanha” de densidade menos coesa nesses dois atributos.
- □ A pureza benigna do Cluster 1 (\(315\) de \(347\), \(\approx90{,}8\%\)), medida só entre os pacientes que o HDBSCAN de fato agrupou (excluindo ruído), tende a parecer mais favorável do que a concordância geral com o diagnóstico, porque os casos mais ambíguos já foram descartados como ruído antes da comparação.
- □ Se o HDBSCAN não tivesse encontrado cluster nenhum nesses dois atributos (todos os \(569\) pacientes marcados como ruído), a tabela de contingência não revelaria nenhum alinhamento com o diagnóstico, porque não haveria partição nenhuma para comparar contra ele.
min_cluster_size e min_samples
No HDBSCAN, min_cluster_size é o número mínimo de pontos para que um ramo da árvore condensada conte como cluster (em vez de ser tratado como pontos perdidos do cluster-pai); min_samples é o valor de \(K\) usado no cálculo do core distance \(\mathrm{core}_K(\mathbf{x})\) — a distância de um ponto ao seu \(K\)-ésimo vizinho mais próximo, usada como medida de densidade local. Uma alternativa a esses dois parâmetros seria fixar diretamente um único limiar de densidade \(\lambda\) (como nos conjuntos de nível \(L_\lambda\)) ou um raio \(\varepsilon\) fixo (como no DBSCAN clássico).
- □ Trocar a escolha de um valor de \(\lambda\) global (um limiar único de densidade, como nos conjuntos de nível \(L_\lambda\) ou no raio \(\varepsilon\) do DBSCAN clássico) por uma escolha de
min_cluster_sizeno HDBSCAN elimina, por completo, qualquer decisão de escala que o usuário precise tomar. - □ Reduzir
min_cluster_sizepara um valor muito pequeno (como \(2\)) tende a reintroduzir uma versão do problema de encadeamento discutido para a ligação simples pura. - □
min_samplesdesempenha, no HDBSCAN, um papel análogo ao de \(K\) no core distance \(\mathrm{core}_K(\mathbf{x})\) — ambos controlam quantos vizinhos definem a escala local de densidade. - □ Um cluster que só aparece ao forçar
min_cluster_sizebem mais alto do que o valor originalmente usado é, por esse único motivo, necessariamente tão confiável estatisticamente quanto um cluster que aparece de forma estável numa faixa ampla de valores testados.
Um teste do HDBSCAN no dataset Breast Cancer Wisconsin (\(569\) pacientes): usando apenas \(2\) atributos padronizados, \(70{,}5\%\) dos pacientes caem em algum cluster; usando os \(30\) atributos originais do mesmo dataset, todos padronizados, sem seleção de atributos, a fração de pacientes marcados como ruído já é \(\approx59{,}2\%\) com min_cluster_size \(=5\), e chega a \(100\%\) (nenhum cluster sobrevive) a partir de min_cluster_size \(\ge 10\). Isso reproduz, no clustering por densidade, um fenômeno geral de espaços de alta dimensão: à medida que o número de atributos cresce, as distâncias entre pontos tendem a ficar todas parecidas entre si, perdendo poder de discriminar “perto” de “longe” — e como \(\mathrm{core}_K(\mathbf{x})\) (a distância ao \(K\)-ésimo vizinho mais próximo) e \(d_{\mathrm{mreach}}\) dependem diretamente dessas distâncias, ambos herdam o mesmo problema.
- □ A queda de \(70{,}5\%\) dos pacientes em algum cluster (com \(2\) atributos) para \(100\%\) de ruído (com \(30\) atributos,
min_cluster_size\(\ge 10\)) ocorre porque \(\mathrm{core}_K\) (a distância ao \(K\)-ésimo vizinho mais próximo) herda o mesmo mecanismo pelo qual distâncias perdem poder discriminativo em alta dimensão. - □ Aumentar
min_cluster_sizeaté encontrar algum cluster de novo em 30 dimensões resolve a causa raiz da maldição da dimensionalidade para esse dataset, não só o sintoma de “nenhum cluster apareceu”. - □ Uma atribuição por protótipos fixos (distância euclidiana a centros) aplicada aos mesmos \(30\) atributos padronizados não sofre da maldição da dimensionalidade, porque não usa nenhum estimador de densidade baseado em vizinhos como \(\mathrm{core}_K\).
- □ Reduzir a dimensionalidade (por exemplo, escolher um subconjunto pequeno de atributos informativos, como os dois atributos usados no exemplo do Breast Cancer Wisconsin acima) antes de rodar HDBSCAN ataca a causa do problema, não só o sintoma.
O HDBSCAN produz uma partição rígida: cada ponto pertence a exatamente um cluster, ou é marcado como ruído — nunca uma mistura de vários ao mesmo tempo. Uma alternativa é uma partição probabilística, como a de um Modelo de Mistura Gaussiana (GMM) ajustado pelo algoritmo EM (Expectation-Maximization): cada ponto recebe uma probabilidade de pertencer a cada cluster (por exemplo, \(50\%\) de chance de vir do cluster 1 e \(50\%\) do cluster 2), em vez de um rótulo único. Hastie, Tibshirani & Friedman (ESL, 2009, p. 507) descrevem três paradigmas de clustering: o combinatório (protótipos fixos, como no K-Means), a modelagem por mistura (como o GMM acima) e os “buscadores de moda” (que estimam diretamente regiões de alta densidade — a abordagem do HDBSCAN).
- □ A saída do HDBSCAN atribui cada ponto a exatamente um cluster, ou a ruído — nunca uma probabilidade de pertencimento a mais de um cluster ao mesmo tempo.
- □ Um paciente cujos atributos tumorais ficam exatamente na fronteira entre uma região densa de tumores malignos e uma massa de tumores benignos, sob uma atribuição probabilística (GMM/EM), receberia tipicamente uma probabilidade bem definida e próxima de \(1\) para um único cluster, e próxima de \(0\) para o outro — igual ao HDBSCAN, sem diferença prática nesse caso.
- □ O ESL (p. 507) cita “modelagem por mistura” como um paradigma de clustering distinto tanto do combinatório (protótipos fixos) quanto do “mode seeking” (HDBSCAN) — os três paradigmas citados acima.
- □ A escolha entre uma partição rígida (HDBSCAN) e uma probabilística (GMM/EM) é, em essência, uma escolha sobre o quanto se acredita que os clusters verdadeiros se sobrepõem genuinamente, não uma escolha puramente de conveniência computacional.