Введение в иерархическую кластеризацию в R
Иерархическая кластеризация в R является наиболее распространенной формой обучения. Кластеризация - это один из алгоритмов машинного обучения, который делает выводы из немаркированных данных.
Существует в основном два типа алгоритма машинного обучения:
- Алгоритмы обучения под наблюдением
- Необучаемые алгоритмы обучения
Алгоритмы контролируемого обучения - это категория алгоритма машинного обучения, в которой машина обучается на основе помеченных данных. Примером контролируемых алгоритмов обучения является классификация и регрессия. Алгоритмы неконтролируемого обучения - это категория алгоритма машинного обучения, в котором машина обучается на основе немеченых данных. Примером неконтролируемых алгоритмов обучения являются алгоритмы кластеризации.
Как работает кластеризация?
Алгоритмы кластеризации группируют набор похожих точек данных в кластеры. Основная цель алгоритма кластеризации - создать кластеры точек данных, которые похожи по своим характеристикам. Другими словами, точки данных в кластере схожи, а точки данных в одном кластере отличаются от точек данных в другом кластере.
В алгоритме иерархической кластеризации в основном используются два подхода, как показано ниже:
1. Агломерационный
Он начинается с каждого наблюдения в одном кластере и, основываясь на показателе сходства в наблюдении, далее объединяет кластеры в один кластер, пока дальнейшее объединение невозможно, этот подход называется агломерационным подходом.
2. Разделяющий
Он начинается со всех наблюдений в одном кластере и дальнейших расщеплений, основанных на показателе сходства или разряде кластера, пока разделение невозможно, этот подход называется методом разделения.
Теперь давайте начнем алгоритмы иерархической кластеризации. Иерархическая кластеризация может выполняться сверху вниз или снизу вверх. Мы начинаем с восходящего или агломерационного подхода, где мы начинаем создавать один кластер для каждой точки данных, а затем объединяем кластеры на основе некоторой меры сходства в точках данных. Следующим важным моментом является то, как мы можем измерить сходство. Существует множество дистанционных матриц, таких как евклидова, жаккардовская, манхэттенская, канберрская, минковская и т. Д., Чтобы найти меру различия. Выбор матрицы расстояний зависит от типа доступного набора данных, например, если набор данных содержит непрерывные числовые значения, тогда хорошим выбором является евклидова матрица расстояний, тогда как, если набор данных содержит двоичные данные, хорошим выбором является Жаккард матрица расстояний и тд.
Внедрение иерархической кластеризации в R
Шаги, необходимые для реализации иерархической кластеризации в R:
1. Установите все необходимые пакеты R
Мы собираемся использовать следующие пакеты, поэтому установите все эти пакеты перед использованием:
install.packages ( "cluster" ) # for clustering algorithms
install.packages ( "tidyverse" ) # for data manipulation
install.packages ( "factoextra" ) # for clustering visualization
# includes package in R as –
library ( "cluster" )
library( "tidyverse" )
library( "factoextra" )
2. Подготовка данных
Подготовка данных для иерархического кластерного анализа, этот шаг очень прост и важен, нам нужно в основном выполнить две задачи: масштабирование и оценку отсутствующего значения. Данные должны быть масштабированы или стандартизированы или нормализованы, чтобы сделать переменные сопоставимыми. Масштабированное, стандартизированное или нормализованное представляет собой процесс преобразования переменных таким образом, чтобы они имели стандартное отклонение, равное единице, и среднее значение, равное нулю.
Если в нашем наборе данных присутствует какое-либо пропущенное значение, то очень важно вменять пропущенное значение или удалять саму точку данных. Существуют различные варианты расчета недостающего значения, такие как среднее, среднее и медианное значение для оценки отсутствующего значения. Например, мы используем здесь встроенный набор данных радужной оболочки, в котором мы хотим кластеризовать растения типа радужной оболочки, набор данных радужной оболочки содержит 3 класса для каждого экземпляра класса 50. Он содержит 5 функций, как Sepal. Длина, сепал. Ширина, лепесток. Длина, лепесток. Ширина и вид.
Код R:
data <- iris
print(data)
# the sample of data set showing below which contain 1 sample for each class
«Sepal.Length» «Sepal.Width» «Petal.Length» «Petal.Width» «Виды»
1 4, 9 3, 5 1, 3 0, 2 сетоса
51 7, 0 3, 1 4, 5 1, 3 Versicolor
101 6, 3 3, 2 6, 0 1, 9 Вирджиния
data <- na.omit(data) # remove missing value
data <- scale(df) # scaling the variables or features
3. Укажите, какие алгоритмы иерархической кластеризации используют
Различные типы алгоритмов иерархической кластеризации, такие как агломерационная иерархическая кластеризация и дивизионная иерархическая кластеризация, доступны в R. Необходимые функции:
- Агломеративная иерархическая кластеризация (HC): функция hclust, которая доступна в пакете статистики, и функция Agnes, которая доступна в пакете кластера) для
- Разделительная иерархическая кластеризация: функция Дианы, которая доступна в кластерном пакете.
4. Вычисление иерархической кластеризации
Чтобы вычислить иерархическую кластеризацию, необходимо рассчитать матрицу расстояний и поместить точку данных в правильный кластер. Существуют разные способы вычисления расстояния между кластерами, как показано ниже:
Полная связь: Максимальное расстояние рассчитывается между кластерами до слияния.
Одиночная связь: минимальное расстояние вычисляется между кластерами перед объединением.
Средняя связь: вычисляет среднее расстояние между кластерами до слияния.
Код R:
cluster <- hclust(data, method = "average" )
Центроидная связь: расстояние между двумя центроидами кластеров вычисляется до слияния.
Код R:
# matrix of Dissimilarity
dis_mat <- dist(data, method = "euclidean")
# Hierarchical clustering using Complete Linkage
cluster <- hclust(data, method = "complete" )
# or Compute with agnes
cluster <- agnes(data, method = "complete")
5. Дендрограммы
Дендрограмма используется для управления количеством полученных кластеров. Он выполняет то же, что и в k-средних, k выполняет для контроля количества кластеров. Текущая функция, которую мы можем использовать, чтобы вырезать дендрограмму.
Код R:
cutree(as.hclust(cluster), k = 3)
Полный код R:
ibrary(scatterplot3d)
data <- iris
print( data )
data <- na.omit(data)
data <- scale(data)
# matrix of Dissimilarity
dis_mat <- dist(data, method = "euclidean")
# creating hierarchical clustering with Complete Linkage
cluster <- hclust(data, method = "complete" )
# Dendrogram plot
plot(cluster)
# or agnes can be used to compute hierarchical clustering
Cluster2 <- agnes(data, method = "complete")
# Dendrogram plot
plot(cluster2)
Сюжет приведенного выше R кода:
Вывод
Существуют в основном два типа алгоритмов машинного обучения, алгоритмы обучения с контролем и алгоритмы обучения без контроля. Алгоритмы кластеризации являются примером неконтролируемых алгоритмов обучения. Алгоритмы кластеризации группируют набор похожих точек данных в кластеры. В алгоритме иерархической кластеризации в основном используются два подхода, как указано ниже для агломерационной иерархической кластеризации и дивизионной иерархической кластеризации.
Рекомендуемые статьи
Это руководство по иерархической кластеризации в R. Здесь мы обсудим, как работает кластеризация и как реализовать иерархическую кластеризацию в R. Вы также можете просмотреть другие наши статьи, чтобы узнать больше-
- Алгоритм кластеризации
- Что такое кластеризация в интеллектуальном анализе данных?
- Методы кластеризации
- Методы машинного обучения
- Обзор иерархического кластерного анализа
- Список пакетов R