实验报告 聚类分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告聚类分析
实验原理:K均值聚类、中心点聚类、系统聚类和EM算法聚类分析技术。
实验题目:用鸢尾花的数据集,进行聚类挖掘分析。
实验要求:探索鸢尾花数据的基本特征,利用不同的聚类挖掘方法,获得基本结论并简明解释。
实验题目--分析报告:data(iris)
> rm(list=ls())
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 431730 23.1 929718 49.7 607591 32.5
Vcells 787605 6.1 8388608 64.0 1592403 12.2
> data(iris)
> data<-iris
> head(data)
Sepal.Length Sepal.Width Petal.Length Petal.Width Specie s
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
#Kmean聚类分析
> newiris <- iris
> newiris$Species <- NULL
> (kc <- kmeans(newiris, 3))
K-means clustering with 3 clusters of sizes 62, 50, 38
Cluster means:
Sepal.Length Sepal.Width Petal.Length Petal.Width
1 5.901613 2.748387 4.393548 1.433871
2 5.006000 3.428000 1.462000 0.246000
3 6.850000 3.07368
4 5.74210
5 2.071053
Clustering vector:
[1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2
[41] 2 2 2 2 2 2 2 2 2 2 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1
[81] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 3 3 3 3 1 3 3 3 3 3 3 1 1 3 3 3 3 1
[121] 3 1 3 1 3 3 1 1 3 3 3 3 3 1 3 3 3 3 1 3 3 3 1 3 3 3 1 3 3 1
Within cluster sum of squares by cluster:
[1] 39.82097 15.15100 23.87947
(between_SS / total_SS = 88.4 %)
Available components:
[1] "cluster" "centers" "totss" "withinss" "tot.withinss"
[6] "betweenss" "size" "iter" "ifault"
> table(iris$Species, kc$cluster)
1 2 3
setosa 0 50 0
versicolor 48 0 2
virginica 14 0 36
> plot(newiris[c("Sepal.Length", "Sepal.Width")], col = kc $cluster)
> points(kc$centers[,c("Sepal.Length", "Sepal.Width")], c ol = 1:3, pch = 8, cex=2)
#K-Mediods 进行聚类分析
> install.packages("cluster")
> library(cluster)
> iris.pam<-pam(iris,3)
> table(iris$Species,iris.pam$clustering) 1 2 3
setosa 50 0 0
versicolor 0 3 47
virginica 0 49 1
> layout(matrix(c(1,2),1,2))
> plot(iris.pam)
> layout(matrix(1))
#hc
> iris.hc <- hclust( dist(iris[,1:4]))
> plot( iris.hc, hang = -1)
> plclust( iris.hc, labels = FALSE, hang = -1)
> re <- rect.hclust(iris.hc, k = 3)
> iris.id <- cutree(iris.hc, 3)
#利用剪枝函数cutree()参数h控制输出height=18时的系谱类别
> sapply(unique(iris.id),
+ function(g)iris$Species[iris.id==g])
[[1]]
[1] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa [12] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa [23] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa [34] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa [45] setosa setosa setosa setosa setosa setosa
Levels: setosa versicolor virginica
[[2]]
[1] versicolor versicolor versicolor versicolor versicolor versicolor versicolor [8] versicolor versicolor versicolor versicolor versicolor versicolor versicolor [15] versicolor versicolor versicolor versicolor versicolor versicolor versicolor [22] versicolor versicolor virginica virginica virginica virginica virginica [29] virginica virginica virginica virginica virginica virginica virginica