1. 典型聚類算法
1.1 基於划分的方法
代表:kmeans算法
·指定k個聚類中心
·(計算數據點與初始聚類中心的距離)
·(對於數據點
,找到最近的
{i}ci(聚類中心),將
分配到
{i}ci中)
·(更新聚類中心點,
是新類別數值的均值點)
·(計算每一類的偏差)
·返回
返回第二步
1.2 基於層次的方法
代表:CURE算法
·每個樣本作為單獨的一個類別
·
·合並,
為
·遍歷完本次樣本,合並成新的類別后,若存在多個類別,則返回第二步
·遍歷完本次樣本,合並成新的類別后,若所有樣本為同一類別,跳出循環,輸出每層類別
1.3 基於網格的方法
代表:STING算法
·將數據集合X划分多層網格結構,從某一層開始計算
·查詢該層網格間的屬性值,計算屬性值與閾值的關系,判定網格間的相關情況,不相關的網格不作考慮
·如果網格相關,則進入下一層的相關區域繼續第二步,直到下一層為最底層
·返回相關網格結果
1.4 基於密度的方法
代表:DBSCAN算法
·輸入數據集合X,隨機選取一點,並找出這個點的所有高密度可達點
·遍歷此點的所有鄰域內的點,並尋找這些密度可達點,判定某點
鄰域內的點,並尋找這些點密度可達點,判定某點的
鄰域內的點數是否超過閾值點數,超過則構成核心點
·掃描數據集,尋找沒有被聚類的數據點,重復第二步
·輸出划分的類,並輸出異常值點(不和其他密度相連)
1.5 神經網絡的方法
代表:SOM算法
·數據集合,權重向量為
,
,歸一化處理
·尋找獲勝的神經元,找到最小距離,對於每一個輸入數據,找到與之最相匹配的節點
令為
為
的距離,更新權重:
·更新臨近節點,,其中
代表學習率
1.6 基於圖的聚類方法
代表:譜聚類算法
·計算鄰接矩陣,度矩陣
,
·計算拉普拉及矩陣
·計算歸一化拉普拉斯矩陣
·計算的特征值和特征向量
·對Q矩陣進行聚類,得到聚類結果
2. 聚類算法的評價指標
一個好的聚類方法可以產生高品質簇,是的簇內相似度高,簇間相似度低。一般來說,評估聚類質量有兩個標准,內部質量評價指標和外部評價指標。
2.1 內部質量評價標准
內部評價指標是利用數據集的屬性特征來評價聚類算法的優劣。通過計算總體的相似度,簇間平均相似度或簇內平均相似度來評價聚類質量。評價聚類效果的高低通常使用聚類的有效性指標,所以目前的檢驗聚類的有效性指標主要是通過簇間距離和簇內距離來衡量。這類指標常用的有CH(Calinski-Harabasz)指標等
CH指標
CH指標定義為:
其中表示類間距離差矩陣的跡,
表示類內離差矩陣的跡,
是整個數據集的均值,
是第
個簇
的均值,
代表聚類個數,
代表當前的類。
值越大,聚類效果越好,
主要計算簇間距離與簇內距離的比值
簇的凝聚度
簇內點對的平均距離反映了簇的凝聚度,一般使用組內誤差平方(SSE)表示:
簇的鄰近度
簇的鄰近度用組間平方和(SSB)表示,即簇的質心到簇內所有數據點的總平均值
的距離的平方和
2.2 外部質量評價標准
外部質量評價指標是基於已知分類標簽數據集進行評價的,這樣可以將原有標簽數據與聚類輸出結果進行對比。外部質量評價指標的理想聚類結果是:具有不同類標簽的數據聚合到不同的簇中,具有相同類標簽的數據聚合相同的簇中。外部質量評價准則通常使用熵,純度等指標進行度量。
熵:
簇內包含單個類對象的一種度量。對於每一個簇,首先計算數據的類分布,即對於簇,計算簇
的成員屬於類
的概率
其中表示簇
中所有對象的個數,而
是簇
中類
的對象個數。使用類分布,用標准公式:
計算每個簇的熵,其中K是類個數。簇集合的總熵用每個簇的熵的加權和計算即:
其中是簇的個數,而
是簇內數據點的總和
純度:
簇內包含單個類對象的另外一種度量。簇的純度為
,而聚類總純度為:
歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/
歡迎關注PyTorch官方中文教程站:
http://pytorch.panchuang.net/