均值漂移(Meanshift)算法理解
1.均值漂移的基本概念:沿着密度上升方向尋找聚簇點
設想在一個有N個樣本點的特徵空間
初始確定一箇中心點center,計算在設置的半徑爲D的圓形空間內所有的點(xi)與中心點center的向量
計算整個圓形空間內所有向量的平均值,得到一個偏移均值
將中心點center移動到偏移均值位置
重複移動,直到滿足一定條件結束
2.均值漂移運算:
2.1 Mean shift的基礎公式:
偏移均值
Sh:以x爲中心點,半徑爲h的高維球區域; k:包含在Sh範圍內點的個數; xi:包含在Sh範圍內的點
中心更新
將中心點移動到偏移均值位置
Mt爲t狀態下求得的偏移均值; xt爲t狀態下的中心
2.2 引入核函數的偏移均值:
核函數
核函數只是用來計算映射到高維空間之後的內積的一種簡便方法,目的爲讓低維的不可分數據變成高維可分。利用核函數,可以忽略映射關係,直接在低維空間中完成計算。
引入核函數的偏移均值
在均值漂移中引入核函數的概念,能夠使計算中距離中心的點具有更大的權值,反映距離越短,權值越大的特性。改進的偏移均值:
其中,x爲中心點;xi爲帶寬範圍內的點;n爲帶寬範圍內的點的數量;g(x)爲對核函數的導數求負
3.均值漂移的應用:
聚類(K均值聚類)
圖像分割(將圖像映射到特徵空間,對採樣點進行均值漂移聚類)
對象輪廓檢驗(光線傳播算法)
目標跟蹤(求解最優化Bhattacharya係數函數)
4.均值漂移運算步驟:
1、在未被分類的數據點中隨機選擇一個點作爲中心點;
2、找出離中心點距離在帶寬之內的所有點,記做集合M,認爲這些點屬於簇c。
3、計算從中心點開始到集合M中每個元素的向量,將這些向量相加,得到偏移向量。
4、中心點沿着shift的方向移動,移動距離是偏移向量的模。
5、重複步驟2、3、4,直到偏移向量的大小滿足設定的閾值要求,記住此時的中心點。
6、重複1、2、3、4、5直到所有的點都被歸類。
7、分類:根據每個類,對每個點的訪問頻率,取訪問頻率最大的那個類,作爲當前點集的所屬類。