当前位置:Gxlcms > 数据库问题 > 基于密度聚类的DBSCAN算法

基于密度聚类的DBSCAN算法

时间:2021-07-01 10:21:17 帮助过:3人阅读

,pi,length.out=100) y1 <- sin(x1) + 0.1*rnorm(100) x2 <- 1.5+ seq(0,pi,length.out=100) y2 <- cos(x2) + 0.1*rnorm(100) data <- data.frame(c(x1,x2),c(y1,y2)) names(data) <- c(x,y) qplot(data$x, data$y)

 

技术分享

 

用密度聚类DBSCAN方法,可以看到聚类效果如下:

library(ggplot2)
p <- ggplot(data,aes(x,y))
library(fpc)
model2 <- dbscan(data,eps=0.6,MinPts=4)
p + geom_point(size=2.5, aes(colour=factor(model2$cluster)))+theme(legend.position=top)

技术分享

同样,请读者看下k-means的聚类效果。

# 用K均值聚类
model1 <- kmeans(data,centers=2,nstart=10)
library(ggplot2)
p <- ggplot(data,aes(x,y))
p + geom_point(size=2.5,aes(colour=factor(model1$cluster)))+theme(legend.position=top)

技术分享

 所以,不同的数据集和场景,需要运用不同的聚类算法。

 

下面介绍该算法的工作原理。

 

技术分享

人气教程排行