聚類之meanshift演算法

2021-09-06 21:17:28 字數 3054 閱讀 2181

在k-means 演算法中,最終的聚類效果受初始的聚類中心的影響,k-means++演算法的提出,為選擇較好的初始聚類中心提供了依據(選擇的的初始聚類中心盡可能的遠)

但是演算法中,聚類的類別個數k仍需事先確定,對於類別個數事先未知的資料集,k-means和k-means++將很難對其精確求解。

mean shift 演算法,又被稱作均值漂移演算法,與k-means演算法一樣,都是基於聚類中心的聚類演算法。

優點:不需要提前指定聚類類別個數

缺點:計算量大

在meanshift演算法中,聚類中心是通過在給定區域中的樣本的均值來確定的,通過不斷的迭代更新聚類中心,直到最終的聚類中心不再改變為止。

對於給定的n位空間r

nr^n

rn中的m個樣本點x(i

),i=

1,2…

…mx^,i=1,2……m

x(i),i

=1,2

……m,對於其中的乙個樣本x,其mean shift向量為:

m h(

x)=1

k∑x(

i)∈s

h(x(

i)−x

)m_h(x)=\frac\displaystyle\sum_∈s_h}(x^-x)

mh​(x)

=k1​

x(i)

∈sh​

∑​(x

(i)−

x)其中,s

hs_h

sh​指的是乙個半徑為h

hh的高維球區域

首先明確一點:每乙個樣本點都會對應乙個mean shift 向量。

在計算漂移均值向量的過程中,通過計算圓s

hs_h

sh​中的每乙個樣本點x(i

)x^x(i)

相對於點x的偏移向量(x(

i)−x

)(x^-x)

(x(i)−

x),再對所有的漂移均值向量求和然後再求平均。

根據漂移均值向量的計算公式可以得出乙個顯然的結論:

樣本點會向樣本密集的地方「漂移」(向量加法)

如上的均值漂移向量的求解方法存在乙個問題:即在s

hs_h

sh​的區域內,每乙個樣本點x(i

)x^x(i)

對樣本x的貢獻是一樣的。

而在實際中,每乙個樣本點x(i

)x^x(i)

對於樣本x的貢獻是不一樣的,這樣的貢獻可以通過核函式來進行度量。

在mean shift 演算法中引入核函式的目的是使得隨著樣本與被漂移點的距離不同,其漂移量對均值漂移向量的貢獻也不同。

高斯核函式是使用較多的一種核函式,其函式形式為:

k (x

1−x2

h)=1

sqrt

(2π)

hexp

(−(x

1−x2

)22h

2)k(\frac)=\fracexp(-\frac)

k(hx1​

−x2​

​)=s

qrt(

2π)h

1​ex

p(−2

h2(x

1​−x

2​)2

​)其中,h稱作頻寬,不同的頻寬的核函式如下如所示:

從圖中可以看出,

1)當頻寬一定時,樣本點之間的距離越近,其核函式的值越大;

2)當樣本點之間的距離相等,隨著高斯核函式的頻寬h的增大,核函式的值在減小。

引入核函式的mean shift 向量

假設在半徑為h的範圍s

hs_h

sh​範圍內,為了使得每乙個樣本點x(i

)x^x(i)

對於樣本x的貢獻不一樣,向基本的mean shift向量形式中增加核函式,得到如下的改進的mean shift 向量形式。

m h(

x)=∑

x(i)

∈sh[

k(x(

i)−x

h)∗(

x(i)

−x)]

∑x(i

)∈sh

[k(x

(i)−

xh)]

m_h(x)=\frac∈s_h}[k(\frac-x})*(x^-x)]}∈s_h}[k(\frac-x})]}

mh​(x)

=x(i

)∈sh

​∑​[

k(hx

(i)−

x​)]

x(i)

∈sh​

∑​[k

(hx(

i)−x

​)∗(

x(i)

−x)]

​其中,k(x

(i)−

xh)k(\frac-x})

k(hx(i

)−x​

)是高斯核函式。

mean shift演算法的基本原理

在 mean shift 演算法中,通過迭代的方式找到最終的聚類中心,即對每乙個樣本點計算其漂移均值,以計算出來的漂移均值作為新的起始點,重複以上的步驟,直到滿足終止的條件,得到的最終的均值漂移點即為最終的聚類中心。

逐點迭代,設定為位置中心

計算所有點到位置中心的距離

計算位置的漂移中心(所有點座標的加權平均,權值是由距離和高斯核確定的)

位置中心的質心的距離夠小就停止,該位置中心點就屬於(質心)類。(使用質心來標記所屬類別)

位置中心的質心的距離不夠小,位置中心移動到質心,繼續

每個點都被標記了(標記為某個質心),統計一下,有幾種標記。聚類完成。

Mean Shift 聚類演算法

原文 一 mean shift 演算法理論 mean shift 演算法是基於核密度估計的爬山演算法,可用於聚類 影象分割 跟蹤等,因為最近搞乙個專案,涉及到這個演算法的影象聚類實現,因此這裡做下筆記。1 均值漂移的基本形式 給定d維空間的n個資料點集x,那麼對於空間中的任意點x的mean shif...

meanshift聚類演算法跟蹤原理

這幾天學習 學習opencv 中的第十章運動跟蹤,裡面講到了meanshift演算法,根據書上所講實在難以理解,meanshift在運動跟蹤這個過程中到底起到什麼作用,於是經過幾天不斷地看相關資料和別人的部落格文章,慢慢思路清晰了,也終於知道了meanshift這個演算法它到底是什麼作用,起到什麼樣...

文字挖掘之聚類演算法之CLARA聚類演算法

clara 大型應用中的聚類方法 kaufmann and rousseeuw in 1990 不考慮整個資料集,而是選擇資料的一小部分作為樣本.clara演算法的步驟 它從資料集中抽取多個樣本集,對每個樣本集使用pam,並以最好的聚類作為輸出 clara 演算法的步驟 1 for i 1 to v...