svmLinear 자동튜닝 관련해서 grid 옵션값이 적용이 잘 안됩니다ㅠㅠ
trainset 과 testset 에 대해 둘 다 68% 정도로 비슷한 정확도를 관찰할 수 있었습니다.
(seed 값 변경해도 영향이 없는 것 같은데 이유를 잘 모르겠습니다)
###Caret Packages -- train()
##0.1 Load data
binary <- read.csv("binary.csv")
binary$admit <- factor( binary$admit, labels=c("Y", "N"))
str(binary)
##0.2 Devide Db
set.seed(1)
library(caret)
k <- createDataPartition(binary$admit, p=0.80, list=F)
trainset <- binary[k, ]
testset <- binary[-k, ]
nrow(trainset) #301
nrow(testset) #99
##3. svmLinear ---------------------------------------------
#install.packages("kernlab")
library(kernlab)
ctrl <- trainControl(method="cv", number=10,
selectionFunction="oneSE")
grid <- expand.grid(C=c(1,2,3,4,5))
m <- train(admit~., data=trainset, method="svmLinear",
metric="Accuracy",
trControl=ctrl,
tunegrid=grid)
m #check model details
#predict
pred <- predict(m, testset)
#Definition of label column vector & Labeldata
actual_type <- testset$admit
predict_type <- pred
positive_val <- "Y"
negative_val <- "N"
#1) Accuracy
tab <- table(Predicted=pred, Actual=testset$admit)
tab
sum(diag(tab)) / sum(tab) #testset_Accuracy
#2) Kappa statistics
#install.packages("vcd")
library(vcd)
table( actual_type, predict_type)
Kappa( table( actual_type, predict_type) )