Вероятности класса SVM в карете с использованием неформульного (матричного) интерфейса - PullRequest
0 голосов
/ 10 октября 2018

Я отклоняюсь от этого примера: ошибка каретки поезда опорных векторов Ошибка вычисления вероятности класса 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...