輪廓係數樣本#
- sklearn.metrics.silhouette_samples(X, labels, *, metric='euclidean', **kwds)[原始碼]#
計算每個樣本的輪廓係數。
輪廓係數是衡量樣本與自身相似的樣本聚類效果的指標。具有高輪廓係數的聚類模型被認為是密集的,其中同一群集中的樣本彼此相似,並且分離良好,其中不同群集中的樣本彼此不太相似。
輪廓係數是使用每個樣本的平均群內距離 (
a
) 和平均最近群距離 (b
) 計算得出的。樣本的輪廓係數為(b - a) / max(a, b)
。請注意,只有在標籤數量為 2<= n_labels <= n_samples - 1
時,輪廓係數才有定義。此函數返回每個樣本的輪廓係數。
最佳值為 1,最差值為 -1。接近 0 的值表示群集重疊。
請在使用者指南中閱讀更多資訊。
- 參數:
- X如果 metric == “precomputed”,則形狀為 (n_samples_a, n_samples_a) 的類陣列或稀疏矩陣;否則為 (n_samples_a, n_features)
樣本之間成對距離的陣列,或特徵陣列。如果提供稀疏矩陣,則應優先使用 CSR 格式,以避免額外的複製。
- labels形狀為 (n_samples,) 的類陣列
每個樣本的標籤值。
- metric字串或可調用物件,預設為 ‘euclidean’
計算特徵陣列中實例之間距離時使用的度量。如果 metric 是字串,則必須是
pairwise_distances
允許的選項之一。如果X
本身是距離陣列,則使用 “precomputed” 作為度量。預先計算的距離矩陣的對角線上必須為 0。- **kwds可選的關鍵字參數
任何其他參數都將直接傳遞給距離函數。如果使用
scipy.spatial.distance
度量,則參數仍然取決於度量。有關用法示例,請參閱 scipy 文件。
- 返回:
- silhouette形狀為 (n_samples,) 的類陣列
每個樣本的輪廓係數。
參考文獻
[2]範例
>>> 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([...])