library(tidyverse)
library(magrittr)
library(ggforce)
library(patchwork)
library(tidymodels)
library(tidyclust)
tidymodels_prefer()Основы моделирования
1 Установим библиотеки
2 Для работы будем использовать датасет iris
3 Заметно, что виды ирисов хорошо кластеризуются
4 Обучение модели k_means
iris_rec <-
1 recipe(~ Petal.Length + Petal.Width, data = iris) |>
2 step_normalize(all_predictors())
3kmeans_spec <- k_means(num_clusters = 3) |>
set_engine("stats")
iris_wf <- workflow() |>
add_recipe(iris_rec) |>
add_model(kmeans_spec)
4kmeans_fit <- iris_wf |>
fit(data = iris)- 1
-
Используем только признаки
Petal.LengthиPetal.Widthдля эффективной кластеризации - 2
- Нормализуем выбранные признаки
- 3
- Задаём модель k-средних с 3 кластерами (три вида ирисов)
- 4
-
Обучаем модель k-средних на подготовленных данных
iris
5 Эффективность модели k_means
K-means clustering with 3 clusters of sizes 50, 52, 48
Cluster means:
Petal.Length Petal.Width
3 -1.3006301 -1.2507035
1 0.3048515 0.1648655
2 1.0245672 1.1242119
Clustering vector:
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[38] 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2
[75] 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 2 3 3 3 3
[112] 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3
[149] 3 3
Within cluster sum of squares by cluster:
[1] 1.410870 7.202739 9.293174
(between_SS / total_SS = 94.0 %)
Available components:
[1] "cluster" "centers" "totss" "withinss" "tot.withinss"
[6] "betweenss" "size" "iter" "ifault"
5.1 Данные хорошо разделены на 3 кластера
5.2 Таблица сопряжённости сортов и кластеров ирисов
Cluster_1 Cluster_2 Cluster_3
setosa 50 0 0
versicolor 0 48 2
virginica 0 4 46
6 Итоги
6.1 Что изучаем?
Данные о 150 экземплярах ириса, по 50 экземпляров из трёх видов — ирис щетинистый (Iris setosa), ирис виргинский (Iris virginica) и ирис разноцветный (Iris versicolor). Для каждого экземпляра измерялись четыре характеристики (в сантиметрах): длина чашелистика, ширина чашелистика, длина лепестка и ширина лепестка
6.2 Зачем?
Закрепление навыков работы с библиотеками tidymodels и tidyclust. Выполнение задания дает возможность научиться работать с моделью кластеризации k-means, интерпретировать её результаты и делать выводы на основе них.
6.3 Какие выводы?
Для эффективной кластеризации достаточно использовать признаки
Petal.LengthиPetal.WidthSetosaлегко отделяется от остальных видов ирисовКластеры хорошо разделены относительно общего разброса данных
between_SS / total_SS = 94%