Мне нужно было написать алгоритм k-средних bisecting, но я не понял алгоритм. Я знаю алгоритм k-mean.
Можете ли вы объяснить алгоритм, но не в академическом языке
Спасибо.
Мне нужно было написать алгоритм k-средних bisecting, но я не понял алгоритм. Я знаю алгоритм k-mean.
Можете ли вы объяснить алгоритм, но не в академическом языке
Спасибо.
Идея состоит в итеративном разбиении облака точек на 2 части. Другими словами, вы создаете случайное двоичное дерево, где каждое разбиение (a node с двумя дочерними элементами) соответствует разбиению точек вашего облака на 2.
Вы начинаете с облака точек.
Вычислить его центроид (барицентр) w
Выберите точку в случайном порядке cL среди точек облака
Построить точку cR как симметричную точку cL по сравнению с w (отрезок cL- > w такой же, как w- > cR)
Отделите точки вашего облака на два, самые близкие к cR принадлежат подклассам R, а те, которые ближе всего к cL, относятся к подклассу L
Повторите для подкладок R и L
Примечания:
Вы можете отбросить случайные точки после их использования. Тем не менее, удерживайте центроиды всех субпоследовательностей.
Остановите, когда ваши подглавы содержат ровно одну точку.
Если вы хотите k кластеров, просто возьмите k centroids, чтобы они содержали все точки начального облака. Вы можете делать гораздо более сложные вещи, если хотите (минимизируя дисперсию облаков и т.д.). Предположим, вы хотите, чтобы 4 кластера (сила для удобства для удобства). Тогда вам нужно всего лишь разрезать вам облако на две части, а затем разрезать каждый подглавы в два. Если вы хотите 8 кластеров, то снова разрезайте эти подглавы один раз в два. И снова для 16 кластеров.
Если вы хотите, чтобы кластеры K с K не имели силы 2 (скажем, 24), тогда посмотрите на ближайшую низшую мощность двух. Это 16. Вам все еще не хватает 8 кластеров. Каждый "уровень-16-кластер" является центроидом "уровня-16-подкласса". То, что вы сделаете, это взять 8 "кластеров уровня-16" (случайным образом, например) и заменить их каждый двумя "дочерними" "32-кластерами уровня". (Эти два дочерних "уровня-32-кластера" соответствуют двум "уровням 32-подкласса", которые составляют до родительского уровня 16-подкласса)