# 데이터 로드
wine <- read.csv("c:\\data\\wine2.csv",stringsAsFactors = TRUE)
head(wine)
# am 변수를 팩터형으로 변환
wine$Type <- as.factor(wine$Type)
head(wine)
# 훈련 데이터와 테스트 데이터를 분리
library(caret)
set.seed(1)
train_num <- createDataPartition(wine$Type, p = 0.8, list = FALSE)
train_data <- wine[train_num,]
test_data <- wine[-train_num,]
nrow(train_data) # 훈련 데이터의 개수
nrow(test_data) # 테스트 데이터의 개수
# 모델 생성 및 하이퍼파라미터 설정
library(e1071)
# C와 gamma 값을 조정하여 모델 훈련
set.seed(1)
wine_svm_model <- svm(Type ~ . , data = train_data, kernel = "radial", cost = 10, gamma = 0.1)
# 모델 예측
result <- predict(wine_svm_model, test_data[, -1]) # 정답제외하고 예측함
result
# 모델 평가
accuracy <- sum(result == test_data$Type) / length(test_data$Type)
accuracy
# 교차 테이블
library(gmodels)
r1 <- CrossTable(x = test_data$Type, y = result)
r1$t
# 정확도 및 교차 테이블 출력
cat("Accuracy: ", accuracy, "\n")
print(r1)