如何限制集群库中pam函数的迭代次数?

时间:2019-09-05 22:20:23

标签: r cluster-analysis

如何减少群集程序包中PAM群集算法的迭代次数?

我试图制作一些图表来显示pam的工作原理,因此尝试将迭代次数减少到2。我将cluster repo克隆到了我的工作目录中,在其中编辑了pam.q。文件(目录./cluster/R),nMax等于2。

# original
nMax <- 65536 # 2^16 (as 1+ n(n-1)/2 must be < max_int = 2^31-1)

# modified 
nMax <- 2

但是,即使没有对原始文件进行任何更改,pam算法也无法运行。如果我改为通过输入library(cluster)加载它,则它会按预期工作,但这种方式无法处理迭代次数。

我要实现的示例代码如下所示:

# -- Working code --
library(datasets)
data(iris)
library(cluster)

df <- data.frame(iris$Petal.Length, iris_modified$Petal.Width)
pam.res <- pam(df, k = 2)
pam.res

# -- Failing Code --
library(datasets)
data(iris)
source("./cluster/R/pam.q")

df <- data.frame(iris$Petal.Length, iris_modified$Petal.Width)
pam.res <- pam(df, k = 2)
pam.res

运行上面的“失败代码”时,这是我得到的错误:

  

pam(clust_ex,k = 2)错误:找不到对象'cl_Pam'

当我直接链接pam.q文件而不是加载库时,我希望获得与工作代码相同的输出。

是否存在我导入q文件时做得不太正确的事情?还是有另一种方法可以更改pam算法执行的迭代次数?

1 个答案:

答案 0 :(得分:0)

Nmax是最大对象数。

这不是最大迭代次数。

仅修改.q文件还不够。

使用ELKI可能更容易...