-
Notifications
You must be signed in to change notification settings - Fork 2
/
RandomForesttAndSVM.R
71 lines (57 loc) · 1.91 KB
/
RandomForesttAndSVM.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
library(readxl)
gardsil <- read_excel("gardasil.xls")
head(gardsil)
colnames(gardsil)
str(gardsil)
ncol(gardsil)
hist(gardsil$Age)
hist(gardsil$AgeGroup)
hist(gardsil$Race)
hist(gardsil$Race)
hist(gardsil$Shots)
hist(gardsil$Completed)
hist(gardsil$InsuranceType)
hist(gardsil$MedAssist)
hist(gardsil$Location)
hist(gardsil$LocationType)
hist(gardsil$PracticeType)
gardsil$Completed <- as.factor(gardsil$Completed)
library(caTools)
split = sample.split(gardsil$Completed, SplitRatio = 0.8)
gardsilTrain <- subset(gardsil, split== TRUE)
nrow(gardsilTrain)
gardsilTest <- subset(gardsil, split==FALSE)
nrow(gardsilTest)
colnames(gardsilTest)
library(randomForest)
rfModel <- randomForest(Completed~., data = gardsilTrain, importance=TRUE)
summary(rfModel)
rdPred <- predict(rfModel, newdata = gardsilTest[,-5], type = "class")
cm <- table(gardsilTest$Completed,rdPred)
cm
nrow(gardsilTest)
#SVM
library(e1071)
svmLin <- svm(Completed~., data = gardsilTrain, kernel = "linear", cost = 1, scale = FALSE)
svmLinPred <- predict(svmLin, newdata = gardsilTest[,-5])
cm <- table(gardsilTest$Completed,svmLinPred)
cm
nrow(gardsilTest)
svmLinS <- svm(Completed~., data = gardsilTrain, kernel = "linear", cost = 1, scale = TRUE)
svmLinPredS <- predict(svmLinS, newdata = gardsilTest[,-5])
cm <- table(gardsilTest$Completed,svmLinPredS)
cm
nrow(gardsilTest)
#SVM with CV
tuneSVM = tune(svm,Completed~., data=gardsilTest, kernel="linear", ranges=list(cost = c(.001, .01, .1, 1, 5, 10, 100)))
summary(tuneSVM)
bestmodle = tuneSVM$best.model
table(predict(bestmodle,gardsilTest[,-5]),gardsilTest$Completed)
############
#NON Linear
############
svmPol <- svm(Completed~., data = gardsilTrain, kernel = "polynomial", gamma = 0.1,cost = 1)
table(predict(svmPol,gardsilTest[,-5]),gardsilTest$Completed)
#Radial
svmRad <- svm(Completed~., data = gardsilTrain, kernel = "radial", gamma = 0.1,cost = 1)
table(predict(svmRad,gardsilTest[,-5]),gardsilTest$Completed)