K-means é um método amplamente utilizado na análise de agrupamentos. No meu entendimento, esse método NÃO requer QUALQUER suposição, ou seja, me forneça um conjunto de dados e um número pré-especificado de clusters, k, e apenas aplico esse algoritmo que minimiza a soma dos erros ao quadrado (SSE), o cluster dentro do quadrado erro.
Portanto, o k-means é essencialmente um problema de otimização.
Eu li algum material sobre as desvantagens do k-means. A maioria deles diz que:
k-means assume que a variação da distribuição de cada atributo (variável) é esférica;
todas as variáveis ​​têm a mesma variação;
a probabilidade anterior para todos os k clusters é a mesma, ou seja, cada cluster tem um número aproximadamente igual de observações;
Se qualquer uma dessas três suposições for violada, o k-means falhará.
Eu não conseguia entender a lógica por trás dessa afirmação. Eu acho que o método k-means não faz suposições, apenas minimiza o SSE, então não vejo o elo entre minimizar o SSE e essas 3 "suposições".
Eu diria que o número de clusters já é uma suposição.
Os principais pressupostos de k-meios são: 1. não são k clusters. 2. SSE é o objetivo certo a minimizar. 3. todos os clusters têm o mesmo SSE. 4. Todas as variáveis ​​têm a mesma importância para todos os clusters. Estes são os pressupostos muito fortes ...
Para sua segunda pergunta (postada como resposta e excluída): se você deseja entender o k-means como um problema de otimização semelhante à regressão linear, entenda-o como quantização . Ele tenta encontrar a aproximação dos mínimos quadrados dos dados usando instâncias. Ou seja, se você realmente substituiu cada ponto pelo centróide mais próximo. kk
@ Anony-Mousse, li algum material e, mais tarde, propus o seguinte pensamento: significa como um modelo estatístico (em vez de um método de otimização) assume que existem k clusters subjacentes e a dispersão dos dados é puramente devida ao normal ruído aleatório com igual variação. Isso é análogo ao pressuposto de um modelo de regressão linear simples. Então (acredito que ainda não encontrei um artigo) em alguma versão do teorema de Gauss-Markov, mean fornecerá um estimador consistente da média dos clusters k subjacentes que assumimos para nossos dados. k -k -k−k -k−
Adicionei uma ilustração à minha resposta abaixo de um conjunto de dados em que se pode supor que o k-means funciona muito bem (todos os clusters da mesma forma) e ainda assim fica preso nos mínimos locais; e até 1000 iterações não encontraram o resultado ideal.
Embora eu goste muito da resposta de David Robinson , aqui estão algumas críticas adicionais ao k-means.
Armazenamento em cluster de dados não em cluster
Execute k-means em dados uniformes e você ainda obterá clusters! Ele não informa quando os dados simplesmente não se agrupam e pode levar sua pesquisa a um beco sem saída dessa maneira.
Reescalonar seus conjuntos de dados alterará completamente os resultados. Embora isso não seja ruim, não é possível perceber que você deve dedicar atenção extra ao dimensionamento de dados . Fatores de escala são parâmetros ocultos extras em k-significa que "padrão" é 1 e, portanto, são facilmente ignorados, mas têm um grande impacto (mas é claro que isso se aplica a muitos outros algoritmos).dd
Isso é provavelmente o que você chamou de "todas as variáveis ​​têm a mesma variação". Exceto que, idealmente, você também consideraria a escala não linear quando apropriado.
Lembre-se também de que é apenas uma heurística escalar todos os eixos para ter variação de unidade . Isso não garante que o k-means funcione. A escala depende do significado do seu conjunto de dados. E se você tiver mais de um cluster, deseja que cada cluster (independentemente) também tenha a mesma variação em cada variável.
Aqui está um contra-exemplo clássico de conjuntos de dados que k-means não podem agrupar. Ambos os eixos são iid em cada cluster, portanto, seria suficiente fazer isso em 1 dimensão. Mas os aglomerados têm variações variadas, e o k-médias as divide incorretamente.
Eu não acho que este contra-exemplo para k-means seja coberto pelos seus pontos:
Todos os clusters são esféricos (iid Gaussian).
Todos os eixos têm a mesma distribuição e, portanto, variação.
Ambos os clusters possuem 500 elementos cada.
No entanto, o k-mean ainda falha muito (e piora se eu aumentar a variação além de 0,5 no cluster maior). Mas: não foi o algoritmo que falhou. São as suposições, que não se sustentam . O K-means está funcionando perfeitamente, apenas otimizando o critério errado.
Mesmo em conjuntos de dados perfeitos, ele pode ficar preso no mínimo local
Abaixo está a melhor das 10 execuções de médias médias no conjunto de dados A3 clássico. Este é um conjunto de dados sintético, projetado para k-means . 50 grupos, cada um com a forma gaussiana, razoavelmente bem separados. No entanto, somente com k-means ++ e 100 iterações obtive o resultado esperado ... (abaixo estão 10 iterações de k-means regulares, para ilustração).
Você encontrará rapidamente muitos clusters nesse conjunto de dados, onde k-means não conseguiu encontrar a estrutura correta. Por exemplo, no canto inferior direito, um cluster foi dividido em três partes. Mas não há como o k-means mover um desses centróides para um local totalmente diferente do conjunto de dados - ele fica preso no mínimo local (e já era o melhor de 10 execuções!)
E há muitos desses mínimos locais nesse conjunto de dados. Muitas vezes, quando você obtém duas amostras do mesmo cluster, ele fica preso no mínimo quando esse cluster permanece dividido e outros dois clusters foram mesclados. Nem sempre, mas com muita frequência. Então você precisa de muitas iterações para ter uma escolha de sorte. Com 100 iterações de k-means, eu ainda contei 6 erros e, com 1000 iterações, reduzi para 4 erros. K-means ++ pela maneira como pesa as amostras aleatórias, funciona muito melhor nesse conjunto de dados.
Os meios são contínuos
Embora você possa executar o k-means em dados binários (ou em dados categóricos codificados com uma quente), os resultados não serão mais binários. Portanto, você obtém um resultado, mas pode não conseguir interpretá-lo no final, porque ele tem um tipo de dados diferente dos dados originais.
Suposição oculta: vale a pena minimizar o SSE
Isso já está essencialmente presente na resposta acima, bem demonstrada com regressão linear. Existem alguns casos de uso em que k-means faz todo sentido. Quando Lloyd teve que decodificar sinais PCM, ele sabia o número de tons diferentes e o erro ao quadrado minimiza a chance de erros de decodificação. E na quantização de cores da imagem, você minimiza o erro de cor ao reduzir a paleta também. Mas nos seus dados, a soma dos desvios quadrados é um critério significativo para minimizar?
No contraexemplo acima, não vale a pena minimizar a variação , pois depende do cluster. Em vez disso, um Modelo de Mistura Gaussiano deve ser adequado aos dados, como na figura abaixo:
(Mas esse também não é o método definitivo. É tão fácil construir dados que não atendem às suposições da "mistura de k distribuições gaussianas", por exemplo, adicionando muito ruído de fundo)
Muito fácil de usar mal
Em suma, é muito fácil lançar meios-k em seus dados e, no entanto, obter um resultado (isso é bastante aleatório, mas você não notará). Eu acho que seria melhor ter um método que pode falhar se você não entendeu seus dados ...
K-significa como quantização
Se você deseja um modelo teórico do que k-significa, considere-o uma abordagem de quantização , não um algoritmo de agrupamento.
O objetivo do k-means - minimizar o erro ao quadrado - é uma escolha razoável se você substituir todos os objetos pelo centróide mais próximo. (Faz muito menos sentido se você inspecionar os dados originais do grupo IMHO.)
Existem casos de uso muito bons para isso. O caso de uso original do Lloyd para PCM vem à mente, ou por exemplo, quanização de cores (Wikipedia) . Se você quiser reduzir uma imagem para k cores, você não deseja substituir cada pixel com o centróide mais próximo. Minimizando o desvio de cor quadrado então não medir L2 optimality na aproximação imagem usando únicas cores.kk
Essa quantização é provavelmente muito semelhante ao exemplo de regressão linear. A regressão linear encontra o melhor modelo linear . E k-means encontra (algumas vezes) a melhor redução para valores k de um conjunto de dados multidimensionais. Onde "melhor" é o erro menos quadrado.
IMHO, k-means é um bom algoritmo de quantização (veja a primeira imagem neste post - se você quiser aproximar o conjunto de dados para dois pontos, essa é uma escolha razoável!). Se você deseja fazer uma análise de cluster como na estrutura de descoberta , o k-means não é a melhor opção. Ele tende a agrupar quando não há agrupamentos e não pode reconhecer várias estruturas que você vê muito nos dados.
Impressão fina: todas as imagens foram geradas com ELKI . Os dados foram gerados usando o .xmlformato de geração de dados, mas são tão básicos que não vale a pena compartilhá-los.
(Apenas para observar - provavelmente não é uma boa ideia falar sobre a "resposta acima", pois a ordem das respostas que um leitor vê pode ser variável. Por exemplo, se eles definirem a ordem de exibição como "ativa", sua resposta será na verdade o que está acima!)
@ Anony-Mousse Esta resposta é realmente incrível. Mas até agora, meio que esqueço o que queremos dizer com "k-means funcionará sob algumas condições e falhará sob outras condições". O que a palavra "trabalhar" ou "falhar" significa neste contexto? "Trabalho" significa que a solução gerada pelo k-means visualmente 'parece razoável'? Isso é meio vago. Ou 'trabalho' significa se k-significa fornecer solução igual à 'solução padrão', ou seja, pré-geramos um conjunto de dados e usamos k-meios. Nesse contexto, 'trabalho' faz sentido, mas, na realidade, os dados não são pré-gerados por alguma distribuição.
Geralmente, as pessoas se referem a alguma verdade básica, ou seja, como os dados foram gerados ou a algum rótulo oculto no algoritmo. Comparando com os dados gerados, serão preferidos algoritmos que otimizam o modelo usado para geração (por exemplo, GMM e médias k para gaussianos). E mesmo em dados reais e rotulados, essa avaliação trata da reprodução de um resultado conhecido . Quando você considera o aspecto exploratório / descoberta de conhecimento, deseja aprender algo novo . Mas é tudo o que temos.
Funcionaria melhor no conjunto de dados A3 se fosse ajustado ao número de clusters efetivamente presentes, conforme determinado a priori? kk
— TMOTTM 03/09/16
@TMOTTM é com k escolhido por conhecimento prévio. O melhor de 10 é executado com o k "correto" escolhido a priori.
Que grande pergunta - é uma chance de mostrar como se poderia inspecionar os inconvenientes e suposições de qualquer método estatístico. A saber: crie alguns dados e tente o algoritmo nele!
Consideraremos duas de suas suposições e veremos o que acontece com o algoritmo k-means quando essas suposições são quebradas. Manteremos os dados bidimensionais, pois é fácil de visualizar. (Graças à maldição da dimensionalidade , a adição de dimensões adicionais provavelmente tornará esses problemas mais graves, e não menos). Trabalharemos com a linguagem de programação estatística R: você pode encontrar o código completo aqui (e a postagem no blog aqui ).
Desvio: Quarteto de Anscombe
Primeiro, uma analogia. Imagine alguém argumentando o seguinte:
Li algum material sobre as desvantagens da regressão linear - que ela espera uma tendência linear, que os resíduos são normalmente distribuídos e que não há discrepâncias. Mas tudo o que a regressão linear está fazendo é minimizar a soma dos erros ao quadrado (SSE) da linha prevista. Esse é um problema de otimização que pode ser resolvido, independentemente da forma da curva ou da distribuição dos resíduos. Assim, a regressão linear não requer suposições para funcionar.
Bem, sim, a regressão linear funciona minimizando a soma dos resíduos ao quadrado. Mas isso por si só não é o objetivo de uma regressão: o que estamos tentando fazer é desenhar uma linha que serve como um preditor confiável e imparcial de y com base em x . O teorema de Gauss-Markov nos diz que minimizar o SSE cumpre esse objetivo - mas esse teorema se apóia em algumas suposições muito específicas. Se esses pressupostos estão quebrados, você ainda pode minimizar o SSE, mas não pode fazerqualquer coisa. Imagine dizer "Você dirige um carro pressionando o pedal: dirigir é essencialmente um 'processo de pressionar o pedal' '. O pedal pode ser pressionado, não importa a quantidade de gasolina no tanque. Portanto, mesmo que o tanque esteja vazio, você ainda pode pressionar o pedal e dirigir o carro ".
Mas falar é barato. Vamos olhar para os dados frios e rígidos. Ou, na verdade, dados inventados.
Na verdade, esses são meus dados inventados favoritos : o quarteto de Anscombe . Criada em 1973 pelo estatístico Francis Anscombe, essa mistura deliciosa ilustra a loucura de confiar cegamente nos métodos estatísticos. Cada um dos conjuntos de dados tem a mesma inclinação de regressão linear, interceptação, valor-p e - e, no entanto, de relance, podemos ver que apenas um deles, I , é apropriado para a regressão linear. Em II , sugere a forma incorreta; em III , é distorcida por um único erro externo - e em IV não há claramente nenhuma tendência!R2R2
Pode-se dizer que "a regressão linear ainda está funcionando nesses casos, porque está minimizando a soma dos quadrados dos resíduos". Mas que vitória pirra ! A regressão linear sempre desenhará uma linha, mas se for uma linha sem sentido, quem se importa?
Portanto, agora vemos que apenas porque uma otimização pode ser realizada não significa que estamos cumprindo nossa meta. E vemos que criar dados e visualizá-los é uma boa maneira de inspecionar as suposições de um modelo. Segure-se a essa intuição, vamos precisar dela em um minuto.
Suposição quebrada: dados não esféricos
Você argumenta que o algoritmo k-means funcionará bem em clusters não esféricos. Aglomerados não esféricos como ... estes?
Talvez não seja o que você esperava, mas é uma maneira perfeitamente razoável de construir clusters. Olhando para esta imagem, nós, humanos, reconhecemos imediatamente dois grupos naturais de pontos - não há como confundi-los. Então, vejamos como o k-significa funciona: as atribuições são mostradas em cores, os centros imputados são mostrados como Xs.
Bem, isso não está certo. K-means estava tentando encaixar um pino quadrado em um buraco redondo - tentando encontrar bons centros com esferas limpas ao seu redor - e falhou. Sim, ainda está minimizando a soma de quadrados dentro do cluster - mas, como no Quarteto de Anscombe acima, é uma vitória pirânica!
Você pode dizer "Esse não é um exemplo justo ... nenhum método de agrupamento pode encontrar corretamente clusters que são estranhos". Não é verdade! Experimente o cluster hierárquico de ligação única :
Acertou em cheio! Isso ocorre porque o cluster hierárquico de ligação única faz as suposições corretas para esse conjunto de dados. (Existe toda uma outra classe de situações em que falha).
Você pode dizer "Esse é um caso único, extremo e patológico". Mas isso não! Por exemplo, você pode tornar o grupo externo um semicírculo em vez de um círculo, e verá que o k-means ainda funciona muito (e o cluster hierárquico ainda funciona bem). Eu poderia criar outras situações problemáticas facilmente, e isso é apenas em duas dimensões. Quando você agrupa dados em 16 dimensões, existem todos os tipos de patologias que podem surgir.
Por fim, devo observar que o k-means ainda é salvável! Se você começar a transformar seus dados em coordenadas polares , o cluster agora funcionará:
É por isso que compreender as suposições subjacentes a um método é essencial: ele não apenas informa quando um método apresenta desvantagens, mas também como corrigi-las.
Suposição Quebrada: Clusters de Tamanho Desigual
E se os clusters tiverem um número desigual de pontos - isso também quebra o k-significa cluster? Bem, considere este conjunto de clusters, dos tamanhos 20, 100, 500. Eu gerei cada um de um gaussiano multivariado:
Parece que o k-means provavelmente poderia encontrar esses clusters, certo? Tudo parece ser gerado em grupos limpos e arrumados. Então, vamos tentar k-means:
Ai. O que aconteceu aqui é um pouco mais sutil. Em sua busca para minimizar a soma de quadrados dentro do cluster, o algoritmo k-means dá mais "peso" a clusters maiores. Na prática, isso significa que é um prazer deixar esse pequeno cluster acabar longe de qualquer centro, enquanto usa esses centros para "dividir" um cluster muito maior.
Se você brincar um pouco com esses exemplos ( código R aqui! ), Verá que pode construir muito mais cenários em que o k-means faz com que seja embaraçosamente errado.
Conclusão: Sem almoço grátis
Há uma construção encantadora no folclore matemático, formalizada por Wolpert e Macready , chamada "Teorema do almoço grátis". Provavelmente, é o meu teorema favorito na filosofia de aprendizado de máquina, e eu aprecio qualquer chance de trazê-lo à tona (mencionei que amo essa pergunta?). A idéia básica é declarada (sem rigor) como se segue: " todo algoritmo executa igualmente bem ".
Parece contra-intuitivo? Considere que, para todos os casos em que um algoritmo funciona, eu poderia construir uma situação em que ele falha terrivelmente. A regressão linear assume que seus dados caem ao longo de uma linha - mas e se seguir uma onda sinusoidal? Um teste t assume que cada amostra provém de uma distribuição normal: e se você lançar um valor externo? Qualquer algoritmo de subida de gradiente pode ficar preso nos máximos locais, e qualquer classificação supervisionada pode ser levada a sobreajuste.
O que isto significa? Isso significa que as suposições são de onde vem o seu poder! Quando a Netflix recomenda filmes para você, supõe-se que, se você gosta de um filme, gosta de filmes semelhantes (e vice-versa). Imagine um mundo onde isso não era verdade e seus gostos são perfeitamente aleatórios, espalhados aleatoriamente entre gêneros, atores e diretores. Seu algoritmo de recomendação falharia terrivelmente. Faria sentido dizer "Bem, ainda está minimizando algum erro ao quadrado esperado, para que o algoritmo ainda esteja funcionando"? Você não pode fazer um algoritmo de recomendação sem fazer algumas suposições sobre os gostos dos usuários - assim como você não pode criar um algoritmo de cluster sem fazer algumas suposições sobre a natureza desses clusters.
Portanto, não aceite essas desvantagens. Conheça-os para que eles possam informar sua escolha de algoritmos. Entenda-os, para que você possa ajustar seu algoritmo e transformar seus dados para resolvê-los. E ame-os, porque se o seu modelo nunca estiver errado, isso significa que nunca estará certo.
+1 nesta resposta apaixonada. Gostei particularmente do exemplo da transformação polar, esses truques inteligentes nunca param para surpreender meu cérebro matematicamente ignorante.
+ 1, esta é uma resposta absolutamente bonita que mostra muito bem como as suposições se quebram sem se atolar nos detalhes da análise.
+1 Uma das coisas comuns que as pessoas sempre reclamam é que as coisas teóricas não funcionam na prática. Mas quando pergunto "seus dados se encaixam nas suposições do modelo?" Eu simplesmente recebo um olhar vazio de seus rostos. Sua resposta e especialmente a seção final me deixaram muito feliz.
+1 Uau, eu já estou aqui há algum tempo, mas acho que nunca vi uma resposta para receber mais de 50 votos em um dia. Esta é uma conquista verdadeiramente impressionante.
A transformação polar, a meu ver, é principalmente útil aqui como um primeiro exemplo, sem jargões, para técnicas de agrupamento de kernel - onde esse tipo de pré-transformação é como fazer com que métodos lineares de aprendizado funcionem.
Gostaria apenas de acrescentar à resposta de @ DavidRobinson que agrupar com uma variação total mínima de agrupamentos é realmente um problema de otimização combinatória , do qual k-Means é apenas uma técnica - e dada a natureza de "um tiro", "descida mais íngreme" local, um muito ruim um também. Além disso, tentar melhorar substancialmente os "ossos desencapados" k-Means, de alguma forma (mas rapidamente!), Descobrindo onde as sementes de cluster devem estar, está condenado desde o início: uma vez que as sementes impactam (drasticamente!) Os aglomerados finais, para "saber" qual é o melhor ... antes de realmente calculá-lo.
No entanto, como a maioria dos problemas de otimização, pode, no entanto, ser passível de alguma técnica de otimização séria . Um deles se encaixa muito bem na estrutura do problema (como a NFL exige!), E certamente mostra seus resultados. Eu não quero fazer nenhum anúncio aqui (seria - e com razão - contra a etiqueta); portanto, se você estiver interessado, basta ler aqui e fazer seu próprio julgamento.
Dito isto, concordo com @ttnphns que o k-Means certamente não identifica uma mistura gaussiana - as funções de custo dos dois problemas são completamente diferentes. Acontece que encontrar a melhor mistura (em termos de probabilidade do modelo dado os dados) da Mistura Gaussiana também é um problema de otimização combinatória - e para o qual existe também uma técnica de otimização séria . Mais uma vez, não há anúncios: você pode chegar a sua própria conclusão aqui - vou apenas dizer que o algoritmo discutido lá pode, de fato, identificar corretamente clusters como a última imagem no post de @RobertRobinson . Mesmo corretamente (isto é, de uma maneira matematicamente bem definida) resolve o eterno problema dos outliers, ou seja, pontos de dados que não pertencem a nenhum dos clusters porque são completamente aleatórios (notoriamente, eles descarrilam completamente o k-Means, por exemplo). Isso é feito com uma distribuição uniforme adicional competindo com os gaussianos ... e o resultado esplêndido é que, em dados uniformemente distribuídos, ele realmente informa que não há nada lá (nunca vi isso em nenhum outro lugar).
Agora, obviamente, de acordo com a NFL, e como você apontou corretamente , até mesmo as Misturas Gaussianas ótimas em todo o mundo, com identificação externa, dependem de uma suposição prévia - a saber, que os dados são, de fato, distribuídos normalmente. Felizmente, porém, graças à Lei dos Grandes Números, numerosos fenômenos naturais não cumprir com essa suposição.
AVISO LEGAL: com minhas mais profundas desculpas, escrevi os dois artigos acima e os algoritmos que eles discutem.
PS: Eu conheci Macready em uma conferência uma vez - um cara extremamente inteligente e legal!
Supõe-se que seja uma resposta para a pergunta.
— Michael Chernick 13/02/19
Na verdade, é uma resposta, Michael: k-Means PRETENDS para resolver o que é realmente um problema de otimização combinatória ... no entanto, definitivamente NÃO (não é sério de forma alguma)! Além disso, o k-Means assume (por design) distribuições esféricas, tão esfarrapadas que o fazem chorar (multiplique uma das dimensões por duas e obtenha algo completamente diferente, quaisquer que sejam suas sementes "inteligentes"!). E a questão dos discrepantes (presentes em QUALQUER dado do mundo real que eu já vi!) Simplesmente não é abordada no k-Means, mesmo que eles destruam completamente qualquer pretensão que o K-Means possa ter de agrupamentos "sérios".
@EmanuelFalkenauer, bem-vindo ao site. Estou votando (+1) na sua resposta, mas é apenas um pouco pretensiosa. Como K-mean pode fingir algo de algo, não sendo humano? Ele faz o que faz, e não faz mal, por um método simples / rápido.
@ttnphns: Obrigado pela recepção e pelo voto positivo! Bem, é claro que o k-Means não finge nada (é apenas um pedaço de código - que pena!), Mas as pessoas que o promovem o fazem - como o OP descobriu. Concordo com o fato de você apontar que é um método "simples / rápido" - mas o grande problema é que confiar em sua saída em qualquer um, exceto nos dados mais simplistas, é quase suicida: não apenas faz suposições que não são mais respeitadas da época, mas mesmo quando são, ele faz um trabalho terrível. Você simplesmente não resolve um problema combinatório com uma descida mais acentuada. ;-)
— Emanuel Falkenauer 14/02
Logicamente falando, as desvantagens do K-means são:
precisa de separabilidade linear dos clusters
precisa especificar o número de clusters
Algoritmia: O procedimento de Loyds não converge para o verdadeiro máximo global, mesmo com uma boa inicialização quando há muitos pontos ou dimensões
Mas K-means é melhor do que normalmente pensamos. Fiquei bastante entusiasmado com isso depois de testá-lo contra outros métodos de agrupamento (espectral, densidade ...) e LDA na classificação de texto na vida real de um milhão de textos: K-means tinham uma precisão muito melhor do que a LDA, por exemplo (88% vs 59%). Alguns outros métodos de agrupamento eram bons, mas o K-means estava próximo do topo ... e mais acessível em termos de complexidade.
Eu nunca li sobre um método de agrupamento universalmente melhor em uma ampla variedade de problemas. Não dizer que K-means é universalmente melhor também, apenas que não há super-herói de agrupamento universal, até onde eu sei. Muitos artigos, muitos métodos, não uma verdadeira revolução (na minha experiência pessoal limitada de testar alguns deles).
A principal razão pela qual as desvantagens lógicas dos meios K geralmente são apenas aparentes é que os pontos de agrupamento em um plano 2D são algo que você raramente faz no aprendizado de máquina. Muitas coisas da intuição geométrica que são verdadeiras em 2D, 3D ... são irrelevantes em dimensões vetoriais ou espaços vetoriais abstratos (como um conjunto de palavras, vetor de variáveis ​​...)
Separabilidade linear: você raramente precisa lidar com clusters circulares em dados da vida real. É ainda melhor supor que eles não existem nesses casos. Permitir que o seu algoritmo os busque permitiria encontrar aglomerados circulares estranhos no ruído. A suposição linear no K-significa torna-o frequentemente mais robusto.
Número de clusters: geralmente não há um número ideal verdadeiro de clusters que você deseja ver. Para a classificação do texto, por exemplo, pode haver 100 categorias, 105, 110 ... é tudo bastante subjetivo. Especificar o número de clusters torna-se equivalente a especificar uma granularidade global. Todos os métodos de cluster precisam de uma especificação de granularidade de qualquer maneira.
Mas todos os algoritmos de clustering têm essas limitações. Por exemplo, no agrupamento espectral: não é possível encontrar os verdadeiros vetores próprios, apenas aproximações.
Durante o mesmo tempo de computação, uma biblioteca LDA bastante otimizada se saiu menos bem do que nossos meios K feitos em casa (não perfeitamente otimizados). Desde então, penso um pouco diferente.
Para entender as desvantagens do K-means, gosto de pensar qual é o modelo por trás dele.
Então, o que isso nos diz sobre as desvantagens do K-means?
K-means leva a agrupamentos que parecem gaussianos multivariados.
Como a variação entre as variáveis ​​é a mesma, K-médias leva a agrupamentos que parecem esféricos.
K-significa tende a grupos de tamanhos iguais.
K-means é na verdade um algoritmo bastante restritivo. A vantagem é que, com as suposições acima, você pode executar o algoritmo rapidamente. Mas se o desempenho do cluster é sua principal preocupação, o K-means geralmente é muito restritivo em situações reais.
Não concordo plenamente. A reivindicação K-significa ser um caso particular de mistura gaussiana é muito distante. O K-means não assume um tipo específico de distribuição, como o normal (portanto, não é um terreno probabilístico). Ele assume clusters não sobrepostos (ou seja, não há "mix"). Ele assume grupos esféricos, mas é mais preciso dizer que assume polígonos convexos das células Voronoi. Talvez esteja certo dizer que o K-means não "modela" nada, não tem referência direta a um processo de geração de dados. K-significa "tende a grupos de tamanho igual [pelo número de pontos]" - não necessariamente.
@ttnphns Pode ser mostrado que o K-meio é, de facto um caso especial de GMM: en.wikipedia.org/wiki/K-means_clustering#Gaussian_Mixture_Model
It can be shown that. Por extensão suficiente, qualquer coisa pode ser "mostrada" como parentesco, além da razão.