聚类分析:从K-means到层次聚类的深入探索
1. 聚类性能评估:轮廓系数
在无监督学习中,评估模型性能比监督学习更具挑战性,因为通常没有明确的“最佳”解决方案。在监督学习里,有许多可靠的性能指标,比如将模型预测标签与实际标签对比的准确率。但对于聚类,我们没有标签可依赖,需要评估聚类的“差异”程度,这时就可以使用轮廓系数(Silhouette Score)。
轮廓系数的取值范围是 -1 到 1。如果聚类的平均轮廓系数为 1,意味着聚类效果完美,各点归属明确。不过,达到 1 的情况非常罕见,所以轮廓系数可视为尽力优化聚类效果的参考。其计算通过简化轮廓指数(SSI)实现,公式中涉及点到自身簇质心的距离以及到最近簇质心的距离,前者体现簇的内聚性,后者反映簇间的分离程度。在 scikit-learn 中,可以使用 silhouette_score 函数方便地计算轮廓系数。
2. 计算轮廓系数的练习
下面以鸢尾花数据集为例,展示如何计算固定簇数下数据集的轮廓系数:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import silhouette_score
from scipy.spatial.distance import cdist
# 1. 加载鸢尾花数据
iris = pd.read_csv('iris_data.csv', header=None)
iris.columns = ['SepalLengthC
超级会员免费看
订阅专栏 解锁全文
10万+

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



