Вступ до ієрархічної кластеризації в 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.Lggth, 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. Вкажіть, які алгоритми ієрархічної кластеризації використовуються
У Р. доступні різні типи алгоритмів ієрархічної кластеризації, як агломераційна ієрархічна кластеризація та роздільна ієрархічна кластеризація. Потрібні функції -
- Агломераційна ієрархічна кластеризація (HC): функція hclust, яка доступна в пакеті статистики, і функція Агнеса, яка доступна в пакеті кластерів) для
- Роздільна ієрархічна кластеризація: Діана функція, яка доступна в пакеті кластерів.
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