天天看點

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

聚類模型

  • 1.K-means聚類算法
    • 基本流程
    • 更好的求解K的聚類中心的方法
    • spss求解k均值聚類
  • 3.層次聚類
    • 基本流程
    • 距離的介紹
    • spss實作層次聚類
    • 确定k值确定方法--用圖形估計聚類的數量
  • 3.DBSCAN算法

1.K-means聚類算法

基本流程

(1)定義

将樣本劃分為由類似的對象組成的多個類的過程。聚類後,我們可以更加準确的在每個類中單獨使用統計模型進行估計、分析或預測;也可以探究不同類之間的相關性和主要差異。

同時也要區分于分類模型,分類已知類别,聚類不知道,隻是簡單的分類,下面來看看如何更好實作。

(2)步驟

1.指定需要劃分的簇的個數的K值,類的個數。

2.随機地選擇K個資料據對象作為初始的聚類中心,不一定要是我們的樣本點。

3.計算其餘的各個資料對象到這K個初始聚類中心的距離,把資料對象劃歸到距離它最近的那個中心所在的簇類中。

4.調整新類并且重新計算出新類的中心。

5.循環3和4,看中心是否收斂,如果收斂或者達到疊代次數就停止循環。

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

(3)優缺點

優點:

(1)算法簡單、快速。

(2)對處理大資料集,該算法是相對高效率的。

缺點:

(1)要求使用者必須事先給出要生成的簇的數目K。

(2)對初值敏感。

(3)對于孤立點資料敏感。

其中第二個和第三個可以通過k-means++來解決,即通過選取更好的初始值點。

更好的求解K的聚類中心的方法

有差別的是初始化K個聚類中心這個步驟,要求初始的聚類中心之間的互相距離要盡可能的遠。。

  • 随機選取一個樣本作為第一個聚類中心;
  • 計算每個樣本與目前已有聚類中心的最短距離(即與最近一個聚類中心的距離),這個值越大,表示被選取作為聚類中心的機率較大;最後,用輪盤法(依據機率大小來進行抽選)選出下一個聚類中心;
  • 重複步驟二,直到選出K個聚類中心。選出初始點後,就繼續使用标準的K-means算法了。

    在一開始就是使用的Kmean++算法,選取的兩個起始點盡可能遠,後面的步驟一樣。

    10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

    (4)遇到的問題-

    1.k怎麼給,多嘗試一下,看k取值為多少好解釋不如剛剛的結果。

    2 有量綱怎麼計算距離,資料量綱不一樣,計算距離就沒意義,解決方法就是進行标準化處理。

spss求解k均值聚類

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法
10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

那麼還有上面算法可以不需要指定一個k就可以呢?

采用下面的系統層次聚類就可以了。

3.層次聚類

基本流程

(1)定義

系統聚類的合并算法通過計算兩類資料點間的距離,對最為接近的兩類資料點進行組合,并反複疊代這一過程,直到将所有資料點合成一類,并生成聚類譜系圖。

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

(2)系統(層次)聚類的算法流程:

一、将每個對象看作一類,計算兩兩之間的最小距離;

二、将距離最小的兩個類合并成一個新類;

三、重新計算新類與所有類之間的距離;

四、重複二三兩步,直到所有類最後合并成一類;

五、結束。

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

距離的介紹

(1)歐式距離就是我們正常求的距離,絕對值距離多用在網狀距離

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

那麼現在我們怎麼定義名額和名額之間的距離呢:相關系數或者是夾角餘弦

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

把資料放在平面上,把接近的點分為一個類,對于類和類之間的距離,就有樣本取距離,把接近的點分為一類。

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

(2)類和類之間的距離

  • 重心法,求重心,然後看距離
  • 最短距離法:有多個樣本點,元素連接配接找最短距離
  • 最長距離法
  • 組間平均連接配接法,類之間的點全部連接配接起來,求平均
  • 組内平均連接配接法 ,把組内的點連接配接起來求平均值

    隻要解釋通,選那種方法都是可以的

(3)總結

系統聚類的流程圖在于選取類後再看類和類之間的距離,進行一定的調整,合并計算距離,如果距離小就聚成了一類,再計算類互相之間的距離看能不能聚在一起

再看裡面點之間的距離,再看看新類和其餘各類之間的距離,得到新的距離矩陣

最後使得矩陣中隻有一個元素

spss實作層次聚類

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

1.不同方法的差别在于計算新類和其餘各類之間的距離方法,分類的目的選擇名額,樣品間距離定義方式,聚類方法。尤其是樣品特别多的時候最好可以通過各種方法找出其中的共性。

2.要注意名額的量綱,差别太大會導緻聚類的結果不合理,需要标準化處理

3.得到的結果可能不滿意,因為可能隻是做的是數學上的處理,還需要對結果有一個合理的解釋就,如果不可以的話可以去換一種方法。

我們最後還可以根據譜系圖來決定最後分為多少個類。

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

可以看到不同的k可以得到不同的結果,最後取決于如何劃分。

确定k值确定方法–用圖形估計聚類的數量

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法
10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

确定完k後就可以儲存聚類結果然後畫圖了

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法
10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

3.DBSCAN算法

基于密度的聚類算法,聚類前不需要預先指定聚類的個數,生成的簇不穩定,可以生成特定的圖形,一定區域内包含的對象不少于一定的門檻值。

在具有噪聲的空間資料庫中發現容易形狀的簇,可以把密度足夠大的相鄰區域連接配接,可以有效處理異常資料(有偏移的點)

10.聚類模型--相比分類模型事先不知道類别1.K-means聚類算法3.層次聚類3.DBSCAN算法

從圖中可以看成,這個算法比較适合形狀獨特的圖形。

DBSCAN算法将資料點分為三類:

• 核心點:在半徑Eps内含有不少于MinPts數目的點

• 邊界點:在半徑Eps内點的數量小于MinPts,但是落在核心點的鄰域内

• 噪音點:既不是核心點也不是邊界點的點

優點:

  1. 基于密度定義,能處理任意形狀和大小的簇;
  2. 可在聚類的同時發現異常點;
  3. 與K-means比較起來,不需要輸入要劃分的聚類個數。

缺點:

  1. 對輸入參數ε和Minpts敏感,确定參數困難;
  2. 由于DBSCAN算法中,變量ε和Minpts是全局唯一的,當聚類的密度不均勻時,聚類距離相差很大時,聚類品質差;
  3. 當資料量大時,計算密度單元的計算複雜度大。

繼續閱讀