我一直在关注示例here来创建部分依赖图,但我想将用于获取多类中所有级别的图的方法与用于获得概率尺度预测的方法相结合(参见页面) 430-431)。
这是我的方法,但它不起作用,因为pred.fun
不允许有第三个争论
library(e1071)
iris.svm <- svm(Species ~ ., data = iris, kernel = "radial", gamma = 0.75,
cost = 0.25, probability = TRUE)
pred.prob <- function(object, newdata,i) { # see ?predict.svm
pred <- predict(object, newdata, probability = TRUE)
prob.class <- attr(pred, which = "probabilities")[, i]
mean(prob.class)
}
pred.prob(iris.svm,iris,"setosa")
pd <- NULL
for (i in 1:3) {
tmp <- partial(iris.svm, pred.var = c("Petal.Width", "Petal.Length"),
pred.fun = pred.prob,
which.class = i, grid.resolution = 101, progress = "text")
pd <- rbind(pd, cbind(tmp, Species = levels(iris$Species)[i]))
}
有关如何解决此要求或其他方法的任何建议?
答案 0 :(得分:0)
自从我提到的文章发布以来,包看起来实际上已经更新了。现在您需要做的就是将prob
参数设置为TRUE,它将在概率范围上进行预测。
pd <- NULL
for (i in 1:3) {
tmp <- partial(iris.svm, pred.var = c("Petal.Width", "Petal.Length"),
prob = T,
which.class = i, grid.resolution = 101, progress = "text")
pd <- rbind(pd, cbind(tmp, Species = levels(iris$Species)[i]))
}
我希望这可以帮助别人避免浪费一个下午!