r - 使用 pdp 包获取所有类的概率尺度偏依赖图
问题描述
我一直在按照此处的示例创建部分依赖图,但我想将用于获取多类中所有级别的图的方法与获得概率尺度预测的方法结合起来(参见第 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]))
}
有关如何解决此要求或其他方法的任何建议?
解决方案
自从我提到的文章发表以来,该软件包似乎实际上已经更新。现在您需要做的就是将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]))
}
我希望这可以帮助其他人避免浪费一个下午!
推荐阅读
- python - 为什么python不会在这个函数中添加
- actions-on-google - 教程“actions-on-google/smart-home-nodejs”的难度
- java - Kafka 流监听多个主题挂起
- python - 为什么 PyTables 在使用带有负步的迭代排序时不返回第一行?
- php - PHP 使用字符串来表示数组元素
- javascript - D3 Geojson 地图不会显示
- python - 试图理解reduce在python中的作用
- google-cloud-platform - 如何从 Google Cloud Compute Engine Disk 读取/获取文件而不连接到它?
- virtual-machine - 在 Centos 7.0 上向 qemu-kvm 启动的 VM 传递参数或共享目录/文件的方法
- java - 如何创建具有动态规则的比较器?