silhouette_samples#

sklearn.metrics.silhouette_samples(X, labels, *, metric='euclidean', **kwds)[源代码]#

Compute the Silhouette Coefficient for each sample.

轮廓系数是衡量样本与与自身相似的样本聚集程度的指标。具有高轮廓系数的集群模型被认为是密集的,即同一集群中的样本彼此相似;并且分离得很好,即不同集群中的样本彼此不太相似。

剪影系数使用平均群内距离计算 (a )和平均最近集群距离 (b ),每个样本。 样本的轮廓系数为 (b - a) / max(a, b) .请注意,只有当标签数量为2时才定义Silhouette Coefficient <= n_labels <= n_samples - 1 .

此函数返回每个样本的轮廓系数。

最好的值是1,最差的值是-1。接近0的值表示重叠的集群。

阅读更多的 User Guide .

参数:
X如果指标==,形状(n_samples_a,n_samples_a)的{类数组,稀疏矩阵} “预先计算”或(n_samples_a,n_features)否则

样本之间的成对距离数组,或特征数组。如果提供了稀疏矩阵,则应倾向于CSR格式,以避免额外的副本。

labels形状类似阵列(n_samples,)

每个样本的标签值。

metric字符串或可调用,默认='欧几里德'

计算要素数组中实例之间的距离时使用的指标。如果指标是字符串,则它必须是允许的选项之一 pairwise_distances .如果 X 是距离数组本身,使用“预先计算”作为指标。预先计算的距离矩阵沿着对角线必须为0。

**kwds可选关键字参数

任何进一步的参数都直接传递给距离函数。如果使用 scipy.spatial.distance 度量,参数仍然是度量相关的。有关使用示例,请参阅scipy文档。

返回:
silhouette形状类似阵列(n_samples,)

每个样本的剪影系数。

引用

[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.metrics import silhouette_samples
>>> from sklearn.datasets import make_blobs
>>> from sklearn.cluster import KMeans
>>> X, y = make_blobs(n_samples=50, random_state=42)
>>> kmeans = KMeans(n_clusters=3, random_state=42)
>>> labels = kmeans.fit_predict(X)
>>> silhouette_samples(X, labels)
array([...])