silhouette_score#
- sklearn.metrics.silhouette_score(X, labels, *, metric='euclidean', sample_size=None, random_state=None, **kwds)[源代码]#
计算所有样本的平均轮廓系数。
剪影系数使用平均群内距离计算 (
a
)和平均最近集群距离 (b
),每个样本。 样本的轮廓系数为(b - a) / max(a, b)
. 澄清一下,b
是样本与该样本不属于的最近集群之间的距离。请注意,只有当标签数量为2 <= n_labels <= n_samples - 1
.此函数返回所有样本的平均轮廓系数。要获得每个样本的值,请使用
silhouette_samples
.最好的值是1,最差的值是-1。接近0的值表示重叠的集群。负值通常表明样本被分配到错误的集群,因为不同的集群更相似。
阅读更多的 User Guide .
- 参数:
- X如果指标==,形状(n_samples_a,n_samples_a)的{类数组,稀疏矩阵} “预先计算”或(n_samples_a,n_features)否则
样本之间的成对距离数组,或特征数组。
- labels形状类似阵列(n_samples,)
每个样本的预测标签。
- metric字符串或可调用,默认='欧几里德'
计算要素数组中实例之间的距离时使用的指标。如果指标是字符串,则它必须是允许的选项之一
pairwise_distances
.如果X
是距离数组本身,使用metric="precomputed"
.- sample_sizeint,默认=无
在数据的随机子集上计算轮廓系数时使用的样本大小。如果
sample_size is None
,不使用抽样。- random_stateint,RandomState实例或无,默认=无
确定用于选择样本子集的随机数生成。时使用
sample_size is not None
.传递int以获得跨多个函数调用的可重复结果。看到 Glossary .- **kwds可选关键字参数
任何进一步的参数都直接传递给距离函数。如果使用scipy.spatial.Distance指标,则参数仍然依赖于指标。有关使用示例,请参阅scipy文档。
- 返回:
- silhouette浮子
所有样本的平均轮廓系数。
引用
[1]Peter J. Rousseeuw (1987). "Silhouettes: a Graphical Aid to the Interpretation and Validation of Cluster Analysis". Computational and Applied Mathematics 20: 53-65. <https://www.sciencedirect.com/science/article/pii/0377042787901257>
_[2]Wikipedia entry on the Silhouette Coefficient <https://en.wikipedia.org/wiki/Silhouette_(clustering)>
_示例
>>> from sklearn.datasets import make_blobs >>> from sklearn.cluster import KMeans >>> from sklearn.metrics import silhouette_score >>> X, y = make_blobs(random_state=42) >>> kmeans = KMeans(n_clusters=2, random_state=42) >>> silhouette_score(X, kmeans.fit_predict(X)) np.float64(0.49...)