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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

分类与聚类及聚类算法分类

發布時間:2023/12/9 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分类与聚类及聚类算法分类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、聚類

(一)聚類概念

聚類就是按照某個特定標準(如距離準則)把一個數據集按照相似度分割成不同的類或簇,使得同一個簇內的數據對象的相似性盡可能大,同時不在同一個簇中的數據對象的差異性也盡可能地大。即聚類后同一類的數據盡可能聚集到一起,不同數據盡量分離。

(二)聚類的目標

使同一類對象的相似度盡可能地大;不同類對象之間的相似度盡可能地小。

(三)聚類和分類的區別

聚類技術通常又被稱為無監督學習,因為與監督學習不同,在聚類中那些表示數據類別的分類或者分組信息是沒有的(即分類前只給了分類標準并未給分類類別)。
Clustering (聚類),簡單地說就是把相似的東西分到一組,聚類的時候,我們并不關心某一類是什么,我們需要實現的目標只是把相似的東西聚到一起。因此,一個聚類算法通常只需要知道如何計算相似度就可以開始工作了,因此 clustering 通常并不需要使用訓練數據進行學習,這在Machine Learning中被稱作unsupervised learning (無監督學習)。 事先無標簽也不需要知道標簽只需按相似度分好類即可。
Classification (分類),對于一個classifier,通常需要你告訴它“這個東西被分為某某類”這樣一些例子,理想情況下,一個 classifier 會從它得到的訓練集中進行“學習”,從而具備對未知數據進行分類的能力,這種提供訓練數據的過程通常叫做supervised learning (監督學習)。需要事先貼好標簽歸好類,然后用訓練集對其訓練學習之后可以對新的目標進行歸類,圖像識別即是如此。

二、聚類算法的分類

(一)基于劃分

1.基本思想

基于劃分的方法:其原理簡單來說就是,想象你有一堆散點需要聚類,想要的聚類效果就是“類內的點都足夠近,類間的點都足夠遠”。首先你要確定這堆散點最后聚成幾類,然后挑選幾個點作為初始中心點,再然后給數據點做迭代重置(iterative relocation),直到最后到達“類內的點都足夠近,類間的點都足夠遠”的目標效果。也正是根據所謂的“啟發式算法”,形成了k-means算法及其變體包括k-medoids、k-modes、k-medians、kernel k-means等算法。

2.特點

計算量大,很適合發現中小規模的數據庫中小規模的數據庫中的球狀簇。

3.主要算法

k-means、k-medoids、k-modes、k-medians、kernel k-means等算法。

4.算法流程

經典K-means算法流程:

  • 隨機地選擇k個對象,每個對象初始地代表了一個簇的中心;
  • 對剩余的每個對象,根據其與各簇中心的距離,將它賦給最近的簇;
  • 重新計算每個簇的平均值,更新為新的簇中心;
  • 不斷重復2、3,直到準則函數收斂。
  • 5.算法優缺點

    優點:對于大型數據集也是簡單高效、時間復雜度、空間復雜度低。
    缺點:最重要是數據集大時結果容易局部最優;需要預先設定K值,對最先的K個點選取很敏感;對噪聲和離群值非常敏感;只用于numerical類型數據;不能解決非凸(non-convex)數據。

    6.常見的算法及改進

    k-means對初始值的設置很敏感,所以有了k-means++、intelligent k-means、genetic k-means。
    k-means對噪聲和離群值非常敏感,所以有了k-medoids和k-medians。
    k-means只用于numerical類型數據,不適用于categorical類型數據,所以k-modes。
    k-means不能解決非凸(non-convex)數據,所以有了kernel k-means。
    另外,很多教程都告訴我們Partition-based methods聚類多適用于中等體量的數據集,但我們也不知道“中等”到底有多“中”,所以不妨理解成,數據集越大,越有可能陷入局部最小。

    (二)基于層次

    1.基本思想

    層次聚類,是一種很直觀的算法。顧名思義就是要一層一層地進行聚類,可以從下而上地把小的cluster合并聚集,也可以從上而下地將大的cluster進行分割。似乎一般用得比較多的是從下而上地聚集。層次聚類主要有兩種類型:合并的層次聚類(凝聚層次聚類)和分裂的層次聚類。前者是一種自底向上的層次聚類算法,從最底層開始,每一次通過合并最相似的聚類來形成上一層次中的聚類,整個當全部數據點都合并到一個聚類的時候停止或者達到某個終止條件而結束,大部分層次聚類都是采用這種方法處理。后者是采用自頂向下的方法,從一個包含全部數據點的聚類開始,然后把根節點分裂為一些子聚類,每個子聚類再遞歸地繼續往下分裂,直到出現只包含一個數據點的單節點聚類出現,即每個聚類中僅包含一個數據點。

    2.特點

    處理速度很快,通常這是與目標數據庫中記錄的個數無關的,只與把數據空間分為多少個單元有關。

    3.主要算法

    BIRCH算法、CURE算法、CHAMELEON算法、GN算法

    GN算法是一個經典的社區發現算法,它屬于分裂的層次聚類算法,最初,由Michelle Girvan和Mark Newman提出。其基本思想是不斷的刪除網絡中具有相對于所有源節點的最大的邊介數的邊,然后,再重新計算網絡中剩余的邊的相對于所有源節點的邊介數,重復這個過程,直到滿足某個條件(如所有邊都被刪除或具有相等的最大邊介數)

    4.算法流程

    以下流程以自下向上為例。

  • 將每個對象看作一類,計算兩兩之間的最小距離;
  • 將距離最小的兩個類合并成一個新類;
  • 重新計算新類與所有類之間的距離;
  • 重復2、3,直到所有類最后合并成一類
  • GN算法流程

    計算網絡中所有邊的介數

    找到介數最高的邊并將它從網絡中移除

    n 重復,直到每個節點就是一個社團為止

    5.算法優缺點

    優點:可解釋性好(如當需要創建一種分類法時);還有些研究表明這些算法能產生高質量的聚類,也會應用在上面說的先取K比較大的K-means后的合并階段;還有對于K-means不能解決的非球形族就可以解決了。
    缺點:時間復雜度高啊,o(m3),改進后的算法也有o(m2lgm),m為點的個數;貪心算法的缺點,一步錯步步錯;同K-means,difficulty handling different sized clusters and convex shapes。

    **

    6.常見的算法及改進

    **
    該聚類算法因為計算復雜度比較大適用于小數量級,如對中國省會城市聚類。改進的算法有BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies)主要是在數據體量很大的時候使用,而且數據類型是numerical。
    Chameleon(A Hierarchical Clustering Algorithm Using Dynamic Modeling)里用到的linkage是kNN(k-nearest-neighbor)算法,并以此構建一個graph,Chameleon的聚類效果被認為非常強大,比BIRCH好用,但運算復雜還是很高,O(n^2)。看個Chameleon的聚類效果圖,其中一個顏色代表一類,可以看出來是可以處理非常復雜的形狀的。

    總結

    以上是生活随笔為你收集整理的分类与聚类及聚类算法分类的全部內容,希望文章能夠幫你解決所遇到的問題。

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