Como não tenho experiência no setor de mineração de dados ou big data, gostaria de ouvi-lo compartilhar alguma experiência.
As pessoas realmente executam k-means, PAM, CLARA etc. em um conjunto de dados realmente grande? Ou eles apenas escolhem aleatoriamente uma amostra? Se eles coletassem apenas uma amostra do conjunto de dados, o resultado seria confiável se o conjunto de dados não fosse normalmente distribuído?
Em situações práticas ao executar esses algoritmos, podemos dizer quantas iterações seriam necessárias normalmente até ocorrer a convergência? Ou o número de iterações sempre aumenta com o tamanho dos dados?
Estou perguntando isso porque estou pensando em desenvolver uma abordagem para finalizar os algoritmos iterativos antes da convergência, e ainda assim os resultados ainda são aceitáveis. Acho que vale a pena tentar se o número de iterações for, digamos, mais de 1.000, para que possamos economizar algum tempo e custo computacional. O que você acha?
number of iterations always grow with the data size
Não necessariamente.Respostas:
K-significa é barato. Você pode executá-lo para muitas iterações.
Existem algoritmos ruins (o padrão) e bons. Para bons algoritmos, as iterações posteriores custam muito menos que 1% da primeira iteração.
Existem implementações realmente lentas. Não os use.
K-significa em dados "grandes" não existe. Porque ele funciona apenas em dados vetoriais de baixa dimensão. Você não excederá a memória de um servidor moderno com esses dados. sim, existem dados maiores - mas você não pode usar o k-means em, digamos, um mês de dados do Twitter, porque não fornecerá nada útil.
Com uma boa implementação, em um servidor moderno, o maior conjunto de dados que você pode encontrar onde k-means ainda oferece um resultado útil provavelmente precisa de menos de 1 minuto para calcular até a convergência. Então, por que se preocupar em pensar em um limite de iteração?
fonte