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 所有樣本的平均輪廓系數。 |
參考