1. 程式人生 > >機器學習:聚類-閔科夫斯基距離和無序屬性的VDM距離計算

機器學習:聚類-閔科夫斯基距離和無序屬性的VDM距離計算

距離計算是很多學習演算法會涉及的內容,當然包括聚類演算法,這裡簡單介紹下有序屬性的閔科夫斯基距離和無序屬性的VDM距離。

關於有序屬性,大概可以這樣理解:假設身高的屬性有{矮,中,高},為了計算方便,我們把它們轉成數字{1,2,3},1和2較接近(矮和中相差較小),1和3較遠(矮和高相差較大),發現這樣的轉化基本可以反應原先屬性間的關係。類似這樣的屬性(這裡是身高)可以認為是有序屬性,可以直接轉化成數字。

關於無序屬性,比如顏色這個屬性,假設有{紅,黃,藍},我們不能簡單的轉化為{1,2,3},因為原先的屬性間沒有明顯的大小遠近等“序”的關係,如果轉化為{1,2,3},當計算距離時,會無形中引入這種序的關係(紅和黃更接近,紅和藍更遠)。所以類似這樣的屬性(這裡是顏色)就稱為無序屬性。當然,無序屬性通常可以轉化為向量處理,比如轉化為{[1,0,0],[0,1,0],[0,0,1]}這3個屬性。

有序屬性的閔科夫斯基距離計算(樣本x是n維向量):

當p=2時,閔科夫斯基距離轉化為歐式距離:

當p=1時,閔科夫斯基距離轉化為曼哈頓距離:

無序屬性的距離計算可以採用VDM:

將閔科夫斯基距離和VDM結合就可以處理混合屬性了:

當不同屬性的重要性不同時,可以使用加權距離:

參考資料:周志華《機器學習》