f*******n 发帖数: 2665 | 1 我在SAS里可以写这样一个macro, modelscore(model, outputscore)用来评价不同的
model,然后调用,%modelscore(model1, outputscore1),%modelscore(model2,
outputscore2)。但不知在R里怎么做.
这里model 就是一个之前modeling产生的object, 比如model1<-glm(...),
outputscore其实包含若干的统计值,比如AUC,KS等。但如何产生outputscore1和
outputscore2这些objects, 并save到global environment? |
|
v*******e 发帖数: 11604 | 2 R里面用function。
modelscore = function(model){
花括号里面写function的内容
在这里产生KS, AUC之类的东西,可以返回成一个list,
这样的:return(list(KS,AUC))
}
使用是这样的:
outputscore1 = modelscore(你的第一个model)
outputscore2 = modelscore(你的第二个model) |
|
f*******n 发帖数: 2665 | 3 多谢!!!下面是我写的function, output 是一个list,包含两项,一个是AUC,另
一个是pred, 是prediction()的结果。 function和output 都没有问题。可是我需要
用plot(performance(pred,...)),而pred是list,类型不符,这个问题如何解决?请
赐教!
modelscore<- function(model) {
pr <- predict(rpart, newdata=newdata[ , c(input, target)])[,2]
# ignore missing target values.
no.miss <- na.omit(newdata[ , c(input, target)]$goodbad)
miss.list <- attr(no.miss, "na.action")
attributes(no.miss) <- NULL
if (length(miss.list)) {
pred <- prediction(pr[-miss.list], no.miss)
} else ... 阅读全帖 |
|
f*******n 发帖数: 2665 | 4 这是程序和错误信息,多谢!
> modelscore<- function(model, newdata) {
+ pr <- predict(rpart, newdata=newdata[ , c(input, target)])[,2]
+ # ignore missing target values.
+ no.miss <- na.omit(newdata[ , c(input, target)]$goodbad)
+ miss.list <- attr(no.miss, "na.action")
+ attributes(no.miss) <- NULL
+ if (length(miss.list)) {
+ pred <- prediction(pr[-miss.list], no.miss)
+ } else {
+ pred <- prediction(pr, no.miss)
+ }
+
+ auc<-performance(pred,'auc')@y.values[[1]]
+
+ newlist<-list(pred,auc)
+ return (newlist... 阅读全帖 |
|