大家好,上週我著重研究了對於聚類分析的一些基礎的理論的知識學習,比如包括公式的推導,距離求解的方法等方面,這一週我結合資料又對系統聚類分析法和動態聚類分析法進行了一些學習,希望透過這一篇文章可以來對這兩種方法來進行比較,依次來更好地學習。

一:系統聚類分析

1:系統聚類一次形成以後就不能再改變,所以這就需要我們在第一次分析的時候就要比較的準確,因此我們也需要準確率更高更優秀的分類方法。

2:相應的計算量可能會很大,比如說Q型系統聚類法的聚類的過程就是在樣本間距離矩陣的計算上進行加深從而進行的。

3:當樣本量很大的時候,需要佔據很大的計算機記憶體,並且在合併類的過程中,需要把每一類的樣本和其他樣本間的距離進行一一的比較,從而決定應該合併的類別,這樣的話就需要消耗大量的時間和計算機資源

二:動態聚類分析:

動態聚類分析又稱為逐步分析法,基本的業務邏輯是先粗略的進行一次分類,然後按照一些區域性最優的演算法來計算修改不合理的分類,直到分類比較合理為止,比較適用於大樣本的Q型聚類分析這樣的聚類。

三:所使用的R語言函式:

在這裡我們使用的是R語言當中提供的動態聚類的函式kmeans()函式,kmeans()函式採用的是K-均值計算法,實際上這是一個逐一進行修改的方法。

kmeans()的主要形式是:

kmeans(x,centers,iter。max=10,nstart=1,algorithm=c())

x是資料組成的矩陣或者資料集,

centers是聚類的個數或者初始類的中心

iter。max=10,代表的是最大迭代數預設時為10

nstart表示隨機集合的個數

algorithm,代表的是動態聚類的演算法

現在透過一個例項來介紹這個過程:

第一步:載入原始資料並且做處理

用R語言實現聚類分析

輸入這些資料是一個痛苦的過程,請大家自行體驗:

接下來,將使用scale函式對資料進行中心化或者標準化的處理,這樣做的目的是為了消除這些小數量級別影響以及一些單位的影響

用R語言實現聚類分析

第二步:使用kmeans()函式進行動態的聚類分析,選擇生成類的個數為5個:

用R語言實現聚類分析

產生這樣的結果:

用R語言實現聚類分析

這個生成的size表示的是每一個類的個數,means代表著每一個類的平均值,clustering表示每個類的分類情況

第三步:檢視分類結果

透過sort()函式檢視分類結果,從而得到每個類的成員

用R語言實現聚類分析

以上就是透過一個例項來闡述動態聚類分析的一個過程,請多多指教