При неконтролируемом обучении мы передаем немаркированный набор данных алгоритму и позволяем ему автоматически обнаруживать взаимосвязь между данными.Алгоритм кластеризации(Clustering algorithm)Это неконтролируемый алгоритм обучения. Он автоматически классифицирует немаркированный набор данных, как показано ниже:
Он разделит этот набор данных на две категории, каждый зеленый кружок — это категория.
Среди алгоритмов кластеризации наиболее распространенным являетсяАлгоритм К-средних (K-means algorithm), давайте сначала посмотрим, как алгоритм работает в следующем наборе данных.
Если набор данных разделен на две категории, первым шагом является случайный выбор двух точек в качествецентр кластера(Обычно это не выбор. Для более удобного понимания сначала выберите это, а как правильно выбрать я расскажу позже):
Для каждой точки выборки ближайший к ней центр кластера будет окрашен соответствующим цветом и отнесен к той же категории:
Затем каждый класс вычисляет ближайшее местоположение к этим наборам данных и перемещает центр кластера в это место:
Затем покрасьте:
Снова двигайся, снова крась, снова двигайся, снова крась, снова двигайся. . . (Какова природа человека) циклически повторяется до тех пор, пока центр кластера не перестанет двигаться:
Теперь мы успешно разделили два разных набора данных.
оглянуться назад сноваАлгоритм К-средних (K-means algorithm): необходимо передать два параметра, что требуетколичество кластеров KиОбучающий набор.
Вначале центры кластеров инициализируются случайным образом в соответствии с количеством K входящих кластеров, а затем непрерывно повторяются два цикла внутри цикла:
Красная часть указывает на то, что каждая точка выборки выбирает ближайший центр кластера для окрашивания соответствующим цветом, то есть присвоение кластера, Мы делим каждую точку выборки на центр кластера, которому она принадлежит. Фактически, это минимизация этой функции стоимости:
Синяя часть означает, что центр кластера постоянно перемещается, чтобы минимизировать расстояние до точки выборки того же цвета.
Наконец, давайте добавим, как инициализировать центр кластера. Как упоминалось ранее, этот метод инициализации случайного положения не рекомендуется.Правильная операция состоит в том, чтобы случайным образом выбрать положение точки выборки в качестве центра кластера.Чтобы избежать попадания в локальное оптимальное решение, мы должны выбрать несколько раз и выберите стоимость Тот, у которого наименьшая функция, - это наш выбор, который позволит достичь оптимального эффекта.
ps. Эта статья представляет собой учебную заметку, основанную на курсе Эндрю Нг по машинному обучению. Если вы хотите вместе изучать машинное обучение, вы можете подписаться на публичный аккаунт WeChat "SuperFeng", жду встречи с тобой.