Công thức này có hai ưu điểm so với các cách tính khoảng cách khác. Đầu tiên, nó hiệu quả về mặt tính toán khi xử lý dữ liệu thưa thớt. Thứ hai, nếu một đối số thay đổi nhưng đối số kia không thay đổi, thì có thể tính toán trước dot[x, x]
và/hoặc dot[y, y]
Tuy nhiên, đây không phải là cách chính xác nhất để thực hiện phép tính này, bởi vì phương trình này có khả năng bị "hủy bỏ thảm khốc". Ngoài ra, ma trận khoảng cách do hàm này trả về có thể không đối xứng chính xác theo yêu cầu của, e. g. , scipy.spatial.distance
chức năng
Đọc thêm trong Hướng dẫn sử dụng .
Một mảng trong đó mỗi hàng là một mẫu và mỗi cột là một đối tượng địa lý
Y {dạng mảng, ma trận thưa thớt} của hình dạng [n_samples_Y, n_features], default=NoneMột mảng trong đó mỗi hàng là một mẫu và mỗi cột là một đối tượng địa lý. Nếu None
, phương pháp sử dụng
>>> from sklearn.metrics.pairwise import euclidean_distances >>> X = [[0, 1], [1, 1]] >>> # distance between rows of X >>> euclidean_distances[X, X] array[[[0., 1.], [1., 0.]]] >>> # get distance to origin >>> euclidean_distances[X, [[0, 0]]] array[[[1. ], [1.41421356]]]0Y_norm_squared hình dạng giống như mảng [n_samples_Y,] hoặc [n_samples_Y, 1] hoặc [1, n_samples_Y], default=None
Các tích vô hướng được tính toán trước của các vectơ trong Y [e. g. ,
>>> from sklearn.metrics.pairwise import euclidean_distances >>> X = [[0, 1], [1, 1]] >>> # distance between rows of X >>> euclidean_distances[X, X] array[[[0., 1.], [1., 0.]]] >>> # get distance to origin >>> euclidean_distances[X, [[0, 0]]] array[[[1. ], [1.41421356]]]1] Có thể bỏ qua trong một số trường hợp, xem lưu ý bên dưới
Trả về khoảng cách Euclide bình phương
X_norm_squared hình dạng giống như mảng [n_samples_X,] hoặc [n_samples_X, 1] hoặc [1, n_samples_X], default=NoneCác tích vô hướng được tính toán trước của các vectơ trong X [e. g. ,
>>> from sklearn.metrics.pairwise import euclidean_distances >>> X = [[0, 1], [1, 1]] >>> # distance between rows of X >>> euclidean_distances[X, X] array[[[0., 1.], [1., 0.]]] >>> # get distance to origin >>> euclidean_distances[X, [[0, 0]]] array[[[1. ], [1.41421356]]]2] Có thể bỏ qua trong một số trường hợp, xem lưu ý bên dướiTrả về . khoảng cách ndarray của hình dạng [n_samples_X, n_samples_Y]
Trả về khoảng cách giữa vectơ hàng của
>>> from sklearn.metrics.pairwise import euclidean_distances >>> X = [[0, 1], [1, 1]] >>> # distance between rows of X >>> euclidean_distances[X, X] array[[[0., 1.], [1., 0.]]] >>> # get distance to origin >>> euclidean_distances[X, [[0, 0]]] array[[[1. ], [1.41421356]]]0 và vectơ hàng của
>>> from sklearn.metrics.pairwise import euclidean_distances >>> X = [[0, 1], [1, 1]] >>> # distance between rows of X >>> euclidean_distances[X, X] array[[[0., 1.], [1., 0.]]] >>> # get distance to origin >>> euclidean_distances[X, [[0, 0]]] array[[[1. ], [1.41421356]]]1
Xem thêm
>>> from sklearn.metrics.pairwise import euclidean_distances >>> X = [[0, 1], [1, 1]] >>> # distance between rows of X >>> euclidean_distances[X, X] array[[[0., 1.], [1., 0.]]] >>> # get distance to origin >>> euclidean_distances[X, [[0, 0]]] array[[[1. ], [1.41421356]]]2
Khoảng cách giữa các cặp phần tử của X và Y
ghi chú
Để đạt được độ chính xác cao hơn, có thể không sử dụng
>>> from sklearn.metrics.pairwise import euclidean_distances >>> X = [[0, 1], [1, 1]] >>> # distance between rows of X >>> euclidean_distances[X, X] array[[[0., 1.], [1., 0.]]] >>> # get distance to origin >>> euclidean_distances[X, [[0, 0]]] array[[[1. ], [1.41421356]]]3 và
>>> from sklearn.metrics.pairwise import euclidean_distances >>> X = [[0, 1], [1, 1]] >>> # distance between rows of X >>> euclidean_distances[X, X] array[[[0., 1.], [1., 0.]]] >>> # get distance to origin >>> euclidean_distances[X, [[0, 0]]] array[[[1. ], [1.41421356]]]4 nếu chúng được chuyển thành
>>> from sklearn.metrics.pairwise import euclidean_distances >>> X = [[0, 1], [1, 1]] >>> # distance between rows of X >>> euclidean_distances[X, X] array[[[0., 1.], [1., 0.]]] >>> # get distance to origin >>> euclidean_distances[X, [[0, 0]]] array[[[1. ], [1.41421356]]]5