Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. credit_default <- read.csv("credit.csv",header=TRUE, sep=",")
  2.  
  3. credit_default <- credit_default[which(credit_default$EDUCATION %in% c(1, 2, 3, 4)), ]
  4. credit_default <- credit_default[which(credit_default$MARRIAGE != 0), ]
  5. credit_default <- credit_default[, -1]
  6.  
  7. credit_default[, c(2:4, 6:11, 24)] <- lapply(credit_default[, c(2:4, 6:11, 24)], factor)
  8. str(credit_default)
  9.  
  10. attach(credit_default)
  11.  
  12. library(MASS)
  13. library(tree) ##to fit trees
  14. library(randomForest) ##for random forests (and bagging)
  15. library(gbm)
  16.  
  17. #regression
  18. set.seed(1)
  19. sample.data<-sample.int(nrow(credit_default), floor(.50*nrow(credit_default)), replace = F)
  20. train<-credit_default[sample.data, ]
  21. test<-credit_default[-sample.data, ]
  22.  
  23. tree.class.train<-tree(LIMIT_BAL~default.payment.next.month+SEX+EDUCATION+MARRIAGE+PAY_0+PAY_2+PAY_3+PAY_4+PAY_5+PAY_6+BILL_AMT1+BILL_AMT2+BILL_AMT3+BILL_AMT4+BILL_AMT5+BILL_AMT6+PAY_AMT1+PAY_AMT2+PAY_AMT3+PAY_AMT4+PAY_AMT5+PAY_AMT6, data=train)
  24. plot(tree.class.train)
  25. text(tree.class.train, cex=0.75, pretty=0)
  26.  
  27. summary(tree.class.train)
  28.  
  29. # pruning
  30.  
  31. set.seed(11)
  32. cv.credit<-cv.tree(tree.class.train, K=10)
  33. cv.credit
  34.  
  35. plot(cv.credit$size, cv.credit$dev, type='b', ylab="Deviance", xlab="Size")
  36.  
  37. trees.num<-cv.credit$size[which.min(cv.credit$dev)]
  38. print(trees.num)
  39.  
  40. prune.credit<- prune.tree(tree.class.train, best = trees.num)
  41. plot(prune.credit)
  42. text(prune.credit, cex = 0.75, pretty = 0)
  43.  
  44. yhat<-predict(prune.credit, newdata=test)
  45. credit.test<-test[,"LIMIT_BAL"]
  46. mse.tree<-mean((credit.test-yhat)^2)
  47. print(mse.tree)
  48.  
  49.  
  50. #classification
  51. tree.class.train<-tree(default.payment.next.month~LIMIT_BAL+SEX+EDUCATION+MARRIAGE+PAY_0+PAY_2+PAY_3+PAY_4+PAY_5+PAY_6+BILL_AMT1+BILL_AMT2+BILL_AMT3+BILL_AMT4+BILL_AMT5+BILL_AMT6+PAY_AMT1+PAY_AMT2+PAY_AMT3+PAY_AMT4+PAY_AMT5+PAY_AMT6)
  52. plot(tree.class.train)
  53. text(tree.class.train, cex=0.75, pretty=0)
  54. summary(tree.class.train)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement