機器學習算法與Python實踐之(五)k均值聚類(k-means)原理補充

Mean-shift

 1)概述

   Mean-shift(即:均值遷移)的基本思想:在數據集中選定一個點,然後以這個點爲圓心,r爲半徑,畫一個圓(二維下是圓),求出這個點到所有點的向量的平均值,而圓心與向量均值的和爲新的圓心,然後迭代此過程,直到滿足一點的條件結束。(Fukunage在1975年提出)

  後來Yizong Cheng 在此基礎上加入了 核函數 和 權重係數 ,使得Mean-shift 算法開始流行起來。目前它在聚類、圖像平滑、分割、跟蹤等方面有着廣泛的應用。

2)圖解過程

   爲了方便大家理解,借用下幾張圖來說明Mean-shift的基本過程。



    由上圖可以很容易看到,Mean-shift 算法的核心思想就是不斷的尋找新的圓心座標,直到密度最大的區域。

3)Mean-shift 算法函數

   a)核心函數:sklearn.cluster.MeanShift(核函數:RBF核函數)

       由上圖可知,圓心(或種子)的確定和半徑(或帶寬)的選擇,是影響算法效率的兩個主要因素。所以在sklearn.cluster.MeanShift中重點說明了這兩個參數的設定問題。

   b)主要參數

       bandwidth :半徑(或帶寬),float型。如果沒有給出,則使用sklearn.cluster.estimate_bandwidth計算出半徑(帶寬).(可選)

       seeds :圓心(或種子),數組類型,即初始化的圓心。(可選)

       bin_seeding :布爾值。如果爲真,初始內核位置不是所有點的位置,而是點的離散版本的位置,其中點被分類到其粗糙度對應於帶寬的網格上。將此選項設置爲True將加速算法,因爲較少的種子將被初始化。默認值:False.如果種子參數(seeds)不爲None則忽略。

   c)主要屬性

      cluster_centers_ : 數組類型。計算出的聚類中心的座標。

      labels_ :數組類型。每個數據點的分類標籤。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章