BAB II TINJAUAN PUSTAKA
2.1 Artificial Neural Network
Artificial Neural Network (ANN) atau Jaringan Saraf Tiruan (JST)
merupakan metode dalam machine learning yang terinspirasi dari cara
kerja jaringan saraf manusia dalam mengolah informasi dan mengenali
pola. ANN terdiri atas sejumlah unit pemrosesan yang disebut neuron dan
saling terhubung melalui jaringan dengan bobot tertentu. Setiap neuron
menerima masukan, melakukan proses pengolahan, kemudian menghasilkan
keluaran berdasarkan perhitungan yang dilakukan (Thoriq, 2022).
Struktur Artificial Neural Network secara umum terdiri atas
tiga lapisan utama, yaitu input layer, hidden layer,
dan output layer. Input layer berfungsi menerima data
masukan, hidden layer bertugas memproses informasi yang
diterima melalui perhitungan neuron, sedangkan output layer
menghasilkan keluaran dari proses pengolahan data. Setiap hubungan
antar-neuron memiliki bobot (weight) yang menentukan besarnya
pengaruh suatu masukan terhadap hasil keluaran jaringan (Dzulkamain
& Ma’ady, 2024).
2.2 ANN untuk Regresi
Artificial Neural Network (ANN) untuk regresi merupakan
penerapan jaringan saraf tiruan yang digunakan untuk memprediksi nilai
numerik atau kontinu berdasarkan pola hubungan antara variabel input dan
output. ANN mempelajari pola dari data pelatihan sehingga mampu
menghasilkan prediksi berdasarkan data yang diberikan. Metode ini dapat
digunakan untuk memodelkan hubungan antarvariabel yang kompleks dan
tidak selalu bersifat linear (Abidin dkk., 2024). Dalam proses regresi,
data masukan diproses melalui neuron pada input layer dan hidden layer,
kemudian menghasilkan nilai prediksi pada output layer. Proses
pembelajaran umumnya menggunakan algoritma backpropagation, yaitu proses
menghitung kesalahan antara hasil prediksi dan nilai sebenarnya, lalu
memperbarui bobot dan bias jaringan agar kesalahan semakin kecil. Proses
ini dilakukan secara berulang selama pelatihan hingga diperoleh model
dengan tingkat kesalahan yang sesuai.
Pada ANN regresi, fungsi aktivasi berperan dalam menentukan keluaran
setiap neuron. Fungsi aktivasi yang umum digunakan pada metode
Backpropagation Neural Network adalah sigmoid biner dan sigmoid
bipolar. Fungsi sigmoid biner menghasilkan output pada interval 0 hingga
1. Berikut merupakan rumus fungsi aktivasi sigmoid biner:
- Fungsi aktivasi sigmoid biner
\[
y = f(x) = \frac{1}{1+e^{-x}}
\]
- Turunan fungsi sigmoid biner
\[
f'(x) = \frac{e^{-x}}{(1+e^{-x})^2} = f(x)[1-f(x)]
\]
Sedangkan apabila nilai output-nya memiliki rentang nilai anta -1
sampai 1, maka fungsi tersebut ialah fungsi aktivasi sigmoid
bipolar.
- Fungsi aktivasi sigmoid bipolar
\[
y = f(x) = \frac{1-e^{-x}}{1+e^{-x}}
\]
- Turunan fungsi sigmoid bipolar
\[
f'(x) = \frac{2e^{-x}}{(1+e^{-x})^2} = \frac{1}{2}[1+f(x)][1-f(x)]
\]
Hasil prediksi ANN untuk regresi kemudian dievaluasi untuk mengetahui
tingkat kesalahan model. Beberapa metrik yang umum digunakan adalah
Mean Squared Error (MSE), Mean Absolute Error (MAE),
dan Root Mean Squared Error (RMSE). MSE menghitung rata-rata
kuadrat selisih antara nilai aktual dan prediksi, MAE menghitung
rata-rata nilai absolut kesalahan, sedangkan RMSE merupakan akar dari
MSE. Semakin kecil nilai kesalahan tersebut, semakin dekat hasil
prediksi dengan nilai aktual (Huda & Handayani, 2023).
2.3 ANN Klasifikasi
Artificial Neural Network (ANN) untuk klasifikasi merupakan
penerapan jaringan saraf tiruan yang digunakan untuk mengelompokkan data
ke dalam kelas atau kategori tertentu berdasarkan pola yang dipelajari
dari data pelatihan. Proses klasifikasi dilakukan dengan mengenali
hubungan antara variabel input dan label kelas sebagai output. ANN dapat
digunakan untuk berbagai permasalahan klasifikasi, seperti pengelompokan
jenis penyakit, tingkat kualitas produk, dan kategori objek berdasarkan
karakteristik tertentu (Aini dkk., 2023). Fungsi aktivasi berperan
penting dalam menentukan non-linearitas jaringan. Beberapa fungsi umum
pada ANN klasifikasi meliputi (Fransiska,2026):
- Sigmoid: cocok untuk klasifikasi biner
- Softmax: cocok untuk multiclass classification
- ReLU (Rectified Linear Unit) : mempercepat konvergensi dan
mengatasi masalah vanishing gradient
- Tanh: menghasilkan output antara -1 dan 1, serta membantu
normalisasi sinyal neuron
Evaluasi ANN Klasifikasi dilakukan dengan membandingkan kelas aktual
dan kelas hasil prediksi. Hasil perbandingan tersebut dapat disajikan
dalam confusion matrix (Fransiska,2026):
| 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:
- Accuracy
\[
Accuracy = \frac{TP+TN}{TP+TN+FP+FN}
\] 2. Precision
\[
Precision = \frac{TP}{TP+FP}
\] 3. Recall
\[
Recall = \frac{TP}{TP+FN}
\] 4. Specificity
\[
Specificity = \frac{TN}{TN+FP}
\] 5. F1-Score
\[
F1\text{-}Score = 2 \left(\frac{Precision \times
Recall}{Precision+Recall}\right)
\]
BAB IV HASIL DAN PEMBAHASAN
4.2 Pembagian Data Training dan Testing
set.seed(918);
nrow(BreastCancer)
## [1] 683
#Mengambil secara acak data untuk sampel sebanyak 80% data
index <-sample(1:nrow(BreastCancer), round(0.8*nrow(BreastCancer)))
train <-BreastCancer[index,]; nrow(train)
## [1] 546
test <-BreastCancer[-index,]; nrow(test)
## [1] 137
Berdasrkan hasil output, dataset Breast Cancer memiliki
total 683 observasi setelah dilakukan pembersihan data. Pembagian data
dilakukan secara acak menggunakan set.seed(918) dengan proporsi
80% untuk data training dan 20% untuk data testing. Hasil pembagian
menunjukkan bahwa sebanyak 546 observasi digunakan sebagai data
training, sedangkan 137 observasi digunakan sebagai data testing. Data
training digunakan untuk proses pembelajaran model ANN, sementara data
testing digunakan untuk mengukur kemampuan model dalam melakukan
prediksi terhadap data baru.
4.3 ANN Regresi
i <-names(train)
form <-as.formula(paste("Bare.nuclei ~", paste(i[!i %in%
"Bare.nuclei"], collapse =" + ")))
## Sintaks Neural Networks
# Ada 10 hidden neuron dan maxit = 250
nn <-nnet.formula(form,size=10,data=train, linout = TRUE,
maxit = 250,trace = FALSE)
## hasil prediksi
predict_regresi <-predict(nn, newdata=test, type="raw")
#hasil evaluasi
error=test$Bare.nuclei-predict_regresi
abs(error)
## [,1]
## 1 0.2404723
## 3 0.7595277
## 10 0.2404723
## 12 0.2404723
## 20 0.2404723
## 31 0.2404723
## 40 0.6551711
## 54 6.7595277
## 57 1.6551711
## 60 5.6551711
## 70 0.2404723
## 72 5.6551711
## 74 2.3448289
## 83 0.2404723
## 84 0.7595277
## 85 1.3448289
## 88 2.3448289
## 93 0.2404723
## 94 0.2404723
## 96 0.2404723
## 104 4.6551711
## 110 1.3448289
## 111 5.6525709
## 112 1.3448289
## 115 1.7595277
## 124 2.3448289
## 130 0.2404723
## 132 0.2404723
## 133 2.3448289
## 136 0.7595277
## 138 0.2404723
## 141 0.2404723
## 142 0.2404723
## 144 3.7595277
## 148 0.7595277
## 149 6.6551711
## 152 2.3448289
## 153 2.6551711
## 154 1.7595277
## 162 0.2404723
## 172 0.2404723
## 174 2.3448289
## 178 6.6551711
## 187 0.3448289
## 192 2.3448289
## 194 0.2404723
## 201 2.3448289
## 217 0.2404723
## 218 0.2404723
## 222 2.3448289
## 225 2.3448289
## 235 6.6551711
## 242 0.2404723
## 244 3.7595277
## 268 2.3448289
## 273 2.3448289
## 275 0.2404723
## 279 0.2404723
## 280 0.6551711
## 297 2.6551711
## 305 2.3448289
## 306 2.3448289
## 310 3.7595277
## 312 0.2404723
## 332 0.2404723
## 340 2.3448289
## 343 0.2404723
## 347 0.2404723
## 351 0.2404723
## 359 3.6551711
## 364 1.7595277
## 373 0.2404723
## 376 0.2404723
## 383 0.2404723
## 387 2.3448289
## 389 0.2404723
## 393 0.2404723
## 403 0.2404723
## 407 0.2404723
## 410 0.2404723
## 411 0.2404723
## 414 0.2404723
## 416 4.6551711
## 419 0.7595277
## 432 0.2404723
## 443 1.7595277
## 448 0.2404723
## 449 0.2404723
## 452 0.2404723
## 462 3.7595277
## 465 0.2404723
## 472 0.2404723
## 473 0.2404723
## 475 0.2404723
## 483 2.6551711
## 490 3.6551711
## 492 2.3448289
## 496 0.2404723
## 498 0.2404723
## 500 0.2404723
## 501 0.2404723
## 502 0.2404723
## 508 2.7595277
## 510 0.2404723
## 517 0.2404723
## 543 0.2404723
## 548 0.2404723
## 551 0.2404723
## 557 0.2404723
## 566 2.3448289
## 567 0.2404723
## 573 0.2404723
## 576 0.2404723
## 580 0.2404723
## 581 0.2404723
## 589 4.6551711
## 601 0.2404723
## 602 0.2404723
## 606 0.3448289
## 611 2.3448289
## 614 0.2404723
## 624 0.2404723
## 629 0.2404723
## 641 0.2404723
## 642 0.2404723
## 646 0.2404723
## 648 0.2404723
## 650 0.2404723
## 652 0.2404723
## 660 0.2404723
## 661 0.2404723
## 670 2.6551711
## 677 0.2404723
## 683 0.2404723
## 688 0.2404723
## 692 2.6551711
## 695 0.7595277
MAE=mean(abs(error)); MAE
## [1] 1.303875
RMSE=sqrt(mean((test$Bare.nuclei -
as.numeric(predict_regresi))^2)); RMSE
## [1] 2.092209
Model ANN regresi dibangun menggunakan sembilan variabel prediktor
untuk memprediksi variabel Bare.nuclei, dengan 10 neuron pada
lapisan tersembunyi dan maksimum 250 iterasi. Hasil prediksi diuji
menggunakan data testing sebanyak 137 pengamatan. Evaluasi menghasilkan
nilai MAE sebesar 1,303875 dan RMSE sebesar 2,092209. Nilai tersebut
menunjukkan besarnya rata-rata kesalahan prediksi berdasarkan selisih
nilai aktual dan prediksi. Semakin kecil nilai MAE dan RMSE, semakin
baik kemampuan model menghasilkan prediksi yang mendekati nilai
aktual.
4.4 Plot nnet
plotnet(nn)

Plot jaringan ANN menunjukkan arsitektur yang terdiri atas sembilan
neuron input (I1–I9), sepuluh neuron tersembunyi (H1–H10), dan satu
neuron output (O1). Lapisan input menerima sembilan variabel prediktor
yang diteruskan ke setiap neuron tersembunyi melalui bobot koneksi.
Selanjutnya, lapisan tersembunyi mengolah informasi berdasarkan bobot
dan bias (B1), kemudian meneruskan hasilnya ke neuron output. Bias (B2)
turut memengaruhi hasil akhir prediksi variabel Bare.nuclei. Ketebalan
garis menggambarkan besar kecilnya bobot, sedangkan perbedaan warna
menunjukkan tanda positif atau negatif. Arsitektur tersebut
memperlihatkan bahwa prediksi dihasilkan melalui pengolahan hubungan
antarvariabel secara bersamaan.
4.5 Bobot Neural
neuralweights(nn)
## $struct
## [1] 9 10 1
##
## $wts
## $wts$`hidden 1 1`
## [1] -9.6600825 -16.6897791 -10.7724098 -9.8910939 -9.9927194 -18.9693772
## [7] -18.3227536 -12.4723171 -9.2701770 0.4548989
##
## $wts$`hidden 1 2`
## [1] -26.355042 -48.377970 -65.187571 -39.239858 -79.767641 -62.758161
## [7] -57.398885 -33.976790 -35.893350 -4.520131
##
## $wts$`hidden 1 3`
## [1] 184.45347 760.98326 -82.91590 87.79127 -95.97278 210.58440 312.83365
## [8] -70.08403 170.31761 -59.42010
##
## $wts$`hidden 1 4`
## [1] -18.7744102 -50.4865007 -19.7844033 -21.7283760 -22.4154514 -36.1494119
## [7] -37.3638298 -20.5117806 -17.5786305 0.2755786
##
## $wts$`hidden 1 5`
## [1] -15.591009 -27.798593 -15.759585 -16.912075 -16.876211 -29.023337
## [7] -33.856815 -15.407410 -17.293613 -0.129159
##
## $wts$`hidden 1 6`
## [1] -10.7009066 -30.1094885 -11.1124436 -13.6315437 -16.8751670 -22.0096165
## [7] -19.2025765 -10.7993909 -12.6724617 -0.8006176
##
## $wts$`hidden 1 7`
## [1] -8.3274914 -23.0794639 -8.8218766 -10.6617907 -9.8453910 -17.0230297
## [7] -16.6037956 -9.7489655 -9.2337649 -0.1168353
##
## $wts$`hidden 1 8`
## [1] -3.1454985 -12.8286188 -8.0633133 -8.7807800 -6.5751290 -8.3127597
## [7] -8.4943087 -5.9225955 -3.9094275 -0.7971432
##
## $wts$`hidden 1 9`
## [1] 861.93049 -26.83170 -128.04723 60.39760 -32.72154 120.49906
## [7] -73.09954 -190.79576 121.58244 -941.61148
##
## $wts$`hidden 1 10`
## [1] -7.705537 -31.237027 -18.048916 -18.930230 -17.383314 -20.297174
## [7] -20.197950 -15.988553 -10.014420 -2.372303
##
## $wts$`out 1`
## [1] 197.060324 -21.007314 -33.934327 -189.405153 13.503067 -15.526896
## [7] -10.514097 -27.535914 -1.016695 -6.414699 29.704000
Hasil neuralweights(nn) menunjukkan bobot koneksi jaringan ANN dengan
struktur 9–10–1. Setiap neuron tersembunyi memiliki sembilan bobot
koneksi dari neuron input dan satu bias. Bagian out 1 memuat sepuluh
bobot koneksi dari neuron tersembunyi menuju neuron output. Nilai
positif dan negatif menunjukkan arah bobot koneksi, sedangkan besar
nilainya menggambarkan bobot yang dipelajari selama pelatihan. Nilai
terakhir sebesar 29,704 merupakan bias pada neuron output. Seluruh bobot
dan bias digunakan untuk menghasilkan prediksi variabel Bare.nuclei.
4.6 Plot the importance
olden(nn)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

Plot importance menunjukkan arah dan besarnya kontribusi setiap
variabel prediktor terhadap hasil prediksi ANN. Batang ke atas
menunjukkan nilai kepentingan positif, sedangkan batang ke bawah
menunjukkan nilai negatif. Variabel Normal.nucleoli, Class, Cell.size,
dan Marg.adhesion bernilai positif, sedangkan Cl.thickness, Bl.cromatin,
Epith.c.size, Mitoses, dan Cell.shape bernilai negatif. Cl.thickness
memiliki nilai negatif terbesar, sedangkan Marg.adhesion memiliki nilai
positif tertinggi. Semakin jauh batang dari angka nol, semakin besar
nilai absolut kepentingannya
4.7 Ada 10 hidden neuron dan maxit = 500
nn <-nnet.formula(form,size=10,data=train, linout = TRUE,
maxit = 500,trace = FALSE)
## hasil prediksi
predict_regresi <-predict(nn, newdata=test, type="raw")
#hasil evaluasi
error=test$Bare.nuclei-predict_regresi
abs(error)
## [,1]
## 1 4.783031e-02
## 3 9.521697e-01
## 10 4.783031e-02
## 12 4.783031e-02
## 20 4.783031e-02
## 31 4.783031e-02
## 40 4.529912e+00
## 54 3.708344e-01
## 57 5.954263e-01
## 60 9.737375e+00
## 70 4.784288e-02
## 72 6.370834e+00
## 74 8.837410e-02
## 83 1.873579e+00
## 84 8.777128e-02
## 85 6.291656e-01
## 88 1.629166e+00
## 93 4.783031e-02
## 94 4.783031e-02
## 96 5.788927e-01
## 104 2.941719e+00
## 110 2.054635e+00
## 111 2.206908e+00
## 112 6.291656e-01
## 115 1.264210e-01
## 124 5.884030e+00
## 130 2.523761e+00
## 132 4.783031e-02
## 133 9.170864e+00
## 136 9.521697e-01
## 138 4.783031e-02
## 141 4.783031e-02
## 142 4.783031e-02
## 144 3.952170e+00
## 148 9.521697e-01
## 149 4.404574e+00
## 152 5.884030e+00
## 153 1.945365e+00
## 154 1.952170e+00
## 162 4.783031e-02
## 172 5.788927e-01
## 174 1.629166e+00
## 178 7.370834e+00
## 187 1.911626e+00
## 192 8.837410e-02
## 194 5.788927e-01
## 201 4.595426e+00
## 217 4.783031e-02
## 218 5.788927e-01
## 222 4.595426e+00
## 225 3.054635e+00
## 235 4.783031e-02
## 242 1.588622e+00
## 244 4.737977e+00
## 268 9.930794e+00
## 273 9.930794e+00
## 275 4.783031e-02
## 279 5.788927e-01
## 280 2.985909e+00
## 297 4.045737e-01
## 305 7.630072e+00
## 306 4.595426e+00
## 310 2.912229e+00
## 312 4.783031e-02
## 332 4.783031e-02
## 340 8.837410e-02
## 343 4.783031e-02
## 347 4.783031e-02
## 351 4.783031e-02
## 359 1.404574e+00
## 364 1.952170e+00
## 373 4.783031e-02
## 376 4.783031e-02
## 383 4.783031e-02
## 387 3.748302e+00
## 389 4.783031e-02
## 393 4.783031e-02
## 403 4.783031e-02
## 407 4.783031e-02
## 410 4.783031e-02
## 411 4.783031e-02
## 414 4.783031e-02
## 416 3.945365e+00
## 419 9.521697e-01
## 432 4.404574e+00
## 443 2.000015e+00
## 448 4.783031e-02
## 449 4.783031e-02
## 452 4.783031e-02
## 462 3.952170e+00
## 465 4.783031e-02
## 472 1.588622e+00
## 473 4.783031e-02
## 475 4.783031e-02
## 483 3.370834e+00
## 490 1.839840e+00
## 492 5.574051e+00
## 496 4.783031e-02
## 498 4.783031e-02
## 500 4.783031e-02
## 501 4.783031e-02
## 502 4.783031e-02
## 508 2.952170e+00
## 510 4.783031e-02
## 517 4.783031e-02
## 543 4.783031e-02
## 548 4.783031e-02
## 551 4.783031e-02
## 557 4.783031e-02
## 566 8.837410e-02
## 567 4.783031e-02
## 573 4.783031e-02
## 576 4.783031e-02
## 580 5.788927e-01
## 581 4.783031e-02
## 589 5.370834e+00
## 601 4.783031e-02
## 602 4.783031e-02
## 606 1.054635e+00
## 611 8.837410e-02
## 614 4.783031e-02
## 624 4.783031e-02
## 629 4.783031e-02
## 641 4.783031e-02
## 642 4.783031e-02
## 646 4.783031e-02
## 648 1.508027e-05
## 650 4.783031e-02
## 652 4.783031e-02
## 660 4.783031e-02
## 661 4.783031e-02
## 670 3.370834e+00
## 677 4.783031e-02
## 683 4.783031e-02
## 688 4.783031e-02
## 692 3.370834e+00
## 695 9.521697e-01
MAE=mean(abs(error)); MAE
## [1] 1.453678
RMSE=sqrt(mean((test$Bare.nuclei -
as.numeric(predict_regresi))^2)); RMSE
## [1] 2.709384
## plot nnet
plotnet(nn)

#get the neural weights
neuralweights(nn)
## $struct
## [1] 9 10 1
##
## $wts
## $wts$`hidden 1 1`
## [1] 3540.7803 256.4611 -225.3182 -421.1849 586.7929 2653.3884
## [7] -2352.1776 1274.2030 -610.0589 4709.8460
##
## $wts$`hidden 1 2`
## [1] 4256.5903 -319.9327 1574.2595 -1805.5980 12131.0867 -1279.7777
## [7] -1391.6325 570.9324 -1557.1297 5622.0440
##
## $wts$`hidden 1 3`
## [1] 24518.5549 -1327.2738 367.9718 -624.2783 -1400.3608 -2093.7708
## [7] -1571.6282 -978.4628 1178.5375 2451.5144
##
## $wts$`hidden 1 4`
## [1] -12777.4230 3067.5093 -7174.1487 1226.7799 5507.4451 -7525.3055
## [7] 788.1351 2525.4796 -2243.4088 15152.6308
##
## $wts$`hidden 1 5`
## [1] 5111.8188 2116.7967 -454.6891 -1183.1593 -3102.4058 -1381.1011
## [7] 2392.7071 3820.8284 -1116.6394 -28021.5037
##
## $wts$`hidden 1 6`
## [1] 723.04972 2029.15696 -1227.89822 3499.74937 574.18195 70.71049
## [7] -2589.18335 10.83554 2018.65286 1282.90777
##
## $wts$`hidden 1 7`
## [1] -9938.374356 -1791.296416 -2753.586097 -1521.050521 7394.512144
## [6] 4629.025589 -12681.145164 -2764.310690 7.768747 4784.806413
##
## $wts$`hidden 1 8`
## [1] 1187.35227 65.89011 -5112.90592 347.61131 683.12336 2153.67288
## [7] -3482.52736 -903.78464 296.31551 -318.48417
##
## $wts$`hidden 1 9`
## [1] -851.68353 199.47036 551.48464 -239.42304 -1415.37535 -69.64885
## [7] 420.03351 -422.77755 -92.30587 -26.24796
##
## $wts$`hidden 1 10`
## [1] 12.6021822 21.1501521 14.8667112 14.3092901 14.5793498 30.0021509
## [7] 12.6741411 14.9164307 14.1563290 -0.1331828
##
## $wts$`out 1`
## [1] -0.9460916 3.9448851 4.2548641 -4.3567433 1.5407915 -2.9662608
## [7] -3.1590773 -7.5416981 2.6946250 1.8257487 4.2762542
# Plot the importance
olden(nn)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

Model ANN regresi menggunakan arsitektur 9–10–1 dengan 9 neuron
input, 10 hidden neuron, dan 1 neuron output untuk memprediksi
Bare.nuclei. Bias membantu menyesuaikan hasil perhitungan jaringan.
Hasil evaluasi menunjukkan MAE sebesar 1,453678 dan RMSE sebesar
2,709384. Hasil neuralweights(nn) menunjukkan bobot pada
setiap hubungan antarneuron. Bobot positif dan negatif menentukan arah
pembobotan sinyal, sedangkan besar nilainya menunjukkan kekuatan
pembobotan dalam menghasilkan prediksi.
4.8 Ada 20 hidden neuron dan maxit = 250
nn <-nnet.formula(form,size=20,data=train, linout = TRUE,
maxit = 250,trace = FALSE)
## hasil prediksi
predict_regresi <-predict(nn, newdata=test, type="raw")
#hasil evaluasi
error=test$Bare.nuclei-predict_regresi
abs(error)
## [,1]
## 1 0.06792471
## 3 0.66963352
## 10 0.09950203
## 12 0.52045937
## 20 0.14111785
## 31 0.02422723
## 40 1.29036301
## 54 1.60796942
## 57 0.91682399
## 60 7.37599532
## 70 2.25902375
## 72 7.48048078
## 74 2.95178631
## 83 1.23977773
## 84 1.07702204
## 85 2.23555153
## 88 3.09198379
## 93 0.23744128
## 94 0.23053313
## 96 0.38532861
## 104 2.22234422
## 110 0.19992585
## 111 4.84369379
## 112 2.88148853
## 115 1.84170113
## 124 0.22011290
## 130 1.86569419
## 132 0.08919397
## 133 3.20695260
## 136 1.81725518
## 138 0.16024105
## 141 0.16024105
## 142 0.09787755
## 144 3.76767300
## 148 0.52733411
## 149 0.71840376
## 152 3.03324035
## 153 1.39663438
## 154 1.77676637
## 162 0.39392092
## 172 0.38532861
## 174 0.51951922
## 178 5.76613367
## 187 4.42702383
## 192 10.92722040
## 194 0.38532861
## 201 0.80004435
## 217 0.23053313
## 218 0.38532861
## 222 3.25219788
## 225 0.79904193
## 235 4.47831004
## 242 0.26021686
## 244 3.90780269
## 268 1.46501986
## 273 1.46501986
## 275 0.16507508
## 279 0.38532861
## 280 5.01423947
## 297 3.60068180
## 305 1.29741591
## 306 0.95052022
## 310 4.05973693
## 312 0.23232700
## 332 0.36632234
## 340 1.60947418
## 343 0.09787755
## 347 1.81303456
## 351 0.29082949
## 359 1.80971202
## 364 1.19423011
## 373 0.06633281
## 376 0.23232700
## 383 2.24385771
## 387 1.33575946
## 389 0.50905463
## 393 0.07625192
## 403 0.18032769
## 407 0.05085110
## 410 0.93207589
## 411 0.23053313
## 414 0.12247320
## 416 2.85291524
## 419 1.44724405
## 432 0.22602787
## 443 1.80410127
## 448 0.15262597
## 449 0.43911158
## 452 0.15262597
## 462 3.83975895
## 465 0.22323363
## 472 0.43030006
## 473 1.42826107
## 475 0.15262597
## 483 4.52704547
## 490 8.07614714
## 492 1.65199367
## 496 0.02422723
## 498 0.22583081
## 500 0.29283632
## 501 0.14111785
## 502 0.29283632
## 508 2.76767300
## 510 0.09787755
## 517 0.43911158
## 543 0.17891007
## 548 1.06892782
## 551 0.07625192
## 557 2.20889021
## 566 3.48920356
## 567 0.15902627
## 573 0.07625192
## 576 0.12247320
## 580 0.38532861
## 581 0.81171900
## 589 6.79885366
## 601 0.07625192
## 602 0.07068172
## 606 1.20003603
## 611 0.08238962
## 614 0.44694382
## 624 0.23232700
## 629 0.09787755
## 641 0.63929483
## 642 0.07625192
## 646 0.07625192
## 648 0.19589873
## 650 0.07625192
## 652 0.17844852
## 660 0.23232700
## 661 0.23053313
## 670 6.87811138
## 677 0.23411343
## 683 0.69368946
## 688 1.89008709
## 692 4.21509724
## 695 1.12959778
MAE=mean(abs(error)); MAE
## [1] 1.455899
RMSE=sqrt(mean((test$Bare.nuclei -
as.numeric(predict_regresi))^2)); RMSE
## [1] 2.417498
## plot nnet
plotnet(nn)

#get the neural weights
neuralweights(nn)
## $struct
## [1] 9 20 1
##
## $wts
## $wts$`hidden 1 1`
## [1] -2.80192199 -4.64846869 4.38533011 0.09578437 1.33462551
## [6] 3.94848324 -3.15006768 3.19685663 -3.13942707 -21.28069544
##
## $wts$`hidden 1 2`
## [1] 7.7714112 10.8865111 0.6448000 0.5196476 2.2227723 9.1962321
## [7] 5.9045967 3.3734186 5.7322867 -2.1364283
##
## $wts$`hidden 1 3`
## [1] -11.9724869 -4.4966504 13.1670070 -2.9769597 8.1036575 -0.5795034
## [7] -6.5260454 -8.3417656 2.1794058 15.0640835
##
## $wts$`hidden 1 4`
## [1] 32.183182 8.157594 -19.854989 -2.613644 9.276488 18.427936
## [7] 2.469664 -21.149740 -9.252116 -9.366758
##
## $wts$`hidden 1 5`
## [1] -1.6421567 -1.1454823 -5.0184419 3.5869603 2.3314766 0.4280418
## [7] -1.8306398 -0.6849546 5.9317461 19.9871397
##
## $wts$`hidden 1 6`
## [1] -2.5921998 5.2496357 -4.7389825 -2.4773297 -4.3722621 12.4792934
## [7] -13.4568662 -2.9230676 -0.1473671 1.1022448
##
## $wts$`hidden 1 7`
## [1] -26.1140621 0.7944293 4.3440995 -3.0208269 -0.6700622 10.4981156
## [7] 2.2523898 -4.6691743 20.3970306 -12.6230211
##
## $wts$`hidden 1 8`
## [1] 17.3460946 -0.8539139 6.9895346 -4.5231367 -6.0329370 4.2538000
## [7] -2.0179657 -1.9270806 -12.8250522 -1.0786725
##
## $wts$`hidden 1 9`
## [1] 20.66509860 -1.30947766 -2.71958402 1.35833784 -2.10507487 0.01239059
## [7] -0.64534880 -3.38526819 4.49243305 -9.03288683
##
## $wts$`hidden 1 10`
## [1] -21.8332773 -4.7979900 2.0684240 4.1315436 0.6275904 -3.6624848
## [7] 2.4822423 -1.4382511 -6.0152971 -10.2642110
##
## $wts$`hidden 1 11`
## [1] -0.9338322 0.5549012 1.9086672 -4.5875699 3.0902895 1.3973062
## [7] -2.3099772 -2.3621094 -9.3746328 -0.7542007
##
## $wts$`hidden 1 12`
## [1] -4.0230488 -2.0121007 5.9999055 -6.0206505 -0.8909611 4.7924683
## [7] 0.3488889 -2.6064445 20.0014866 14.8473511
##
## $wts$`hidden 1 13`
## [1] 8.993389 2.464121 4.341584 4.201267 2.107021 -5.334829
## [7] 3.698793 -6.146696 -14.298828 -21.896160
##
## $wts$`hidden 1 14`
## [1] 16.1298016 15.0781339 -2.4950726 1.3007400 -0.7566196 -0.2478926
## [7] -6.9063566 11.5081143 0.8451791 -13.1936741
##
## $wts$`hidden 1 15`
## [1] -2.0861548 -11.2123497 -3.2499151 -5.5379460 1.6497762 0.6096624
## [7] 1.9375007 -6.0714983 3.0227318 2.8018169
##
## $wts$`hidden 1 16`
## [1] 12.6868028 2.3182888 -6.4951651 -3.6912367 -4.2856561 -4.0276333
## [7] 4.1301497 -8.2488841 0.4776468 29.7796443
##
## $wts$`hidden 1 17`
## [1] 24.590279 3.252118 21.701086 4.335011 1.177332 -17.814012
## [7] 1.079878 -27.574625 6.411140 17.940045
##
## $wts$`hidden 1 18`
## [1] 15.1191997 1.1551024 -0.8521274 3.9096035 0.3927894 -8.9594770
## [7] -19.7598671 4.5227783 -0.9097484 -0.5141482
##
## $wts$`hidden 1 19`
## [1] -2.310684 7.586727 1.579994 6.936870 -5.058503 -20.288097
## [7] -11.282545 -21.812413 -8.641190 -2.277080
##
## $wts$`hidden 1 20`
## [1] -2.9137031 4.4940645 -4.0315632 -1.9531408 -3.7345952 10.8555113
## [7] -11.7458365 -1.4398453 -0.7515635 6.1805402
##
## $wts$`out 1`
## [1] 2.6778038 -2.4355510 0.9163402 2.7160332 -1.5066170 3.7033796
## [7] 6.3563281 3.4573419 2.5393922 -5.0324293 -11.4875309 -6.4746145
## [13] 2.6812686 2.4152672 -4.2361355 -5.8340779 2.2369677 -2.6874357
## [19] 3.1089520 -3.4469321 -6.8051115
# Plot the importance
olden(nn)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

Model ANN regresi menggunakan arsitektur 9–20–1 dengan 9 neuron
input, 20 hidden neuron, dan 1 neuron output serta 250 iterasi (maxit).
Hasil evaluasi menunjukkan MAE sebesar 1,455899 dan RMSE sebesar
2,417498.Dibandingkan model sebelumnya dengan arsitektur 9–10–1 dan 500
iterasi, MAE sedikit meningkat dari 1,453678 menjadi 1,455899, sedangkan
RMSE menurun dari 2,709384 menjadi 2,417498. Artinya, model kedua
menghasilkan kesalahan prediksi yang lebih rendah berdasarkan RMSE,
meskipun nilai MAE-nya sedikit lebih tinggi.
4.9 Ada 20 hidden neuron dan maxit = 500
nn <-nnet.formula(form,size=20,data=train, linout = TRUE,
maxit = 500,trace = FALSE)
## hasil prediksi
predict_regresi <-predict(nn, newdata=test, type="raw")
#hasil evaluasi
error=test$Bare.nuclei-predict_regresi
abs(error)
## [,1]
## 1 0.14247335
## 3 0.85752665
## 10 0.14247335
## 12 0.14247335
## 20 0.14247335
## 31 0.14247335
## 40 0.72121063
## 54 1.00386371
## 57 0.27878937
## 60 7.00386371
## 70 0.14247335
## 72 7.00386371
## 74 3.72121063
## 83 0.14247335
## 84 0.85752665
## 85 0.79181356
## 88 3.72121063
## 93 0.14247335
## 94 0.14247335
## 96 0.14247335
## 104 6.00386371
## 110 2.72121063
## 111 1.54503421
## 112 0.00386371
## 115 1.85752665
## 124 0.99613629
## 130 7.26787775
## 132 0.14247335
## 133 7.43263426
## 136 0.85752665
## 138 0.14247255
## 141 0.14247255
## 142 0.14247335
## 144 3.85752820
## 148 0.85752665
## 149 51.12766363
## 152 4.61698862
## 153 1.27878937
## 154 1.85753023
## 162 0.14247335
## 172 0.14247335
## 174 3.72121063
## 178 5.27878937
## 187 1.79181356
## 192 3.72121063
## 194 0.14247335
## 201 3.72121063
## 217 0.14247335
## 218 0.14247335
## 222 3.72121063
## 225 3.72121063
## 235 0.54428436
## 242 0.14247335
## 244 3.85752665
## 268 3.03445293
## 273 3.03445293
## 275 0.14247335
## 279 0.14247335
## 280 3.81921001
## 297 1.27878937
## 305 0.99613629
## 306 3.72121063
## 310 3.85752665
## 312 0.14247180
## 332 0.14247335
## 340 0.99613629
## 343 0.14247335
## 347 2.18078999
## 351 0.14247483
## 359 2.27878937
## 364 1.85752665
## 373 0.14247335
## 376 0.14247180
## 383 0.14247335
## 387 1.45074622
## 389 0.14247335
## 393 0.14247335
## 403 0.14247335
## 407 0.14247335
## 410 0.14247335
## 411 0.14247335
## 414 0.14247335
## 416 6.79181356
## 419 0.85752665
## 432 2.18078999
## 443 2.01180036
## 448 0.14245729
## 449 0.14246910
## 452 0.14245729
## 462 3.85752745
## 465 0.14246977
## 472 0.14247441
## 473 0.14247335
## 475 0.14245729
## 483 4.00386371
## 490 5.00386371
## 492 0.99613629
## 496 0.14247335
## 498 0.10138468
## 500 0.14247335
## 501 0.14247335
## 502 0.14247335
## 508 2.85752820
## 510 0.14247335
## 517 0.14246910
## 543 0.03984924
## 548 0.14247112
## 551 0.14247335
## 557 0.14247335
## 566 0.20818644
## 567 0.14247335
## 573 0.14247335
## 576 0.14247335
## 580 0.14247335
## 581 0.14247335
## 589 6.00382258
## 601 0.14247335
## 602 0.14246965
## 606 1.00386371
## 611 0.99613629
## 614 0.14246543
## 624 0.14247180
## 629 0.14247335
## 641 0.14247541
## 642 0.14247335
## 646 0.14247335
## 648 0.01180036
## 650 0.14247335
## 652 2.58259772
## 660 0.14247180
## 661 0.14247335
## 670 4.79181356
## 677 0.14247335
## 683 0.14247335
## 688 2.13314973
## 692 1.27878937
## 695 0.85925024
MAE=mean(abs(error)); MAE
## [1] 1.718039
RMSE=sqrt(mean((test$Bare.nuclei -
as.numeric(predict_regresi))^2)); RMSE
## [1] 4.935971
## plot nnet
plotnet(nn)

#get the neural weights
neuralweights(nn)
## $struct
## [1] 9 20 1
##
## $wts
## $wts$`hidden 1 1`
## [1] -5.845874 -41.135071 -10.250488 -9.053323 14.970828 -39.203543
## [7] -8.626803 -8.302574 15.873182 -1.777485
##
## $wts$`hidden 1 2`
## [1] -155.0235914 -0.3313428 26.0358001 -16.3438755 14.7497019
## [6] 31.0707803 -26.5666961 36.6364768 16.3909461 126.9883103
##
## $wts$`hidden 1 3`
## [1] -0.09837272 1.73452429 3.05550936 2.47916541 1.61178592 1.18310285
## [7] 0.91779818 2.03292072 0.26437952 1.12768192
##
## $wts$`hidden 1 4`
## [1] 298.55839 190.68406 -90.89895 23.58988 -173.41739 72.26900
## [7] 107.73544 -149.10388 18.89745 722.63893
##
## $wts$`hidden 1 5`
## [1] 2.2601968 3.9252974 1.9628266 1.9426992 1.9592976 3.3583537
## [7] 3.6110103 1.8621210 1.8372845 -0.4182084
##
## $wts$`hidden 1 6`
## [1] 0.3690997 1.9450061 1.6301857 1.4855863 1.7193679 1.7033155 1.4846896
## [8] 1.6336648 1.6797175 0.4191822
##
## $wts$`hidden 1 7`
## [1] 1.4446215 2.5972359 0.7097709 0.5123345 1.8159496 1.3185409 1.8699691
## [8] 1.8325963 0.5142013 0.4662750
##
## $wts$`hidden 1 8`
## [1] 0.5628932 1.9853429 1.6206539 2.1170147 1.8538302 1.5948681 1.6373803
## [8] 1.6749516 0.4858600 0.8319205
##
## $wts$`hidden 1 9`
## [1] -65.71572 -311.91700 289.47439 -53.46712 95.25993 -46.51288
## [7] -135.21943 420.60170 -462.73369 110.70375
##
## $wts$`hidden 1 10`
## [1] -409.640017 -8.348750 37.456908 -6.495443 70.877537 11.555959
## [7] 18.973560 26.758887 -49.030211 223.625973
##
## $wts$`hidden 1 11`
## [1] -0.3780789 -1.4996812 -9.3656575 12.0187775 16.0521152 -7.6841127
## [7] 14.9384761 7.3705155 -5.9315684 7.1328144
##
## $wts$`hidden 1 12`
## [1] -0.9007725 -5.6442217 -3.2069719 -3.5797805 -3.6932288 -4.0948712
## [7] -3.5535053 -2.6598582 -2.2228277 0.4720927
##
## $wts$`hidden 1 13`
## [1] 0.1252906 -1.7843472 -1.3275026 -1.8274995 -2.4583522 -1.5690789
## [7] -2.0429442 -1.9697787 -1.1594787 -0.1137990
##
## $wts$`hidden 1 14`
## [1] 1.9980959 3.7477296 0.7621181 1.5945139 0.6780444 2.4635978
## [7] 1.9780786 0.6932242 2.1397017 -0.7354246
##
## $wts$`hidden 1 15`
## [1] 1.707405 -1.960588 -4.512765 -5.077331 -4.114203 -1.397997 -1.916491
## [8] -3.475306 1.007858 -1.442346
##
## $wts$`hidden 1 16`
## [1] 47.01412704 -9.95385238 -37.68828693 -57.74590941 14.61461559
## [6] -2.40844310 0.09479855 10.27870273 3.07462429 30.69458148
##
## $wts$`hidden 1 17`
## [1] 6.909265 45.846233 -70.950735 61.166700 -128.477828 -59.088967
## [7] 216.029300 44.711992 226.505678 46.322438
##
## $wts$`hidden 1 18`
## [1] -4.10904506 -5.25848352 -0.95787293 -1.16757102 -1.26343194 -4.96021411
## [7] -4.36468316 -2.82669749 -3.06482370 0.05263539
##
## $wts$`hidden 1 19`
## [1] -0.02219148 2.29564144 2.58093489 2.79027121 2.36819315 1.87902788
## [7] 2.25301165 2.11372744 0.47021096 0.82381509
##
## $wts$`hidden 1 20`
## [1] -6.0376247 -7.8561570 -8.1240320 -6.4517703 -39.8942807 9.5014937
## [7] -10.1143220 -7.9349522 -19.0946566 -0.7418183
##
## $wts$`out 1`
## [1] -1.0517592 32.8224370 2.0383166 6.6905991 -3.5130242 -4.6802359
## [7] 0.9186937 -2.6118191 -1.0619893 -2.7250743 5.8230737 2.2224492
## [13] 3.1968119 -0.7711442 -5.4174089 -0.4893163 -56.4064530 7.2244478
## [19] 2.2520369 2.4225201 -63.8484320
# Plot the importance
olden(nn)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

Model ANN regresi menggunakan arsitektur 9–20–1 dengan 9 neuron
input, 20 hidden neuron, dan 1 neuron output serta 500 iterasi (maxit).
Hasil evaluasi menunjukkan MAE sebesar 1,718039 dan RMSE sebesar
4,935971. Berdasarkan plotnet() dan
neuralweights(), jaringan memiliki 20 neuron tersembunyi
dengan bobot dan bias yang menghubungkan setiap lapisan. Dibandingkan
model sebelumnya dengan arsitektur 9–20–1 dan 250 iterasi, MAE meningkat
dari 1,455899 menjadi 1,718039, sedangkan RMSE meningkat dari 2,417498
menjadi 4,935971. Artinya, peningkatan iterasi menjadi 500 belum
meningkatkan kinerja model karena menghasilkan kesalahan prediksi yang
lebih besar.
4.10 Ada 30 hidden neuron dan maxit = 250
nn <-nnet.formula(form,size=30,data=train, linout = TRUE,
maxit = 250,trace = FALSE)
## hasil prediksi
predict_regresi <-predict(nn, newdata=test, type="raw")
#hasil evaluasi
error=test$Bare.nuclei-predict_regresi
abs(error)
## [,1]
## 1 0.039898917
## 3 0.662745976
## 10 0.066489144
## 12 0.061040354
## 20 0.252148410
## 31 0.155248087
## 40 4.518553873
## 54 1.899804944
## 57 0.523901114
## 60 11.092094108
## 70 3.202404768
## 72 12.040689107
## 74 1.709089402
## 83 1.426554600
## 84 5.176305457
## 85 0.628620614
## 88 0.197379163
## 93 0.021978404
## 94 0.137774341
## 96 0.589840838
## 104 11.933361168
## 110 2.368127443
## 111 11.062716723
## 112 2.126963431
## 115 1.413782633
## 124 1.879377509
## 130 3.927990767
## 132 0.042265983
## 133 0.382699112
## 136 0.840936287
## 138 0.162439125
## 141 0.162439125
## 142 0.704105541
## 144 3.770077543
## 148 1.110240823
## 149 11.080298404
## 152 2.043826788
## 153 0.887376753
## 154 1.832626575
## 162 0.387356029
## 172 0.589840838
## 174 0.155704779
## 178 3.303505082
## 187 6.424644945
## 192 1.709363220
## 194 0.589840838
## 201 5.484584633
## 217 0.137774341
## 218 0.589840838
## 222 2.625546654
## 225 5.279637566
## 235 1.881433164
## 242 1.609312968
## 244 17.468335020
## 268 0.461349727
## 273 0.461349727
## 275 0.277937220
## 279 0.589840838
## 280 3.679028884
## 297 3.905179960
## 305 1.736374399
## 306 3.805159059
## 310 1.197055763
## 312 0.229922457
## 332 2.575254045
## 340 1.878296572
## 343 0.704105541
## 347 0.903883146
## 351 0.021836345
## 359 2.840239885
## 364 3.392856165
## 373 0.522888228
## 376 0.229922457
## 383 0.702076807
## 387 2.228239781
## 389 0.192898267
## 393 0.027342063
## 403 2.030349252
## 407 0.674352591
## 410 0.183139911
## 411 0.137774341
## 414 0.408234186
## 416 7.835050590
## 419 2.884968395
## 432 4.952680685
## 443 1.563789265
## 448 0.040583935
## 449 0.157110947
## 452 0.040583935
## 462 3.837560875
## 465 0.167373425
## 472 0.020716455
## 473 0.902469699
## 475 0.040583935
## 483 2.350276378
## 490 3.468444018
## 492 7.034193448
## 496 0.155248087
## 498 0.704863523
## 500 0.003821279
## 501 0.252148410
## 502 0.003821279
## 508 2.770077543
## 510 0.704105541
## 517 0.157110947
## 543 0.674824998
## 548 0.381545999
## 551 0.027342063
## 557 1.419155117
## 566 1.513223470
## 567 0.221111438
## 573 0.027342063
## 576 0.408234186
## 580 0.589840838
## 581 1.576716853
## 589 4.519573253
## 601 0.027342063
## 602 0.070975000
## 606 3.075379655
## 611 0.844278243
## 614 2.065011264
## 624 0.229922457
## 629 0.704105541
## 641 2.275019761
## 642 0.027342063
## 646 0.027342063
## 648 0.436210735
## 650 0.027342063
## 652 2.015782654
## 660 0.229922457
## 661 0.137774341
## 670 2.249229710
## 677 0.018121391
## 683 0.866089624
## 688 1.274317507
## 692 3.857500074
## 695 0.620352278
MAE=mean(abs(error)); MAE
## [1] 1.889443
RMSE=sqrt(mean((test$Bare.nuclei -
as.numeric(predict_regresi))^2)); RMSE
## [1] 3.38083
## plot nnet
plotnet(nn)

#get the neural weights
neuralweights(nn)
## $struct
## [1] 9 30 1
##
## $wts
## $wts$`hidden 1 1`
## [1] -21.5767526 -8.4786115 9.8066425 -4.1241391 4.9582581 1.2847654
## [7] -5.3666345 2.0145326 -0.1226061 -21.7125981
##
## $wts$`hidden 1 2`
## [1] 3.8915723 2.7709649 -3.2075787 4.7042975 -2.2660954 6.7425885
## [7] -3.2676138 2.5608563 -0.9859100 -0.3273079
##
## $wts$`hidden 1 3`
## [1] -1.5981986 18.0539854 7.4868097 1.2406710 -7.1444437 0.1735186
## [7] -6.4290519 10.2356168 0.5280415 -1.4154872
##
## $wts$`hidden 1 4`
## [1] 9.2287709 0.9400746 10.3249748 6.7609441 -13.9150354 -17.0825391
## [7] -1.9939045 12.3243501 5.0491437 9.3543862
##
## $wts$`hidden 1 5`
## [1] -33.2949230 -0.3042426 1.7494759 -0.6097792 2.9939427 2.0053673
## [7] 1.7460038 4.3195861 -6.0025035 17.9906184
##
## $wts$`hidden 1 6`
## [1] -2.7472210 -2.2530495 -6.6104733 0.6691595 8.7194747 -1.5070843
## [7] -3.8527573 -8.1722139 16.0695688 -6.4106124
##
## $wts$`hidden 1 7`
## [1] -26.8126436 -2.0227924 -1.4791744 4.9605556 8.0450052 0.8088999
## [7] -2.8669468 -2.8882544 6.3079301 -16.7610358
##
## $wts$`hidden 1 8`
## [1] -16.3348525 1.0766247 0.3386590 0.8805299 0.4526906 10.3681630
## [7] 2.0055509 -4.1225377 0.5681991 4.6164055
##
## $wts$`hidden 1 9`
## [1] -11.898644 1.293867 5.152723 3.671195 3.203285 -11.740700
## [7] 6.825080 -5.704236 -13.372313 -1.625477
##
## $wts$`hidden 1 10`
## [1] 7.0866509 -0.9828026 -0.5722697 2.4753956 -4.6247703 -1.2432980
## [7] -0.4859908 2.5399664 -13.5084728 6.2014052
##
## $wts$`hidden 1 11`
## [1] 22.6636695 1.2277564 -6.4611417 9.7211247 0.6418689 -23.7385097
## [7] 9.4450701 -7.5374608 22.5622934 23.7697972
##
## $wts$`hidden 1 12`
## [1] -1.2447159 -2.1960629 0.3190295 -11.0921055 -5.4484235 -0.6699111
## [7] 8.2617390 3.0196874 -7.8225033 14.3448628
##
## $wts$`hidden 1 13`
## [1] 11.7935277 -0.7537620 4.3113436 4.6328162 -2.3985505 -3.3031367
## [7] -0.5385307 -0.6584960 -9.8737224 -35.4874788
##
## $wts$`hidden 1 14`
## [1] 3.789755 1.983736 5.158297 15.449093 -18.796000 -2.285845
## [7] 13.214396 -2.511895 -10.638404 -8.755652
##
## $wts$`hidden 1 15`
## [1] -6.9304977 -6.9502711 -0.1668688 8.2837562 5.0295829 5.5505385
## [7] -2.4110045 9.9581269 -11.9106035 -14.7569325
##
## $wts$`hidden 1 16`
## [1] 17.4339086 0.5619657 -12.2948539 6.1323802 20.0462015 4.6635335
## [7] -4.9763438 -0.6184863 2.0995487 2.6646450
##
## $wts$`hidden 1 17`
## [1] -0.7253853 -20.1715758 -1.9086561 -8.9289068 7.3429985 5.8566735
## [7] 5.6214455 -15.5633129 -7.8499790 6.9348047
##
## $wts$`hidden 1 18`
## [1] 10.1979088 0.5689349 -3.1616186 4.4978936 -2.6619055 -0.8254893
## [7] 1.3122353 3.2386300 6.8037862 -6.0417858
##
## $wts$`hidden 1 19`
## [1] -16.104265 1.733473 -1.565655 -6.571965 7.084168 10.572589
## [7] -1.161859 2.358352 -7.356496 11.139861
##
## $wts$`hidden 1 20`
## [1] -1.5436011 -0.2799488 -7.3237349 7.0039792 6.9181769 -8.8821891
## [7] 2.0518979 9.4454888 2.5971706 -19.0681491
##
## $wts$`hidden 1 21`
## [1] 7.2913904 -1.5226979 -3.7668206 2.8445942 -1.2011914 -2.6096765
## [7] -0.5968773 3.3175465 -10.1263342 0.6884228
##
## $wts$`hidden 1 22`
## [1] 9.30455892 6.70418287 -4.38607629 5.05585851 -2.79774519 11.28756225
## [7] -7.54517440 -0.09005744 9.90652025 0.35680356
##
## $wts$`hidden 1 23`
## [1] -3.64418651 0.22375036 -3.74479561 1.08831915 -0.61117055 1.17941368
## [7] 0.23449777 -0.63470481 -0.02306168 -0.29198071
##
## $wts$`hidden 1 24`
## [1] 11.5964288 9.6871690 -8.6257484 -1.2497516 -20.1685858 -0.5016592
## [7] 10.5281185 16.7184828 -6.2267578 12.3848643
##
## $wts$`hidden 1 25`
## [1] -2.8164086 -3.9983566 -0.6587248 4.5999915 -2.5495374 4.6773622
## [7] 1.4213624 3.7318197 -8.5210836 13.5287180
##
## $wts$`hidden 1 26`
## [1] -23.1866636 7.8740154 -2.2218994 11.0971700 -0.4040542 -15.2079490
## [7] 6.7646882 -6.5775307 -8.5556576 13.0327855
##
## $wts$`hidden 1 27`
## [1] -1.0255237 -0.8134321 0.2285739 -0.6902812 2.5788663 -0.3534751
## [7] 3.9743449 3.3598384 -3.6134508 -2.7102140
##
## $wts$`hidden 1 28`
## [1] -3.7519529 -3.3472863 0.1112539 7.5626943 2.3073202 8.7989118
## [7] -3.4537825 1.0745802 2.3749074 -12.2855676
##
## $wts$`hidden 1 29`
## [1] 7.35901978 -0.03445461 -0.72247612 -2.24704063 -0.33736731
## [6] 0.22866892 0.07270786 -2.12415959 -1.16835313 -15.76540306
##
## $wts$`hidden 1 30`
## [1] -0.81487857 1.50494689 2.52324062 4.55766407 -3.69660975 0.03332642
## [7] -9.21142864 -2.08879147 -1.09069399 0.03191765
##
## $wts$`out 1`
## [1] 7.236364 3.134113 -10.247183 -20.984575 -1.676129 4.758193
## [7] -2.813372 3.530381 -2.489049 3.493491 3.982120 2.409030
## [13] 3.150010 -3.212811 -2.279801 2.597141 6.845065 -10.098717
## [19] 17.506190 -2.435869 -3.663159 -6.631887 6.860540 6.072578
## [25] 4.460516 -3.518963 -2.116395 3.221871 -1.968374 -4.899402
## [31] 2.726305
# Plot the importance
olden(nn)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

Model ANN regresi menggunakan arsitektur 9–30–1 dengan 9 neuron
input, 30 hidden neuron, dan 1 neuron output, serta 250 iterasi (maxit).
Hasil evaluasi menunjukkan MAE sebesar 1,889443 dan RMSE sebesar
3,380830. Dibandingkan model sebelumnya dengan arsitektur 9–20–1 dan 250
iterasi, MAE meningkat dari 1,455899 menjadi 1,889443, sedangkan RMSE
meningkat dari 2,417498 menjadi 3,380830. Artinya, penambahan jumlah
hidden neuron menjadi 30 belum meningkatkan kinerja model karena
menghasilkan kesalahan prediksi yang lebih besar.
4.11 Ada 30 hidden neuron dan maxit = 500
nn <-nnet.formula(form,size=30,data=train, linout = TRUE,
maxit = 500,trace = FALSE)
## hasil prediksi
predict_regresi <-predict(nn, newdata=test, type="raw")
#hasil evaluasi
error=test$Bare.nuclei-predict_regresi
abs(error)
## [,1]
## 1 0.006083136
## 3 0.687184837
## 10 0.434299687
## 12 0.030314053
## 20 0.125331944
## 31 0.003771223
## 40 4.247086224
## 54 4.418093034
## 57 7.934246409
## 60 8.028133363
## 70 3.641364883
## 72 4.077627239
## 74 0.816403937
## 83 3.614198588
## 84 16.129716006
## 85 7.696569752
## 88 1.446683861
## 93 0.011214757
## 94 0.115225128
## 96 0.561029917
## 104 6.108534771
## 110 1.351849994
## 111 4.338080793
## 112 2.672304002
## 115 3.124889601
## 124 0.609530262
## 130 74.178430979
## 132 0.066515835
## 133 11.162444007
## 136 2.447969579
## 138 0.026887854
## 141 0.026887854
## 142 0.285719733
## 144 3.676357740
## 148 0.089374291
## 149 2.557939685
## 152 7.925754392
## 153 3.661941721
## 154 1.878719662
## 162 0.542404531
## 172 0.561029917
## 174 0.202683048
## 178 5.276712573
## 187 2.328126499
## 192 2.780616811
## 194 0.561029917
## 201 2.989056640
## 217 0.115225128
## 218 0.561029917
## 222 0.214401163
## 225 0.800556686
## 235 1.068010917
## 242 4.734356975
## 244 18.923865117
## 268 4.183504074
## 273 4.183504074
## 275 1.157213379
## 279 0.561029917
## 280 2.028073783
## 297 6.014751909
## 305 8.092680836
## 306 4.386035272
## 310 12.190305917
## 312 0.323642260
## 332 2.092714887
## 340 1.910813183
## 343 0.285719733
## 347 2.335189344
## 351 0.019455044
## 359 3.253567284
## 364 2.851269333
## 373 0.402844115
## 376 0.323642260
## 383 2.922135565
## 387 5.378509982
## 389 1.428322174
## 393 0.083289292
## 403 2.539450756
## 407 0.210659655
## 410 0.998706696
## 411 0.115225128
## 414 0.373162799
## 416 8.506227805
## 419 1.484123614
## 432 2.145320315
## 443 1.984457807
## 448 0.005109598
## 449 0.001548213
## 452 0.005109598
## 462 3.973112146
## 465 0.121280338
## 472 0.001919351
## 473 0.030148670
## 475 0.005109598
## 483 0.511361014
## 490 0.944310580
## 492 4.725313010
## 496 0.003771223
## 498 2.251579907
## 500 0.198613907
## 501 0.125331944
## 502 0.198613907
## 508 2.676357740
## 510 0.285719733
## 517 0.001548213
## 543 1.740452955
## 548 0.155787559
## 551 0.083289292
## 557 0.136650952
## 566 2.861294275
## 567 1.801824573
## 573 0.083289292
## 576 0.373162799
## 580 0.561029917
## 581 1.591726044
## 589 5.702851984
## 601 0.083289292
## 602 0.022053405
## 606 1.252086598
## 611 1.102870816
## 614 1.046996298
## 624 0.323642260
## 629 0.285719733
## 641 1.338829635
## 642 0.083289292
## 646 0.083289292
## 648 0.015542193
## 650 0.083289292
## 652 2.974179360
## 660 0.323642260
## 661 0.115225128
## 670 4.214623819
## 677 0.209322780
## 683 0.296457275
## 688 1.843206753
## 692 4.390608925
## 695 0.820406062
MAE=mean(abs(error)); MAE
## [1] 2.691278
RMSE=sqrt(mean((test$Bare.nuclei -
as.numeric(predict_regresi))^2)); RMSE
## [1] 7.351371
## plot nnet
plotnet(nn)

#get the neural weights
neuralweights(nn)
## $struct
## [1] 9 30 1
##
## $wts
## $wts$`hidden 1 1`
## [1] -85.61510 15.56126 -63.15967 -74.97696 135.26509 -57.99882
## [7] -120.60169 -26.85425 -40.54997 21.78581
##
## $wts$`hidden 1 2`
## [1] -71.737003 -29.736267 27.906319 25.328738 43.297008 1.148099
## [7] -42.344191 -23.080202 82.962746 -58.744286
##
## $wts$`hidden 1 3`
## [1] -15.092783 -3.448136 -11.033473 -40.845587 62.542128 -5.135099
## [7] -15.781585 79.212310 35.412280 -44.854640
##
## $wts$`hidden 1 4`
## [1] 71.527796 44.131759 4.440870 -67.727175 -34.114420 47.182071
## [7] -42.870729 47.249838 6.220412 136.412644
##
## $wts$`hidden 1 5`
## [1] -3.54693548 0.10910809 1.03397266 -0.07385707 0.53775467 -0.37406757
## [7] 0.24845245 0.10539256 -0.24240181 -1.33242797
##
## $wts$`hidden 1 6`
## [1] -18.6868289 3.0402370 -0.8062002 22.9754951 5.6779169 -25.6556038
## [7] 9.3183419 4.1827361 -18.9074397 17.0367582
##
## $wts$`hidden 1 7`
## [1] -29.8840216 -51.1821533 -0.6721764 81.5138902 -51.9254769 86.1125616
## [7] 11.3079571 99.8175814 -24.4907176 71.1247855
##
## $wts$`hidden 1 8`
## [1] 16.4697693 0.4979646 7.5346057 -11.7294969 4.1534575 1.5187155
## [7] 2.9303549 -13.7320539 32.3116609 72.7363410
##
## $wts$`hidden 1 9`
## [1] 31.5169012 -90.7021414 -32.2405594 -28.8109142 -91.1403656 35.0650353
## [7] -15.5989250 -10.9285362 -0.2598839 -18.1139713
##
## $wts$`hidden 1 10`
## [1] -14.2504748 0.9682683 -102.2128754 -8.7557285 39.1727728
## [6] 6.3073377 4.4063315 -17.2617090 4.9346214 -62.8699554
##
## $wts$`hidden 1 11`
## [1] 13.416358 -3.731908 30.766223 53.595164 19.628326 15.296204
## [7] 39.101535 20.964038 -32.162706 2.150877
##
## $wts$`hidden 1 12`
## [1] -11.964161 11.769383 -40.202054 -71.743184 143.669942 -200.947855
## [7] -1.103528 93.335323 53.260456 108.803169
##
## $wts$`hidden 1 13`
## [1] -66.458273 -1.594217 -7.008064 6.514249 4.385898 -8.943216
## [7] 21.533112 -4.586096 -20.881767 -30.871624
##
## $wts$`hidden 1 14`
## [1] -26.81038320 1.47724600 43.80710385 -19.45594113 -7.96273471
## [6] -14.06234554 -2.65359720 0.05962646 -7.84060439 -37.97715442
##
## $wts$`hidden 1 15`
## [1] 128.79650544 0.05403874 -2.01537229 0.60046779 -129.68793930
## [6] 0.96838280 -1.04800297 -0.05434060 -1.26359045 2.13596622
##
## $wts$`hidden 1 16`
## [1] -44.47749 145.97364 -32.22466 -34.94211 -143.01518 23.17064
## [7] 56.78123 105.38719 -134.39700 14.48097
##
## $wts$`hidden 1 17`
## [1] 48.6384808 0.9733861 11.0231321 -31.0794643 5.6333517 -20.0891538
## [7] -17.1493899 8.4746973 -9.2648263 60.1331561
##
## $wts$`hidden 1 18`
## [1] 21.229693 -5.539875 -3.559785 -25.261889 25.475204 19.704526
## [7] -18.164897 -30.801276 -55.861024 37.561989
##
## $wts$`hidden 1 19`
## [1] -0.1400188 2.1351098 10.5914177 7.0684861 2.7745089 -0.8697250
## [7] -5.5321260 4.0054371 -1.3638309 0.3731933
##
## $wts$`hidden 1 20`
## [1] 46.233978 -27.939265 -19.711395 -83.226684 18.962209 4.688272
## [7] 22.173312 -4.188056 43.700854 -23.964950
##
## $wts$`hidden 1 21`
## [1] 40.998455 -48.119816 -59.283209 78.603921 -42.970256 104.096865
## [7] -4.450879 6.236906 34.268007 125.656215
##
## $wts$`hidden 1 22`
## [1] -4.2441449 4.8053782 -0.6803032 -2.2488869 5.9094718 1.8400774
## [7] -0.8729253 -1.1379041 -0.9693509 -5.3199958
##
## $wts$`hidden 1 23`
## [1] 1.405715733 -0.090218093 0.297749333 0.051960604 0.118933999
## [6] -0.154052212 0.378799950 0.004484762 0.040312543 -1.311406116
##
## $wts$`hidden 1 24`
## [1] 1.273452 -42.561966 -5.519502 -2.602962 6.818779 -45.613947
## [7] 28.643947 6.489044 39.069907 -37.525810
##
## $wts$`hidden 1 25`
## [1] 67.65270 37.27038 -45.81697 -22.45671 20.31878 15.92830
## [7] -45.70431 35.62619 56.33547 -116.09318
##
## $wts$`hidden 1 26`
## [1] 44.868830 -8.179210 -25.518911 -4.221974 -25.618381 -3.863440
## [7] 81.477693 46.164543 -7.679650 -42.946661
##
## $wts$`hidden 1 27`
## [1] 24.28807612 32.26671388 1.87500226 0.02789919 -11.22624936
## [6] 36.35994073 -26.60050107 28.61236851 -58.40702218 32.02804219
##
## $wts$`hidden 1 28`
## [1] -17.66947266 0.02118794 8.35782714 -0.88897181 -0.19469719
## [6] -1.24554910 -0.76019874 0.39622030 14.97166589 -11.13218638
##
## $wts$`hidden 1 29`
## [1] 0.8426400 -0.6338904 -0.1228927 0.4925736 -1.4524038 -0.1406281
## [7] 0.2828590 0.5958742 -0.2055614 -0.4143484
##
## $wts$`hidden 1 30`
## [1] 10.2285827 0.2413034 23.7536122 49.2778020 -17.7782756 29.6155517
## [7] -14.2823316 -4.7708691 -59.3910631 -17.1394412
##
## $wts$`out 1`
## [1] 18.8761316 4.3748094 1.2898580 -3.0871665 -2.7799001 16.8493033
## [7] -4.4000200 4.0066859 6.3292079 -62.6744485 -5.3236813 -7.3635453
## [13] 2.5488447 -4.0259966 -4.4550405 -13.7673759 0.7045164 -3.4648362
## [19] -10.7189217 20.9250056 -1.0650004 -3.5958559 7.8456549 -47.1486656
## [25] 3.4380688 -2.8861722 2.4255409 4.3959212 -4.7548799 8.8075313
## [31] -2.4984340
# Plot the importance
olden(nn)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

Model ANN regresi menggunakan arsitektur 9–30–1 dengan 9 neuron
input, 30 hidden neuron, dan 1 neuron output serta 500 iterasi (maxit).
Hasil evaluasi menunjukkan MAE sebesar 2,691278 dan RMSE sebesar
7,351371. Dibandingkan model sebelumnya dengan arsitektur 9–30–1 dan 250
iterasi, MAE meningkat dari 1,889443 menjadi 2,691278 dan RMSE meningkat
dari 3,380830 menjadi 7,351371. Artinya, peningkatan iterasi menjadi 500
belum meningkatkan kinerja model karena menghasilkan kesalahan prediksi
yang lebih besar. Berdasarkan hasil evaluasi seluruh model ANN regresi,
arsitektur 9–20–1 dengan 250 iterasi merupakan model terbaik karena
menghasilkan nilai RMSE terendah sebesar 2,417498 dan MAE sebesar
1,455899. Meskipun model 9–10–1 dengan 500 iterasi memiliki MAE sedikit
lebih rendah, model 9–20–1 dengan 250 iterasi lebih baik berdasarkan
RMSE. Sehingga, model tersebut dipilih sebagai model terbaik untuk
memprediksi variabel Bare.nuclei.
DAFTAR PUSTAKA
Abidin, A. A. Z., Kusrini, & Wibowo, F. W. (2024). Implementasi
Artificial Neural Network pada Kasus Regresi Linear Berganda untuk
Memprediksi Jumlah Pakan Ayam Petelur. INSTEK, 9(2),
313–323.
Aini, D. H. N., Kurniasari, D., Nuryaman, A., & Usman, M. (2023).
Implementation of Artificial Neural Network with Backpropagation
Algorithm for Rating Classification on Sales of Blackmores in Tokopedia.
Jurnal Teknik Informatika (JUTIF), 4(2), 365–372.
Dzulkamain, A., & Ma’ady, M. N. P. (2024). Artikel mengenai BPNN
sebagai pondasi metode deep learning. Jurnal SISFO, 11(1),
25–38.
Fransiska, H. (2026). Modul praktikum machine learning and modern
prediction. Universitas Bengkulu.
Huda, D. N., & Handayani, S. (2023). Prediksi Nilai Ujian dengan
Artificial Neural Network. REMIK: Riset dan E-Jurnal Manajemen
Informatika Komputer, 7(1), 157–165.
Prasetyo, Y. P. W. (2023). Simulasi Jaringan Saraf Tiruan dengan
Neural Network Fitting Tool (NFTool). G-Tech: Jurnal Teknologi
Terapan, 7(4), 1722–1731.
Thoriq, M. (2022). Peramalan Jumlah Permintaan Produksi Menggunakan
Jaringan Saraf Tiruan Algoritma Backpropagation. Jurnal Informatika
dan Teknik Elektro Terapan, 4(1).