sklearn.metrics.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的值表示重叠的群集。负值通常表示样本已分配给错误的聚类,因为另一个聚类更为相似。
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
X | array [n_samples_a, n_samples_a] if metric == “precomputed”, or, [n_samples_a, n_features] otherwise 样本之间的成对距离数组或特征数组。 |
labels | array, shape = [n_samples] 每个样本的预测标签。 |
metric | string, or callable 计算特征阵列中实例之间的距离时使用的度量。如果metric是字符串,则它必须是metrics.pairwise.pairwise_distances允许的选项之一。如果X是距离数组本身,则使用metric="precomputed"。 |
sample_size | int or None 在数据的随机子集上计算轮廓系数时要使用的样本大小。如果sample_size为None,则不使用采样。 |
random_state | int, RandomState instance or None, optional (default=None) 确定用于选择样本子集的随机数生成。当sample_size不为None时使用。在多个函数调用之间传递int以获得可重复的结果。请参阅词汇表。 |
**kwds | optional keyword parameters 任何其他参数都直接传递给距离函数。如果使用scipy.spatial.distance度量,则参数仍取决于度量。有关用法示例,请参见scipy文档。 |
返回值 | 说明 |
---|---|
silhouette | float 所有样本的平均轮廓系数。 |
参考