Я отклоняюсь от этого примера: ошибка каретки поезда опорных векторов Ошибка вычисления вероятности класса Kernlab;возвращающие NA
Sampled Code
library(caret)
trainset <- data.frame(
class=factor(c("Good", "Bad", "Good", "Good", "Bad", "Good", "Good", "Good", "Good", "Bad", "Bad", "Bad")),
age=c(67, 22, 49, 45, 53, 35, 53, 35, 61, 28, 25, 24))
testset <- data.frame(
class=factor(c("Good", "Bad", "Good" )),
age=c(64, 23, 50))
library(kernlab)
set.seed(231)
### finding optimal value of a tuning parameter
sigDist <- sigest(class ~ ., data = trainset, frac = 1)
### creating a grid of two tuning parameters, .sigma comes from the earlier line. we are trying to find best value of .C
svmTuneGrid <- data.frame(.sigma = sigDist[1], .C = 2^(-2:7))
set.seed(1056)
svmFit <- train(class ~ .,
data = trainset,
method = "svmRadial",
preProc = c("center", "scale"),
tuneGrid = svmTuneGrid,
trControl = trainControl(method = "repeatedcv", repeats = 5,
classProbs = TRUE))
predictedClasses <- predict(svmFit, testset )
predictedProbs <- predict(svmFit, newdata = testset , type = "prob")
Этот код прекрасно работает с использованием интерфейса формулы.Однако, если я переверну это с использованием матричной формы, вероятности класса не рассчитываются при прогнозировании и возвращают ошибки (NA).См. Ниже.
set.seed(1056)
svmFit <- train(x = trainset["age"], y = trainset$class,
method = "svmRadial",
preProc = c("center", "scale"),
tuneGrid = svmTuneGrid,
trControl = trainControl(method = "repeatedcv", repeats = 5, classProbs = TRUE))
predictedProbs <- predict(svmFit, newdata = testset , type = "prob")
Просто пытаюсь понять, почему не будут рассчитаны вероятности для набора прогнозируемых данных с использованием неформульного интерфейса.Выдает это предупреждение:
Warning message:
In method$prob(modelFit = modelFit, newdata = newdata, submodels = param) :
kernlab class probability calculations failed; returning NAs