Euclidean distances. Реализация функции из sklearn

Добрый день дорогие друзья, в данной статье я описываю Евклидову метрику или, как её еще называют Евклидово расстояние.

Евклидово расстояние - это расстояние между двумя точками. Расстояние между двумя точками в свою очередь вычисляется по теореме Пифагора. Это можно увидеть на Рис.1 Расстояние между двумя точка по теореме Пифагора.

Рис. 1 Расстояние между двумя точка по теореме Пифагора.
Рис. 1 Расстояние между двумя точка по теореме Пифагора.
d(x,y) = \sqrt{\sum_{i=1}^n(x_{i}-y_{i})^{2}}

Евклидово расстояние очень простое определение различия обьектов. Евклидово расстояние часто используется в анализе данных,  посорении моделей K - средних (нахождении расстояния между обьектами для обьединения их к ластеры), оценки ошибок и рсчете других метрик.

Рассмотрим на примере как мы можем найти расстояние от каждой точки из массива 𝑋 до центра кластера.

Импортируем библиотеку NumPy:

import numpy as np

Пусть наши обьекты будут располагаться по следующим координатам:

clust = np.array([
 [-0.5972191612445694, -0.5919098916910581],
 [-1.5838020751869848, 0.4743393635868491],
 [-1.892642118066139, -1.2770390481464395],
 [-1.021761443519372, -0.38446059106320013],
 [-0.628271339507516, -2.308149346281125],
 [-0.7180915776856387, 1.1805550909358404],
 [-1.543143767548152, -1.4163791359687334],
 [0.022103701018375554, -1.1279478858865397],
 [-0.7776518874305778, -0.4157532453316538],
 [-1.2073577296008344, -1.1308523658604184]
])

Координаты центра кластера будут:

centroid = np.array([-0.9774245525274352, -0.032635425821084516])

Воспользуемся ранее указанной формулой:

raznost = np.sqrt((centroid - clust)**2)
total = np.sum(raznost)
total

В итоге получим сумму растояний: 14.661150278896905

В следующей статье будет крастко рассмотрен алгоритм k-средних для количества кластеров n=3.