Je n'ai pas d'expérience dans l'industrie de l'exploration de données ou des mégadonnées, donc j'aimerais vous entendre partager votre expérience.
Les gens exécutent-ils réellement k-means, PAM, CLARA, etc. sur un très grand ensemble de données? Ou bien ils en choisissent simplement un échantillon au hasard? S'ils ne prennent qu'un échantillon de l'ensemble de données, le résultat serait-il fiable si l'ensemble de données n'est pas normalement distribué?
Dans des situations pratiques lors de l'exécution de ces algorithmes, pouvons-nous dire combien d'itérations cela prendrait normalement jusqu'à ce que la convergence se produise? Ou le nombre d'itérations augmente toujours avec la taille des données?
Je pose cette question car je pense à développer une approche pour terminer les algorithmes itératifs avant la convergence, et pourtant les résultats sont toujours acceptables. Je pense que cela vaut la peine d'essayer si le nombre d'itérations est, disons, supérieur à 1 000, afin que nous puissions économiser du temps et des coûts de calcul. Qu'est-ce que tu penses?
number of iterations always grow with the data size
Pas nécessairement.Réponses:
K-means est bon marché. Vous pouvez vous permettre de l'exécuter pour de nombreuses itérations.
Il y a de mauvais algorithmes (le standard) et de bons algorithmes. Pour de bons algorithmes, les itérations ultérieures coûtent souvent beaucoup moins de 1% de la première itération.
Les implémentations sont vraiment lentes. Ne les utilisez pas.
K-means sur les "big" data n'existe pas. Parce que cela ne fonctionne que sur des données vectorielles de faible dimension. Vous ne dépasserez pas la mémoire d'un serveur moderne avec de telles données. oui, des données plus importantes existent - mais vous ne pouvez pas utiliser k-means sur un mois de données Twitter, par exemple, car cela ne vous donnera rien d'utile.
Avec une bonne implémentation, sur un serveur moderne, le plus grand ensemble de données que vous pouvez trouver où k-means donne toujours un résultat utile a probablement besoin de moins d'une minute pour calculer jusqu'à la convergence. Alors pourquoi s'embêter à penser à une limite d'itération?
la source