Repository navigation
Expand file tree
/
Copy pathPs3.R
More file actions
62 lines (51 loc) · 1.72 KB
/
Copy pathPs3.R
File metadata and controls
62 lines (51 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
bankdata = read.csv("bank.csv", header=T, sep=";", stringsAsFactors = TRUE)
set.seed(42)
train = sample(c(TRUE,FALSE),size=nrow(bankdata),replace=TRUE, prob=c(0.7,0.3))
traindata = bankdata[train,]
testdata = bankdata[!train,]
#Create a classification tree
library(tree)
bank.tr = tree(y ~ ., data=traindata)
plot(bank.tr)
text(bank.tr, pretty=0)
bank.tr.cv = cv.tree(bank.tr, FUN = prune.misclass, K=5)
plot(bank.tr.cv$size, bank.tr.cv$dev, type="b",
xlab = "Size of the tree", ylab="Deviance")
bank.prune = prune.misclass(bank.tr, best=4)
plot(bank.prune)
text(bank.prune, pretty=0)
# Training misclassification error
train.pred = predict(bank.prune, traindata, type="class")
table(train.pred, traindata$y)
mean(train.pred != traindata$y)
# Test misclassification error
test.pred = predict(bank.prune, testdata, type="class")
table(test.pred, testdata$y)
mean(test.pred != testdata$y)
# Use Bagging
library(randomForest)
set.seed(42)
bank.bag=randomForest(y~.,data = traindata,mtry=ncol(traindata)-1)
# Test misclassification error
test.pred = predict(bank.bag, testdata, type="class")
table(test.pred, testdata$y)
mean(test.pred != testdata$y)
#
importance(bank.bag)
#Random Forest work
rferror = NULL
for(m in 1:16){
set.seed(42)
bank.rf = randomForest(y~.,data = traindata,mtry=m)
test.pred = predict(bank.rf, testdata, type="class")
rferror = c(rferror, mean(test.pred != testdata$y))
}
plot(1:16, rferror, xlab="m", type="b", ylab="Test Error")
bank.rf = randomForest(y~.,data = traindata, mtry=5)
test.pred = predict(bank.rf, testdata, type="class")
mean(test.pred != testdata$y)
#Testing the Gini index of variables
importance(bank.rf)
#plot of importance
varImpPlot(bank.rf, main="Variable Importance Plot")
importance(bank.rf)