R 中带 SVM 的插入符号:名称错误(重采样)<- gsub(“^\\.”,“”,名称(重采样)):尝试将属性设置为 NULL
Posted
技术标签:
【中文标题】R 中带 SVM 的插入符号:名称错误(重采样)<- gsub(“^\\\\.”,“”,名称(重采样)):尝试将属性设置为 NULL【英文标题】:Caret with SVM in R: Error in names(resamples) <- gsub("^\\.", "", names(resamples)) : attempt to set an attribute on NULLR 中带 SVM 的插入符号:名称错误(重采样)<- gsub(“^\\.”,“”,名称(重采样)):尝试将属性设置为 NULL 【发布时间】:2016-08-26 01:44:21 【问题描述】:我正在尝试使用插入符号和 doMC 在 R 中训练 SVM 模型。这是一个可重现的示例:
library(mlbench)
library(caret)
library(doMC)
registerDoMC(cores = 8)
training <- mlbench.cassini(5000)
Fitsvm<-train(classes ~ .,data=training,
preProcess=c('scale', 'center'),
method="svmRadial",
tuneGrid=expand.grid(sigma=0.5,C=c(0.01,0.05,0.1,0.5,1)))
但是当我运行此代码时,我收到以下消息:
Error in names(resamples) <- gsub("^\\.", "", names(resamples)) :
attempt to set an attribute on NULL
此错误仅在我尝试使用插入符号并行运行 SVM 时出现,并且仅与 SVM 模型一起运行。当我使用 GBM 或 RF 运行它时,代码运行正常。你能帮我找出问题所在或如何让它运行吗?插入符号是否支持 SVM 并行化?谢谢。
我在 Macbook pro 上运行它,2013 年中,4 核。
【问题讨论】:
【参考方案1】:您的训练对象是一个列表,您将其作为 data.frame 传递。
如果您将训练对象更改为 data.frame,它应该可以工作。
training <- data.frame(mlbench.cassini(5000))
【讨论】:
好吧,我试着把它也作为data.frame,但我一直得到相同的结果。但是当我将训练与其他模型并行时,这不会发生。 这个答案没有帮助。我遇到了同样的问题。以上是关于R 中带 SVM 的插入符号:名称错误(重采样)<- gsub(“^\\.”,“”,名称(重采样)):尝试将属性设置为 NULL的主要内容,如果未能解决你的问题,请参考以下文章
警告消息:使用 rpart 的插入符号 train() 中的“重采样性能测量中的缺失值”
当 classProbs=TRUE 时,在 R 中使用插入符号的 SVM 的不同结果
R语言使用caret包对GBM模型参数调优SVM模型自定义参数调优RDF模型自定义参数调优(例如,ROC)重采样对多个模型的性能差异进行统计描述可视化多模型在多指标下的性能对比分析