日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

moead算法流程步骤_数据聚类(一)常见聚类算法的基本原理[图解]

發布時間:2025/3/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 moead算法流程步骤_数据聚类(一)常见聚类算法的基本原理[图解] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章整理了五種常見聚類算法的基本原理,通過簡易圖解的形式對算法原理進行形象化的描述,同時給出了算法的實現流程和數學表達。全文約4192字。

相關名詞的英文翻譯

監督學習Supervised Learning無監督學習Unsupervised Learning半監督學習Semi-Supervised Learning, SSL強化學習Reinforcement Learning, RL聚類 Clustering高斯混合模型Gaussian Mixture Model, GMM最大期望算法Expectation-Maximization algorithm, EMDBSCAN聚類算法Density-Based Spatial Clustering of Applications with Noise層次聚類Hierarchical Clustering學習向量量化Learning Vector Quantization, LVQ一、無監督學習與聚類01Learning家族

機器學習的一種常見劃分方式如下

【監督學習】
訓練數據有標簽,使機器根據已有的示例進行學習,如分類和回歸【無監督學習】
訓練數據無標簽,機器根據數據性質自主進行學習,如聚類【半監督學習】
訓練時使用大量未標記數據及一部分標記數據,充分利用未標記樣本來提升模型的泛化能力【強化學習】
在學習過程中不斷收到環境的反饋,最佳的行為由環境的正回報來強化,強化學習的典型代表為AlphaGo02聚類任務

聚類任務是一種無監督學習,通過聚類將數據集中的樣本劃分為若干子集(“簇”),每個簇可能對應于一些潛在的概念和類別。之所以說是“潛在”,是因為聚類得到的劃分結果是事先未知的,因此通過聚類任務,可以發掘數據內在的分布結構,探究數據樣本之間的潛在聯系。

二、K-Means算法01K-Means算法原理演示

現在有一個任務,把下面六個點分成兩類:

首先選擇兩個點作為初始中心(x1和x2)

分別計算剩下的四個點到兩個初始中心的距離,選擇距離較近的一個初始中心,歸為一類

第1次迭代完成,六個樣本被分成了兩類{x1,x3,x5}(黃色)和{x2,x4,x6}(藍色),然后對于劃分好的兩類,重新計算每一類的均值,如紅色點1和2所示

開始第2次迭代,計算每個樣本點到兩個新均值的距離,選擇距離較近的一個中心歸為一類

第2次迭代結束之后,六個樣本被重新分成了兩類{x1,x3,x5,x6}(黃色)和{x2,x4 }(藍色),重新計算每一類的均值,如紅色點1和2所示。

判斷這次迭代得到的中心點與上次迭代的結果是否有更新,若有變動,則繼續上述過程,計算每個樣本點到兩個中心的距離,生成新的簇劃分,再計算新的簇中心……依次循環,直至各個簇的中心點不再更新,得到最終的聚類結果。

注:上述過程給出的距離劃分結果僅用作演示說明算法的流程,并非嚴格按照背景方格紙的刻度進行計算得出。

02算法實現流程【輸入】樣本集和預設聚類個數k【過程】
  • 在樣本集中隨機選擇k個樣本作為每個簇初始的均值;
  • 重復步驟3-5,直至每個簇的均值不再更新;
  • 計算樣本集中每個樣本到各個簇均值向量的距離,將該樣本劃分到距離該樣本最近的均值向量所對應的簇;
  • 一次劃分完成后重新計算每一簇的均值;
  • 查看均值向量是否更新。
  • 【輸出】簇劃分結果03K-means聚類過程演示

    04K-Means算法的數學表達

    給定樣本集

    k均值算法針對聚類所得的簇劃分最小化平方誤差

    其中

    表示第i簇的均值向量。E在一定程度上刻畫了簇內樣本圍繞簇均值向量的緊密程度,求解簇劃分的過程即為最小化上述E值的過程。但直接求解E的最小值需要考察樣本集D內所有可能的簇劃分,這是一個NP難問題。因此在k均值算法的實際求解中,采用了貪心策略,通過迭代更新當前的簇劃分及均值向量進行近似求解。

    05K-Means算法的變體:K-modes和K-prototype

    K-Means是用每個聚類中的均值(mean)做中心點,K-Modes是用每個聚類中的眾數(mode)做中心點。通常K-Means較多使用歐式距離,而K-Modes一般是漢明距離,也就是對于每個特征來說,如果不同記為1,相同則為0。

    K-prototype則是K-means與K-modes的一種結合形式。

    K-modes算法的適用情形:對于非數值集合上的聚類任務,我們通常會采用K-modes算法,將原本K-means使用的歐式距離替換成字符間的漢明距離。

    K-prototype算法的適用情形:適用于數值類型與字符類型結合的數據。

    三、高斯混合聚類算法01高斯混合聚類的基本思想高斯混合聚類的過程比較抽象,它采用概率模型來表達聚類原型。高斯混合模型不僅考慮到了數據分布的均值,同時也考慮到了協方差。通常利用最大期望算法(EM算法)對高斯混合模型中的參數進行估計。EM算法的推導過程較為復雜,該過程的數學推導在后面單獨作為一個篇幅來整理。02高斯混合聚類過程演示

    在此給出算法復現的結果,直觀地對混合高斯模型在聚類中的應用進行理解。圖中實線是數據對應的真實的高斯分布,虛線是估計的高斯分布,從迭代過程可以看出,高斯分布的參數不斷更新,最終估計出的高斯分布與實際值幾乎完全重合。

    03高斯混合聚類算法流程【輸入】樣本集和高斯混合成分的個數【過程】
  • 模型參數初始化;
  • 重復步驟3-4,直到對數似然函數不再有明顯的變化,或者達到迭代次數上限;
  • E步:更新W及P,其中W是隱變量,即每個樣本屬于每一簇的后驗概率,P為聚類每一簇所占的比重,即混合系數;
  • M步:更新高斯分布的均值和方差;
  • 根據W的值得到每個樣本對應的簇標記,完成簇劃分。
  • 【輸出】簇劃分04K-Means算法與高斯混合聚類算法的內在聯系

    K-Means算法可以看做是高斯混合聚類的一個特例,它的各混合成分方差相等,且每個樣本僅指派一個混合成分。

    同樣可以使用EM算法對K-means算法進行推導:K-means中每個樣本所屬的類就可以看成是一個隱變量,在E步中,我們固定每個類的中心,通過對每一個樣本選擇最近的類優化目標函數;在M步,重新更新每個類的中心點,該步驟可以通過對目標函數求導實現,最終可得新的類中心就是類中樣本的均值。

    對高斯混合聚類過程的深入了解需要理解EM算法的原理,后面會對其數學推導另做整理。

    四、DBSCAN算法01與DBSCAN算法相關的概念定義

    理解DBSCAN算法首先要理解以下幾個概念:

    • ε鄰域:首先我們需要設定一個鄰域參數ε(即下圖中的max_dis),樣本x的ε鄰域包含了樣本集中所有與該樣本距離小于ε的樣本。例如下圖中的兩個紅色區域,分別表示樣本x1和x3的ε鄰域。
    • 核心對象:我們需要設定一個MinPts參數,當樣本x的ε鄰域內樣本數大于等于MinPts個時,我們將x稱為一個核心對象。在下圖中,假設MinPts=3,則我們可以將x1看做一個核心對象,其ε鄰域內包含了三個樣本{x1,x2,x5}
    • 密度直達:假設有兩個樣本xi和xj,如果xj位于xi的ε鄰域中,并且xi是核心對象,那么我們稱xj由xi密度直達。在下圖中,x2位于x1的ε鄰域內,且x1是核心對象,所以我們可以說x2可由x1密度直達。
    • 密度可達:對xi與xj,若存在樣本序列p1,p2,p3,...pn,其中p1=x1,pn=xj,且pi+1由pi密度直達,則稱xi與xj密度可達。在下圖中,x2可由x1密度直達,x3可由x2密度直達,所以我們認為x1和x3是密度可達的。

    02算法流程

    基于上面的幾種概念,給出DBSCAN算法的基本流程:

    【輸入】樣本集和鄰域參數,其中鄰域參數包括判斷為領域內樣本的最大距離max_dis、樣本被看作核心對象的最小鄰域內樣本數量min_pts

    【過程】

  • 根據鄰域參數max_dis確定每個樣本的鄰域,統計鄰域內樣本個數

  • 根據鄰域參數min_pts生成核心對象集合

  • 重復步驟4-5直至核心對象集合為空

  • 隨機選取一個核心對象,找到這個核心對象的所有密度可達的樣本,構成一個聚類簇

  • 在核心對象集合中去除包含在該聚類簇中的樣本

  • 【輸出】簇劃分結果

    03DBSCAN算法執行過程演示

    生成一組模擬數據用于聚類,數據分布如下:

    設定兩個鄰域參數,找出核心對象集合(下圖中紅色點)

    隨機選取一個核心對象,找到這個核心對象的所有密度可達的樣本,構成一個聚類簇。(圖中紅色點表示選取的核心對象),重復該過程直至核心對象集合為空

    檢測到核心樣本集合為空,停止聚類,得到最終的聚類結果。

    我們可以看到邊緣稀疏處,深藍色的點表示被識別為噪聲數據的樣本。這里就涉及到鄰域參數的選擇,參數設置不當可能會導致大量噪聲樣本,或者所有數據均聚成一簇(即樣本間全部密度可達)。五、AGNES算法01AGNES算法基本思想

    AGNES算法是一種常見的層次聚類算法,它采用自底向上的聚合策略,該算法的原理非常簡單:先將數據集中的每個樣本看作一個初始聚類簇,然后在算法運行的每一步中找出距離最近的兩個聚類簇進行合并,直到達到預設的聚類簇個數為止。

    在算法復現過程中,為了方便進行聚類簇合并及層次遍歷操作,可以選擇借助二叉樹進行該過程的模擬。

    隨著聚類的進行,每一步都有兩個簇被歸并為一個新的簇,顯然這種方式有助于發現各個簇之間的層次關系,并能夠對最適用的聚類數目進行探索。但是,每個步驟都需要完成當前所有簇兩兩之間距離的計算,該算法的復雜度非常高。

    02算法流程

    【輸入】樣本集及聚類簇數

    【過程】

  • 將每個樣本設置為一個初始聚類簇
  • 重復步驟3-4直至當前聚類簇的個數與預設的聚類簇數相等
  • 找到距離最近的兩個聚類簇
  • 合并兩個聚類簇
  • 【輸出】簇劃分結果03AGNES算法聚類過程演示

    算法由將每個樣本作為一個簇開始執行,每一步合并兩個簇,當算法執行到聚成7個簇時,在模擬數據上的聚類結果如下圖:

    接下來,黃色和紫色的兩個簇進行了合并,聚成6類

    接下來,藍色和紅色的兩個簇進行了合并,聚成5類

    以此類推,聚成4類時:

    聚成3類時:

    六、學習向量量化(LVQ)算法01LVQ算法的基本思想

    除了上面介紹的幾種聚類算法外,還有一種比較特殊的聚類算法,它屬于“監督學習”的范疇,學習向量量化聚類方法的每個樣例均有類別標簽。該算法的輸出是一組原型向量,每個原型向量定義了與之相關的一個區域,區域中每個樣本與自身類別的原型向量的距離不大于它與其他原型向量的距離。

    02算法流程

    該算法實現的流程如下,不斷調整原型向量使其對樣本空間的劃分更符合實際的類別標簽劃分:

    【輸入】樣本集,聚類個數,原型向量預設類別標記,學習率

    【過程】

  • 選取一組樣本作為初始原型向量(可以按照類別標記分別選取);
  • 重復步驟3-5,直到達到最大迭代次數,或原型向量更新很小甚至不再更新;
  • 在樣本集內隨機選取一個樣本;
  • 計算該樣本與每個原型向量的距離,找到距離最近的原型向量;
  • 如果該樣本與該原型向量的類別標記相同,則調整原型向量的位置靠近該樣本;若類別標記不同,則調整原型向量的位置遠離該樣本。
  • 【輸出】一組原型向量

    03LVQ算法聚類過程演示

    通過聚類的過程來直觀地理解原型向量如何對樣本空間進行切分:

    生成如下所示的模擬數據,進行LVQ聚類。

    下面的動圖展示了聚類過程中的原型向量變化(四個紅色點表示一組原型向量,將樣本空間分為四份)

    04LVQ算法的數學表示

    給定樣本集

    每個樣本xj是由個n屬性描述的特征向量

    yj是樣本的類別標記。LVQ的目標是學得一組n維的原型向量

    每個原型向量代表了一個聚類簇。對于樣本空間X,學習到一組原型向量后,每個樣本x將被劃入與其距離最近的原型向量所代表的簇中:???

    式中每個原型向量pi定義了一個與之相關的區域Ri,該區域中的每個樣本與pi的距離不大于它與其他原型向量的距離。由此形成的樣本空間X的簇劃分

    稱為“Voronoi剖分”。

    END

    與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的moead算法流程步骤_数据聚类(一)常见聚类算法的基本原理[图解]的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。