Spec-Zone.ru › scikit-learn

коэффициент_силуэта

sklearn.metrics.silhouette_score(X, labels, *, metric='euclidean', sample_size=None, random_state=None, **kwds)[source]

Вычисление среднего коэффициента силуэта для всех образцов.

Коэффициент силуэта рассчитывается с использованием среднего внутрикластерного расстояния (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’

Метрика, используемая при расчете расстояния между экземплярами в массиве признаков. Если метрика является строкой, она должна быть одним из вариантов, разрешенных 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]

Peter J. Rousseeuw (1987). “Silhouettes: a Graphical Aid to the Interpretation and Validation of Cluster Analysis”. 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))
np.float64(0.49...)

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

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

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

Демонстрация алгоритма кластеризации с передачей сообщений

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

Кластеризация текстовых документов с помощью K-means

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

Spec-Zone.ru

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