Кластеризация K-средних в R-программировании

Опубликовано: 21 Июля, 2021

Кластеризация средств K в программировании на R - это неконтролируемый нелинейный алгоритм, который объединяет данные в кластеры на основе сходства или похожих групп. Он стремится разделить наблюдения на заранее заданное количество кластеров. Сегментация данных позволяет назначить каждый обучающий пример сегменту, называемому кластером. В неконтролируемом алгоритме дается высокая степень зависимости от необработанных данных с большими затратами на ручной просмотр для проверки актуальности. Он используется в различных областях, таких как банковское дело, здравоохранение, розничная торговля, СМИ и т. Д.

Теория

Кластеризация K-средних группирует данные по схожим группам. Алгоритм следующий:

  1. Выберите количество K кластеров.
  2. Выберите произвольно K точек, центроидов (не обязательно из заданных данных).
  3. Назначьте каждую точку данных ближайшему центроиду, который формирует K кластеров.
  4. Вычислите и поместите новый центроид каждого центроида.
  5. Переназначьте каждую точку данных новому кластеру.

После окончательного переназначения назовите кластер Final cluster.

Набор данных

Iris данных ириса состоит из 50 образцов каждого из 3 видов ириса (Iris setosa, Iris virginica, Iris versicolor) и многомерного набора данных, представленного британским статистиком и биологом Рональдом Фишером в его статье 1936 года Использование множественных измерений в таксономических задачах. В каждом образце были измерены четыре характеристики, то есть длина и ширина чашелистиков и лепестков, и на основе комбинации этих четырех характеристик Фишер разработал линейную дискриминантную модель, чтобы отличить виды друг от друга.




# Loading data
data(iris)
# Structure
str (iris)

Выполнение кластеризации K-средних в наборе данных

Использование алгоритма кластеризации K-средних для набора данных, который включает 11 человек и 6 переменных или атрибутов




# Installing Packages
install.packages( "ClusterR" )
install.packages( "cluster" )
# Loading package
library(ClusterR)
library(cluster)
# Removing initial label of
# Species from original dataset
iris_1 < - iris[, - 5 ]
# Fitting K-Means clustering Model
# to training dataset
set .seed( 240 ) # Setting seed
kmeans.re < - kmeans(iris_1, centers = 3 , nstart = 20 )
kmeans.re
# Cluster identification for
# each observation
kmeans.re$cluster
# Confusion Matrix
cm < - table(iris$Species, kmeans.re$cluster)
cm
# Model Evaluation and visualization
plot(iris_1[c( "Sepal.Length" , "Sepal.Width" )])
plot(iris_1[c( "Sepal.Length" , "Sepal.Width" )],
col = kmeans.re$cluster)
plot(iris_1[c( "Sepal.Length" , "Sepal.Width" )],
col = kmeans.re$cluster,
main = "K-means with 3 clusters" )
## Plotiing cluster centers
kmeans.re$centers
kmeans.re$centers[, c( "Sepal.Length" , "Sepal.Width" )]
# cex is font size, pch is symbol
points(kmeans.re$centers[, c( "Sepal.Length" , "Sepal.Width" )],
col = 1 : 3 , pch = 8 , cex = 3 )
## Visualizing clusters
y_kmeans < - kmeans.re$cluster
clusplot(iris_1[, c( "Sepal.Length" , "Sepal.Width" )],
y_kmeans,
lines = 0 ,
shade = TRUE,
color = TRUE,
labels = 2 ,
plotchar = FALSE,
span = TRUE,
main = paste( "Cluster iris" ),
xlab = 'Sepal.Length' ,
ylab = 'Sepal.Width' )

Выход:

  • Модель kmeans_re:

    Изготовлены 3 кластера размером 50, 62 и 38 соответственно. Внутри кластера сумма квадратов составляет 88,4%.

  • Идентификация кластера:

    Модель достигла точности 100% при значении p менее 1. Это означает, что модель хороша.

  • Матрица неточностей:

    Итак, 50 сетоса правильно классифицируются как сетоса. Из 62 Versicolor 48 классифицируются как Versicolor, а 14 классифицируются как virginica. Из 36 вирджиниек 19 вирджиники правильно классифицируются как вирджиника, а 2 - как разноцветные.

  • График K-средних с 3 кластерами:

    Модель показывала 3 кластерных графика трех разных цветов, с длиной сепала и шириной сепала.

  • Построение центров кластеров:

    На графике центры кластеров отмечены крестиками того же цвета, что и кластер.

  • Участок кластеров:

Итак, образуются 3 кластера с различной длиной и шириной чашелистиков. Следовательно, алгоритм кластеризации K-средних широко используется в отрасли.