Spec-Zone.ru › scikit-learn

pairwise_distances

sklearn.metrics.pairwise_distances(X, Y=None, metric='euclidean', *, n_jobs=None, force_all_finite='deprecated', ensure_all_finite=None, **kwds)[source]

Вычисление матрицы расстояний из массива векторов X и необязательного Y.

Этот метод принимает массив векторов или матрицу расстояний и возвращает матрицу расстояний. Если вход — массив векторов, вычисляются расстояния. Если вход — матрица расстояний, она возвращается вместо неё. Если вход — набор нечисловых данных (например, список строк или массив булевых значений), необходимо передать пользовательскую метрику.

Этот метод предоставляет безопасный способ принять на вход матрицу расстояний, сохраняя совместимость со многими другими алгоритмами, которые принимают массив векторов.

Если Y задан (по умолчанию None), возвращаемая матрица — это парные расстояния между массивами из X и Y.

Допустимые значения для метрики:

  • Из scikit-learn: [‘cityblock’, ‘cosine’, ‘euclidean’, ‘l1’, ‘l2’, ‘manhattan’]. Эти метрики поддерживают разреженные матрицы. [‘nan_euclidean’], но пока не поддерживает разреженные матрицы.
  • Из scipy.spatial.distance: [‘braycurtis’, ‘canberra’, ‘chebyshev’, ‘correlation’, ‘dice’, ‘hamming’, ‘jaccard’, ‘kulsinski’, ‘mahalanobis’, ‘minkowski’, ‘rogerstanimoto’, ‘russellrao’, ‘seuclidean’, ‘sokalmichener’, ‘sokalsneath’, ‘sqeuclidean’, ‘yule’] См. документацию для scipy.spatial.distance для получения подробной информации об этих метриках. Эти метрики не поддерживают разреженные матрицы.

Примечание

'kulsinski' устарело с SciPy 1.9 и будет удалено в SciPy 1.11.

Примечание

'matching' было удалено в SciPy 1.9 (используйте 'hamming' вместо этого).

Обратите внимание, что в случае «cityblock», «cosine» и «euclidean» (которые являются допустимыми метриками scipy.spatial.distance), реализация scikit-learn будет использоваться, что быстрее и поддерживает разреженные матрицы (кроме «cityblock»). Для подробного описания метрик из scikit-learn см. функцию sklearn.metrics.pairwise.distance_metrics.

Дополнительные сведения см. в Руководстве пользователя.

Параметры:
X{array-like, sparse matrix} of shape (n_samples_X, n_samples_X) or (n_samples_X, n_features)

Массив парных расстояний между образцами или массив признаков. Форма массива должна быть (n_samples_X, n_samples_X), если metric == “precomputed”, и (n_samples_X, n_features) в противном случае.

Y{array-like, sparse matrix} of shape (n_samples_Y, n_features), default=None

Дополнительный второй массив признаков. Допустим только если metric != “precomputed”.

metricstr или callable, по умолчанию=’euclidean’

Метрика для расчета расстояния между экземплярами в массиве признаков. Если metric — строка, она должна быть одним из параметров, разрешённых scipy.spatial.distance.pdist для параметра metric, или метрикой, перечисленной в pairwise.PAIRWISE_DISTANCE_FUNCTIONS. Если metric — “precomputed”, X предполагается матрицей расстояний. В качестве альтернативы, если metric — вызываемая функция, она вызывается для каждой пары экземпляров (строк) и записывается полученное значение. Вызываемая функция должна принимать два массива из X в качестве входных данных и возвращать значение, указывающее расстояние между ними.

n_jobsint, по умолчанию=None

Количество задач для вычисления. Это работает, разбивая парную матрицу на n_jobs равных фрагментов и вычисляя их с помощью многопоточности.

None равно 1, за исключением контекста joblib.parallel_backend. -1 означает использование всех процессоров. Подробнее см. в Справочнике.

Метрики “euclidean” и “cosine” сильно зависят от BLAS, который уже многопоточный. Поэтому увеличение n_jobs, вероятно, приведёт к перегрузке и быстрому ухудшению производительности.

force_all_finitebool или ‘allow-nan’, по умолчанию=True

Вызывать ошибку при np.inf, np.nan, pd.NA в массиве. Игнорируется для метрики, перечисленных в pairwise.PAIRWISE_DISTANCE_FUNCTIONS. Возможные варианты:

  • True: принудительно сделать все значения массива конечными.
  • False: принимает np.inf, np.nan, pd.NA в массиве.
  • ‘allow-nan’: принимает только np.nan и pd.NA значения в массиве. Значения не могут быть бесконечными.

Добавлена в версии 0.22: force_all_finite принимает строку 'allow-nan'.

Изменено в версии 0.23: Принимает pd.NA и преобразует его в np.nan.

Устарело начиная с версии 1.6: force_all_finite было переименовано в ensure_all_finite и будет удалено в 1.8.

ensure_all_finitebool или ‘allow-nan’, по умолчанию=True

Вызывать ошибку при np.inf, np.nan, pd.NA в массиве. Игнорируется для метрики, перечисленных в pairwise.PAIRWISE_DISTANCE_FUNCTIONS. Возможные варианты:

  • True: принудительно сделать все значения массива конечными.
  • False: принимает np.inf, np.nan, pd.NA в массиве.
  • ‘allow-nan’: принимает только np.nan и pd.NA значения в массиве. Значения не могут быть бесконечными.

Добавлена в версии 1.6: force_all_finite было переименовано в ensure_all_finite.

**kwdsнеобязательные ключевые параметры

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

Возвращаемое значение:
Dndarray of shape (n_samples_X, n_samples_X) или (n_samples_X, n_samples_Y)

Матрица расстояний D, где D_{i, j} — расстояние между i-м и j-м векторами заданной матрицы X, если Y равно None. Если Y не равно None, то D_{i, j} — расстояние между i-м массивом из X и j-м массивом из Y.

См. также

pairwise_distances_chunked

Выполняет те же вычисления, что и эта функция, но возвращает генератор фрагментов матрицы расстояний, чтобы ограничить использование памяти.

sklearn.metrics.pairwise.paired_distances

Вычисляет расстояния между соответствующими элементами двух массивов.

Примеры

>>> from sklearn.metrics.pairwise import pairwise_distances
>>> X = [[0, 0, 0], [1, 1, 1]]
>>> Y = [[1, 0, 0], [1, 1, 0]]
>>> pairwise_distances(X, Y, metric='sqeuclidean')
array([[1., 2.],
       [2., 1.]])

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

Основные моменты выпуска scikit-learn 1.5

Иерархическая кластеризация с различными метриками

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

Spec-Zone.ru

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