library(nnet)
## Warning: package 'nnet' was built under R version 4.4.3
library(caret)
## Warning: package 'caret' was built under R version 4.4.3
## Loading required package: ggplot2
## Loading required package: lattice
library(NeuralNetTools)
## Warning: package 'NeuralNetTools' was built under R version 4.4.3
# 1. Load dataset
data(iris)
# 2. Preprocessing: Normalisasi dan ubah target jadi faktor
iris$Species <- as.factor(iris$Species)
# 3. Bagi data menjadi training dan testing
set.seed(123) # biar hasil konsisten
index <-createDataPartition(iris$Species, p = 0.7, list = FALSE)
train_data <- iris[index, ]
test_data <- iris[-index, ]
binary_data <- subset(train_data, Species != "virginica")
binary_data$Species <- factor(binary_data$Species)
# 4. Latih model neural network
# size = jumlah neuron di hidden layer, decay = regularisasi
nn_model <- nnet(Species ~ ., data = train_data, size = 5, decay = 0.01, maxit = 200)
## # weights: 43
## initial value 120.360750
## iter 10 value 51.984377
## iter 20 value 45.083133
## iter 30 value 23.080317
## iter 40 value 8.534328
## iter 50 value 7.295741
## iter 60 value 6.745967
## iter 70 value 6.547466
## iter 80 value 6.492817
## iter 90 value 6.466873
## iter 100 value 6.400929
## iter 110 value 6.355214
## iter 120 value 6.332091
## iter 130 value 6.329752
## iter 140 value 6.328830
## iter 150 value 6.328617
## final value 6.328607
## converged
# Plot NN
plotnet(nn_model)
