聚类算法主要包括K均值(K-Means)聚类、凝聚聚类以及DBSCA算法。本节主要介绍DBSCA算法
DBSCAN是一种基于密度的空间聚类算法,是一种无监督的ML聚类算法。它可以替代KMeans和层次聚类等流行的聚类算法。
DBSCAN算法的工作原理:通过对特征空间内的密度进行检测,密度大的地方会认为是一个类,而密度相对小的地方它会认为是一个分界线,不需要一开始指定聚类的数量。
DBSCA算法有两个非常重要的参数:一个是eps,一个是min_samples。eps指定的是考虑划入同一坨的样本距离有多远,min_samples参数指定的是在某个数据点周围,被看成是聚类核心点的个数。
python代码实现
blobs = make_blobs(random_state=1,centers=1)
X_blobs = blobs[0]
db = DBSCAN()
clusters = db.fit_predict(X_blobs)
plt.scatter(X_blobs[:, 0], X_blobs[:, 1], c=clusters, cmap=plt.cm.cool,
s=60,edgecolor='k')
plt.xlabel("Feature 0")
plt.ylabel("Feature 1")
plt.show()
输出结果如下: