我正在尝试基于交叉验证的值运行受监督的SOM模型。
问题似乎在sup.som行中。我收到此错误:!toroidal错误:无效的参数类型。
该代码在过去(过去几天内)运行良好,我尝试重新启动RStudio
。这里有一个非常相似的问题(Error in !toroidal : invalid argument type in R with som package),但是这个问题似乎已经为另一个人解决了。任何帮助表示赞赏!
我的代码是:
require(kohonen)
set.seed(123)
fitControl <- trainControl(method = "cv",number = 10)
tg <- expand.grid(xdim=c(3:10), ydim=c(3:10), user.weights=seq(0.1,0.9,by=0.1), topo="hexagonal")
somFit1 <- train(train[,1:6], as.factor(train$CORR), method="xyf", trControl=fitControl, tuneLength=20, tuneGrid=tg)
'''sup.som <- xyf(training.sc, classvec2classmat(corrupt.train), grid = somgrid(xdim=somFit1$bestTune$xdim, ydim=somFit1$bestTune$ydim, topo="hexagonal"), user.weights=somFit1$bestTune$user.weights, keep.data=TRUE)
答案 0 :(得分:0)
我最终在R控制台中尝试我的代码,以查看是否可以获得更详细的错误消息,并且得到以下信息:
要求(课程) 正在加载所需的包:类 附包:“课程” 下列对象已从“ package:kohonen”中屏蔽: somgrid
解决方案是在我的代码之前指定kohonen :: somgrid,如下所示:
sup.som <-xyf(training.sc,classvec2classmat(corrupt.train),grid = kohonen :: somgrid(xdim = somFit1 $ bestTune $ xdim,ydim = somFit1 $ bestTune $ ydim,topo =“ hexagonal”) ,user.weights = somFit1 $ bestTune $ user.weights,keep.data = TRUE)
希望这对其他人有帮助