Spec-Zone.ru › scikit-learn

DistanceMetric

classsklearn.metrics.DistanceMetric

Единый интерфейс для быстрого вычисления метрик расстояния.

Класс DistanceMetric предоставляет удобный способ вычисления попарных расстояний между образцами. Он поддерживает различные метрики расстояния, такие как евклидово расстояние, манхэттенское расстояние и другие.

Метод pairwise можно использовать для вычисления попарных расстояний между образцами во входных массивах. Он возвращает матрицу расстояний, представляющую расстояния между всеми парами образцов.

Метод get_metric позволяет получить конкретную метрику по её строковому идентификатору.

Примеры

>>> from sklearn.metrics import DistanceMetric
>>> dist = DistanceMetric.get_metric('euclidean')
>>> X = [[1, 2], [3, 4], [5, 6]]
>>> Y = [[7, 8], [9, 10]]
>>> dist.pairwise(X,Y)
array([[7.81..., 10.63...]
       [5.65...,  8.48...]
       [1.41...,  4.24...]])

Доступные метрики

Ниже перечислены строковые идентификаторы метрик и соответствующие им классы метрик расстояния:

Метрики для векторных пространств с вещественными значениями:

идентификатор

имя класса

аргументы

функция расстояния

“euclidean”

EuclideanDistance

sqrt(sum((x - y)^2))

“manhattan”

ManhattanDistance

sum(|x - y|)

“chebyshev”

ChebyshevDistance

max(|x - y|)

“minkowski”

MinkowskiDistance

p, w

sum(w * |x - y|^p)^(1/p)

“seuclidean”

SEuclideanDistance

V

sqrt(sum((x - y)^2 / V))

“mahalanobis”

MahalanobisDistance

V or VI

sqrt((x - y)' V^-1 (x - y))

Метрики для двумерных векторных пространств: Обратите внимание, что метрика расстояния haversine требует данные в формате [широта, долгота], а входные и выходные значения задаются в радианах.

идентификатор

имя класса

функция расстояния

“haversine”

HaversineDistance

2 arcsin(sqrt(sin^2(0.5*dx) + cos(x1)cos(x2)sin^2(0.5*dy)))

Метрики для векторных пространств с целочисленными значениями: Хотя эти метрики предназначены для векторов с целочисленными значениями, они также подходят для векторов с вещественными значениями.

идентификатор

имя класса

функция расстояния

“hamming”

HammingDistance

N_unequal(x, y) / N_tot

“canberra”

CanberraDistance

sum(|x - y| / (|x| + |y|))

“braycurtis”

BrayCurtisDistance

sum(|x - y|) / (sum(|x|) + sum(|y|))

Метрики для векторных пространств с булевыми значениями: Любое ненулевое значение интерпретируется как “True”. В приведённых ниже списках используются следующие сокращения:

  • N: количество измерений
  • NTT: количество измерений, в которых оба значения равны True
  • NTF: количество измерений, в которых первое значение равно True, а второе — False
  • NFT: количество измерений, в которых первое значение равно False, а второе — True
  • NFF: количество измерений, в которых оба значения равны False
  • NNEQ: количество измерений с неодинаковыми значениями, NNEQ = NTF + NFT
  • NNZ: количество ненулевых измерений, NNZ = NTF + NFT + NTT

идентификатор

имя класса

функция расстояния

“jaccard”

JaccardDistance

NNEQ / NNZ

“matching”

MatchingDistance

NNEQ / N

“dice”

DiceDistance

NNEQ / (NTT + NNZ)

“kulsinski”

KulsinskiDistance

(NNEQ + N - NTT) / (NNEQ + N)

“rogerstanimoto”

RogersTanimotoDistance

2 * NNEQ / (N + NNEQ)

“russellrao”

RussellRaoDistance

(N - NTT) / N

“sokalmichener”

SokalMichenerDistance

2 * NNEQ / (N + NNEQ)

“sokalsneath”

SokalSneathDistance

NNEQ / (NNEQ + 0.5 * NTT)

Пользовательская метрика расстояния:

идентификатор

имя класса

аргументы

“pyfunc”

PyFuncDistance

func

Здесь func — функция, которая принимает два одномерных массива numpy и возвращает расстояние. Обратите внимание, что для использования в BallTree расстояние должно быть настоящей метрикой, то есть удовлетворять следующим свойствам:

  1. Неотрицательность: d(x, y) >= 0
  2. Тождественность: d(x, y) = 0 тогда и только тогда, когда x == y
  3. Симметричность: d(x, y) = d(y, x)
  4. Неравенство треугольника: d(x, y) + d(y, z) >= d(x, z)

Из-за накладных расходов на объекты Python при вызове функции Python вычисления будут довольно медленными, но масштабирование будет таким же, как у других расстояний.

classmethodget_metric(metric, dtype=<class 'numpy.float64'>, **kwargs)

Получить указанную метрику расстояния по строковому идентификатору.

Список доступных метрик см. в документации класса DistanceMetric.

Параметры:
metricстрока или имя класса

Строковый идентификатор или имя класса нужной метрики расстояния. Список доступных метрик см. в документации класса DistanceMetric.

dtype{np.float32, np.float64}, по умолчанию=np.float64

Тип данных входных значений, к которым будет применена метрика. Он влияет на точность вычисляемых расстояний. По умолчанию установлено значение np.float64.

**kwargs

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

Возвращает:
metric_objэкземпляр запрошенной метрики

Экземпляр класса запрошенной метрики расстояния.

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

Spec-Zone.ru

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