wine.csv
0.01MB

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 분류를 위한 nnet 신경망 패키지 설치
install.packages("nnet")
library(nnet)
 
# 이원교차표를 보기 위함
library(gmodels)
 
wine <- read.csv("c:/data/wine.csv",header=T,stringsAsFactors = T)
 
# 확인
head(wine)
str(wine)
 
# scale 함수를 사용한 정규화 (평균 0, 표존편차 1)
wine.scale <- cbind(wine[1], scale(wine[-1]))
summary(wine.scale)
 
size <- nrow(wine.scale) # 178
 
# shuffle
set.seed(100)
index <- c(sample(1:size, size * 0.7))
 
# train(70%) / test(30%)
train <- wine.scale[index, ]
test <- wine.scale[-index, ]
 
# 분류를 위한 신경망 모델 생성
model.nnet2 <- nnet(Type~., data = train, size = 2, decay = 5e-04, maxit = 200)
#                                         number of units in the hidden layer.
#                                                   parameter for weight decay. Default 0. (가중치 감소)
#                                                                  maximum number of iterations. Default 100 (반복)
 
# 분류결과 확인
predicted <- predict(model.nnet2, test, type = "class")
predicted
 
# 모델 평가를 위한 Confusion Matrix
# 참고 : https://yamalab.tistory.com/50
actual <- test$Type
model.confusion.matrix <- table(actual, predicted)
 
# 모델 평가
<- CrossTable(model.confusion.matrix)
x$prop.tbl[1]+x$prop.tbl[5]+x$prop.tbl[9# 0.9444444
 
cs

 

 

+ Recent posts