-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJusticePrediction(CART(Classification Regression Tree)).R
53 lines (52 loc) · 2.47 KB
/
JusticePrediction(CART(Classification Regression Tree)).R
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
# Tree logistic regression
rm(list=ls())
stevens=read.csv("C:/Users/zahid/Downloads/stevens.csv")
str(stevens)
library(caTools)
set.seed(3000)
split=sample.split(stevens$Reverse, SplitRatio=0.7)
Train= subset(stevens, split==TRUE)
Test= subset(stevens, split==FALSE)
install.packages("rpart")
library(rpart)
install.packages("rpart.plot")
library(rpart.plot)
StevensTree=rpart(Reverse~ Circuit + Issue + Petitioner + Respondent + LowerCourt + Unconst, data=Train, method="class", control=rpart.control(minbucket=25))
prp(StevensTree)
PredictCART= predict(StevensTree, newdata=Test, type="class")
table(Test$Reverse, PredictCART)
library(ROCR)
PredictROC= predict(StevensTree, newdata=Test)
PredictROC
pred=prediction(PredictROC[,2], Test$Reverse)
perf= performance(pred, "tpr", "fpr")
plot(perf)
as.numeric(performance(pred, "auc")@y.values)
StevensTree1=rpart(Reverse~ Circuit + Issue + Petitioner + Respondent + LowerCourt + Unconst, data=Train, method="class", control=rpart.control(minbucket=5))
prp(StevensTree1)
StevensTree2=rpart(Reverse~ Circuit + Issue + Petitioner + Respondent + LowerCourt + Unconst, data=Train, method="class", control=rpart.control(minbucket=100))
prp(StevensTree2)
install.packages("randomForest")
library(randomForest)
StevensForest = randomForest(Reverse ~ Circuit + Issue+Petitioner+Respondent + LowerCourt+Unconst, data=Train, nodesize=25, ntree=200)
Train$Reverse= as.factor(Train$Reverse)
Test$Reverse= as.factor(Test$Reverse)
StevensForest = randomForest(Reverse ~ Circuit + Issue+Petitioner+Respondent + LowerCourt+Unconst, data=Train, nodesize=25, ntree=200)
PredictForest= predict(StevensForest, newdata=Test)
table(Test$Reverse, PredictForest)
set.seed(200)
StevensForest = randomForest(Reverse ~ Circuit + Issue+Petitioner+Respondent + LowerCourt+Unconst, data=Train, nodesize=25, ntree=200)
PredictForest= predict(StevensForest, newdata=Test)
table(Test$Reverse, PredictForest)
install.packages("caret")
library(caret)
install.packages("e1071")
library(e1071)
fitControl= trainControl(method="cv", number=10)
cartGrid= expand.grid(.cp=(1:50)*0.01)
?expand.grid
train(Reverse~ Circuit+ Issue + Petitioner + Respondent + LowerCourt + Unconst , data = Train, method="rpart", trControl=fitControl, tuneGrid=cartGrid)
StevensTreeCV = rpart(Reverse ~ Circuit + Issue + Petitioner + Respondent + LowerCourt + Unconst, method="class", data=Train, control= rpart.control(cp=0.18))
prp(StevensTreeCV)
PredictCV= predict(StevensTreeCV, newdata=Test, type="class")
table(Test$Reverse, PredictCV)