我试图制作一些图表来显示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算法执行的迭代次数?
答案 0 :(得分:0)
Nmax是最大对象数。
这不是最大迭代次数。
仅修改.q文件还不够。
使用ELKI可能更容易...