暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

R语言Kmeans聚类、PAM、DBSCAN、AGNES、FDP、PSO粒子群聚类分析iris数据结果可视化比较

拓端数据部落 2023-03-28
463

全文链接: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算法的一种变体。


点击标题查阅往期内容


R语言APRIORI关联规则、K-MEANS均值聚类分析中药专利复方治疗用药规律网络可视化


左右滑动查看更多


01

02

03

04



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


点击文末“阅读原文”

获取全文完整代码数据资料


本文选自《R语言Kmeans聚类、PAM、DBSCAN、AGNES、FDP、PSO粒子群聚类分析iris数据结果可视化比较》。


点击标题查阅往期内容

R语言APRIORI关联规则、K-MEANS均值聚类分析中药专利复方治疗用药规律网络可视化
非线性混合效应 NLME模型对抗哮喘药物茶碱动力学研究
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
R语言用关联规则和聚类模型挖掘处方数据探索药物配伍中的规律
用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析
PYTHON在线零售数据关联规则挖掘APRIORI算法数据可视化
R语言关联规则模型(Apriori算法)挖掘杂货店的交易数据与交互可视化
R语言关联挖掘实例(购物篮分析)
python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析
基于R的FP树fp growth 关联数据挖掘技术在煤矿隐患管理
python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析
通过Python中的Apriori算法进行关联规则挖掘
Python中的Apriori关联算法-市场购物篮分析
R语言用关联规则和聚类模型挖掘处方数据探索药物配伍中的规律
在R语言中轻松创建关联网络
python主题建模可视化LDA和T-SNE交互式可视化
R语言时间序列数据指数平滑法分析交互式动态可视化
用R语言制作交互式图表和地图
如何用r语言制作交互可视化报告图表
K-means和层次聚类分析癌细胞系微阵列数据和树状图可视化比较
KMEANS均值聚类和层次聚类:亚洲国家地区生活幸福质量异同可视化分析和选择最佳聚类数
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
有限混合模型聚类FMM、广义线性回归模型GLM混合应用分析威士忌市场和研究专利申请数据
R语言多维数据层次聚类散点图矩阵、配对图、平行坐标图、树状图可视化城市宏观经济指标数据
r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化
Python Monte Carlo K-Means聚类实战研究
R语言k-Shape时间序列聚类方法对股票价格时间序列聚类
R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
R语言谱聚类、K-MEANS聚类分析非线性环状数据比较
R语言实现k-means聚类优化的分层抽样(Stratified Sampling)分析各市镇的人口
R语言聚类有效性:确定最优聚类数分析IRIS鸢尾花数据和可视化
Python、R对小说进行文本挖掘和层次聚类可视化分析案例
R语言k-means聚类、层次聚类、主成分(PCA)降维及可视化分析鸢尾花iris数据集
R语言有限混合模型(FMM,finite mixture model)EM算法聚类分析间歇泉喷发时间
R语言用温度对城市层次聚类、kmean聚类、主成分分析和Voronoi图可视化
R语言k-Shape时间序列聚类方法对股票价格时间序列聚类
R语言中的SOM(自组织映射神经网络)对NBA球员聚类分析
R语言复杂网络分析:聚类(社区检测)和可视化
R语言中的划分聚类模型
基于模型的聚类和R语言中的高斯混合模型
r语言聚类分析:k-means和层次聚类
SAS用K-Means 聚类最优k值的选取和分析
用R语言进行网站评论文本挖掘聚类
基于LDA主题模型聚类的商品评论文本挖掘
R语言鸢尾花iris数据集的层次聚类分析
R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
R语言聚类算法的应用实例



文章转载自拓端数据部落,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论