考慮到學習知識的順序及效率問題,所以后續(xù)的幾種聚類方法不再詳細講解原理,也不再寫python實現(xiàn)的源代碼,只介紹下算法的基本思路,使大家對每種算法有個直觀的印象,從而可以更好的理解函數(shù)中參數(shù)的意義及作用,而重點是放在如何使用及使用的場景。
(題外話: 今天看到一篇博文:剛接觸機器學習這一個月我都做了什么? 里面對機器學習階段的劃分很不錯,就目前而言我們只要做到前兩階段即可)
因為前兩篇博客已經(jīng)介紹了兩種算法,所以這里的算法編號從3開始。
3.Mean-shift
1)概述
Mean-shift(即:均值遷移)的基本思想:在數(shù)據(jù)集中選定一個點,然后以這個點為圓心,r為半徑,畫一個圓(二維下是圓),求出這個點到所有點的向量的平均值,而圓心與向量均值的和為新的圓心,然后迭代此過程,直到滿足一點的條件結(jié)束。(Fukunage在1975年提出)
后來Yizong Cheng 在此基礎上加入了 核函數(shù) 和 權重系數(shù) ,使得Mean-shift 算法開始流行起來。目前它在聚類、圖像平滑、分割、跟蹤等方面有著廣泛的應用。
2)圖解過程
為了方便大家理解,借用下幾張圖來說明Mean-shift的基本過程。
由上圖可以很容易看到,Mean-shift 算法的核心思想就是不斷的尋找新的圓心坐標,直到密度最大的區(qū)域。
3)Mean-shift 算法函數(shù)
a)核心函數(shù):sklearn.cluster.MeanShift(核函數(shù):RBF核函數(shù))
由上圖可知,圓心(或種子)的確定和半徑(或帶寬)的選擇,是影響算法效率的兩個主要因素。所以在sklearn.cluster.MeanShift中重點說明了這兩個參數(shù)的設定問題。
b)主要參數(shù)
bandwidth :半徑(或帶寬),float型。如果沒有給出,則使用sklearn.cluster.estimate_bandwidth計算出半徑(帶寬).(可選)
seeds :圓心(或種子),數(shù)組類型,即初始化的圓心。(可選)
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26