R语言中的划分聚类模型

作者: 拓端tecdat | 来源:发表于2020-04-07 11:27 被阅读0次

原文链接:http://tecdat.cn/?p=6443

划分聚类是用于基于数据集的相似性将数据集分类为多个组的聚类方法。

分区聚类,包括:

K均值聚类(MacQueen 1967),其中每个聚类由属于聚类的数据点的中心或平均值表示。K-means方法对异常数据点和异常值敏感。

K-medoids聚类PAMPartitioning AroundMedoids,Kaufman和Rousseeuw,1990),其中,每个聚类由聚类中的一个对象表示。与k-means相比,PAM对异常值不太敏感。

CLARA算法Clustering Large Applications),它是适用于大型数据集的PAM的扩展。

对于这些方法中的每一种,我们提供:

基本思想和关键数学概念

R软件中的聚类算法和实现

R用于聚类分析和可视化的示例

数据准备:

<- USArrests\n# Remove any missing value (i.e, NA values for not available)\nmy_data <- na.omit(my_data)\n# Scale variables\nmy_data <- scale(my_data)\n# View the firt 3 rows\nhead(my_data, n = 3)","classes":{"has":1},"lang":""}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet">my_data <- USArrests # Remove any missing value (i.e, NA values for not available) my_data <- na.omit(my_data) # Scale variables my_data <- scale(my_data) # View the firt 3 rows head(my_data, n = 3)

need-to-insert-img

## Murder Assault UrbanPop Rape ## Alabama 1.2426 0.783 -0.521 -0.00342 ## Alaska 0.5079 1.107 -1.212 2.48420 ## Arizona 0.0716 1.479 0.999 1.04288

确定k-means聚类的最佳聚类数:

fviz_nbclust(my_data, kmeans, method = "gap_stat")

need-to-insert-img

## Clustering k = 1,2,..., K.max (= 10): .. done ## Bootstrapping, b = 1,2,..., B (= 100) [one "." per sample]: ## .................................................. 50 ## .................................................. 100

need-to-insert-img

计算和可视化k均值聚类:

fviz_cluster(km.res, data = my_data, ellipse.type = "convex", palette = "jco", repel = TRUE, ggtheme = theme_minimal())

need-to-insert-img

need-to-insert-img

同样,可以如下计算和可视化PAM聚类:

<- pam(my_data, 4)\n# Visualize\nfviz_cluster(pam.res)","classes":{"has":1},"lang":""}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet">pam.res <- pam(my_data, 4) # Visualize fviz_cluster(pam.res)

need-to-insert-img

相关文章

网友评论

    本文标题:R语言中的划分聚类模型

    本文链接:https://www.haomeiwen.com/subject/sawiphtx.html