Метод Elbow использует только статистику, уже вычисленную с помощью k-средних, поэтому он даже не обращается к данным. Тем не менее, он даже не очень хорошо определен и работает исключительно плохо, за исключением 2d игрушечных данных, используемых в классе. Так что я бы не рекомендовал это. По крайней мере, используйте WSS / (k + 1) вместо или лучше VRC.
Скорее всего, k-means не работает с вашими данными. Будьте готовы признать, что, возможно, ни один из результатов не является хорошим, потому что ваши данные не удовлетворяют требованиям k-средних (например, все атрибуты имеют одинаковую важность и масштаб, являются линейными и не сильно искажены, и все кластеры имеют одинаковое расширение). В частности, последний - аналогичное расширение кластеров - действует только тогда, когда ваши данные фактически генерируются k чистыми сигналами и шумом iid. Если ваши данные поступают от пользователей, скорее всего, они не будут работать. В таких случаях приведенная выше эвристика также не сильно поможет при выборе k ...
Теперь для решения проблемы масштабируемости: просто используйте подвыборку .
K-среднихусреднение, и поэтому большинство показателей качества. Для средних значений субсэмплинг даст вам результаты, очень похожие на весь набор данных. Так что просто подберите 10k или даже 1k ваших очков и используйте только этот набор для оценки (или даже для кластеризации). Если сомневаетесь, оцените несколько раз с разными подвыборками.