# 1. 데이터 불러오기기
wine<-read.csv("wine2.csv",stringsAsFactors = TRUE)
wine
# 2. 데이터 관찰하기
str(wine)
colSums(is.na(wine))
table(wine$Type)
# 3. 훈련 & 테스트 나누기
index<-createDataPartition(wine$Type,p = 0.85,list = F)
test_data<-wine[ -index,]
train_data<-wine[ index,]
nrow(test_data) # 25
nrow(train_data) # 152
# 4. 모델생성 & 학습데이터 훈련
library(C50)
model<-C5.0(train_data[ ,-1],train_data[ ,1])
model
summary(model)
# 5. 테스트 데이터 예측 & 정확도 확인
test_result<-predict(model,test_data[ ,-1])
sum(test_result == test_data[ ,1])/length(test_data[ ,1]) * 100 # 92%
# 6. 모델 성능 개선하기
y <- 0
jumpby <-1
set.seed(1)
options(scipen=999)
for ( i in 1:20 ) {
y <- y + jumpby
model<-C5.0(train_data[ ,-1],train_data[ ,1], trials=y)
test_result2 <- predict(model, test_data[ ,-1])
a<- sum(test_result2 == test_data[ ,1])/length(test_data[ ,1]) *100 #100%
print(paste(i,'일때',a))
}
결론 : trials = 3일 때 모델의 정확도가 100 % 로 나옴.