Иерархическая кластеризация |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2024-07-07 11:06 Что такое иерархическая кластеризация? Иерархическая кластеризация — популярный метод группировки объектов. Он создает группы так, чтобы объекты внутри группы были похожи друг на друга и отличались от объектов в других группах. Кластеры визуально представлены в виде иерархического дерева, называемого дендрограммой . Иерархическая кластеризация имеет несколько ключевых преимуществ:
Приложения Существует множество реальных применений иерархической кластеризации. Они включают:
Типы иерархической кластеризации Существует два основных типа иерархической кластеризации:
Между агломеративной и разделительной кластеризацией агломеративная кластеризация обычно является предпочтительным методом. В приведенном ниже примере основное внимание будет уделено алгоритмам агломеративной кластеризации, поскольку они являются наиболее популярными и простыми в реализации. Этапы иерархической кластеризации Иерархическая кластеризация использует меру расстояния/сходства для создания новых кластеров. Шаги агломеративной кластеризации можно резюмировать следующим образом:
Вычисление матрицы близости Первым шагом алгоритма является создание матрицы расстояний. Значения матрицы вычисляются путем применения функции расстояния между каждой парой объектов. Для этой операции обычно используется функция евклидова расстояния . Структура матрицы близости будет следующей для набора данных с элементы. Здесь,представляют значения расстояния междуи . Сходство между кластерами Основной вопрос в иерархической кластеризации — как вычислить расстояние между кластерами и обновить матрицу близости. Для ответа на этот вопрос используется много разных подходов. Каждый подход имеет свои преимущества и недостатки. Выбор будет зависеть от того, есть ли в наборе данных шум, является ли форма кластеров круглой или нет, а также от плотности точек данных. Численный пример поможет проиллюстрировать методы и варианты выбора. Мы будем использовать небольшой образец набора данных, содержащий всего девять двумерных точек, показанных на рисунке 1. Рисунок 1: Пример данных Предположим, у нас есть два кластера в образце набора данных, как показано на рисунке 2. Существуют разные подходы к вычислению расстояния между кластерами. Популярные методы перечислены ниже. Рисунок 2: Два кластера Минимальное (одиночное) соединение Один из способов измерения расстояния между кластерами — найти минимальное расстояние между точками в этих кластерах. То есть мы можем найти точку в первом кластере, ближайшую к точке другого кластера, и вычислить расстояние между этими точками. На рисунке 2 ближайшие точки: в одном кластере ив другом. Расстояние между этими точками и, следовательно, расстояние между кластерами находится как. Рисунок 3: Метод минимальной связи Преимущество метода Min в том, что он позволяет точно обрабатывать неэллиптические формы. Недостатком является то, что он чувствителен к шуму и выбросам. Макс (Полное) Соединение Другой способ измерения расстояния — найти максимальное расстояние между точками в двух кластерах. Мы можем найти точки в каждом кластере, которые находятся дальше всего друг от друга, и вычислить расстояние между этими точками. На рисунке 3 максимальное расстояние находится между и. Расстояние между этими двумя точками и, следовательно, расстояние между кластерами находится как. Рисунок 4: Метод максимальной связи Макс менее чувствителен к шуму и выбросам по сравнению с методом MIN. Однако MAX может разрушать большие скопления и имеет тенденцию смещаться в сторону шаровых скоплений. Центроидная связь Метод Centroid определяет расстояние между кластерами как расстояние между их центрами/центроидами. После вычисления центроида для каждого кластера расстояние между этими центроидами вычисляется с помощью функции расстояния. Рисунок 5. Метод центроидной связи. Средняя связь Метод Average определяет расстояние между кластерами как среднее попарное расстояние среди всех пар точек в кластерах. Для простоты на рисунке 6 показаны только некоторые линии, соединяющие пары точек. Рисунок 6: Метод средней связи Связь Уорда Подход Уорда анализирует дисперсию кластеров, а не напрямую измеряет расстояния, минимизируя дисперсию между кластерами. При использовании метода Уорда расстояние между двумя кластерами связано с тем, насколько увеличится значение суммы квадратов (SS) при объединении. Другими словами, метод Уорда пытается минимизировать сумму квадратов расстояний точек от центров кластеров. По сравнению с описанными выше измерениями на основе расстояния метод Уорда менее восприимчив к шуму и выбросам. Поэтому метод Уорда предпочтительнее других при кластеризации. Иерархическая кластеризация с Python В Python библиотеки Сначала мы импортируем NumPy , matplotlib и seaborn (для стилизации графика):
Далее мы определим небольшой образец набора данных:
Давайте изобразим этот набор данных в виде точечной диаграммы:
РЕЗУЛЬТАТ: Теперь мы будем использовать этот набор данных для выполнения иерархической кластеризации. Иерархическая кластеризация с использованием Scipy В библиотеке Scipy имеется Функция Чтобы нарисовать дендрограмму, мы воспользуемся функцией Сначала мы импортируем необходимые функции, а затем сможем формировать связи с помощью различных методов:
Теперь, передав
РЕЗУЛЬТАТ: Обратите внимание, что каждый метод расстояния создает разные связи для одних и тех же данных. Наконец, давайте воспользуемся функцией
Вне:
Функция Вне:
Иерархическая кластеризация с использованием Scikit-Learn В библиотеке Scikit-Learn есть собственная функция агломеративной иерархической кластеризации: Варианты расчета расстояния между кластерами включают палатный, полный, средний и одиночный . Для получения более конкретной информации вы можете найти этот класс в соответствующей документации. Использование sklearn немного отличается от scipy. Нам нужно импортировать
Вне:
Опять же, вот совпадение для каждой записи Вне:
Следующий код рисует диаграмму рассеяния, используя метки кластера.
РЕЗУЛЬТАТ: Обратите внимание, что цвет каждой точки указывает на то, как данные были сгруппированы в левую и правую области. Кластеризация реального набора данных В предыдущем разделе иерархическая кластеризация выполнялась на простом наборе данных. В следующем разделе иерархическая кластеризация будет выполняться на реальных данных для решения реальной проблемы. Здесь мы используем набор данных из книги «Биостатистика с R» , который содержит информацию о девяти различных источниках белка и их соответствующем потреблении в разных странах. Мы будем использовать эти данные, чтобы сгруппировать страны в соответствии с их потреблением белка. Сначала мы прочитаем CSV и отобразим первые несколько строк данных:
Вне:
Сначала сохраним в файле функции для кластеризации
Опять же, мы используем функцию связи для кластеризации данных:
Наконец, мы можем построить дендрограмму кластеризации 25 стран, основанную на их потреблении белка:
РЕЗУЛЬТАТ: На дендрограмме мы можем наблюдать два отдельных кластера, окрашенных в зеленый и желтый цвета. Этот результат указывает на то, что страны в каждом кластере получают белок из аналогичных источников. Используя эту
Вне:
Отсюда мы можем использовать этот результат кластеризации для улучшения других анализов, которые мы выполняем над данными. Источник: www.learndatasci.com Комментарии: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||