Въведение в йерархичното клъстериране в 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. Дължина, Sepal.Width, Petal.Length, Petal.Width и видове.
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 Универсален
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, която е налична в пакет от клъстери) за
- Разделящо йерархично клъстериране: функция Diana, която се предлага в пакет от клъстери.
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. Можете също да разгледате и другите ни свързани статии, за да научите повече-
- Алгоритъм на клъстеризация
- Какво е клъстеризиране в Data Mining?
- Методи на клъстериране
- Методи за машинно обучение
- Преглед на йерархичния анализ на клъстеринга
- Списък на R пакети