2015-04-05 2 views
0

Кто-нибудь получил представление о том, как простой алгоритм K-средних может быть настроен для обработки наборов данных this form.Улучшение K Средство на некоторых наборах данных

+0

* K * -means не так просто, вам нужно реализовать функцию расстояния самостоятельно. Вы всегда можете сделать функцию расстояния, которая прекрасно сочетает такие точки. Кроме того, crossvalidated.SE, возможно, является лучшим вариантом, чем SO. –

+0

Спасибо за ответ! У меня было решение. По определению у меня есть 2 класса (красный и синий). Что делать, если я увеличиваю свой K в K-значении, скажем, до 5, а затем постепенно уменьшаю его (один за другим) при слиянии двух кластеров, которые минимизируют функцию argmin? (в этом случае функция будет увеличиваться с уменьшением K, но я буду перебирать пары и найти пару, которая увеличивает ее). Надеюсь, я поняла. –

+0

Я подумаю о функции расстояния, которая могла бы соответствовать этому примеру. Перекрестная проверка для поиска лучшей формы этой функции расстояния? –

ответ

0

Одним из возможных решений этой проблемы является добавление другого измерения в ваш набор данных, для которого существует разделение между двумя классами.

Очевидно, что это неприменимо во многих случаях, но если вы применили какое-то уменьшение размерности к вашим данным, то это может быть что-то стоящее для изучения.

0

Самый прямой способ обработки данных этой формы при использовании k - означает, что он использует ядерную версию k-средств. 2 его реализации существуют в библиотеке JSAT (см. Здесь https://github.com/EdwardRaff/JSAT/blob/67fe66db3955da9f4192bb8f7823d2aa6662fc6f/JSAT/src/jsat/clustering/kmeans/ElkanKernelKMeans.java)

Как сказал Николас, другой вариант заключается в создании нового пространства объектов, на котором вы запускаете k-средство. Однако это требует некоторого предварительного знания того, какие данные вы будете кластеризовать.

После этого вам просто нужно перейти к другому алгоритму. k-mean - простой алгоритм, который делает простые предположения о мире, и когда эти предположения слишком сильно нарушаются (не линейно разделяемые кластеры являются одним из этих предположений), тогда вам просто нужно принять это и выбрать более подходящий алгоритм.

Смежные вопросы