【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )
文章目錄
- I . 聚類主要算法
- II . 基于劃分的聚類方法
- III . 基于層次的聚類方法
- IV . 聚合層次聚類 圖示
- V . 劃分層次聚類 圖示
- VI . 基于層次的聚類方法 切割點選取
- VII . 基于密度的方法
- VIII . 基于方格的方法
- IX . 基于模型的方法
I . 聚類主要算法
聚類主要算法 :
① 基于劃分的聚類方法 : K-Means 方法 ;
② 基于層次的聚類方法 : Birch ;
③ 基于密度的聚類方法 : DBSCAN ( Density-Based Spatial Clustering of Applications with Noise ) ;
④ 基于方格的方法 ;
⑤ 基于模型的方法 : GMM 高斯混合模型 ;
II . 基于劃分的聚類方法
基于劃分的方法 簡介 : 基于劃分的方法 , 又叫基于距離的方法 , 基于相似度的方法 ;
① 概念 : 給定 nnn 個數據樣本 , 使用劃分方法 , 將數據構建成 kkk 個劃分 (k≤n)(k \leq n)(k≤n) , 每個劃分代表一個聚類 ;
② 分組 : 將數據集 分成 kkk 組 , 每個分組至少要有一個樣本 ;
③ 分組與樣本 對應關系 : 每個分組有 111 個或多個樣本對象 ( 111 對多 ) , 每個對象同時只能在 111 個分組中 ( 111 對 111 ) ;
④ 硬聚類 與 軟聚類 : 每個數據對象只能屬于一個組 , 這種分組稱為硬聚類 ; 軟聚類每個對象可以屬于不同的組 ;
III . 基于層次的聚類方法
1 . 基于層次的聚類方法 概念 : 將數 據集樣本對象 排列成 樹結構 , 稱為 聚類樹 , 在指定的層次 ( 步驟 ) 上切割數據集樣本 , 切割后時刻的 聚類分組 就是 聚類算法的 聚類結果 ;
2 . 基于層次的聚類方法 : 一棵樹可以從葉子節點到根節點 , 也可以從根節點到葉子節點 , 基于這兩種順序 , 衍生出兩種方法分支 , 分別是 : 聚合層次聚類 , 劃分層次聚類 ;
3 . 聚合層次聚類 ( 葉子節點到根節點 ) : 開始時 , 每個樣本對象自己就是一個聚類 , 稱為 原子聚類 , 然后根據這些樣本之間的 相似性 , 將這些樣本對象 ( 原子聚類 ) 進行 合并 ;
常用的聚類算法 : 大多數的基于層次聚類的方法 , 都是 聚合層次聚類 類型的 ; 這些方法從葉子節點到根節點 , 逐步合并的原理相同 ; 區別只是聚類間的相似性計算方式不同 ;
4 . 劃分層次聚類 ( 根節點到葉子節點 ) : 開始時 , 整個數據集的樣本在一個總的聚類中 , 然后根據樣本之間的相似性 , 不停的切割 , 直到完成要求的聚類操作 ;
5 . 算法性能 : 基于層次的聚類方法的時間復雜度為 O(N2)O(N^2)O(N2) , 如果處理的樣本數量較大 , 性能存在瓶頸 ;
IV . 聚合層次聚類 圖示
1 . 聚合層次聚類 圖示 :
① 初始狀態 : 最左側 五個 數據對象 , 每個都是一個聚類 ;
② 第一步 : 分析相似度 , 發現 a,ba , ba,b 相似度很高 , 將 {a,b}\{a ,b\}{a,b} 分到一個聚類中 ;
③ 第二步 : 分析相似度 , 發現 d,ed, ed,e 相似度很高 , 將 {d,e}\{d, e\}{d,e} 分到一個聚類中 ;
④ 第三步 : 分析相似度 , 發現 ccc 與 d,ed,ed,e 相似度很高 , 將 ccc 數據放入 {d,e}\{d, e\}{d,e} 聚類中 , 組成 {c,d,e}\{c,d, e\}{c,d,e} 聚類 ;
⑤ 第四步 : 分析相似度 , 此時要求的相似度很低就可以將不同的樣本進行聚類 , 將前幾步生成的兩個聚類 , 合并成一個聚類 {a,b,c,d,e}\{a, b, c, d, e\}{a,b,c,d,e} ;
2 . 切割點說明 : 實際進行聚類分析時 , 不會將所有的步驟走完 , 這里提供四個切割點 , 聚類算法進行聚類時 , 可以在任何一個切割點停止 , 使用當前的聚類分組當做聚類結果 ;
① 切割點 111 : 在切割點 111 停止 , 會得到 555 個聚類分組 , {a}\{a\}{a} , {b}\{b\}{b}, {c}\{c\}{c}, ozvdkddzhkzd\{d\}{d} , {e}\{e\}{e} ;
② 切割點 222 : 在切割點 222 停止 , 會得到 444 個聚類分組 , {a,b}\{a, b\}{a,b} , {c}\{c\}{c}, ozvdkddzhkzd\{d\}{d} , {e}\{e\}{e} ;
③ 切割點 333 : 在切割點 333 停止 , 會得到 333 個聚類分組 , {a,b}\{a, b\}{a,b} , {c}\{c\}{c}, {d,e}\{d, e\}{d,e} ;
④ 切割點 444 : 在切割點 444 停止 , 會得到 222 個聚類分組 ; {a,b}\{a, b\}{a,b} , {c,d,e}\{c, d, e\}{c,d,e} ;
⑤ 走完整個流程 : 會得到 111 個聚類分組 , {a,b,c,d,e}\{a, b ,c, d, e\}{a,b,c,d,e} ;
V . 劃分層次聚類 圖示
1 . 劃分層次聚類 圖示 :
① 初始狀態 : 最左側 五個 數據對象 , 屬于一個聚類 ;
② 第一步 : 分析相似度 , 切割聚類 , 將 {c,d,e}\{c,d, e\}{c,d,e} 與 {a,b}\{a ,b\}{a,b} 劃分成兩個聚類 ;
③ 第二步 : 分析相似度 , 將 {c,d,e}\{c,d, e\}{c,d,e} 中的 {c}\{c\}{c} 與 {d,e}\{d, e\}{d,e} 劃分成兩個聚類 ;
④ 第三步 : 分析相似度 , 將 {d,e}\{d, e\}{d,e} 拆分成 ozvdkddzhkzd\{d\}{d} 和 {e}\{e\}{e} 兩個聚類 ;
⑤ 第四步 : 分析相似度 , 將 {a,b}\{a ,b\}{a,b} 拆分成 {a}\{a\}{a} 和 {b}\{b\}{b} 兩個聚類 , 至此所有的數據對象都劃分成了單獨的聚類 ;
2 . 切割點說明 : 實際進行聚類分析時 , 不會將所有的步驟走完 , 這里提供四個切割點 , 聚類算法進行聚類時 , 可以在任何一個切割點停止 , 使用當前的聚類分組當做聚類結果 ;
① 切割點 111 : 在切割點 111 停止 , 會得到 111 個聚類分組 , {a,b,c,d,e}\{a, b ,c, d, e\}{a,b,c,d,e} ;
② 切割點 222 : 在切割點 222 停止 , 會得到 222 個聚類分組 ; {a,b}\{a, b\}{a,b} , {c,d,e}\{c, d, e\}{c,d,e} ;
③ 切割點 333 : 在切割點 333 停止 , 會得到 333 個聚類分組 , {a,b}\{a, b\}{a,b} , {c}\{c\}{c}, {d,e}\{d, e\}{d,e}$ ;
④ 切割點 444 : 在切割點 444 停止 , 會得到 444 個聚類分組 , {a,b}\{a, b\}{a,b} , {c}\{c\}{c}, ozvdkddzhkzd\{d\}{d} , {e}\{e\}{e} ;
⑤ 走完整個流程 : 會得到 555 個聚類分組 , {a}\{a\}{a} , {b}\{b\}{b}, {c}\{c\}{c}, ozvdkddzhkzd\{d\}{d} , {e}\{e\}{e} ;
VI . 基于層次的聚類方法 切割點選取
1 . 算法終止條件 ( 切割點 ) : 用戶可以指定聚類操作的算法終止條件 , 即上面圖示中的切割點 , 如 :
① 聚類的最低個數 : 聚合層次聚類中 , nnn 個樣本 , 開始有 nnn 個聚類 , 逐步合并 , 聚類個數逐漸減少 , 當聚類個數達到最低值 minminmin , 停止聚類算法 ;
② 聚類最高個數 : 劃分層次聚類中 , nnn 個樣本 , 開始有 111 個聚類 , 逐步劃分 , 聚類個數逐漸增加 , 當聚類個數達到最大值 maxmaxmax , 停止聚類算法 ;
③ 聚類樣本的最低半徑 : 聚類的數據樣本范圍不能無限擴大 , 指定一個閾值 , 只有將該閾值內的樣本放入一組 ; 半徑指的是所有對象距離其平均點的距離 ;
2 . 切割點回退問題 : 切割點一旦確定 , 便無法回退 ; 這里以聚合層次聚類為例 :
① 處于切割點 444 : 如已經執行到了步驟三 , 此時處于切割點 444 , 聚類分組為 {a,b}\{a, b\}{a,b} , {c,d,e}\{c, d, e\}{c,d,e} ;
② 試圖回退到 切割點 333 : 想要會回退到切割點 333 的狀態 , 視圖將聚類分組恢復成 {a,b}\{a, b\}{a,b} , {c}\{c\}{c}, {d,e}\{d, e\}{d,e} ;
③ 無法回退 : 該操作是無法實現的 , 聚類分組一旦 合并 或 分裂 , 此時就無法回退 ;
VII . 基于密度的方法
1 . 基于距離聚類的缺陷 : 很多的聚類方法 , 都是 基于樣本對象之間的距離 ( 相似度 ) 進行的 , 這種方法對于任意形狀的分組 , 就無法識別了 , 如下圖左側的聚類模式 ; 這種情況下可以使用基于密度的方法進行聚類操作 ;
基于距離的方法 , 是基于歐幾里得距離函數得來 , 其基本的形狀都是球狀 , 或凸形狀 , 如下圖右側的形狀 ; 無法計算出凹形狀 , 如下圖左側的形狀 ;
2 . 基于密度的聚類方法 : 相鄰的區域內 樣本對象 的密度超過某個閾值 , 聚類算法就繼續執行 , 如果周圍區域密度都很小 , 那么停止聚類方法 ;
① 密度 : 某 單位大小 區域內的樣本對象個數 ;
② 聚類分組要求 : 在聚類分組中 , 每個分組的數據樣本密度都 必須達到密度要求的最低閾值 ;
3 . 基于密度的聚類方法 算法優點 :
① 排除干擾 : 過濾噪音數據 , 即密度很小 , 樣本分布稀疏的數據 ;
② 增加聚類模式復雜度 : 聚類算法可以識別任意形狀的分布模式 , 如上圖左側的聚類分組模式 ;
VIII . 基于方格的方法
1 . 基于方格的方法 : 將數據空間劃分成 一個個方格 , 在這些方格數據結構上 , 將每個方格中的數據樣本 , 當做一個數據處理 , 進行聚類操作 ;
2 . 基于方格的方法優點 : 處理速度很快 , 將每個方格都作為一個數據 , 如果分成 少數的幾個方格進行聚類操作 , 聚類瞬間完成 ; 其速度與數據集樣本個數無關 , 與劃分的數據方格個數有關 ;
3 . 局限性 : 該方法的錯誤率很高 ;
IX . 基于模型的方法
基于模型的方法
① 基于統計的方法 : GMM 高斯混合模型 ;
② 神經網絡方法 ;
總結
以上是生活随笔為你收集整理的【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据挖掘】K-NN 分类 ( 简介 |
- 下一篇: 【数据挖掘】基于划分的聚类方法 ( K-