sábado, 28 de febrero de 2015

Curva ROC con package ROCR

El siguiente script crea una curva ROC de un modelo predictivo de rpart sobre datos de TEST, usando el package ROCR. Esto para medir eficiencia de predicción del modelo.

Para detalle de curva ROC ver nota publicada AQUI

Conceptualmente el proceso seria así:














El script:
# CARGA LIBRERIA Y DATOS
#------------------------------------------------------------------------------
library(rpart)   # para arbol decision
library(rattle)  # para data set, y arbol decision
library(ROCR)    # para curva ROC
 
datos         <- weather
datos         <- within(datos, rm("Date","Location","RISK_MM")) #borra dummy 
set.seed(42)  #  fija la secuencia de numeros aleatorios
sampleTrain   <- sample(nrow(datos),(nrow(datos)*.7)) 
Train         <- datos[sampleTrain,]
Test          <- datos[-sampleTrain,]
 
 
# MODELO 
#------------------------------------------------------------------------------
modelo.rpart  <- rpart(RainTomorrow ~ .,Train, method="class")
 
 
# PREDICCION
#------------------------------------------------------------------------------
predict.rpart <- predict(modelo.rpart,Test,type = "prob")[,2] #prob. clase=yes
predict.rocr  <- prediction (predict.rpart,Test$RainTomorrow)
perf.rocr     <- performance(predict.rocr,"tpr","fpr") #True y False postivie.rate
 
 
# GRAFICO CURVA ROC
#------------------------------------------------------------------------------
auc <- as.numeric(performance(predict.rocr ,"auc")@y.values)
plot(perf.rocr,type='o', main = paste('Area Bajo la Curva =',round(auc,2)))  
abline(a=0, b= 1)
 
 
# GRAFICO ARBOL DECISION
#------------------------------------------------------------------------------
fancyRpartPlot(modelo.rpart)     




Referencia:



No hay comentarios:

Publicar un comentario