任务描述
本关实现一个函数来计算欧几里得距离。
相关知识
K-means 算法的核心思想是,将数据集中的样本聚类为多个簇集,簇内样本距离较近,簇间样本距离较远。由此可见,其最基本的运算是判断样本(如书籍、电影、用户、汽车等)之间的距离(或者相似度)。
通常数据集中的样本都可描述为一个 n 维向量X(x1,x2,⋯,xn)。每一个维度代表样本的一个属性。比如,对于用户 x 而言,其属性可能是收入、年龄、工作时间等,对于电影而言,其属性可能是出品年份、导演、风格等。本关卡学习欧几里得度量。
欧几里得度量(Euclidean metric)(也称欧氏距离)是一个常用的距离定义,计算 n 维空间中,两个样本点之间的几何距离。
两个在 n 维空间的点X(x1,x2,⋯,xn)和Y(y1,y2,⋯,yn)的欧几里得距离为:
EuclideanDist=i=1∑n(xi−yi)2
编程要求
本关卡要求你实现函数 euclid_distance,在右侧编辑器 Begin-End 区间补充代码,需要填充的代码块如下:
# -*- coding: utf-8 -*-
import numpy as np
def euclid_distance(x1, x2):
"""计算两个点之间点欧式距离
参数:
x1-numpy数组
x2-numpy数组
返回值:
ret-浮点型数据
"""
# 请在此添加实现代码 #
ret = 0
#********** Begin *********#
#********** End ***********#
return ret
测试说明
平台将对你的函数输入两个 Numpy 数组,计算欧式距离,比对函数 euclid_distance 的输出结果与正确结果的差异,只有完全正确才能进入下一关。
代码:
# -*- coding: utf-8 -*-
import numpy as np
def euclid_distance(x1, x2):
"""计算欧几里得距离
参数:
x1 - numpy数组
x2 - numpy数组
返回值:
distance - 浮点数,欧几里得距离
"""
distance = 0
# 请在此添加实现代码 #
#********** Begin *********#
import numpy as np
distance = np.sqrt(np.sum((x1-x2)**2))
#********** End ***********#
return distance