凝聚
# 產生資料集
x<-c(rnorm(200,30,1),rnorm(200,10,1.5),rnorm(100,5,0.5))
y<-c(rnorm(200,30,1),rnorm(200,10,1.5),rnorm(100,5,0.5))
data<-data.frame(x,y)
# 彩色空間
library(colorspace)
# 顯示資料集的結構
str(data)
# 系統聚類
# 聚類的一些必要的函式
library(cluster)
library(rattle)
#系統聚類函式在包amap中
require(amap, quietly=true)
#聚類結果有包fpc提供
require(fpc, quietly=true)
#繪圖 需cba包
require(cba, quietly=true)
#method曼哈頓距離,ward離差平方和
chcluster <- hclusterpar(na.omit(data[,c(1:2)]), method="manhattan", link="ward", nbproc=2)
chcluster
# 聚類中心
centers.hclust(na.omit(data[,c(1:2)]), chcluster, 3)
#產生樹形圖 用矩形顯示聚類結果
par(bg="grey")
plot(chcluster, main="", sub="", xlab="", labels=false, hang=0)
rect.hclust(chcluster, k=3)
#加標題
title(main="hcluster_dendrogram_data", sub=paste("r", format(sys.time(), "%y-%b-%d %h:%m:%s"), sys.info()["user"]))
#類與類之間的相關性
par(bg="yellow")
plotcluster(na.omit(data[,c(1:2)]), cutree(chcluster, 3))
title(main="discriminant coordinates data", sub=paste("r", format(sys.time(), "%y-%b-%d %h:%m:%s"), sys.info()["user"]))
#資料集的聚類效果圖
plot(data[,c(1:2)], col=cutree(chcluster, 3))
title(main="", sub=paste("r", format(sys.time(), "%y-%b-%d %h:%m:%s"), sys.info()["user"]))
#驗證聚類結果的基本統計資訊
cluster.stats(dist(na.omit(data[,c(1:2)])), cutree(chcluster, 3))
#輸出結果
result<-cbind(data,cutree(chcluster,3))
write.csv(result,"cengciresult.csv")
基於層次的聚類 AGNES演算法使用(R語言)
凝聚 plain view plain copy 產生資料集 xy data 彩色空間 library colorspace 顯示資料集的結構 str data 系統聚類 聚類的一些必要的函式 library cluster library rattle 系統聚類函式在包amap中 require ...
聚類演算法 層次聚類演算法
層次聚類演算法 hierarchical clustering method 又稱為系統聚類法 分級聚類法。層次聚類演算法又分為兩種形式 凝聚層次聚類 首先將每個物件作為乙個簇,然後合併這些原子簇為越來越大的簇,直到某個終結條件被滿足。層次聚類 首先將所有物件置於乙個簇中,然後逐漸細分為越來越小的簇...
聚類之層次聚類 基於劃分的聚類(
目錄 一層次聚類 層次聚類的原理及分類 層次聚類的流程 層次聚類的優缺點 二劃分聚類法k means kmeans演算法的原理 k均值的優缺點及分類 k means與dbscan的區別 k means注意問題 三基於密度的聚類 dbscan的概念 簇的生成原理及過程 根據資料點的密度分為三類點 db...