#1. 데이터를 불러옵니다.
wine <- read.csv("wine2.csv", stringsAsFactors=T)
head(wine)
#2. 데이터를 살펴봅니다.
str(wine)
#3. 결측치 확인
colSums(is.na(wine)) # 결측치 없음음
#3. 훈련 데이터와 테스트 데이터 분리
library(caret)
set.seed(1)
train_num <- createDataPartition( wine$Type, p=0.8, list=F)
train_data <- wine[ train_num, ]
test_data <- wine[ -train_num, ]
nrow(train_data) #143
nrow(test_data) #34
#4. 모델 생성
library(C50)
model <- C5.0( train_data[ , -1], train_data[ , 1] )
#5. 모델 확인
summary(model)
#6. 모델 예측
train_result <- predict( model, train_data[ , -1] )
test_result <- predict( model, test_data[ , -1] )
#7. 모델 평가
#훈련 정확도
sum( train_result == train_data[ , 1] ) / 143 * 100 # 99.3%
#테스트 정확도
sum( test_result == test_data[ , 1] ) / 34 * 100 # 94.12%
#8. 모델 개선
y <- 1
jumpby <-1
options(scipen=999)
for ( i in 1:20 ) {
model2 <- C5.0( train_data[ , -1], train_data[ , 1], trials=y )
test_result2 <- predict( model2, test_data[ , -1] )
a<- sum(test_result2 == test_data[ ,1])/34 *100 #100%
y <- y + jumpby
print(paste(i,'일때',a))
}
[1] "4 일때 100" 으로 가장 높음