一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

經(jīng)典機(jī)器學(xué)習(xí)算法-第十五章MeanShift聚類

 NeighborMrSun 2023-02-27 發(fā)布于湖南
EDUCATION AND TRAINING


一、Mean-shift概述

    Mean-shift又稱均值遷移算法,它是指在數(shù)據(jù)集中選定一個(gè)點(diǎn),然后以這個(gè)點(diǎn)為圓心,為半徑,畫一個(gè)圓(二維下是圓),求出這個(gè)圓內(nèi)圓心到其他點(diǎn)的向量的平均值,而圓心與向量均值的和為新的圓心,然后迭代此過程,直到滿足一點(diǎn)的條件結(jié)束。

Mean-shift向量計(jì)算公式為:


圖片

其中多維圓定義:


圖片

圖解過程:


圖片

    基本形式中隱含了在有效區(qū)域中對(duì)所有的樣本點(diǎn)一視同仁的假設(shè),但這通常是不成立,最常見的就是隨著距離的增加,作用就越小,因此,就有了如下的改進(jìn)形式:


圖片

其中


圖片

 為核函數(shù),h表示帶寬(嚴(yán)格來講因?yàn)閹捑仃?,?strong>對(duì)角矩陣,但通常對(duì)角元素取相等,故可表示為標(biāo)量),w(xi)為樣本權(quán)重。由此可對(duì)基本形式進(jìn)行更為合理的表示,如果采用均勻核函數(shù),就可以和上述基本形式達(dá)到統(tǒng)一表示,即帶寬內(nèi)每個(gè)樣本占相同的比重:

圖片

    核密度估計(jì)首先是密度估計(jì),如果要估計(jì)一個(gè)點(diǎn) x 對(duì)應(yīng)的概率密度,那么在 x 附近劃定一個(gè)體積 d, 數(shù)一下在 d 里面的點(diǎn)的個(gè)數(shù) n,n/d 就是 x 的密度 f(x) 的一個(gè)估計(jì)。但這樣只利用到 d 體積內(nèi)的點(diǎn),如果我們把 d 內(nèi)的點(diǎn)的個(gè)數(shù) n 的計(jì)數(shù)方法改變一下,比如,我們認(rèn)為:離 x 越近,越應(yīng)該計(jì)入在 d 空間內(nèi),于是我們用一個(gè)函數(shù) K(xi-x)來衡量應(yīng)不應(yīng)該計(jì)入的概率。顯然 xi = x 的時(shí)候應(yīng)該計(jì)入,xi - x 無(wú)窮大的時(shí)候不應(yīng)該計(jì)入。那我們選擇一種 K (比如高斯函數(shù)),就一種核密度估計(jì)的方法 (高斯核密度估計(jì))。



二、數(shù)學(xué)推導(dǎo)

    概率密度估計(jì)中,常用的方法有直方圖估計(jì)、K近鄰估計(jì)、核函數(shù)估計(jì),其中核函數(shù)估計(jì)的表示如下


圖片

其中


圖片

同樣表示核函數(shù)。對(duì)概率密度函數(shù)f(x) 求導(dǎo)如下:

圖片


圖片

其亦是核函數(shù),進(jìn)一步分解,有如下表示:


圖片

可以看出,其中第二項(xiàng)也是一種概率密度的核函數(shù)估計(jì),將其表示為圖片,第三項(xiàng)則為上文中的mean shift的改進(jìn)形式,因此,可以改寫為:


圖片

接下來是兩種解釋,首先,求解概率密度局部極大值,令


圖片

由于 圖片故有:

圖片

    這表示mean shift的本質(zhì)是在求解概率密度局部極大值,即偏移均值向量讓目標(biāo)點(diǎn)始終向概率密度極大點(diǎn)處移動(dòng)。但當(dāng)數(shù)據(jù)量非常大時(shí),一次遍歷所有樣本點(diǎn)顯然不合適,故常選取目標(biāo)點(diǎn) x 附近的一個(gè)區(qū)域,進(jìn)行貪心迭代,逐步收斂于概率密度極大值處;另一種更合理的解釋是,通過在核函數(shù)G() 中融合進(jìn)一個(gè)均勻核函數(shù)來表示選取的有效區(qū)域,然后迭代直至收斂。

再者,從梯度上升的優(yōu)化角度來講,有如下表示:


圖片

    即偏移均值向量的作用等價(jià)于以概率密度為目標(biāo)的具有自適應(yīng)步長(zhǎng)的梯度上升優(yōu)化,其在概率密度較小的位置步長(zhǎng)較大,當(dāng)逼近局部極大點(diǎn)時(shí),概率密度較大,因此步長(zhǎng)較小,符合梯度優(yōu)化中步長(zhǎng)變化的需要。由此,便對(duì)mean shift的含義及其合理性進(jìn)行了解釋,也就不難理解為何mean shift具有強(qiáng)大的效果及適用性了。



三、scikit-learn集成方法
class sklearn.cluster.MeanShift(*, bandwidth=None, seeds=None, bin_seeding=False, min_bin_freq=1, cluster_all=True, n_jobs=None, max_iter=300)

    3.1 參數(shù)

    • bandwidth浮點(diǎn)數(shù),默認(rèn)=無(wú)

      RBF 內(nèi)核中使用的帶寬。

      如果未給出,則使用 sklearn.cluster.estimate_bandwidth 估計(jì)帶寬;有關(guān)可伸縮性的提示,請(qǐng)參閱該函數(shù)的文檔(另請(qǐng)參閱下面的注釋)。

    • seedsarray-like of shape (n_samples, n_features), default=None

      用于初始化內(nèi)核的種子。如果未設(shè)置,則通過聚類計(jì)算種子。get_bin_seeds 以帶寬為網(wǎng)格大小,其他參數(shù)為默認(rèn)值。

    • bin_seeding布爾,默認(rèn)=假

      如果為真,則初始內(nèi)核位置不是所有點(diǎn)的位置,而是點(diǎn)的離散版本的位置,其中點(diǎn)被分箱到粗糙度對(duì)應(yīng)于帶寬的網(wǎng)格上。將此選項(xiàng)設(shè)置為 True 將加速算法,因?yàn)閷⒊跏蓟俚姆N子。默認(rèn)值為假。如果種子參數(shù)不是無(wú),則忽略。

    • min_bin_freq整數(shù),默認(rèn)=1

      為了加快算法速度,只接受那些至少有 min_bin_freq 點(diǎn)的 bin 作為種子。

    • cluster_all布爾,默認(rèn)=真

      如果為真,那么所有點(diǎn)都會(huì)被聚集,即使是那些不在任何內(nèi)核中的孤點(diǎn)也是如此。孤點(diǎn)被分配給最近的內(nèi)核。如果為 false,則給孤點(diǎn)集群標(biāo)簽 -1。

    • n_jobs整數(shù),默認(rèn)=無(wú)

      用于計(jì)算的作業(yè)數(shù)。這是通過計(jì)算每個(gè) n_init 并行運(yùn)行來實(shí)現(xiàn)的。

      None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有處理器。有關(guān)詳細(xì)信息,請(qǐng)參閱詞匯表。

    • max_iter整數(shù),默認(rèn)=300

      如果尚未收斂,則在聚類操作終止(對(duì)于該種子點(diǎn))之前每個(gè)種子點(diǎn)的最大迭代次數(shù)。

    3.2 屬性

    • cluster_centers_ndarray 形狀(n_clusters,n_features)

      聚類中心的坐標(biāo)。

    • labels_ndarray 形狀 (n_samples,)

      每個(gè)點(diǎn)的標(biāo)簽。

    • n_iter_int

      對(duì)每個(gè)種子執(zhí)行的最大迭代次數(shù)。

    • n_features_in_int

      擬合期間看到的特征數(shù)。

    • feature_names_in_ndarray 形狀(n_features_in_,)

      擬合期間看到的特征名稱。僅當(dāng) X 具有全為字符串的函數(shù)名稱時(shí)才定義。

注意

可擴(kuò)展性:

因?yàn)檫@個(gè)實(shí)現(xiàn)使用扁平內(nèi)核和球樹來查找每個(gè)內(nèi)核的成員,所以復(fù)雜度將趨向于 O(T*n*log(n)) 在較低維度上,其中 n 是樣本數(shù),T 是點(diǎn)。在更高維度上,復(fù)雜度將趨向于 O(T*n^2)。

可通過使用更少的種子來提高可擴(kuò)展性,例如在get_bin_seeds 函數(shù)中使用較高的min_bin_freq 值。

請(qǐng)注意,estimate_bandwidth 函數(shù)的可擴(kuò)展性遠(yuǎn)低于均值偏移算法,如果使用它將成為瓶頸。

3.3 示例

from sklearn.cluster import MeanShiftimport numpy as npX = np.array([[1, 1], [2, 1], [1, 0],              [4, 7], [3, 5], [3, 6]])bandwidth=MeanShift.estimate_bandwidthclustering = MeanShift(bandwidth=2).fit(X)clustering.labels_clustering.predict([[0, 0], [5, 5]])clustering

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    亚洲伦片免费偷拍一区| 国产三级黄片在线免费看| 国产在线视频好看不卡| 欧美一区二区日韩一区二区| 九九热视频免费在线视频| 制服丝袜美腿美女一区二区| 成人精品一级特黄大片| 91亚洲国产—区=区a| 亚洲欧洲一区二区综合精品| 中文久久乱码一区二区| 欧美一级黄片欧美精品| 国产一区欧美一区二区| 丰满人妻少妇精品一区二区三区 | 激情国产白嫩美女在线观看| 欧美日韩亚洲巨色人妻| 中文字幕人妻日本一区二区| 色一情一乱一区二区三区码| 国产一区国产二区在线视频| 女厕偷窥一区二区三区在线| 福利专区 久久精品午夜| 91精品国产综合久久不卡| 欧美日韩国产一级91| 欧美日韩久久精品一区二区| 神马午夜福利一区二区| 91亚洲国产—区=区a| 少妇成人精品一区二区| 国产av一区二区三区久久不卡| 国产精品刮毛视频不卡| 偷拍洗澡一区二区三区| 午夜视频免费观看成人| 91在线爽的少妇嗷嗷叫| 色综合视频一区二区观看| 欧美中文字幕一区在线| 国产午夜福利不卡片在线观看| 午夜视频成人在线免费| 欧美色欧美亚洲日在线| 国产成人免费高潮激情电| 日韩精品毛片视频免费看| 九九九热视频最新在线| 久久香蕉综合网精品视频| 91在线爽的少妇嗷嗷叫|