11.9 评估聚类模型
问题描述
使用无监督学习对数据进行聚类,现在希望评估聚类模型的性能。
解决方案
对该问题的简单回答是,我们可能无法评估聚类模型的性能,至少不能按预想的方式评估。
一种可选的方式是使用轮廓系数(silhouette coefficient)。轮廓系数可以用来衡量聚类的质量:
讨论
评估有监督学习模型时,要将预测值(比如,分类值或量化值)与目标向量中对应的真实值进行比较。但是,使用聚类方法最常见的原因是数据集没有目标向量。许多评估聚类模型的指标都要求有目标向量,但是当有可用的目标向量时,使用无监督学习(如聚类)方法训练模型可能会带来一些不必要的麻烦。
如果没有目标向量,就无法评估预测值与真实值之间的差距,不过聚类(cluster)本身的特性仍然是可以评估的。直观地讲,“好”的聚类中同类别样本间的距离非常小(即稠密聚类),不同类别的样本之间距离非常大(即分离得很彻底)。轮廓系数可以用一个值同时评估这两种特性。第i个样本的轮廓系数的计算公式为:
其中,si是样本i的轮廓系数,ai是样本i与同类的所有样本间的平均距离,bi是样本i与来自不同分类的最近聚类的所有样本间的平均距离。
silhouette_score返回的值是所有样本的平均轮廓系数。轮廓系数的值介于-1和1之间,其中1表示内部密集、分离彻底(指与其他聚类的间隔较远)的聚类。
延伸阅读
● scikit-learn文档:silhouette_score(http://bit.ly/2BEVQV5)
本书评论