yur*_*uri 3 r classification predict roc
我分割Train数据集和Test数据集.
我rpart在R(仅列车组)中使用了CART(分类树)包.我想使用该ROCR软件包进行ROC分析.
变量是`n.使用'(响应变量... 1 =是,0 =否):
> Pred2 = prediction(Pred.cart, Test$n.use)
Error in prediction(Pred.cart, Test$n.use) :
**Format of predictions is invalid.**
Run Code Online (Sandbox Code Playgroud)
这是我的代码.有什么问题?什么是对的type("class"或者"prob"?
library(rpart)
train.cart = rpart(n.use~., data=Train, method="class")
Pred.cart = predict(train.cart, newdata = Test, type = "class")
Pred2 = prediction(Pred.cart, Test$n.use)
roc.cart = performance(Pred2, "tpr", "fpr")
Run Code Online (Sandbox Code Playgroud)
包中的prediction()函数ROCR期望预测的"成功"概率和观察到的失败与成功的因素.为了获得前需要应用predict(..., type = "prob")到rpart对象(即没有 "class").但是,由于这会返回一个概率矩阵,每个响应类有一列,您需要选择"成功"类列.
不幸的是,作为您的示例,我无法使用包中的kyphosis数据rpart进行说明:
library("rpart")
data("kyphosis", package = "rpart")
rp <- rpart(Kyphosis ~ ., data = kyphosis)
Run Code Online (Sandbox Code Playgroud)
然后你可以应用这个prediction()功能ROCR.在这里,我使用的是样本内(训练)数据,但同样可以应用于样本(测试数据):
library("ROCR")
pred <- prediction(predict(rp, type = "prob")[, 2], kyphosis$Kyphosis)
Run Code Online (Sandbox Code Playgroud)
您可以看到ROC曲线:
plot(performance(pred, "tpr", "fpr"))
abline(0, 1, lty = 2)
Run Code Online (Sandbox Code Playgroud)
或截止的准确性:
plot(performance(pred, "acc"))
Run Code Online (Sandbox Code Playgroud)
或者支持的任何其他图表和摘要ROCR.

| 归档时间: |
|
| 查看次数: |
11973 次 |
| 最近记录: |