本人CSDN博客專欄:https://blog.csdn.net/yty_7
Github地址:https://github.com/yot777/
散點圖的直觀解決思路:更近
回到上一節:楊桃的Python機器學習5,我們最終得到了如下的散點圖:
藍色的點(標籤爲1)似乎都集中在圖的左下部分,橙色的點(標籤爲0)似乎都集中在圖的右上部分。
我們在散點圖上再增加兩個點A和B,想想他們的標籤應該分別是什麼?
同學們也許大概已經猜出來答案了:
點A和藍色的點更近,應當是標籤1
點B和橙色的點更近,應當是標籤0
現在這個“更近”只是直觀上的感覺,有沒有更科學的計算呢?當然有!這就是歐式距離公式。
一維的距離度量
我們先以一維直線舉例,如圖:
如圖所示,一維直線上有A和B兩個點,A點在0的位置,B在5的位置。A點和B點的距離是:|AB|=|5-0|=5
現在增加一個C點在2的位置,請問C點離哪個點更近?
答案是顯而易見的,計算兩點之間的距離就能知道結果。
C點到A點的距離是:|CA|=|2-0|=|2|=2
C點到B點的距離是:|CB|=|2-5|=|-3|=3 (絕對值)
|CA| < |CB|,因此C點離A點更近。
一般的,兩個點 在一維長度的距離公式就是
二維的距離度量
現在我們把問題稍微複雜一點,從一維直線拓展到二維平面,如圖:
A點的位置座標是(0, 0),B點的位置座標是(3, 4),現在求AB之間的距離(即紅線長度)是多少?
可能有同學一下子就看出來了:這不就是勾股定理嘛?勾三股四弦五!完全正確!具體計算如下:
也就是說,二維平面上兩點的距離公式是:橫座標之差的平方,加上縱座標之差的平方,再開根號即可。
現在,我們在上圖增加一個C點,位置座標是(5, 2),再分別求C點到A點和B點的距離(即藍線和橙線長度):
將A點、B點、C點的座標分別代入二維平面上兩點的距離公式,即得:
|CB| < |CA|,因此C點離B點更近。
三維的距離度量
直接上公式吧,有興趣的同學可以自己畫圖推導:
需要注意的是,三維距離公式只是在二維距離公式的基礎上,增加了一個豎直方向的維度z
每個維度之間的距離仍然是計算差的平方,然後把所有維度的差的平方求和,最後開平方根。
千萬不要以爲三維就是開立方根啊!
n維的距離度量:歐式距離公式
當維度超過三維的時候,就很難用直觀畫圖的形式展現出距離了。怎麼計算呢?
第一步,我們需要把一維二維三維中點的座標抽象成向量的表達形式,即
,
再次強調,向量用小寫字母表示,矩陣用大寫字母表示!
在之前一維舉例中,,,
在之前二維舉例中,,,
在三維中
推廣到n維,距離公式是:
這就是歐式距離公式。
再回到本節最初的分類問題:
我們可以用歐式距離公式得到點A到散點圖中每一個點的距離。
得到距離之後呢?請看下一節的講解。
總結
散點圖的直觀解決思路:找距離更近的點。
歐式距離公式:
一維情況下:
二維情況下:
三維情況下:
本人CSDN博客專欄:https://blog.csdn.net/yty_7
Github地址:https://github.com/yot777/
如果您覺得本篇本章對您有所幫助,歡迎關注、評論、點贊!Github歡迎您的Follow、Star!