1. 程式人生 > >資料探勘之k-最近鄰法(KNN與KMeans)

資料探勘之k-最近鄰法(KNN與KMeans)

最近鄰法基於類比學習,它既可以用於聚類,也可以用於分類
K-means是基於最近鄰法的聚類方法。演算法描述如下:
輸入:k, data[n];
(1) 選擇k個初始中心點,例如c[0]=data[0],…c[k-1]=data[k-1];
(2) 對於data[0]….data[n], 分別與c[0]…c[k-1]比較,假定與c[i]差值最少,就標記為i;
(3) 對於所有標記為i點,重新計算c[i]={ 所有標記為i的data[j]之和}/標記為i的個數;
(4) 重複(2)(3),直到所有c[i]值的變化小於給定閾值。

該演算法的最大優勢在於簡潔和快速。演算法的關鍵在於初始中心的選擇和距離公式。


KNN演算法是基於最近鄰法的分類方法。演算法描述如下
輸入:待分類未知類別案例專案。已知類別案例集合D,其中包含j個已知類別的案例
輸出:專案可能的類別
依公式計算Item與D1、D2......Dj之相似度。得到sim(Item,D1)、Sim(Item,D2).....、Sim(Item,Dj).
將Sim(Item,D1)、Sim(Item,D2).......Sim(Item,Dj)排序,若是超過相似度門檻t則放入鄰居案例集合NN。
自鄰居案例集合NN中取出前k名,依多數決,得到Item可能類別。