大家好,上周我著重研究了對于聚類分析的一些基礎的理論的知識學習,比如包括公式的推導,距離求解的方法等方面,這一周我結合資料又對系統聚類分析法和動態聚類分析法進行了一些學習,希望通過這一篇文章可以來對這兩種方法來進行比較,依次來更好地學習.
一:系統聚類分析
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,代表的是動態聚類的算法
現在通過一個實例來介紹這個過程:
第一步:載入原始數據并且做處理
輸入這些數據是一個痛苦的過程,請大家自行體驗:
接下來,將使用scale函數對數據進行中心化或者標準化的處理,這樣做的目的是為了消除這些小數量級別影響以及一些單位的影響
第二步:使用kmeans()函數進行動態的聚類分析,選擇生成類的個數為5個:
產生這樣的結果:
這個生成的size表示的是每一個類的個數,means代表著每一個類的平均值,clustering表示每個類的分類情況
第三步:查看分類結果
通過sort()函數查看分類結果,從而得到每個類的成員
以上就是通過一個實例來闡述動態聚類分析的一個過程,請多多指教