Найти дерево, которое лучше всего предсказывает наблюдаемую совокупность расстояний с учетом расстояния между каждой парой видов, было бы простым решением проблемы филогении.
Это сводит матрицу данных M к простой таблице попарных расстояний за счет исключения некоторых данных. Однако оказывается, что большая часть эволюционной информации часто передается на эти расстояния.
- Функция pdist()
- Попарное расстояние Jaccard
- Евклидово расстояние
- Попарное расстояние Манхэттен
- Парное расстояние Минковского
- Попарное расстояние Хэмминга
- Попарное расстояние Канберра
- Попарное расстояние Чебышева
- Python Scipy Парное расстояние Дженсеншаннон
- Заключение
Функция pdist()
Модуль scipy.spatial.distance библиотеки Python Scipy предлагает функцию pdist(), которая вычисляет попарные расстояния в n-мерном пространстве между наблюдениями.
Синтаксис:
scipy.spatial.distance.pdist(X, metric='minkowski')
Где параметры:
- X (array_data): совокупность m различных наблюдений, каждое в n измерениях, упорядоченных m по n.
- metric (callabel, str): единица измерения расстояния, которая будет применена. Функция расстояния может быть «канберра», «брайкуртис», «чебышев», «корреляция», «городской квартал», «косинус», «евклидова», «кости», «хамминг», «кульсинский», «дженсеншаннон», « кулчинский1», «соответствующий», «махаланобис», «минковский», «расселрао», «рогерстанимото», «евклидовый».
Метод pdist() возвращает сжатую матрицу расстояний по оси Y.
Давайте разберемся на примере, выполнив следующие шаги:
- Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy.spatial.distance import pdist
- Создайте данные, используя приведенный ниже код.
data = [(25.056, -75.7226), (25.7411, -79.1197), (25.2897, -79.2294), (25.6716, -79.3378)]
- Используйте корреляцию в качестве показателя расстояния между точками, чтобы вычислить расстояние между m и точками.
pdist(data,'correlation')
Попарное расстояние Jaccard
Для кластеризации и многомерного масштабирования n наборов выборок часто используется расстояние Jaccard для вычисления матрицы n*n. Это расстояние служит мерой совокупности всех конечных множеств.
Итак, здесь, в этом разделе, мы будем использовать метрическую жаккарду для вычисления расстояния. Давайте проверим на примере, выполнив следующие шаги:
- Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy.spatial.distance import pdist
- Создайте данные, используя приведенный ниже код.
samp_data = [(27.056, -65.3226), (27.6411, -65.2197), (27.6897, -65.6294), (27.5716, -65.1378)]
- Используйте Jaccard в качестве метрики расстояния между точками, чтобы вычислить расстояние между м и точками.
pdist(samp_data,'jaccard')
Евклидово расстояние
Кратчайшее расстояние между двумя точками известно как «евклидово расстояние». Эта метрика расстояния используется большинством алгоритмов машинного обучения, таких как K-Means, для оценки того, насколько похожи два наблюдения.
Метод Python Scipy pdist() принимает евклидову метрику для вычисления такого рода расстояния.
Итак, здесь мы вычислим парное расстояние, используя евклидову метрику, выполнив следующие шаги:
- Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy.spatial.distance import pdist
- Создайте образец данных, используя приведенный ниже код.
samp_data = [(5, 8), (10, 12), (11, 15), (19, 16)]
- Используйте евклидово уравнение в качестве метрики расстояния между точками, чтобы вычислить расстояние между m и n точками.
pdist(samp_data,'euclidean')
Попарное расстояние Манхэттен
Суммарная абсолютная разница между двумя точками во всех измерениях составляет Манхэттенское расстояние. Метод Python Scipy pdist() принимает метрический городской квартал для вычисления такого рода расстояния.
Давайте вычислим попарное расстояние, используя метрику Манхэттена (также известную как городской квартал в Python Scipy), выполнив следующие шаги:
- Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy.spatial.distance import pdist
- Создайте образец данных, используя приведенный ниже код.
samp_data = [(5, 8), (10, 12), (11, 15), (19, 16)]
- Используйте городской квартал в качестве метрики расстояния между точками, чтобы вычислить расстояние между m и n точками.
pdist(samp_data,'cityblock')
Парное расстояние Минковского
Расстояние в N-мерном пространстве, называемое расстоянием Минковского, рассчитывается между двумя точками. По сути, это обобщение как Манхэттенского расстояния, так и Евклидова расстояния.
Он часто используется в машинном обучении, особенно для определения наилучшей корреляции или классификации данных.
Метод Python Scipy pdist() принимает метрику Минковского для вычисления такого рода расстояния.
Давайте вычислим парное расстояние, используя метрику Минковского, выполнив следующие шаги:
- Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy.spatial.distance import pdist
- Создайте образец данных, используя приведенный ниже код.
samp_data = [(10, 8), (10, 12), (10, 15), (19, 16)]
- Чтобы определить расстояние между точками m и n, используйте Минковский в качестве метрики расстояния.
pdist(samp_data,'minkowski')
Попарное расстояние Хэмминга
Количество битов, которые различаются в обоих числах в одной и той же точке, известно как расстояние Хэмминга между двумя целыми числами. Метод Python Scipy pdist() принимает метрику Хэмминга для вычисления такого рода расстояния.
Давайте возьмем пример и вычислим парное расстояние с использованием метрики Хэмминга, выполнив следующие шаги:
- Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy.spatial.distance import pdist
- Создайте образец данных, используя приведенный ниже код.
samp_data = [(10, 8), (10, 12), (10, 15), (19, 16)]
- Чтобы определить расстояние между точками m и n, используйте Хэмминг в качестве метрики расстояния.
pdist(samp_data,'hamming')
Попарное расстояние Канберра
Годфри Н. Лэнс и Уильям Т. Уильямс впервые предложили Канберрскую дистанцию в 1966 году, а позже она была улучшена. Расстояние Канберры — это числовое представление разницы между двумя точками в векторном пространстве. Это дистанция L1(Манхэттен) с добавленными грузами.
Давайте возьмем пример и вычислим попарное расстояние, используя метрику Канберры, выполнив следующие шаги:
- Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy.spatial.distance import pdist
- Создайте образец данных, используя приведенный ниже код.
samp_data = [(9, 8), (7, 12), (3, 15), (12, 16)]
- Чтобы определить числовое представление разницы между двумя точками в векторном пространстве, используйте Канберру в качестве метрики расстояния.
pdist(samp_data,'canberra')
Попарное расстояние Чебышева
Формула расстояния Чебышева, также называемая в математике «максимальной метрикой», вычисляет расстояние между двумя точками как наибольшую разницу по всем значениям их осей.
Метод Python Scipy pdist() принимает метрику Чебышева для вычисления такого рода парного расстояния.
Давайте возьмем пример и вычислим попарное расстояние, используя метрику Чебышева, выполнив следующие шаги:
- Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy.spatial.distance import pdist
- Создайте образец данных, используя приведенный ниже код.
samp_data = [(5, 9), (12, 7), (15, 3), (16, 12)]
- Чтобы определить наибольшую разницу между двумя точками, используйте Чебышева в качестве метрики расстояния.
pdist(samp_data,'chebyshev')
Python Scipy Парное расстояние Дженсеншаннон
Разница между двумя вероятностями измеряется расстоянием Дженсена-Шеннона. Метод Python Scipy pdist() принимает метрику Дженсеншаннон для вычисления такого рода парного расстояния.
Давайте возьмем пример и вычислим парное расстояние, используя метрику Дженсеншаннона, выполнив следующие шаги:
- Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy.spatial.distance import pdist
- Создайте образец данных, используя приведенный ниже код.
samp_data = [(5, 9), (12, 7), (15, 3), (16, 12)]
- Чтобы определить разницу между двумя вероятностями, используйте Дженсеншаннон в качестве метрики расстояния.
pdist(samp_data,'jensenshannon')
Заключение
В этом уроке мы узнали, как построить матрицу парных расстояний в Scipy, используя несколько метрик расстояний, включая Хэмминга, Евклида, Дженсена Шеннона и другие.