silhouette_samples#
- sklearn.metrics.silhouette_samples(X, labels, *, metric='euclidean', **kwds)[source]#
计算每个样本的 Silhouette 系数。
轮廓系数是衡量样本与其相似样本聚类程度的指标。具有高轮廓系数的聚类模型被认为是密集的,即同一簇中的样本彼此相似,并且分离良好,即不同簇中的样本彼此不太相似。
轮廓系数是根据每个样本的平均簇内距离(
a)和平均最近簇距离(b)计算得出的。样本的轮廓系数为(b - a) / max(a, b)。请注意,仅当标签数量满足2 <= n_labels <= n_samples - 1时,轮廓系数才被定义。此函数返回每个样本的轮廓系数。
最佳值为 1,最差值为 -1。接近 0 的值表示簇重叠。
在用户指南中阅读更多内容。
- 参数:
- X{array-like, sparse matrix} of shape (n_samples_a, n_samples_a) if metric == “precomputed” or (n_samples_a, n_features) otherwise
样本之间成对距离的数组,或特征数组。如果提供了稀疏矩阵,应首选 CSR 格式以避免额外的复制。
- labels形状为 (n_samples,) 的类数组
每个样本的标签值。
- metricstr or callable, default=’euclidean’
用于计算特征数组中实例之间距离的度量。如果 metric 是字符串,它必须是
pairwise_distances允许的选项之一。如果X本身就是距离数组,则使用 “precomputed” 作为 metric。预先计算的距离矩阵沿对角线必须为 0。- **kwdsoptional keyword parameters
任何其他参数都直接传递给距离函数。如果使用
scipy.spatial.distance度量,参数仍然取决于度量。请参阅 scipy 文档以获取使用示例。
- 返回:
- silhouettearray-like of shape (n_samples,)
每个样本的轮廓系数。
References
示例
>>> 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([...])