① 數據特征的量化。如果數據特征中存在非數值類型,則需要運用一定的手段量化成數值。若樣本中存在顏色這一特征屬性,可將顏色轉化成灰度值來計算距離;或為了保證參數取值較大時的影響力覆蓋參數取值較小時的影響力,通常需要對樣本的特征數值進行歸一化處理。
② 樣本間距離計算公式的選擇。常見的距離計算公式有歐氏距離、曼哈頓距離、明氏距離、余弦距離等。不同情況下對公式的選擇不同,例如:樣本變量為連續型時,通常采用歐氏距離;樣本變量為非連續型時,通常采用明氏距離。
③ K值的選擇。K為自定義的常數,K值的選擇對聚類的結果有很大的影響。通常采用交叉驗證法確定K的取值,且K的取值一般小于訓練樣本數的平方根。
(2)K近鄰算法過程
K近鄰算法過程具體描述如下。
① 構建訓練集和測試集,使訓練集按照已有的標準分成離散型數值類或連續型數值類。
② 根據樣本集為離散型或連續型選擇適當的距離計算公式,計算測試集中的數據與各個訓練集數據之間的距離,并排序。
③ 利用交叉驗證法確定K的取值,并選擇距離最小的K個點。
④ 確定K個點所在類別的出現頻率,選擇出現頻率最高的類別作為測試集的預測類。
2.K均值聚類(K-means)
K均值聚類是劃分方法中經典的聚類算法之一。其優點是算法簡單,聚類效果較好,效率較高,對于處理大數據集有較好的可伸縮性;缺點是 K 值需要事先指定,受孤立點或噪聲的影響較大,而且由于算法本身是迭代的,最終得到的結果有可能是局部最優而不是全局最優。
(1)K均值算法基本思想
K均值算法的基本思想是將n個樣本點劃分或聚類成K個簇,使簇內具有較高的相似度,而簇間的相似度較低。首先確定所要聚類的最終數目 K,并從樣本中隨機選擇 K 個樣本作為中心;其次將集合中每個數據點被劃分到與其距離最近的簇中心所在的類簇之中,形成 K 個聚類的初始分布;然后對分配完的每一個類簇內對象計算平均值,重新確定新的簇中心,繼續進行數據分配過程;迭代執行若干次,若簇中心不再發生變化,且聚類準則函數收斂,則將數據對象完全分配至所屬的類簇中;否則繼續執行迭代過程,直至聚類準則函數收斂。
聚類準則函數用于判斷聚類質量的高低,一般采用誤差平方和準則函數 E 的值變化情況判斷是否繼續進行迭代過程,E的值在每次迭代過程中逐漸減小,最終收斂至一個固定的值,則迭代過程結束,否則繼續執行迭代過程,直至E收斂。
誤差平方和準則函數E定義如下:
其中,E是所有樣本點的平方誤差的總和,p是某一樣本點,mi是簇Ci的平均值。
3.K中心點聚類(K-mediods)
K中心點聚類算法是對K均值聚類的改進,屬于基于劃分方法的聚類。與K均值聚類算法相比,優點是減輕了對孤立點的敏感性,提高了聚類結果的準確率;缺點是算法的復雜性比 K 均值聚類算法高。K 中心聚類算法與 K 均值聚類算法最大的區別在于選擇將簇內離平均值最近的對象作為該簇的中心,而不是將簇內各對象的平均值作為簇的中心。
(1)K中心點算法基本思想
K中心點算法的基本思想如下。
① 確定所要聚類的最終數目K,并從樣本中隨機選擇K個樣本作為中心。
② 將集合中每個數據點被劃分到與其距離最近的簇中心所在的類簇之中,形成K個聚類的初始分布。
③ 反復地利用各簇中的非中心點樣本來替代中心點樣本,并計算各簇中各中心點樣本與非中心點樣本的距離之和。
④ 迭代執行若干次,尋找最小距離之和,通過不斷更新各距離值來不斷調整聚類的結果。
(2)K中心點算法過程
K中心點算法具體描述如下。
假設給定的n個樣本是,每個x(i)∈Rn,其中樣本間的距離選擇歐氏距離。
輸入:n個樣本和簇的數目K。
輸出:K個簇。
具體步驟如下。
① 確定所要聚類的最終數目K,并從樣本中隨機選擇K個樣本作為中心,即o1,o2,",ok(ok∈D)。
② 對每個樣本p,計算并確定其應屬類別,使得其歐氏距離M最小。
③ 調整聚類中心,隨機選取一個非簇中心樣本orandom代替om (1≤m≤k),重新分配所有剩余樣本p,使得