熱線電話:13121318867

登錄
首頁精彩閱讀R語言與數據分析之四:聚類算法1_數據分析師
R語言與數據分析之四:聚類算法1_數據分析師
2014-12-12
收藏

R語言與數據分析之四:聚類算法1_數據分析師

聚類算法也因此更具有大數據挖掘的味道,話不多說,先貼張圖,讓大家對聚類有個大概的印象:

 

    上圖可明顯看出店群被分為3個組(類),接下來讓我們來瞧瞧聚類是啥玩意

    聚類算法本質上是基于幾何距離遠近為標準的算法,最適合數據是球形的問題,首先羅列下常用的距離:

    絕對值距離(又稱棋盤距離或城市街區距離)

    Euclide距離(歐幾里德距離,通用距離)

    Minkowski 距離(閔可夫斯基距離),歐幾里德距離 (q=2)、絕對值距離(q=1)和切比雪夫距離(q=無窮大),這些都是閔可夫斯基的特殊情況。

    Chebyshew(切比雪夫)距離

    Mahalanobis距離(咱們前面介紹的馬氏距離,這里復習一下

    Lance 和Wiliams距離

    定性變量距離(二進制距離):

    其中m1為所有項目中1-1配對的總數,m2是不配對的總數

    R語言中,對上述的距離都有現成函數,只需要借參數加以制定即可,具體如下:

    [plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. dist(x,method=”euclidean”,diag=FALSE,upper=FALSE,p=2) #歐式距離 
  2. dist(x,method=”maximum” ,diag=FALSE,upper=FALSE,p=2)#切比雪夫距離 
  3. dist(x,method=”manhattan” ,diag=FALSE,upper=FALSE,p=2)#絕對值距離 
  4. dist(x,method=”canberra”, diag=FALSE,upper=FALSE,p=2)#Lance距離; 
  5. dist(x,method=”binary” ,diag=FALSE,upper=FALSE,p=2)#d定性變量距離 

 

    講完距離后,需要對原始數據進行相應的處理,否則數據規模的差異會被算法誤認為屬性權重值而影響最終的聚類效果。我們需要進行數據的中心化和標準化 轉換。中心化即讓所有的數據都已0為中心點,常用的標準化的做法是將數據看作正態分布,只需要將數據除以標準差即可到達標準化作用。數據中心化和標準化 后,各個變量的取值大小相接近,這樣各個變量都平等的發揮決策作用。

    R語言中提供了相應的函數:

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. Scale(x,center=TRUE,scale=TRUE) 

    接下來先介紹最古老的聚類算法——層次聚類

    思想:

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. Step1:每個樣本各自作為一類; 
  2. Step2:計算類之間的距離; 
  3. Step3:將距離最短的兩個類合并為一個新類; 
  4. Step4:重復2-3步,即不斷合并最近的兩個類,每次減少一個類,直至所有樣本被合并為一類; 

    接下來介紹下類間距離:

    最短距離法:兩個類中所有點距離中的最小值;

    最長距離法:兩個類中所有點距離中的最大值;

    中間距離法:取介于最小值和最大值兩者間的距離;

    類平均法:取所有距離的評價值;

    重心法:類重心(均值)之間的距離;

    離差平法和法:各項與評價項之差的平方的總和;

    R提供了hclust()函數做層次聚類方法,下面舉個簡單的例子來說明下用法:

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. x<-c(1,2,6,8,11) 
  2. dim(x)<-c(5,1) 
  3. d<-dist(x) 
  4. hc1<-hclust(d,"single")#最短距離法 
  5. hc2<-hclust(d,"complete")#最長距離法 
  6. hc3<-hclust(d,"median")#中間距離法 
  7. hc4<-hclust(d,"ward")#離差平方和法 
  8. cpar<-par(mfrow=c(2,2)) 
  9. plot(hc1,hang=-1) 
  10. plot(hc2,hang=-1) 
  11. plot(hc3,hang=-1) 
  12. plot(hc4,hang=-1) 
  13. par(cpar) 
  14. rect.hclust(hc1,k=2)#人工輔助告訴R分為幾大類 

    結果見下圖:其中的哦第一板塊的紅色劃分認為告訴R需要分幾類后,R自動畫出分類的展示:

文章來源:CDA數據分析師培訓官網

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢