任務描述
本關實現一個函數來計算歐幾里得距離。
相關知識
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 npdistance = np.sqrt(np.sum((x1-x2)**2))#********** End ***********#return distance