Spec-Zone.ru › scikit-learn

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-like, sparse matrix} of shape (n_samples_a, n_samples_a) if metric == “precomputed” or (n_samples_a, n_features) otherwise

Массив попарных расстояний между образцами или массив признаков.

labelsarray-like of shape (n_samples,)

Предсказанные метки для каждого образца.

metricstr or callable, default=’euclidean’

Метрика, используемая для вычисления расстояния между объектами в массиве признаков. Если metric — строка, она должна соответствовать одному из вариантов, допустимых для pairwise_distances. Если X — это сам массив расстояний, используйте metric="precomputed".

sample_sizeint, default=None

Размер выборки для вычисления коэффициента силуэта на случайном подмножестве данных. Если sample_size is None, выборка не используется.

random_stateint, RandomState instance or None, default=None

Определяет генерацию случайных чисел при выборе подмножества образцов. Используется, когда sample_size is not None. Передайте целое число, чтобы результаты оставались воспроизводимыми при нескольких вызовах функции. См. глоссарий.

**kwdsoptional keyword parameters

Все дополнительные параметры передаются непосредственно функции расстояния. При использовании метрики scipy.spatial.distance параметры также зависят от метрики. Примеры использования см. в документации scipy.

Возвращает:
silhouettefloat

Средний коэффициент силуэта для всех образцов.

Список литературы

[1]

Питер Дж. Руссо (1987). «Силуэты: графический инструмент для интерпретации и проверки кластерного анализа». Computational and Applied Mathematics 20: 53–65.

[2]

Статья в Википедии о коэффициенте силуэта

Примеры

>>> from sklearn.datasets import make_blobs
>>> from sklearn.cluster import KMeans
>>> from sklearn.metrics import silhouette_score
>>> X, y = make_blobs(random_state=42)
>>> kmeans = KMeans(n_clusters=2, random_state=42)
>>> silhouette_score(X, kmeans.fit_predict(X))
0.49...

Примеры из галереи

Демонстрация алгоритма кластеризации распространением сродства

Демонстрация алгоритма кластеризации DBSCAN

Демонстрация кластеризации методом K-средних на данных рукописных цифр

Выбор количества кластеров с помощью анализа силуэта при кластеризации методом K-средних

Кластеризация текстовых документов методом k-средних

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.silhouette_score.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API