k-holdout 교차검정을 해서 wine 데이터를 분류하는 머신러닝
모델을 생성하시오 !
# 데이터 로드
library(C50)
library(caret)
wine <- read.csv("~/data/wine2.csv", stringsAsFactors = T)
head(wine)
dim(wine)
#훈련데이터 나누기
set.seed(123)
k <- createDataPartition(wine$Type, p=0.8, list = F)
train_wine<- wine[k,]
test_wine <- wine[-k,]
dim(train_wine) # 143 14
dim(test_wine) # 34 14
# 10-Fold 교차 검정 설정 (훈련 데이터에서 수행)
control <- trainControl(method = "cv", number = 10)
# svmRadia 모델 훈련
model <- train(Type ~ ., data = train_wine,
method = "svmRadial",
trControl = control
)
# 모델 성능 평가 (테스트 데이터에서 예측)
predictions <- predict(model, test_wine[,-1])
# 성능 지표 출력
conf_mat <- confusionMatrix(predictions, test_wine$Type)
print(conf_mat)
Accuracy : 0.9706
# 훈련 데이터의 정확도
predictions2 <- predict(model, train_wine[,-1])
# 성능 지표 출력
conf_mat2 <- confusionMatrix(predictions2, train_wine$Type)
print(conf_mat2)
Accuracy : 0.993