-1
我跑R上的聚類算法:出口聚類結果MATLAB的
hc <- hclust(dist(data),method=」complete」)
我想,以計算insconsistency導出這個結果MATLAB(如聯動的結果)。可能嗎?
我跑R上的聚類算法:出口聚類結果MATLAB的
hc <- hclust(dist(data),method=」complete」)
我想,以計算insconsistency導出這個結果MATLAB(如聯動的結果)。可能嗎?
從hclust
的文檔中,hc$merge
給出了用於創建集羣的索引,hc$height
給出了索引之間的距離。
隨着USArrests作爲樣本數據集:
hc<- hclust(dist(USArrests), method="complete")
data.mat<-data.matrix(data.frame(hc$merge,hc$height))
> head(data.mat)
X1 X2 hc.height
[1,] -15 -29 2.291288
[2,] -17 -26 3.834058
[3,] -14 -16 3.929377
[4,] -13 -32 6.236986
[5,] -35 -44 6.637771
[6,] -36 -46 7.355270)
write.csv(data.mat,"data_mat.csv",col.names=FALSE,row.names=FALSE)
和在Matlab數據讀入發言權矩陣Z後,下面將給出在鍵
incons.Z = inconsistent(Z)
OR
不一致您可以使用scale
函數計算R中的不一致性,該函數減去mean
來自當前觀察的所有觀測值並將其除以std。偏差(sd
)即對其進行歸一化。
inconsis_scale<-as.vector(scale(data.mat[,3]))
交替使用功能mean
和sd
:
inconsis_base<-(data.mat[,3]-mean(data.mat[,3]))/sd(data.mat[,3])
兩種方法產生可以通過
> all.equal(inconsis_scale,inconsis_base)
[1] TRUE
確認尚不matlab的相同的結果有聚類,太? –