聚类
聚类是一类无监督学习方法,目标是在没有标签的情况下,把相似样本分到同一组。常见方法包括 K-Means、层次聚类、DBSCAN 和高斯混合模型。
概念详解
以 K-Means 为例,给定样本集合
数学公式及其推导
K-Means 的目标函数为:
其中
固定中心
固定分配
得到:
应用代码
python
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
X, _ = make_blobs(n_samples=300, centers=3, cluster_std=0.7, random_state=0)
kmeans = KMeans(n_clusters=3, n_init=10, random_state=0)
labels = kmeans.fit_predict(X)
print("簇中心:")
print(kmeans.cluster_centers_)
print("轮廓系数:", silhouette_score(X, labels))小结
K-Means 简单高效,但需要预先指定簇数,并且倾向于发现球形簇。对于任意形状簇或含噪声数据,可以考虑 DBSCAN。