泛統計理論初探 均值漂移演算法初探

2021-10-05 10:35:14 字數 1397 閱讀 5085

均值漂移聚類演算法簡介

本文主要是介紹均值漂移聚類演算法,又稱為mean-shift-cluster,該演算法屬於無監督學習的聚類方法。主要從演算法的使用場景、步驟、核心思路等角度去介紹演算法。之前其實也介紹過一些聚類的演算法,比如kmeans、dbscan等方法,本次介紹的均值漂移聚類演算法是一種基於質心的演算法,該方法最終找出的是資料點密集的區域。

均值漂移聚類演算法和本人之前文章介紹的聚類演算法有一些不同,主要是該演算法的核心理念是不停地向密度更高的方向,或者說是更密集的方向去移動,本質上對於那些顯著稀疏和密集的資料分布有著良好的區分,但是對於一些稀疏和密集不顯著區分的資料,可能使用均值漂移聚類的演算法效果就不是特別好。均值漂移聚類演算法是一直移動,不停地修改每次質心點,它的思路就是:滑動-修改質心候選點-滑動-穩定後最終過濾處理 ,下面來介紹該演算法的步驟。注意,步驟是以某一區域性的資料做步驟的解釋,正常情況下是所有的資料進行均值漂移聚類,有n個初始點,下面的步驟為了簡單說明,選取了1個初始點進行說明。

1)首先使用者需要決定滑動視窗的半徑r,然後隨機確定初始點a作為質心,讓初始點a以半徑為r的圓形區域進行滑動,每次移動均朝向密度更高,也就是資料樣本越多的地方移動。

2)每次在經過一次滑動以後,就要重新計算滑動視窗內部所有的點的均值作為新的質心點,即有一定的質心偏移,也可以看作「漂移」,也是該演算法的名稱的**。重新計算確定質心後,繼續按上一步的步驟進行移動,即向著密度更高的區域進行移動。

3)反覆重複步驟1和步驟2,直到移動到密度最高的區域,即無論怎麼繼續移動,都不會在圓形區域內收下更多的資料樣本點,也就是說當前區域的密度是最高的,並且無法繼續增加密度了。

其實上述的三個步驟就是乙個點的均值漂移聚類演算法的步驟,實際情況是會有很多個初始點,一起進行滑動。當存在多個滑動圓形區域有重疊的時候,留下那個含有更多點的視窗,捨棄更少點的視窗,相對於聚類中的合併操作。並且以更多點的視窗進行質心的計算,並繼續進行滑動重複上述三個步驟。

其實均值漂移演算法還是有優點的,即它無需事先指定類的數量,並且受異常值的影響非常小,這兩點相對於k-means演算法是有優勢的,該演算法要比k-means演算法更合理,即完成的是「自動聚出n類」,而不是事先指定要n類。但是該演算法的缺點在於要決定滑動視窗半徑r,如果r定的過大或者太小,都會對聚類結果造成顯著的影響。

對於該演算法其實還可以進一步進行優化,比如可以使用中位數而不是平均值來進行質心的漂移;或者在選取初始點之前可以進行一次分層抽樣,拿到每個區域的具有代表性的資料,而不是隨機選擇初始點。

總的來說,均值漂移聚類在各個聚類場景都可以使用,不會拘泥於資料是球形簇狀的分布等條件,建議在使用該演算法的時候和其他聚類演算法一起使用,或者對該演算法在使用前先進行抽樣等操作,可以進一步提公升該演算法的聚類效果。另外,初學者需要區分多種聚類方法的區別以及使用的前提和使用場景,不能隨意使用某種聚類演算法。

泛統計理論初探 初探遺傳演算法

遺傳演算法理解與思路 本文將會簡要的介紹遺傳演算法,該方法也是一種啟發式搜尋的演算法,它是 於生物學進化規律的經典概念,就是適者生存 優勝劣汰的思路。該演算法是上個世紀70年代被提出的,它不需要像神經網路之類的方法需要對函式的連續性有要求,而是可以使用基於概率的思路去進行搜尋,結合遺傳 變異 選擇的...

泛統計理論初探 初探XGBoost方法

初探xgboost方法 在本文中將會繼續介紹整合學習裡的boosting思路,並且會選用xgboost方法來介紹。xgboost是一種優化過的提公升學習方法,該方法在一些競賽或者專案中經常被使用,它的 正確率是比較高的,總體來說效能不錯。其實從該方法的名字我們可以發現,這是一種在gbdt方法的基礎上...

泛統計理論初探 初探MCMC取樣和MH取樣

初探mcmc取樣方法和mh取樣方法 在之前介紹的文章中,我們介紹了基本的取樣方法。在了解簡單的取樣方法後,本次文章將會介紹mcmc取樣方法與優化的mh取樣方法,這兩種方法對於一些高維度特徵的資料可以進行比較合理的取樣。mcmc取樣方法其實就是蒙特卡洛馬爾科夫鏈的取樣方法,因為這兩個術語的英文簡寫都是...