輪廓係數樣本#

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,) 的類陣列

每個樣本的輪廓係數。

參考文獻

範例

>>> 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([...])