當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R isoMDS Kruskal 的非度量多維標度


R語言 isoMDS 位於 MASS 包(package)。

說明

非度量多維標度的一種形式

用法

isoMDS(d, y = cmdscale(d, k), k = 2, maxit = 50, trace = TRUE,
       tol = 1e-3, p = 2)

Shepard(d, x, p = 2)

參數

d

dist 返回形式的距離結構,或完整的對稱矩陣。數據假定為差異或相對距離,但必須為正值,self-distance 除外。缺失值和無限值都是允許的。

y

初始配置。如果未提供任何內容,則使用 cmdscale 來提供經典解決方案,除非存在缺失或無限的差異。

k

解決方案所需的維度,傳遞給 cmdscale

maxit

最大迭代次數。

trace

跟蹤優化的邏輯。默認TRUE

tol

收斂容差。

p

配置空間中閔可夫斯基距離的冪。

x

最終配置。

細節

這會選擇k-dimensional(默認 k = 2)配置來最小化應力,即輸入距離與配置距離之差的平方和與配置距離平方和之比的平方根。然而,輸入距離允許單調變換。

使用迭代算法,通常會在 10 次迭代左右收斂。由於這必然是 計算,因此對於大型數據集來說速度很慢。此外,由於對於默認的 ,配置僅取決於旋轉和反射(按照慣例,質心位於原點),因此不同機器的結果可能會有很大差異。

兩個組成部分:

points

擬合配置的 k-column 向量。

stress

最終達到的應力(百分比)。

副作用

如果 trace 為 true,則每 5 次迭代打印出初始應力和當前應力。

例子

swiss.x <- as.matrix(swiss[, -1])
swiss.dist <- dist(swiss.x)
swiss.mds <- isoMDS(swiss.dist)
plot(swiss.mds$points, type = "n")
text(swiss.mds$points, labels = as.character(1:nrow(swiss.x)))
swiss.sh <- Shepard(swiss.dist, swiss.mds$points)
plot(swiss.sh, pch = ".")
lines(swiss.sh$x, swiss.sh$yf, type = "S")

參考

T. F. Cox and M. A. A. Cox (1994, 2001) Multidimensional Scaling. Chapman & Hall.

Ripley, B. D. (1996) Pattern Recognition and Neural Networks. Cambridge University Press.

Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth edition. Springer.

也可以看看

cmdscale , sammon

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Kruskal's Non-metric Multidimensional Scaling。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。