gpt4 book ai didi

r - 带有插入符号错误的 SVM 分类(基本)

转载 作者:行者123 更新时间:2023-12-04 08:49:42 24 4
gpt4 key购买 nike

我可能在这里犯了一个非常简单(和愚蠢)的错误,但我无法弄清楚。我正在处理来自 Kaggle ( Digit Recognizer ) 的一些数据,并尝试将 SVM 与 Caret 包一起使用来进行一些分类。如果我只是将标签值作为数字类型插入函数中,则 train Caret 中的函数似乎默认为回归并且性能很差。所以我接下来尝试的是使用函数 factor() 将其转换为因子并尝试运行 SVM 分类。这是我生成一些虚拟数据然后将其插入 Caret 的一些代码:

library(caret)
library(doMC)
registerDoMC(cores = 4)

ytrain <- factor(sample(0:9, 1000, replace=TRUE))
xtrain <- matrix(runif(252 * 1000,0 , 255), 1000, 252)

preProcValues <- preProcess(xtrain, method = c("center", "scale"))
transformerdxtrain <- predict(preProcValues, xtrain)

fitControl <- trainControl(method = "repeatedcv", number = 10, repeats = 10)
svmFit <- train(transformerdxtrain[1:10,], ytrain[1:10], method = "svmradial")

我收到此错误:
Error in kernelMult(kernelf(object), newdata, xmatrix(object)[[p]], coef(object)[[p]]) : 
dims [product 20] do not match the length of object [0]
In addition: Warning messages:
1: In train.default(transformerdxtrain[1:10, ], ytrain[1:10], method = "svmradial") :
At least one of the class levels are not valid R variables names; This may cause errors if class probabilities are generated because the variables names will be converted to: X0, X1, X2, X3, X4, X5, X6, X7, X8, X9
2: In nominalTrainWorkflow(dat = trainData, info = trainInfo, method = method, :
There were missing values in resampled performance measures.

有人可以告诉我我做错了什么吗?谢谢!

最佳答案

您有 10 个不同的类,但在 train() 中只包含 10 个案例。 .这意味着当您重新采样时,您的分类器的单个实例中通常不会包含所有 10 个类。 train()很难结合这些不同类别的 SVM 的结果。

您可以通过增加案例数量、减少类别数量甚至使用不同分类器的某种组合来解决此问题。

关于r - 带有插入符号错误的 SVM 分类(基本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13916343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com