聚类分析:从K-means到高斯混合模型的探索
1. 确定最优簇数的探索
在进行聚类分析时,确定最优的簇数是一个关键问题。起初,面对类似指数累积分布函数的图形,方差解释看似平滑且随簇数增加而上升,这使得确定“肘部”点变得困难。经过仔细观察,发现从 k = 9 开始梯度趋于平缓,这与肘部法的观察结果相似。
为了更准确地确定最优簇数,还尝试了其他方法。贝叶斯信息准则(BIC)得分是一种从有限模型集中选择最佳模型的技术,得分最低的模型被认为是最优的。在训练模型时,增加额外参数可能会提高获得准确簇的可能性,但会导致模型过拟合。BIC 通过在模型参数数量上添加惩罚项来克服这个问题。然而,BIC 适用于低维数据,而当前数据经过矩阵变换后成为高维数据,因此 BIC 不太适用。
接着,找到了轮廓系数法。轮廓系数用于衡量簇内观测值的紧密程度(簇内距离 a)以及簇之间的区分度(平均最近簇距离 b),其计算公式为:(b - a) / max(a, b)。最佳值为 1,最差值为 -1,系数值为 0 表示簇之间存在重叠。
以下是使用轮廓系数法在 2 到 30 的簇大小范围内对 k-means 模型进行评估的代码:
s = []
for n_clusters in range(2,30):
kmeans = KMeans(n_clusters=n_clusters)
kmeans.fit(X)
labels = kmeans.labels_
centroids = kmeans.cluster_centers_
s.append(silhouette_score(X,
超级会员免费看
订阅专栏 解锁全文
403

被折叠的 条评论
为什么被折叠?



