Metode klasifikasi yang digunakan adalah metode neural network dengan penggunaan satu hiden layer. Membaca data
data=read.csv('RestaurantTips.csv',sep=",",header=TRUE)
data
## no CustomerWillTip Service Ambience Food TipOrNo
## 1 1 1 4 4 5 Tip
## 2 2 1 6 4 4 Tip
## 3 3 1 5 2 4 Tip
## 4 4 1 6 5 5 Tip
## 5 5 1 6 3 4 Tip
## 6 6 1 3 4 5 Tip
## 7 7 1 5 5 5 Tip
## 8 8 1 5 4 4 Tip
## 9 9 1 7 6 4 Tip
## 10 10 1 7 6 4 Tip
## 11 11 1 6 7 2 Tip
## 12 12 1 5 6 4 Tip
## 13 13 1 7 3 3 Tip
## 14 14 1 5 1 4 Tip
## 15 15 1 7 5 5 Tip
## 16 16 0 3 1 3 No-tip
## 17 17 0 4 6 2 No-tip
## 18 18 0 2 5 2 No-tip
## 19 19 0 5 2 4 No-tip
## 20 20 0 4 1 3 No-tip
## 21 21 0 3 3 4 No-tip
## 22 22 0 3 4 5 No-tip
## 23 23 0 3 6 3 No-tip
## 24 24 0 4 4 2 No-tip
## 25 25 0 6 3 6 No-tip
## 26 26 0 3 6 3 No-tip
## 27 27 0 4 3 2 No-tip
## 28 28 0 3 5 2 No-tip
## 29 29 0 5 5 3 No-tip
## 30 30 0 1 3 2 No-tip
Melihat struktur data dan statistika dari data.
str(data)
## 'data.frame': 30 obs. of 6 variables:
## $ no : int 1 2 3 4 5 6 7 8 9 10 ...
## $ CustomerWillTip: int 1 1 1 1 1 1 1 1 1 1 ...
## $ Service : int 4 6 5 6 6 3 5 5 7 7 ...
## $ Ambience : int 4 4 2 5 3 4 5 4 6 6 ...
## $ Food : int 5 4 4 5 4 5 5 4 4 4 ...
## $ TipOrNo : Factor w/ 2 levels "No-tip","Tip": 2 2 2 2 2 2 2 2 2 2 ...
summary(data)
## no CustomerWillTip Service Ambience
## Min. : 1.00 Min. :0.0 Min. :1.000 Min. :1.000
## 1st Qu.: 8.25 1st Qu.:0.0 1st Qu.:3.000 1st Qu.:3.000
## Median :15.50 Median :0.5 Median :5.000 Median :4.000
## Mean :15.50 Mean :0.5 Mean :4.567 Mean :4.067
## 3rd Qu.:22.75 3rd Qu.:1.0 3rd Qu.:6.000 3rd Qu.:5.000
## Max. :30.00 Max. :1.0 Max. :7.000 Max. :7.000
## Food TipOrNo
## Min. :2.0 No-tip:15
## 1st Qu.:3.0 Tip :15
## Median :4.0
## Mean :3.6
## 3rd Qu.:4.0
## Max. :6.0
Membuat data training dan testing.
train = data[1:25,]
head(train)
## no CustomerWillTip Service Ambience Food TipOrNo
## 1 1 1 4 4 5 Tip
## 2 2 1 6 4 4 Tip
## 3 3 1 5 2 4 Tip
## 4 4 1 6 5 5 Tip
## 5 5 1 6 3 4 Tip
## 6 6 1 3 4 5 Tip
test = data[26:30,]
head(test)
## no CustomerWillTip Service Ambience Food TipOrNo
## 26 26 0 3 6 3 No-tip
## 27 27 0 4 3 2 No-tip
## 28 28 0 3 5 2 No-tip
## 29 29 0 5 5 3 No-tip
## 30 30 0 1 3 2 No-tip
Membuat model Neural Network single hiden layer
library(NeuralNetTools)
library(nnet)
model=nnet(CustomerWillTip~Service+Ambience+Food,
data=train,
size =10,
rang=0.1,
decay=5e-2,
maxit=5000)
## # weights: 51
## initial value 6.253388
## iter 10 value 5.185513
## iter 20 value 4.657975
## iter 30 value 4.462501
## iter 40 value 4.298093
## iter 50 value 4.270948
## iter 60 value 4.267003
## iter 70 value 4.266722
## iter 80 value 4.266704
## final value 4.266704
## converged
Bentuk model Neural Network single hiden layer
plotnet(model)
Menguji model dengan data testing dan hasil yang didapat
pred <- predict(model,test)
pred <- ifelse(pred>0.5, 1, 0)
test$pred <- pred
test
## no CustomerWillTip Service Ambience Food TipOrNo pred
## 26 26 0 3 6 3 No-tip 0
## 27 27 0 4 3 2 No-tip 1
## 28 28 0 3 5 2 No-tip 0
## 29 29 0 5 5 3 No-tip 1
## 30 30 0 1 3 2 No-tip 0
Akurasi dari pada data test
mean(test$pred==test$CustomerWillTip)
## [1] 0.6