上下文:我正在从swarmSVM软件包中的大型数据集上运行clusterSVM,该数据库使用stats :: kmeans函数作为其默认集群功能。由于数据集很大,所以聚类不是很成功。我收到以下错误消息:“没有在10次迭代中收敛”,我认为它源自聚类算法->迭代次数不够。我想将最大迭代次数增加到50以实现收敛,并且需要定义自己的集群函数。
因此,基本上,我试图使用已经定义的函数创建一个函数,并只是为其参数之一设置一个特定值。
我的新函数称为cluster.fun,它基于stats :: kmeans。我希望kmeans函数的iter.max参数为50(默认值为10)。 kmeans函数的其他参数没有任何变化。
我认为这应该可行:
> cluster.fun = stats::kmeans(iter.max = 50) ## doesn't work
给我这个错误:
as.matrix(x)中的错误:缺少参数“ x”,没有默认值
我不想再次定义所有其他变量。只是给其中一个参数赋予新值。是否可以有效地定义cluster.fun,而不必再次不必要地定义所有参数?
这有效,但对我没有帮助,因为我需要更改iter.max参数:
> cluster.fun = stats::kmeans ## works but doesn't help me as i need to change iter.max parameter