Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- > library(caret)
- >
- > #Sample data
- > x1<-rnorm(1000,0,1)
- > x2<-rnorm(1000,10,10)
- > x3<-rnorm(1000,5,2)
- > x4<-rnorm(1000,2,1)
- > x5<-rnorm(1000,-2,3)
- > yraw<-x1*0.4+x2*2+x3*1.5+rnorm(1000,0,7)
- > yfin<-ifelse(yraw>(mean(yraw)+.5*sd(yraw)),1,0)
- >
- > df<-data.frame(y=yfin,x1=x1,x2=x2,x3=x3,x4=x4,x5=x5)
- > df$y<-factor(df$y,levels=c(0,1),labels=c("peace","war"))
- >
- > #Split the data
- > set.seed(123)
- > z<-createDataPartition(df$y,p=0.75)
- > TrainSet<-df[z$Resample1,]
- > TestSet<-df[-z$Resample1,]
- >
- > #5-fold cross validation
- > tc2<-createFolds(TrainSet$y,k=5)
- > tc<-trainControl(index=tc2,
- + method="cv", number=5,
- + summaryFunction=twoClassSummary, # provides ROC summary stats
- + savePredictions="final",
- + classProbs=T)
- >
- > model<-train(as.factor(y)~x1+x2+x3+x4+x5,
- + metric="ROC", method="glm", family="binomial",
- + trControl=tc, data=TrainSet)
- >
- > #Get held-out predictions
- > z<-model$pred
- > print(nrow(z)/nrow(TrainSet))
- [1] 4
- > z.ordered<-z[order(z$rowIndex),]
- > head(z.ordered)
- parameter pred obs peace war rowIndex Resample
- 1 none peace peace 0.99999902 9.843203e-07 1 Fold1
- 1202 none peace peace 0.99999905 9.519363e-07 1 Fold3
- 1804 none peace peace 0.99999992 8.283829e-08 1 Fold4
- 2404 none peace peace 0.99999844 1.563241e-06 1 Fold5
- 2 none war war 0.01125721 9.887428e-01 2 Fold1
- 1203 none war war 0.01052763 9.894724e-01 2 Fold3
- > print(head(tc2$Fold2))
- [1] 1 2 6 11 13 15
Add Comment
Please, Sign In to add comment