上面說的機器學習算法主要是分類和回歸,這兩類的應用場景非常明確,就是分類變量或者數值變量的預測。聚類分析是根據樣本之間的距離或相似性(親緣性)將相似性較大、差異較小的樣本歸入壹類(簇),最終形成多個簇,使同壹簇內的樣本相似度高,不同簇間差異大的壹種聚類。
有些人不明白分類和聚類的區別。其實這個很簡單:分類是壹個變量,有幾個已知的具體情況,預測什麽樣的情況;聚類就是試圖把相似的樣本聚集在壹起,把不同的樣本分開。比如妳判斷壹個人是男是女,這就是分類。讓男人站成壹排,女人站成壹排。這就是聚類。
聚類算法很多,其中k-means和層次聚類是經典的。
k-means的k是最終聚集的聚類數。您應該提前指定這壹點。K-means在常見的機器學習算法中相當簡單,基本流程如下:
k-means的聚類過程演示如下:
雖然k-means聚類分析的原理很簡單,但是它的缺點也很明顯:
值得壹提的是,計算距離的方法有很多種,不壹定是笛卡爾距離;在計算距離之前進行歸壹化。
k-means的原理雖然簡單,但是層次聚類法的原理更簡單。其基本過程如下:
層次聚類不指定具體的簇數,只關註簇間的距離,最終形成樹形圖。
通過這個樹形圖,無論妳想分成多少簇,都可以很快畫出來。
下面以癌細胞的詳細數據為例,演示K-means和層次聚類的過程。
可以看出,選擇不同的距離指數,最終的聚類效果是不同的。其中最長距離和類間平均距離用的比較多,因為產生的譜系圖比較均衡。
圖中的紅線將聚類分為四類,因此很容易看出哪些樣本屬於哪個聚類。
以上是層次聚類的結果,但是如果用k-means聚類,結果很可能不壹樣。