Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.
Os conjuntos de dados de aprendizado de máquina podem ter milhões de exemplos, mas nem todos os algoritmos de agrupamento são escalonados de maneira eficiente. Muitos algoritmos de agrupamento calculam a similaridade entre todos os pares de exemplos, o que significa que o tempo de execução aumenta conforme o quadrado do número de exemplos \(n\), indicado como \(O(n^2)\) na notação de complexidade.Os algoritmos \(O(n^2)\) não são práticos para conjuntos de dados com milhões de exemplos.
O algoritmo k-means tem uma complexidade de \(O(n)\), o que significa que o algoritmo é dimensionado linearmente com \(n\). Este algoritmo será o foco deste curso.
Tipos de agrupamento
Para conferir uma lista completa de diferentes abordagens de agrupamento, consulte A Comprehensive Survey of Clustering Algorithms (Xu, D., 2005). & Tian, Y. Ann. Data. Sci. (2015) 2: 165. Cada abordagem é mais adequada para uma distribuição de dados específica. Este curso discute brevemente quatro abordagens comuns.
Agrupamento baseado em centroide
O centroide de um cluster é a média aritmética de todos os pontos no cluster. O clustering com base no centroide organiza os dados em clusters não hierárquicos. Os algoritmos de agrupamento baseados em centroide são eficientes, mas sensíveis a condições iniciais e valores discrepantes. Entre eles, o k-means é o mais usado. Ela exige que os usuários definam o número de centroides, k, e funciona bem com clusters de tamanho aproximadamente igual.
Figura 1: exemplo de agrupamento baseado em centroide.
Clustering baseado em densidade
O agrupamento com base na densidade conecta áreas contíguas de alta densidade de exemplos em clusters. Isso permite a descoberta de qualquer número de clusters de qualquer forma. Os valores discrepantes não são atribuídos a clusters. Esses algoritmos têm dificuldade com clusters de densidades diferentes e dados com dimensões altas.
Figura 2: exemplo de agrupamento baseado em densidade.
Agrupamento baseado em distribuição
Essa abordagem de agrupamento pressupõe que os dados sejam compostos de distribuições probabilísticas, como distribuições gaussianas. Na Figura 3, o algoritmo baseado em distribuição agrupa os dados em três distribuições gaussianas. À medida que a distância do centro da distribuição aumenta, a probabilidade de um ponto pertencer à distribuição diminui. As faixas mostram essa diminuição na probabilidade. Quando você não se sentir confortável em assumir uma distribuição subjacente específica dos dados, use um algoritmo diferente.
Figura 3: exemplo de agrupamento baseado em distribuição.
Clustering hierárquico
O clustering hierárquico cria uma árvore de clusters. O agrupamento hierárquico é adequado para dados hierárquicos, como taxonomias. Confira um exemplo em Comparison of 61 Sequenced Escherichia coli Genomes de Oksana Lukjancenko, Trudy Wassenaar e Dave Ussery. É possível escolher qualquer número de clusters cortando a árvore no nível certo.
Figura 4: exemplo de uma árvore hierárquica que agrupa animais.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-06-09 UTC."],[[["\u003cp\u003eMany clustering algorithms have a complexity of O(n^2), making them impractical for large datasets, while the k-means algorithm scales linearly with a complexity of O(n).\u003c/p\u003e\n"],["\u003cp\u003eClustering approaches include centroid-based, density-based, distribution-based, and hierarchical clustering, each suited for different data distributions and structures.\u003c/p\u003e\n"],["\u003cp\u003eCentroid-based clustering, particularly k-means, is efficient for grouping data into non-hierarchical clusters based on the mean of data points, but is sensitive to initial conditions and outliers.\u003c/p\u003e\n"],["\u003cp\u003eDensity-based clustering connects areas of high data density, effectively discovering clusters of varying shapes, but struggles with clusters of differing densities and high-dimensional data.\u003c/p\u003e\n"],["\u003cp\u003eDistribution-based clustering assumes data follows specific distributions (e.g., Gaussian), assigning points based on probability, while hierarchical clustering creates a tree of clusters, suitable for hierarchical data.\u003c/p\u003e\n"]]],[],null,["Machine learning datasets can have millions of\nexamples, but not all clustering algorithms scale efficiently. Many clustering\nalgorithms compute the similarity between all pairs of examples, which\nmeans their runtime increases as the square of the number of examples \\\\(n\\\\),\ndenoted as \\\\(O(n\\^2)\\\\) in complexity notation. \\\\(O(n\\^2)\\\\) algorithms are not\npractical for datasets with millions of examples.\n\nThe [**k-means algorithm**](/machine-learning/glossary#k-means) has a\ncomplexity of \\\\(O(n)\\\\), meaning that the algorithm scales linearly with \\\\(n\\\\).\nThis algorithm will be the focus of this course.\n\nTypes of clustering\n\nFor an exhaustive list of different approaches to clustering, see\n[A Comprehensive Survey of Clustering Algorithms](https://link.springer.com/article/10.1007/s40745-015-0040-1)\nXu, D. \\& Tian, Y. Ann. Data. Sci. (2015) 2: 165. Each approach is best suited to\na particular data distribution. This course briefly discusses four common\napproaches.\n\nCentroid-based clustering\n\nThe [**centroid**](/machine-learning/glossary#centroid) of a cluster is the\narithmetic mean of all the points in the\ncluster. **Centroid-based clustering** organizes the data into non-hierarchical\nclusters. Centroid-based clustering algorithms are efficient but sensitive to\ninitial conditions and outliers. Of these, k-means is the most\nwidely used. It requires users to define the number of centroids, *k*, and\nworks well with clusters of roughly equal size.\n**Figure 1: Example of centroid-based clustering.**\n\nDensity-based clustering\n\nDensity-based clustering connects contiguous areas of high example density into\nclusters. This allows for the discovery of any number of clusters of any shape.\nOutliers are not assigned to clusters. These algorithms have difficulty with\nclusters of different density and data with high dimensions.\n**Figure 2: Example of density-based clustering.**\n\nDistribution-based clustering\n\nThis clustering approach assumes data is composed of probabilistic\ndistributions, such as\n[**Gaussian distributions**](https://wikipedia.org/wiki/Normal_distribution). In\nFigure 3, the distribution-based algorithm clusters data into three Gaussian\ndistributions. As distance from the distribution's center increases, the\nprobability that a point belongs to the distribution decreases. The bands show\nthat decrease in probability. When you're not comfortable assuming a particular\nunderlying distribution of the data, you should use a different algorithm.\n**Figure 3: Example of distribution-based clustering.**\n\nHierarchical clustering\n\n**Hierarchical clustering** creates a tree of clusters. Hierarchical clustering,\nnot surprisingly, is well suited to hierarchical data, such as taxonomies. See\n[*Comparison of 61 Sequenced Escherichia coli Genomes*](https://www.researchgate.net/figure/Pan-genome-clustering-of-E-coli-black-and-related-species-colored-based-on-the_fig1_45152238)\nby Oksana Lukjancenko, Trudy Wassenaar \\& Dave Ussery for an example.\nAny number of clusters can be chosen by cutting the tree at the right level.\n**Figure 4: Example of a hierarchical tree clustering animals.** **Key terms:**\n|\n| - [k-means algorithm](/machine-learning/glossary#k-means)\n| - [centroid](/machine-learning/glossary#centroid)\n| - [Gaussian distributions](/machine-learning/glossary#Normal_distribution)"]]