关于数据挖掘:R语言Kmeans聚类PAMDBSCANAGNESFDPPSO粒子群聚类分析iris数据结果可视化比较

43次阅读

共计 4033 个字符,预计需要花费 11 分钟才能阅读完成。

全文链接:http://tecdat.cn/?p=32007

原文出处:拓端数据部落公众号

本文以 iris 数据和模仿数据为例,帮忙客户了比拟 R 语言 Kmeans 聚类算法、PAM 聚类算法、DBSCAN 聚类算法、AGNES 聚类算法、FDP 聚类算法、PSO 粒子群聚类算法在 iris 数据后果可视化剖析中的优缺点。后果:聚类算法的聚类后果在直观上无显著差别,但在利用上有不同的侧重点。在 钻研中,不能仅仅依附传统的统计办法来进行聚类分析,而应该采纳多种数据挖掘伎俩相结合,综合利用各种办法的劣势,剖析不同的数据集,从中找到适宜本人钻研须要的聚类分析办法。

查看数据

head(y)

##           y 1      y 2      y 3      y 4      y 5      y 6      y 7  
## [1,] 2.386422 1.528006 2.013216 1.522790 2.530115 2.127977 2.654109  
## [2,] 1.740713 2.013977 2.322683 1.956941 1.799946 2.298104 2.146921  
## [3,] 2.072196 2.129213 2.087725 2.146289 2.213800 2.459264 2.319424  
## [4,] 2.418096 1.852121 1.668246 2.418176 2.513029 2.048056 1.996828  
## [5,] 1.485875 2.072700 1.921772 1.645422 1.655471 1.840675 2.368683  
## [6,] 2.111412 1.868223 2.022289 2.310057 1.716986 2.031257 2.069675  
##           y 8      y 9     y 10  
## [1,] 1.964454 2.050723 1.755493  
## [2,] 2.255674 1.836552 2.432906  
## [3,] 1.859537 1.527330 2.227598  
## [4,] 1.460083 2.033105 1.743962  
## [5,] 2.364364 2.123679 1.741008  
## [6,] 2.211410 2.073793 1.424886

Kmeans 算法聚类

k 均值 聚类算法 (k-means clustering algorithm)是一种迭代求解的 聚类 剖析 算法 ,其步骤是,预将数据分为 K 组,则随机选取 K 个对象作为初始的 聚类 核心,而后计算每个对象与各个种子 聚类 核心之间的间隔,把每个对象调配给间隔它最近的 聚类 核心。
聚类数为 2,将数据聚成 2 个类别

查看模型后果

  
summary(cl)

##              Length Class  Mode    
## cluster      2000   -none- numeric  
## centers        20   -none- numeric  
## totss           1   -none- numeric  
## withinss        2   -none- numeric  
## tot.withinss    1   -none- numeric  
## betweenss       1   -none- numeric  
## size            2   -none- numeric  
## iter            1   -none- numeric  
## ifault          1   -none- numeric


pch1=rep("1",1000)# 类标号
pch2=rep("2",1000)

PAM 算法聚类

pam 聚类 算法 PAM (Partitioning Around Medoids) 聚类算法属于基于质心的聚类算法, 它是 K -Medoids 算法的一种变体。

DBSCAN 算法聚类

DBSCAN(Density-Based Spatial Clustering of Applications with Noise, 具备噪声的基于密度的 聚类 办法)是一种很典型的密度聚类算法。

ds<-dbscan(y

其中彩色的 2 代表分类谬误的第 2 个类别,因而能够看到该数据集中 dbscan 的分类后果最好。

iris 数据

Iris 数据集是罕用的分类试验数据集,由 Fisher, 1936 收集整理。Iris 也称鸢尾花卉数据集,是一类多重变量剖析的数据集。数据集蕴含 150 个数据样本,分为 3 类,每类 50 个数据,每个数据蕴含 4 个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度 4 个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个品种中的哪一类。

# 查看数据  
  
head(y)

##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species  
## 1          5.1         3.5          1.4         0.2  setosa  
## 2          4.9         3.0          1.4         0.2  setosa  
## 3          4.7         3.2          1.3         0.2  setosa  
## 4          4.6         3.1          1.5         0.2  setosa  
## 5          5.0         3.6          1.4         0.2  setosa  
## 6          5.4         3.9          1.7         0.4  setosa

Kmeans 算法聚类

聚类数为 3,将数据聚成 3 个类别

plot(y[,1:2],col= (cl$cluster

DBSCAN 算法聚类

ds<-dbscan(y[,1:4]

后果比拟图

plot(y,col=cl$cluste

AGNES 算法

“算法是凝聚的档次聚类办法。AGNES 最后将每个对象作为一个簇,而后这些簇依据某些准则被一步一步地合并。例如,在簇 A 中的一个对象和簇 B 中的一个对象之间的间隔是所有属于不同簇的对象之间最小的,AB 可能被合并。

agn1 <- agnes(votes
pres <- apcluster(neg

## create two Gaussian clouds  
 ## APResult object  
##  
## Number of samples     =  150  
## Number of iterations  =  138  
## Input preference      =  -31.0249  
## Sum of similarities   =  -45.0528  
## Sum of preferences    =  -124.0996  
## Net similarity        =  -169.1524  
## Number of clusters    =  4  
##  
## Exemplars:  
##    8 64 81 103  
## Clusters:  
##    Cluster 1, exemplar 8:  
##       1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  
##       27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49  
##       50  
##    Cluster 2, exemplar 64:  
##       51 52 53 55 56 57 59 62 64 66 67 69 71 72 73 74 75 76 77 78 79 84 85

plot(apres, x)

PSO 粒子群聚类算法

“PSO 是粒子群优化算法 (——Particle Swarm Optimization) 的英文缩写, 是一种基于种群的随机优化技术, 由 Eberhart 和 Kennedy 于 1995 年提出。粒子群算法模拟昆虫、兽群、鸟群和鱼群等的群集行为, 这些群体依照一种单干的形式寻找食物, 群体中的每个成员通过学习它本身的教训和其余成员的教训来一直扭转其搜寻模式。

myPSO <- function(x, k,  w) {
  #创立随机质心


  centroid_acak <- sample(c(1:length(x[,1])), k, replace = FALSE)
  centroid <- x[centroid_acak,1:length(x)]
  
  #计算欧几里得间隔
  hitung_jarak <- function(x){
    sqrt(for(i in 1:length(x)) {euclidean <- ((x[i] - centro

FDP 聚类算法

针对密度峰值算法 FDP 在找到聚类核心后,调配其余数据时存在的破绽,提出了基于密度聚类算法 DBSCAN 的改良办法。具体做法是求出聚类核心后利用 DBSCAN 算法将其余数据调配到正确的类别中,保障了在调配其余数据时思考到数据和数据之间的关联性, 而不是间接简略的将所有数据调配到离得最近的那个核心所在的类别中。所提算法和原始 FDP 算法相比,可解决非凸数据、能失去更好的聚类后果。

fdp<-function(X,G,p=rep(FALSE){if(is.null(TstX)==TRUE) TstX<-X
  n<-nrow(TstX)
  belong<-matrix(plot(iris,col=cl


最受欢迎的见解

1. R 语言 k -Shape 算法股票价格工夫序列聚类

2. R 语言基于温度对城市档次聚类、kmean 聚类、主成分剖析和 Voronoi 图

3. R 语言对用电负荷工夫序列数据进行 K -medoids 聚类建模和 GAM 回归

4. r 语言鸢尾花 iris 数据集的档次聚类

5.Python Monte Carlo K-Means 聚类实战

6.用 R 进行网站评论文本开掘聚类

7. R 语言 KMEANS 均值聚类和档次聚类:亚洲国家地区生存幸福品质异同可视化**

8.PYTHON 用户散失数据挖掘:建设逻辑回归、XGBOOST、随机森林、决策树、反对向量机、奢侈贝叶斯模型和 KMEANS 聚类用户画像

9. R 语言基于 Keras 的小数据集深度学习图像分类

正文完
 0