Machine Learning atau pembelajaran mesin merupakan salah satu cabang penting dalam kecerdasan buatan (Artificial Intelligence). Istilah ini merujuk pada kemampuan sistem komputer untuk belajar dari data, mengenali pola, serta memanfaatkan pola tersebut dalam menghasilkan prediksi atau mengambil keputusan. Dalam pemrograman tradisional, manusia memberikan instruksi secara langsung kepada komputer agar dapat menjalankan tugas tertentu berdasarkan aturan yang telah ditetapkan. Sementara itu, dalam Machine Learning, komputer tidak harus diberikan aturan secara eksplisit. Sebaliknya, komputer diberikan data dan algoritma yang memungkinkan sistem untuk mempelajari hubungan serta pola yang terkandung di dalam data tersebut (Juansa dkk., 2026).
Salah satu metode yang termasuk dalam Machine Learning adalah Artificial Neural Network (ANN) atau jaringan saraf tiruan. Metode ini terinspirasi dari mekanisme kerja jaringan saraf biologis pada otak manusia. Dalam sistem biologis, neuron saling terhubung melalui sinapsis dan mampu memproses informasi secara paralel. Konsep tersebut kemudian diadaptasi ke dalam model komputasi melalui pembentukan jaringan yang terdiri atas sejumlah neuron buatan yang saling terhubung menggunakan bobot (weight). Melalui proses pembelajaran berdasarkan data, bobot pada setiap koneksi akan diperbarui sehingga jaringan mampu mengenali dan mempelajari pola yang terkandung dalam data (Dafid, Sudianto, & Widyaningrum, 2026).
Penerapan Artificial Neural Network (ANN) dalam komputasi dilakukan dengan membangun model jaringan saraf tiruan untuk menyelesaikan suatu permasalahan analisis data. Proses ini diawali dengan penggunaan dataset yang tersedia sebagai bahan pembelajaran, kemudian dilanjutkan dengan tahap pelatihan (training) agar jaringan mampu mempelajari pola hubungan antara variabel input dan output. Setelah proses pelatihan selesai, model yang terbentuk dapat digunakan untuk menghasilkan prediksi terhadap data baru yang belum pernah dipelajari sebelumnya. Dalam praktiknya, implementasi ANN dapat dilakukan dengan memanfaatkan berbagai perangkat lunak dan bahasa pemrograman, salah satunya adalah R. Oleh karena itu, pada praktikum ini dilakukan komputasi menggunakan bahasa pemrograman R untuk membentuk model ANN regresi dengan menggunakan data Iris (Dafid, Sudianto, & Widyaningrum, 2026).
Berdasarkan latar belakang, rumusan masalah yang dapat disimpulkan adalah:
Adapun tujuan penelitian ini yaitu:
Artificial Neural Network (ANN) merupakan suatu metode pemrosesan informasi yang memiliki mekanisme kerja menyerupai jaringan saraf biologis. ANN dikembangkan sebagai metode pembelajaran yang meniru proses kognitif manusia. Teknik ini didasarkan pada asumsi bahwa pemrosesan informasi terjadi melalui unit-unit sederhana yang disebut neuron. Informasi atau sinyal diteruskan melalui jalur koneksi yang menghubungkan setiap neuron. Setiap jalur koneksi memiliki bobot (weight), sedangkan setiap neuron memiliki bias dan fungsi aktivasi (activation function). Selanjutnya, keluaran neuron diperoleh melalui penjumlahan hasil perkalian antara sinyal masukan dan bobot, serta penambahan nilai bias yang kemudian diproses menggunakan fungsi aktivasi (Setiawan, 2020).
Secara umum, arsitektur Artificial Neural Network terdiri atas tiga lapisan utama, yaitu input layer, hidden layer, dan output layer. Input layer berfungsi menerima data masukan yang berasal dari dataset. Selanjutnya, hidden layer melakukan proses pembelajaran dengan mentransformasikan data melalui kombinasi bobot, bias, dan fungsi aktivasi. Sementara itu, output layer menghasilkan keluaran akhir berupa nilai prediksi atau klasifikasi kelas dari data yang dianalisis. Adapun penjelasan mengenai ketiga lapisan tersebut adalah sebagai berikut (Dafid, Sudianto, & Widyaningrum, 2026):
Input Layer
Input layer merupakan lapisan pertama yang berfungsi menerima data masukan dari dataset sebelum diteruskan ke lapisan berikutnya. Jumlah neuron pada lapisan ini umumnya disesuaikan dengan jumlah fitur atau variabel yang digunakan dalam pemodelan. Dengan demikian, semakin banyak fitur yang terdapat dalam dataset, semakin banyak pula neuron yang dibutuhkan pada input layer.
Hidden Layer
Hidden layer merupakan lapisan yang berperan dalam proses pembelajaran dan pengenalan pola pada data. Pada lapisan ini, data masukan ditransformasikan melalui kombinasi bobot, bias, dan fungsi aktivasi untuk menghasilkan representasi pola yang akan diteruskan ke lapisan berikutnya. Jumlah neuron pada hidden layer tidak memiliki aturan yang pasti karena bergantung pada tingkat kompleksitas permasalahan yang ingin diselesaikan. Semakin kompleks pola data yang dipelajari, semakin banyak neuron atau bahkan lapisan tersembunyi yang mungkin diperlukan. Namun, penggunaan neuron atau hidden layer yang terlalu banyak dapat meningkatkan waktu komputasi serta berpotensi menyebabkan overfitting pada model.
Output Layer
Output layer merupakan lapisan terakhir yang berfungsi menghasilkan keluaran akhir dari proses pemodelan ANN. Jumlah neuron pada lapisan ini bergantung pada jenis permasalahan yang ingin diselesaikan. Pada permasalahan regresi atau klasifikasi biner, umumnya digunakan satu neuron pada output layer. Sementara itu, pada permasalahan klasifikasi multikelas, jumlah neuron disesuaikan dengan banyaknya kelas yang akan diprediksi oleh model.
Secara matematis, proses pengolahan informasi pada suatu neuron dapat dinyatakan sebagai (Fransiska, 2026):
\[y = f\left(\sum_{i=1}^{p} w_i x_i + b\right)\]
dengan \(x_i\) merupakan masukan ke-\(i\), \(w_i\) bobot yang menghubungkan masukan ke-\(i\) dengan neuron, \(b\) adalah bias, \(f\) merupakan fungsi aktivasi, dan \(y\) adalah keluaran neuron.
Arsitektur ANN dapat dibedakan menjadi dua jenis yaitu Single Layer Perceptron (SLP) dan Multi-Layer Perceptron (MLP).
| Arsitektur Jaringan | Fungsi |
|---|---|
| Single Layer Perceptron (SLP) | Jaringan tanpa lapisan tersembunyi yang digunakan untuk mempelajari hubungan linear dan menyelesaikan klasifikasi yang dapat dipisahkan secara linear |
| Multi-Layer Perceptron (MLP) | Jaringan dengan satu atau lebih lapisan tersembunyi yang mampu mempelajari hubungan nonlinear untuk pemodelan regresi dan klasifikasi |
ANN regresi digunakan untuk memprediksi variabel respons berupa nilai numerik kontinu.Lapisan keluaran umumnya menggunakan fungsi aktivasi linear agar jaringan dapat menghasilkan nilai prediksi sesuai dengan rentang variabel respon.
Backpropagation merupakan algoritma pembelajaran pada ANN yang digunakan untuk menyesuaikan bobot jaringan berdasarkan kesalahan prediksi. Pada ANN regresi, proses pembelajaran bertujuan meminimalkan selisih antara nilai aktual dan nilai prediksi, misalnya menggunakan Mean Squared Error (MSE). Secara umum, proses ppembelajaran terdiri atas tiga tahap berikut (Fransiska, 2026):
Fungsi aktivasi digunakan untuk menentukan keluaran neuron dan membantu jaringan mempelajari pola nonlinear. Beberapa fungsi aktivasi yang dapat digunakan dalam ANN regresi disajikan pada tabel berikut:
| Fungsi | Rumus | Penggunaan |
|---|---|---|
| Sigmoid Biner | \(f(z)=\dfrac{1}{1+e^{-x}}\) dengan \(f'(z)=[f(z)]\,[1-f(z)]\) |
Digunakan pada hidden layer untuk menghasilkan nilai antara 0 dan 1 |
| Hyperbolic Tangent (Tanh) | \(f(x)=\dfrac{1-e^{-2x}}{1+e^{-2x}}=\tanh(x)\)
dengan \(f'(x)=1-\tanh^2(x)\) |
Digunakan pada hidden layer dengan keluaran antara -1 dan 1 |
| Rectified Linear Unit (ReLU) | \(f(x)=\max(0,x)\) | Digunakan pada hidden layer untuk mempelajari pola nonlinear |
Evaluasi Evaluasi ANN regresi dilakukan dengan membandingkan nilai aktual dan nilai hasil prediksi. Beberapa ukuran yang umum digunakan adalah Mean Squared Error (MSE), Root Mean Squared Error (RMSE), dan koefisien determinasi (\(R^2\)).
\[MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y})^2\]
\[MAPE = \sum_{i=1}^{n}\left|\frac{y_i - \hat{y}_i}{y_i}\right|\]
ANN klasifikasi digunakan untuk memprediksi variabel respons berupa kategori. Berdasarkan jumlah kelasnya, ANN klasifikasi dibedakan menjadi dua jenis (Fransiska, 2026):
Proses pembelajaran ANN klasifikasi dilakukan dengan menyesuaikan bobot jaringan untuk meminimalkan kesalahan klasifikasi. Salah satu fungsi kerugian yang digunakan adalah cross-entropy loss, yang mengukur perbedaan antara probabilitas prediksi dan kelas aktual.
Klasifikasi biner, fungsi binary cross-entropy dinyatakan sebagai:
\[BCE = -\frac{1}{n}\sum_{i=1}^{n}\left[y_i \ln(\hat{p}_i) + (1-y_i)\ln(1-(\hat{p}_i))\right]\]
dengan \(y_i\) adalah kelas aktual observasi ke-\(i\), bernilai 0 atau 1, \(\hat{p}_i\) merupakan probabilitas kelas posiitf pada observasi ke-\(i\).
Klasifikasi multikelas, fungsi categorical cross-entropy dinyatakan sebagai:
\[L = -\frac{1}{n}\sum_{i=1}^{N}\sum_{k=1}^{K} y_{ik}\,\log(\hat{y}_{ik})\]
dengan \(y_{ik}\) adalah label aktual dan \(\hat{y}_{ik}\) prediksi model.
Bobot jaringan diperbarui berdasarkan gradien fungsi kerugian. Secara umum, pembaruan bobot menggunakan gradient descent dapat dituliskan sebagai:
\[w_{ij}^{(t+1)} = w_{ij}^{(t)} - \eta\,\frac{\partial L}{\partial w_{ij}}\]
dengan \(\eta\) adalah laju pembelajaran (learning rate).
Fungsi aktivasi berperan penting dalam menentukan non-linearitas jaringan. Beberapa fungsi umum pada ANN klasifikasi meliputi:
Evaluasi ANN Klasifikasi dilakukan dengan membandingkan kelas aktual dan kelas hasil prediksi. Hasil perbandingan tersebut dapat disajikan dalam confusion matrix.
| Predicted Positive | Predicted Negative | |
|---|---|---|
| Actual Positive | True Positive (TP) | False Negative (FN) |
| Actual Negative | False Positive (FP) | True Negative (TN) |
Berdasarkan confusion matrix, beberapa ukuran evaluasi yang dapat digunakan adalah:
Jenis data yang digunakan dalam praktikum ini terdiri atas data numerik dan data kategorik. Data numerik merupakan data yang dinyatakan dalam bentuk angka dan dapat digunakan dalam perhitungan matematis, sedangkan data kategorik merupakan data yang menunjukkan kelompok atau kategori tertentu untuk membedakan karakteristik suatu objek. Sumber data yang digunakan dalam praktikum ini adalah data sekunder, yaitu data yang telah tersedia sebelumnya dan dimanfaatkan untuk memenuhi kebutuhan analisis. Data sekunder yang digunakan berupa dataset iris yang tersedia dalam pemrograman R dan terdiri atas 150 observasi serta 5 variabel. Data tersebut memuat hasil pengukuran bagian bunga iris dari tiga spesies, yaitu setosa, versicolor, dan virginica.
Variabel penelitian merupakan karakteristik atau atribut yang menjadi
objek pengamatan dalam suatu penelitian. Pada praktikum ini, dataset
iris terdiri atas 5 variabel, yaitu satu variabel respons dan empat
variabel prediktor. Variabel Petal.Width (lebar kelopak
dalam satuan cm) berperan sebagai variabel respons bertipe numerik
kontinu. Empat variabel prediktor meliputi Sepal.Length,
Sepal.Width, Petal.Length, dan
Species. Variabel Sepal.Length,
Sepal.Width, dan Petal.Length bertipe numerik,
sedangkan Species bertipe kategorik (factor)
dengan tiga kategori. Variabel Species secara otomatis
diubah menjadi dua variabel dummy saat pemodelan, sehingga
jaringan memiliki lima unit masukan.
Adapun analisis data pada batasan masalah ini sebagai berikut: 1.
Memanggil dan mengeksplorasi dataset iris. 2. Membagi data
latih dan data uji dengan proporsi 80:20. 3. Menyusun formula model
dengan Petal.Width sebagai respons. 4. Membentuk model ANN
regresi dengan hidden neuron 10, 20, dan 30 serta
maxit 250 dan 500. 5. Melakukan prediksi pada data latih
dan data uji. 6. Menghitung RMSE data latih serta MAE, RMSE, dan \(R^2\) data uji, dan memeriksa status
konvergensi model. 7. Membandingkan keenam model dan memilih model
terbaik berdasarkan RMSE data uji terkecil. 8. Menampilkan arsitektur
jaringan, bobot jaringan, dan tingkat kepentingan variabel pada model
terbaik. 9. Interpretasi hasil.
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
Pada tahap awal analisis, dilakukan pemanggilan dan peringkasan
dataset Iris menggunakan fungsi head() dan
summary(). Berdasarkan hasil pemeriksaan, dataset
Iris terdiri atas 150 observasi dan lima variabel, yaitu
Sepal.Length, Sepal.Width,
Petal.Length, Petal.Width, dan
Species. Empat variabel pertama merupakan variabel numerik
yang menggambarkan ukuran bagian bunga, sedangkan variabel
Species menunjukkan jenis bunga iris. Hasil fungsi
summary() menunjukkan bahwa variabel Sepal.Length
memiliki rentang nilai 4,3–7,9 dengan rata-rata 5,843,
Sepal.Width sebesar 2,0–4,4 dengan rata-rata 3,057,
Petal.Length sebesar 1,0–6,9 dengan rata-rata 3,758, serta
Petal.Width sebesar 0,1–2,5 dengan rata-rata 1,199.
Sementara itu, variabel Species terdiri atas tiga jenis
bunga, yaitu setosa, versicolor, dan virginica, dengan masing-masing
berjumlah 50 observasi. Data tersebut selanjutnya digunakan sebagai
dasar dalam proses pemodelan ANN regresi.
## [1] 150
## [1] 120
## [1] 30
Pada tahap selanjutnya, dilakukan pembagian data menjadi data
training dan data testing secara acak menggunakan fungsi
sample() dengan menetapkan seed sebesar 918 agar
hasil pembagian data tetap konsisten ketika program dijalankan kembali.
Berdasarkan hasil pembagian, dari total 150 observasi, sebanyak 120
observasi (80%) digunakan sebagai data training, sedangkan 30
observasi (20%) digunakan sebagai data testing. Data
training digunakan untuk membangun model ANN, sementara data
testing digunakan untuk mengevaluasi kemampuan model dalam
melakukan prediksi terhadap data yang belum digunakan selama proses
pelatihan.
# Sintaks ANN
i <- names(train)
form <- as.formula(paste("Petal.Width ~", paste(i[!i %in% "Petal.Width"], collapse = " + ")))
form## Petal.Width ~ Sepal.Length + Sepal.Width + Petal.Length + Species
# Hidden neuron = (10, 20, 30) x maxit = (250, 500)
grid <- expand.grid(size = c(10, 20, 30), maxit = c(250, 500))
hasil <- data.frame()
model_list <- list()
for (k in 1:nrow(grid)) {
set.seed(918)
nn_k <- nnet.formula(form, size = grid$size[k], data = train,
linout = TRUE, maxit = grid$maxit[k], trace = FALSE)
# hasil prediksi
pred_train <- as.numeric(predict(nn_k, newdata = train, type = "raw"))
pred_test <- as.numeric(predict(nn_k, newdata = test, type = "raw"))
# hasil evaluasi
err_train <- train$Petal.Width - pred_train
err_test <- test$Petal.Width - pred_test
hasil <- rbind(hasil, data.frame(
Hidden_Neuron = grid$size[k],
Maxit = grid$maxit[k],
Konvergen = ifelse(nn_k$convergence == 0, "Ya", "Tidak (maxit tercapai)"),
RMSE_Train = sqrt(mean(err_train^2)),
MAE_Test = mean(abs(err_test)),
RMSE_Test = sqrt(mean(err_test^2)),
R2_Test = 1 - sum(err_test^2) / sum((test$Petal.Width - mean(test$Petal.Width))^2)
))
model_list[[paste0("size", grid$size[k], "_maxit", grid$maxit[k])]] <- nn_k
}
print(hasil, digits = 4)## Hidden_Neuron Maxit Konvergen RMSE_Train MAE_Test RMSE_Test
## 1 10 250 Tidak (maxit tercapai) 0.12762 0.2209 0.4084
## 2 20 250 Tidak (maxit tercapai) 0.13096 0.1678 0.2641
## 3 30 250 Tidak (maxit tercapai) 0.11559 0.1818 0.2519
## 4 10 500 Tidak (maxit tercapai) 0.12175 0.3007 0.5512
## 5 20 500 Tidak (maxit tercapai) 0.09124 0.4997 0.9948
## 6 30 500 Tidak (maxit tercapai) 0.06574 0.4912 0.9619
## R2_Test
## 1 0.7197
## 2 0.8828
## 3 0.8934
## 4 0.4894
## 5 -0.6630
## 6 -0.5547
Pada tahap selanjutnya, dilakukan pemodelan Artificial Neural
Network (ANN) regresi dengan menggunakan sample()
sebagai variabel respons, sedangkan Sepal.Length,
Sepal.Width, Petal.Length, dan
Species digunakan sebagai variabel prediktor. Pemodelan
dilakukan dengan enam kombinasi, yaitu jumlah hidden neuron
sebanyak 10, 20, dan 30 serta jumlah iterasi maksimum
(maxit) sebesar 250 dan 500. Selanjutnya, kinerja
masing-masing model dievaluasi menggunakan RMSE pada data
training, serta MAE, RMSE, dan \(R^2\) pada data testing.
Berdasarkan hasil pemodelan, seluruh kombinasi model menunjukkan
status tidak konvergen karena proses pelatihan mencapai batas iterasi
maksimum yang ditentukan. Hasil evaluasi menunjukkan bahwa model dengan
30 hidden neuron dan (maxit) 250 memberikan
kinerja terbaik berdasarkan nilai RMSE testing terkecil sebesar
0,2519 dan \(R^2\) terbesar sebesar
0,8934. Artinya, model mampu menjelaskan sekitar 89,34% variasi nilai
Petal.Width pada data testing. Sementara itu,
nilai MAE testing terkecil diperoleh pada model dengan 20 hidden
neuron dan (maxit) 250, yaitu sebesar 0,1678. Pada
penggunaan (maxit) 500, nilai RMSE training cenderung
menurun, tetapi nilai RMSE testing justru meningkat. Hal ini
menunjukkan bahwa peningkatan jumlah iterasi tidak selalu menghasilkan
prediksi yang lebih baik dan terdapat indikasi overfitting pada
beberapa model.
## Hidden_Neuron Maxit Konvergen RMSE_Train MAE_Test RMSE_Test
## 3 30 250 Tidak (maxit tercapai) 0.1155882 0.1818446 0.251913
## R2_Test
## 3 0.8933662
Pada tahap selanjutnya, dilakukan pemilihan model terbaik berdasarkan
nilai RMSE terkecil pada data testing. Pemilihan dilakukan
menggunakan fungsi which.min() untuk memperoleh model
dengan tingkat kesalahan prediksi paling rendah. Berdasarkan hasil yang
diperoleh, model terbaik adalah model dengan 30 hidden neuron
dan (maxit) sebesar 250. Model tersebut memiliki nilai RMSE
training sebesar 0,1156, MAE testing sebesar 0,1818, RMSE testing
sebesar 0,2519, dan \(R^2\) sebesar
0,8934. Hasil ini menunjukkan bahwa model memiliki kemampuan prediksi
yang cukup baik karena menghasilkan kesalahan prediksi yang relatif
kecil dan mampu menjelaskan 89,34% variasi nilai
Petal.Width. Meskipun demikian, model masih menunjukkan
status tidak konvergen karena proses pelatihan mencapai batas iterasi
maksimum yang ditentukan.
# Aktual vs prediksi pada data testing
predict_regresi <- predict(nn_best, newdata = test, type = "raw")
error <- test$Petal.Width - predict_regresi
head(data.frame(Aktual = test$Petal.Width,
Prediksi = round(as.numeric(predict_regresi), 3),
Error = round(as.numeric(error), 3)), 10)## Aktual Prediksi Error
## 1 0.2 0.237 -0.037
## 2 0.2 0.243 -0.043
## 3 0.2 0.204 -0.004
## 4 0.1 0.324 -0.224
## 5 0.4 0.296 0.104
## 6 0.3 0.231 0.069
## 7 0.2 0.252 -0.052
## 8 0.2 0.402 -0.202
## 9 0.1 0.278 -0.178
## 10 0.3 0.625 -0.325
plot(test$Petal.Width, predict_regresi,
xlab = "Petal.Width aktual", ylab = "Petal.Width prediksi",
main = "Aktual vs Prediksi (data testing)", pch = 19)
abline(0, 1, col = "red", lty = 2)
Pada tahap selanjutnya, dilakukan perbandingan antara nilai aktual dan
nilai prediksi menggunakan model ANN terbaik pada data testing.
Perbandingan ini bertujuan untuk mengetahui seberapa dekat hasil
prediksi model dengan nilai aktual. Berdasarkan sepuluh observasi
pertama, terlihat bahwa nilai prediksi cukup mendekati nilai aktual,
meskipun masih terdapat beberapa selisih. Pada observasi pertama, nilai
aktual sebesar 0,2 menghasilkan nilai prediksi sebesar 0,237 dengan
error sebesar -0,037. Sementara itu, pada observasi keempat,
nilai aktual sebesar 0,1 menghasilkan prediksi sebesar 0,324 dengan
error sebesar -0,224. Nilai error positif menunjukkan
bahwa prediksi lebih rendah daripada nilai aktual, sedangkan nilai
error negatif menunjukkan bahwa prediksi lebih tinggi daripada
nilai aktual. Dengan demikian, hasil prediksi model sudah cukup
mendekati nilai aktual, meskipun pada beberapa observasi masih terdapat
kesalahan prediksi yang cukup besar.
Pada tahap selanjutnya, dilakukan visualisasi arsitektur jaringan ANN
menggunakan fungsi
plotnet() untuk melihat struktur
jaringan yang terbentuk. Berdasarkan gambar, diperoleh struktur jaringan
5-30-1, yaitu lima neuron pada lapisan input, 30
neuron pada hidden layer, dan satu neuron pada lapisan
output. Lapisan input terdiri atas empat variabel numerik dan
dua variabel dummy dari Species, sedangkan lapisan
output terdiri atas Petal.Width sebagai variabel
respons. Selain itu, terdapat dua neuron bias yang membantu model dalam
menyesuaikan hasil prediksi.
Garis penghubung antarneuron menunjukkan bobot (weight) jaringan. Garis hitam menunjukkan bobot positif, sedangkan garis abu-abu menunjukkan bobot negatif. Ketebalan garis menggambarkan besarnya bobot, sehingga semakin tebal garis maka semakin besar nilai bobot tersebut. Visualisasi ini menunjukkan struktur dan hubungan antarneuron, tetapi belum menggambarkan ketepatan model. Oleh karena itu, kualitas model tetap perlu dilihat berdasarkan hasil evaluasi pada data testing. Penggunaan 30 neuron dengan jumlah data yang relatif terbatas juga berpotensi menyebabkan overfitting.
## $struct
## [1] 5 30 1
##
## $wts
## $wts$`hidden 1 1`
## [1] -0.1786128 -0.2587088 -0.3828873 0.1366628 -3.9700213 -4.2570865
##
## $wts$`hidden 1 2`
## [1] 0.3280516 0.5359028 0.8189374 0.2416695 1.3978345 -0.4129718
##
## $wts$`hidden 1 3`
## [1] 0.68724729 -1.10000625 -1.56865987 1.27933084 0.08689473 -2.27637666
##
## $wts$`hidden 1 4`
## [1] 5.320826 2.249436 -3.879214 0.131728 -2.374169 -6.990249
##
## $wts$`hidden 1 5`
## [1] 12.999900 -2.711132 -1.080452 2.024516 -2.381983 2.170214
##
## $wts$`hidden 1 6`
## [1] 6.916005 -8.386953 -12.154951 15.451479 10.632041 -2.007864
##
## $wts$`hidden 1 7`
## [1] -1.6606806 0.4385162 -1.9880245 -0.4763811 -2.2298210 0.4903220
##
## $wts$`hidden 1 8`
## [1] -1.417630105 1.514560911 0.828909627 2.117979293 -1.632326798
## [6] 0.002771052
##
## $wts$`hidden 1 9`
## [1] -2.271657 -1.771242 -1.925230 3.691431 -6.211007 -1.870504
##
## $wts$`hidden 1 10`
## [1] -9.782284 3.800647 -7.572019 3.139038 -4.529014 -12.176449
##
## $wts$`hidden 1 11`
## [1] 0.51467884 0.47045307 0.16381360 0.93806513 -0.33248423 0.02645952
##
## $wts$`hidden 1 12`
## [1] 3.1878079 -0.9927887 0.2754876 -1.0305506 2.5734909 -0.4470469
##
## $wts$`hidden 1 13`
## [1] -7.0443791 1.2923065 1.7236547 -3.7983486 -2.0754559 -0.2471452
##
## $wts$`hidden 1 14`
## [1] 1.77263119 -1.47520755 -1.52133518 0.74703572 -0.06744959 3.94771046
##
## $wts$`hidden 1 15`
## [1] -0.64474571 -0.60527363 -0.03557766 0.01401888 -0.72241621 0.28753321
##
## $wts$`hidden 1 16`
## [1] -1.1224121 -0.7529779 3.7215351 0.4778265 0.4482092 -0.7232360
##
## $wts$`hidden 1 17`
## [1] -6.35385982 1.18566943 0.02661173 0.05740986 -0.13003213 -2.43120579
##
## $wts$`hidden 1 18`
## [1] 1.523314 -1.750384 3.135864 4.059823 -2.347567 1.893789
##
## $wts$`hidden 1 19`
## [1] 0.09216925 3.20895694 1.41133953 2.22718673 -0.42300393 -0.01936184
##
## $wts$`hidden 1 20`
## [1] -0.88315570 -2.87351895 -1.30310482 -1.60602302 0.90192442 0.06707104
##
## $wts$`hidden 1 21`
## [1] -1.7862249 0.6301109 0.5504862 1.1545113 -0.9471433 -0.3329527
##
## $wts$`hidden 1 22`
## [1] 1.382221057 1.682817328 -0.555529619 0.004671466 0.774789733
## [6] -0.106312134
##
## $wts$`hidden 1 23`
## [1] -0.3804383 -4.6232562 6.5998403 -2.9902452 2.9889620 -2.4843394
##
## $wts$`hidden 1 24`
## [1] -2.4739164 -1.6458988 0.7462424 5.6852606 2.6506685 -2.2021608
##
## $wts$`hidden 1 25`
## [1] -0.2361252 -0.6174705 -0.2045790 -0.1057401 0.1520090 -0.7395101
##
## $wts$`hidden 1 26`
## [1] 3.3177054 -11.0512640 11.8531641 8.4199431 -0.5113468 9.3629521
##
## $wts$`hidden 1 27`
## [1] 1.6652218 3.4161241 0.2345085 1.0451532 2.0680522 0.6073725
##
## $wts$`hidden 1 28`
## [1] -3.4353332 3.4243095 -3.8754275 -2.0114677 -0.8014202 0.1395674
##
## $wts$`hidden 1 29`
## [1] 0.5167701 -1.1474844 -2.1870697 1.5588682 3.8857900 7.8723220
##
## $wts$`hidden 1 30`
## [1] -0.3169308 -3.4474089 -2.8350747 -1.1199210 0.4209773 0.4914055
##
## $wts$`out 1`
## [1] 1.75333740 0.75328540 0.77531817 -0.20300920 -1.80755666 -1.17356272
## [7] 0.63672212 -6.65809786 -2.47744047 -1.05195837 -1.24558140 -0.72820420
## [13] 4.68787416 -2.91591978 2.58650712 0.41978261 -1.97704898 4.01810603
## [19] -1.32550805 2.33561669 0.05078949 -2.47525597 1.62423733 -0.74707847
## [25] -1.71683559 1.04514615 0.86475608 4.09502831 1.00379462 2.93999642
## [31] 1.15198233
Pada tahap selanjutnya, dilakukan pemeriksaan bobot jaringan
(neural weights) menggunakan fungsi
neuralweights() untuk mengetahui nilai bobot yang terbentuk
pada setiap hubungan antarneuron. Berdasarkan hasil yang diperoleh,
model terbaik memiliki struktur jaringan 5-30-1, dengan 5
neuron input, 30 neuron pada lapisan tersembunyi, dan 1
neuron output. Bobot jaringan terdiri atas bobot yang
menghubungkan lapisan input ke lapisan tersembunyi serta bobot yang
menghubungkan lapisan tersembunyi ke lapisan output. Nilai
bobot positif menunjukkan hubungan yang memperkuat sinyal, sedangkan
nilai bobot negatif menunjukkan hubungan yang menekan sinyal. Besarnya
nilai bobot menunjukkan kekuatan hubungan antarneuron dalam proses
pembentukan prediksi. Dengan demikian, bobot-bobot tersebut digunakan
oleh jaringan ANN untuk mengolah informasi dari variabel prediktor
hingga menghasilkan prediksi Petal.Width.
Pada tahap selanjutnya, dilakukan analisis tingkat kepentingan
variabel menggunakan metode Olden untuk mengetahui kontribusi
masing-masing variabel prediktor dalam memprediksi
Petal.Width. Berdasarkan hasil analisis, variabel
Speciesversicolor dan Speciesvirginica
memiliki tingkat kepentingan paling tinggi dengan nilai masing-masing
sekitar 77 dan 57 serta arah positif. Hal ini menunjukkan bahwa jenis
spesies memiliki kontribusi besar dalam memprediksi lebar petal
dibandingkan variabel lainnya. Sementara itu, Petal.Length
memiliki pengaruh positif yang relatif kecil, sedangkan
Sepal.Length dan Sepal.Width memiliki pengaruh
negatif dengan kontribusi yang sangat kecil. Dengan demikian, jenis
spesies menjadi variabel yang paling berperan dalam model untuk
memprediksi Petal.Width. Perlu diperhatikan bahwa nilai
importance menunjukkan kontribusi relatif variabel dalam jaringan ANN,
bukan besarnya pengaruh seperti pada koefisien regresi.
Artificial Neural Network (ANN) merupakan metode pembelajaran mesin
yang meniru cara kerja jaringan saraf manusia dengan memanfaatkan
neuron-neuron yang saling terhubung untuk mempelajari pola data. ANN
dapat diterapkan pada regresi untuk memprediksi nilai numerik dan
klasifikasi untuk menentukan kategori suatu objek. Implementasi ANN
dalam bahasa R dapat dilakukan menggunakan paket seperti
nnet dengan menentukan variabel input, variabel output,
jumlah hidden neuron, serta parameter pelatihan yang sesuai.
Evaluasi performa model ANN dilakukan untuk mengetahui kemampuan model dalam menghasilkan prediksi. Pada regresi, metrik MSE digunakan untuk mengukur rata-rata kuadrat kesalahan prediksi, sedangkan MAPE mengukur rata-rata persentase kesalahan prediksi. Sementara itu, pada klasifikasi, akurasi digunakan untuk mengukur proporsi prediksi yang benar dari seluruh pengamatan, sedangkan presisi mengukur ketepatan model dalam memprediksi suatu kelas positif.
Berdasarkan penerapan ANN regresi pada dataset Iris, dilakukan
pengujian terhadap enam kombinasi jumlah hidden neuron dan
maxit. Hasil evaluasi menunjukkan bahwa model dengan 30
hidden neuron dan maxit 250 memberikan hasil terbaik
berdasarkan RMSE testing sebesar 0,2519 dan \(R^2\) sebesar 0,8934.
Model tersebut mampu menjelaskan 89,34% variasi nilai
Petal.Width, meskipun proses pelatihannya belum mencapai
konvergensi.
Fransiska, H. (2026). Modul Praktikum Machine Learning dan Modern Prediction. Bengkulu: Universitas Bengkulu.
Dafid, A., Sudianto, A. I., & Widyaningrum, V. T. (2026). Sains Data untuk Teknik Mekatronika. Malang: Media Nusa Creative.
Juansa, A., Susanto, Rianty, E., Apandi, T. H., Parassa, Y., & Pribadi, O. (2024). Machine Learning untuk Pemula. Yogyakarta: PT. Star Digital Publishing.
Setiawan, W. (2020). Topik Khusus Kecerdasan Komputasional: Deep Learning untuk Image dan Speech Recognition. Malang: Media Nusa Creative.