DBSCAN聚类分析(基于R语言)
在上一讲中,主要是给大家介绍了,K-means聚类,层次聚类这两种聚类方法是最为典型的两种聚类方法。K-means聚类基本原理是这样的,在n个样本点中,首先提前设定要聚类几类,比如说要聚成三类,那么在n个样本点中先随机选择三个点,最为初始点,将剩下的n-3个点按照距离的原则(所谓聚类原则就是哪个点距离它近,就将这个点分配给它),分别分配到这三个点。这样的话,就初步形成三大类点了。每一大类的中心值作为新的中心点,再重新安装距离的原则进行重新分配,不断重复,直至聚类中心稳定。而层次聚类呢,首先是求得所有样本点的两两相似性。在此基础上就可以形成层次关系,最终是由我们自己确定聚为几类,比如说,我们要聚成三类,那么就沿着层次结构图横着画一条线,线下刚好三类。
在这一讲当中,我们介绍一种新的聚类方法,叫DBSCAN(Density-Based Spatial Clustering of Applications with Noise)聚类法,也是非常经典的一个算法了。是基于密度的聚类算法,首先说为什么会有这种聚类算法,而且为什么是基于密度的。基于密度有啥好处。我们首先说,为什么需要这种聚类算法。我们通过代码来说明。首先我们先产生一个待聚类的样本点,并且利用R将其画出来,如下
#载入包
library(factoextra)
librar(ggplot2)