2014-09-29 36 views
0

我只是想知道cmeans函數[在包e1071中]是否使用Mahalanobis距離執行聚類?R:mamelanobis在cmeans中的實現[e1071]

非常感謝

+0

你有答案嗎?或者你在找別的東西嗎? – cdeterman 2014-10-07 21:52:54

+0

非常感謝您的及時回覆。我曾嘗試將mahalanobis dist用於fanny函數。然而,我不確定這兩個函數是否對數據執行類似的剔除,以及屁股中的成員指數與骰子中的m模糊化之間的差異是什麼。歡呼 – ERE 2014-10-10 08:20:53

回答

2

e1071包不具有馬氏選項。但是,您可以查看cluster程序包和fanny函數。按照幫助頁面,它還計算數據的模糊聚類爲k-聚類。有了這個功能,你可以提供你自己的距離矩陣。

因此,對於馬氏距離,您可以使用dist來計算距離矩陣,然後運行聚類。

require(cluster) 
set.seed(123) 
x<-rbind(matrix(rnorm(100,sd=0.3),ncol=2), 
     matrix(rnorm(100,mean=1,sd=0.3),ncol=2)) 
y <- dist(x, "mahalanobis") 
fanny(y, k=2) 

鑑於你在這裏的功能的等價理解的顧慮是比較它們的例子:

require(e1071) 
cl<-cmeans(x,centers=2,iter.max=20,dist="euclidean",method="cmeans",m=2) 
fl <- fanny(x, k=2, maxit=20, metric="SqEuclidean", memb.exp=2) 

> head(cl$membership) 
      1   2 
[1,] 0.9948729 0.005127121 
[2,] 0.3647778 0.635222221 
[3,] 0.9290126 0.070987385 
[4,] 0.7588260 0.241174043 
[5,] 0.9282550 0.071745007 
[6,] 0.9599231 0.040076886 
> head(fl$membership) 
      [,1]  [,2] 
[1,] 0.9948722 0.005127775 
[2,] 0.3647890 0.635211040 
[3,] 0.9290171 0.070982905 
[4,] 0.7588304 0.241169649 
[5,] 0.9282575 0.071742489 
[6,] 0.9599221 0.040077878 

雖然不是完全相同的,你可以看到有非常密切的。你也會注意到範妮正在指定歐幾里德距離的平方,這是cmeans正在做的。該等同性在公制下的fanny幫助頁面?fanny中註明。

+0

@ERE,上述編輯是否解決您的疑慮? – cdeterman 2014-10-10 13:15:46