當前位置:編程學習大全網 - 源碼下載 - 聚類分析:k-均值和層次聚類

聚類分析:k-均值和層次聚類

雖然我個人不喜歡人被分圈子,因為會有歧視、偏見、排斥、矛盾,“物以類聚”確實是客觀存在的——這裏面包含了聚類分析的思想。

上面說的機器學習算法主要是分類和回歸,這兩類的應用場景非常明確,就是分類變量或者數值變量的預測。聚類分析是根據樣本之間的距離或相似性(親緣性)將相似性較大、差異較小的樣本歸入壹類(簇),最終形成多個簇,使同壹簇內的樣本相似度高,不同簇間差異大的壹種聚類。

有些人不明白分類和聚類的區別。其實這個很簡單:分類是壹個變量,有幾個已知的具體情況,預測什麽樣的情況;聚類就是試圖把相似的樣本聚集在壹起,把不同的樣本分開。比如妳判斷壹個人是男是女,這就是分類。讓男人站成壹排,女人站成壹排。這就是聚類。

聚類算法很多,其中k-means和層次聚類是經典的。

k-means的k是最終聚集的聚類數。您應該提前指定這壹點。K-means在常見的機器學習算法中相當簡單,基本流程如下:

k-means的聚類過程演示如下:

雖然k-means聚類分析的原理很簡單,但是它的缺點也很明顯:

值得壹提的是,計算距離的方法有很多種,不壹定是笛卡爾距離;在計算距離之前進行歸壹化。

k-means的原理雖然簡單,但是層次聚類法的原理更簡單。其基本過程如下:

層次聚類不指定具體的簇數,只關註簇間的距離,最終形成樹形圖。

通過這個樹形圖,無論妳想分成多少簇,都可以很快畫出來。

下面以癌細胞的詳細數據為例,演示K-means和層次聚類的過程。

可以看出,選擇不同的距離指數,最終的聚類效果是不同的。其中最長距離和類間平均距離用的比較多,因為產生的譜系圖比較均衡。

圖中的紅線將聚類分為四類,因此很容易看出哪些樣本屬於哪個聚類。

以上是層次聚類的結果,但是如果用k-means聚類,結果很可能不壹樣。

  • 上一篇:黑客的歷史~
  • 下一篇:怎樣在linux中利用upupw安裝php+mysql的web站
  • copyright 2024編程學習大全網