BAB I PENDAHULUAN

1.1 Latar Belakang Masalah

Artificial Neural Network (ANN) merupakan sub dari machine learning yang menirukan otak manusia dan selalu mencoba merepresentasikan proses pembelajaran pada otak manusia. Jaringan saraf diterapkan menggunakan program komputer sehingga mampu menyelesaikan banyak proses perhitungan selama proses pembelajaran (Solikhun & Wahyudi, 2020). Artificial Neural Network (ANN) atau Jaringan Syaraf Tiruan (JST) merupakan suatu sistem pemrosesan informasi dengan karakteristik menyerupai sistem saraf pada manusia yang dapat memecahkan masalah SVM dan KNN melalui training data yang besar. ANN memiliki kemampuan untuk mentoleransi kesalahan sehingga dapat menghasilkan prediksi yang baik (Putra & Walmi, 2020).

Artificial Neural Network (ANN) merupakan model komputasi yang terinspirasi dari kerja otak manusia, di mana sejumlah neuron saling terhubung untuk memproses informasi dan mempelajari pola dari data (Haykin, 2009). ANN terdiri dari beberapa lapisan, yaitu lapisan masukan (input layer), lapisan tersembunyi (hidden layer), dan lapisan keluaran (output layer). Setiap neuron menerima masukan yang dikalikan dengan bobot tertentu, kemudian ditambahkan bias dan diproses melalui fungsi aktivasi untuk menghasilkan keluaran (Fransiska, 2026).

ANN memiliki tiga komponen utama, yaitu arsitektur jaringan yang menggambarkan pola hubungan antar neuron, algoritma pembelajaran yang digunakan untuk menyelesuaikan bobot jaringan, serta fungsi aktivasi yang menentukan keluaran setiap neuron. Neuron-neuron tersebut tersusun dalam lapisan dan saling terhubung melalui bobot sesuai dengan arsitektur jaringan yang digunakan (Fausett, 1994). Selain itu, metode ini juga dapat digunakan untuk memodelkan hubungan yang kompleks antara masukan (input) dan keluaran (output) serta menemukan pola-pola pada data (Fei & Lu, 2018). Namun, ANN memiliki kelemahan, yaitu sulit menentukan jumlah neuron dan lapisan yang diperlukan serta mengalami perlambatan saat learning (Das dkk., 2018).

1.2 Rumusan Masalah

  1. Bagaimana konsep dasar dan prinsip kerja Artificial Neural Network (ANN) untuk regresi dan klasifikasi?
  2. Bagaimana mengimplementasikan model ANN untuk kasus regresi dan klasifikasi menggunakan perangkat lunak R?
  3. Bagaimana mengevaluasi performa model ANN menggunakan metrik MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi?

1.3 Tujuan

  1. Memahami konsep dasar dan prinsip kerja Artificial Neural Network (ANN) untuk regresi dan klasifikasi.
  2. Mengimplementasikan model ANN untuk kasus regresi dan klasifikasi menggunakan perangkat lunak R.
  3. Mengevaluasi performa model ANN menggunakan metrik MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi.

1.4 Batasan Masalah

Adapun batasan masalah pada penelitian ini yaitu lakukan ANN Regresi dengan Hidden Neuron=c(10,20,30) dengan data training 80% dan testing 20%. kemudian coba buat dengan maxit=(250, 500). kemudian interprestasikan output dengan jelas!

BAB II TINJAUAN PUSTAKA

2.1 Artificial Neural Network (ANN)

Kelebihan ANN adalah mampu memodelkan hubungan nonlinear, memiliki kemampuan untuk belajar (adaptif), serta dapat merepresentasikan pengetahuan secara fleksibel terhadap adanya kesalahan (Hasanah, 2019).

ANN tercipta dari generalisasi model matematis berdasarkan pemahaman manusia (human cognition) yang didasarkan pada asumsi berikut (Wahyuningrum, 2020):

  1. Pemrosesan informasi terjadi pada elemen sederhana (neuron).
  2. Sinyal mengalir di antara neuron melalui suatu penghubung.
  3. Setiap penghubung antara satu neuron dengan neuron lainnya memiliki bobot (weight).
  4. Setiap neuron menerapkan fungsi aktivasi (biasanya nonlinier) terhadap input-nya, yaitu hasil penjumlahan sinyal berbobot, untuk menentukan sinyal output-nya.

Lapisan-lapisan yang menyusun ANN terbagi menjadi tiga, yaitu (Sari & Manurung, 2021):

  1. Lapisan input (input layer), yaitu unit masukan yang menggambarkan masalah.
  2. Lapisan tersembunyi (hidden layer), yaitu unit yang tidak dapat diamati secara langsung.
  3. Lapisan output (output layer), yaitu unit yang menghasilkan keluaran.
Gambar 2. Arsitektur Artificial Neural Network

Gambar 2. Arsitektur Artificial Neural Network

Pada pengaturan hidden layer, ada dua masalah yaitu menentukan jumlah hidden layer dan menentukan size atau jumlah neuran dari hidden layer. Penentuan jumlah neuron yang terlalu sedikit akan mengakibatkan underfitting yaitu jaringan kurang dapat mendeteksi sinyal atau pola dalam set data. Sebaliknya jika jumlah neuron terlalu banyak akan mengakibatkan overfitting yaitu pola data yang tidak terbatas tidak cukup untuk melatih semua neurondalam hidden layer (Ramdhan, 2019).

2.2 ANN Regresi

2.2.1 Algoritma Backpropagation

Salah satu algoritma pelatihan yang umum digunakan dalam ANN adalah backpropagation, yaitu algoritma yang menyesuaikan bobot jaringan secara bertahap untuk meminimalkan kesalahan (Putra dkk., 2025). Backpropagation Neural Network (BNN) merupakan metode supervised learning yang dirancang untuk bekerja pada jaringan dengan banyak lapisan. Pada neural network (NN), terdapat tiga lapisan, yaitu input layer, hidden layer, dan output layer. Setiap unit pada input layer terhubung dengan setiap unit pada hidden layer, sedangkan setiap unit pada hidden layer juga terhubung dengan setiap unit pada output layer (Jayapranata dkk., 2021). BNN memiliki kemampuan untuk mempelajari data kompleks, melakukan klasifikasi, dan beradaptasi terhadap perubahan data (Sapriani dkk., 2023).

Penentuan hidden layer dan learning rate dilakukan secara trial and error karena tidak terdapat aturan pasti mengenai nilai kedua parameter tersebut. Semakin tinggi akurasi yang diperoleh, semakin baik model yang terbentuk (Sapriani dkk., 2023). Salah satu fungsi aktivasi yang sering digunakan pada backpropagation adalah sigmoid biner. Fungsi ini menghasilkan nilai output pada rentang 0 hingga 1 dan digunakan untuk mengaktifkan neuron serta sebagai dasar pembaruan bobot (Siang, 2005).

Algoritma backpropagation merupakan salah satu metode pelatihan ANN yang umum digunakan dengan prinsip memperbarui bobot jaringan secara iteratif untuk meminimalkan kesalahan prediksi (Ridho dkk., 2023). Keunggulan algoritma ini terletak pada kemampuannya menyesuaikan parameter model secara berulang untuk meningkatkan akurasi prediksi (Nurdiawan dkk., 2024). Penentuan model jaringan didasarkan pada keseimbangan antara kemampuan mempelajari pola data dan risiko overfitting maupun underfitting. Jumlah layer atau neuron yang terlalu sedikit cenderung menyebabkan underfitting, sedangkan jumlah yang berlebihan berpotensi menimbulkan overfitting (Russell & Norvig, 2010).

Metode backpropagation menggunakan jaringan saraf tiruan dengan banyak layer serta memanfaatkan error output untuk memperbarui bobot jaringan. Metode ini mampu mengatasi keterbatasan pola yang biasa terjadi pada jaringan saraf tunggal (Haryanto, 2020). Kualitas jaringan saraf tiruan dalam mengenali pola perlu dinilai berdasarkan tingkat kesalahannya. Semakin kecil tingkat kesalahan, semakin baik kinerja jaringan saraf tiruan yang dibangun (Zola, 2018). Penentuan parameter jaringan saraf tiruan bertujuan memperoleh model terbaik untuk pengenalan pola melalui pemilihan nilai parameter, yaitu epoch, kinerja tujuan, learning rate, maksimum kegagalan, gradien minimum, dan momentum (Haryanto, 2020).

Backpropagation menerapkan pembelajaran terbimbing (supervised learning) pada jaringan multi-layer yang terdiri atas beberapa hidden layer. Proses ini bertujuan meminimalkan error pada keluaran (output) jaringan (Hamid dkk., 2011). Penggunaan fungsi pelatihan (training function) dengan variabel laju pembelajaran (traingdx) bertujuan mempercepat pelatihan backpropagation. Fungsi ini mengombinasikan parameter learning rate dan momentum untuk memperoleh hasil yang relatif lebih akurat (Krestinskaya, 2019).

2.2.2 Implementasi Algoritma Backpropagation

Tahap implementasi terdiri atas fase training dan testing. Pada fase pelatihan (training), proses diawali dengan fase feed forward. Setiap data input yang telah dinormalisasi diteruskan melalui jaringan saraf, mulai dari lapisan input, lapisan tersembunyi (hidden layer), hingga lapisan output. Setiap neuron menghitung total nilai input dengan mengalikan nilai input terhadap bobot awal, kemudian menjumlahkannya menggunakan persamaan berikut (Hertanto dkk., 2025):

\[ z_j = \sum_{i=1}^{n} (x_i \cdot w_{ij}) + b_j \]

Selanjutnya, nilai input yang telah diolah akan diaktivasi menggunakan fungsi aktivasi sigmoid biner guna menghasilkan output sementara, yang dihitung berdasarkan persamaan berikut:

\[ f(z) = \frac{1}{1 + e^{-z_j}} \]

Output dari hidden layer kemudian diteruskan ke layer output melalui persamaan

\[ y_{ink} = b_y + \sum_{j=1}^{p} Z_j W_{kj} \] \[ y_{out} = \frac{1}{1 + e^{-y_{ink}}} \]

dimana:

  • \(x_i\) = Nilai input unit ke-\(i\).
  • \(w_{ij}\) = Bobot dari input layer \(i\) ke hidden layer \(j\).
  • \(b_j\) = Bias pada hidden layer ke-\(j\).
  • \(z_j\) = Input total ke hidden layer.
  • \(f(z)\) = Output dari hidden layer.
  • \(b_y\) = Bias output layer.
  • \(W_{kj}\) = Bobot dari hidden layer ke-\(j\) ke output layer ke-\(k\).
  • \(y_{ink}\) = Input total pada output layer.
  • \(y_{out}\) = Output akhir model ANN.

Untuk merancang arsitektur metode ANN Backpropagation yang menghasilkan prediksi yang optimal, maka dilakukan penentuan atau penginputan jumlah nilai parameter-parameter yang digunakan, seperti jumlah hidden layer, laju pemahaman (learning rate), maksimum iterasi (epoch), dan momentum dengan menggunakan proses trial and error. Setelah menentukan jenis data dan parameter, prediksi dilakukan dengan metode ANN Backpropagation berdasarkan langkah-langkah arahan Laurene Fausett (Fausett, 2007). Selanjutnya, hasil prediksi yang diperoleh dievaluasi nilai error-nya dengan menggunakan MAPE untuk memperoleh tingkat akurasi pada prediksi (Putra & Walmi, 2020).

2.2.3 Fungsi Aktivasi

Metode Backpropagation Neural Network menggunakan fungsi aktivasi yang harus memenuhi tiga syarat, yaitu kontinu, mudah didiferensialkan, dan monotonik tidak menurun. Sifat kontinu memungkinkan output jaringan berubah secara halus terhadap perubahan input. Kemudahan diferensiasi mendukung perhitungan perubahan bobot dan bias menggunakan aturan rantai pada algoritma backpropagation. Sementara itu, sifat monotonik tidak menurun menunjukkan bahwa peningkatan input akan diikuti peningkatan atau setidaknya tidak menurunnya output. Persyaratan tersebut memungkinkan algoritma backpropagation menghitung gradien dan memperbarui bobot secara efisien selama pelatihan. Penggunaan fungsi aktivasi yang sesuai membantu jaringan menyesuaikan bobot untuk meningkatkan kinerja dan akurasi model (Wiranto dkk., 2023).

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 (Gema & Kartika, 2018):

  1. Fungsi aktivasi sigmoid biner

\[ y = f(x) = \frac{1}{1+e^{-x}} \]

  1. 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.

  1. Fungsi aktivasi sigmoid bipolar

\[ y = f(x) = \frac{1-e^{-x}}{1+e^{-x}} \]

  1. Turunan fungsi sigmoid bipolar

\[ f'(x) = \frac{2e^{-x}}{(1+e^{-x})^2} = \frac{1}{2}[1+f(x)][1-f(x)] \]

2.3 ANN Klasifikasi

ANN klasifikasi digunakan untuk memprediksi variabel respons berupa kategori. Berdasarkan jumlah kelasnya, ANN klasifikasi dibedakan menjadi dua jenis:

  • Klasifikasi biner, yaitu klasifikasi dengan dua kategori. Lapisan keluaran umumnya menggunakan satu neuron dengan fungsi sigmoid untuk menghasilkan probabilitas antara 0 dan 1.
  • Klasifikasi multikelas, yaitu klasifikasi dengan lebih dari dua kategori. Lapisan keluaran umumnya menggunakan fungsi softmax untuk menghasilkan probabilitas setiap kelas, dengan jumlah probabilitas seluruh kelas sama dengan 1 (Bishop, 2006).

2.3.1 Fungsi Aktivasi

Fungsi aktivasi berperan penting dalam menentukan non-linearitas jaringan. Beberapa fungsi umum pada ANN klasifikasi meliputi (Fransiska,2026):

  1. Sigmoid: cocok untuk klasifikasi biner
  2. Softmax: cocok untuk multiclass classification
  3. ReLU (Rectified Linear Unit) : mempercepat konvergensi dan mengatasi masalah vanishing gradient
  4. Tanh: menghasilkan output antara -1 dan 1, serta membantu normalisasi sinyal neuron

2.4 Mengevaluasi Performa Model

Pengujian hasil prediksi yang sudah diperoleh dengan cara melihat tingkat keakuratan dan error pada sistem. Pengujian dilakukan kepada masing-masing data training dan data testing. Pengujian bertujuan untuk mengetahui sistem kerja input, proses dan output apakah sesuai dengan tujuan yang diharapkan. Cara menghitung nilai error digunakan MAPE (Mean Average Precentage Error). Nilai MAPE menunjukkan seberapa banyak kesalahan dalam hasil prediksi dibandingkan dengan nilai aktual. Mean Absolute Percentage Error (MAPE) dihitung menggunakan kesalahan mutlak dalam setiap periode dibagi dengan nilai-nilai yang diamati yang jelas untuk periode tersebut. Semakin kecil nilai MAPE maka semakin baik kinerja prediksi (Putra & Walmi, 2020).

Evaluasi ANN Klasifikasi dilakukan dengan membandingkan kelas aktual dan kelas hasil prediksi. Hasil perbandingan tersebut dapat disajikan dalam confusion matrix (Fransiska,2026):

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:

  1. Accuracy

\[ Accuracy = \frac{TP+TN}{TP+TN+FP+FN} \]

  1. Precision

\[ Precision = \frac{TP}{TP+FP} \]

  1. Recall

\[ Recall = \frac{TP}{TP+FN} \]

  1. Specificity

\[ Specificity = \frac{TN}{TN+FP} \]

  1. F1-Score

\[ F1\text{-}Score = 2 \left(\frac{Precision \times Recall}{Precision+Recall}\right) \]

BAB III METODE PENELITIAN

3.1 Sumber Data

Sumber data yang digunakan dalam penelitian ini adalah data sekunder berupa dataset BreastCancer dari package mlbench pada program R, yang digunakan untuk klasifikasi kondisi kanker payudara.

3.2 Variabel Penelitian

Pada penelitian ini, variabel yang digunakan terdiri atas variabel prediktor dan variabel target. Variabel target yang digunakan yaitu Class, sedangkan variabel prediktor terdiri atas Cl.thickness (ketebalan gumpalan sel), Cell.size (keseragaman ukuran sel), Cell.shape (keseragaman bentuk sel), Marg.adhesion (perlekatan sel), Epith.c.size (ukuran sel epitel), Bare.nuclei (kondisi inti sel), Bl.cromatin (struktur kromatin sel), Normal.nucleoli (kondisi nukleolus sel), dan Mitoses (aktivitas pembelahan sel). Variabel Class menunjukkan kondisi kanker payudara yang dikategorikan menjadi benign (jinak) dan malignant (ganas).

3.3 Langkah-langkah Analisis

Langkah-langkah analisis yang dilakukan adalah sebagai berikut.

  1. Memanggil package dan dataset BreastCancer.
  2. Menghapus variabel Id dan data yang memiliki nilai kosong.
  3. Mengubah sembilan variabel prediktor menjadi numerik.
  4. Membagi data menjadi 80% training dan 20% testing.
  5. Menentukan variabel target dan prediktor untuk ANN regresi.
  6. Membangun model ANN dengan variasi 10, 20, dan 30 hidden neuron serta maxit 250 dan 500.
  7. Melakukan prediksi menggunakan data testing.
  8. Menghitung nilai MAE dan RMSE untuk mengevaluasi model.
  9. Menampilkan arsitektur jaringan menggunakan plotnet().
  10. Menampilkan bobot koneksi menggunakan neuralweights().
  11. Menampilkan tingkat kepentingan variabel menggunakan olden().

BAB IV HASIL DAN PEMBAHASAN

4.1 Library & Data

library(nnet)
library(NeuralNetTools)
library(mlbench)
data(BreastCancer)
head(BreastCancer)
##        Id Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size
## 1 1000025            5         1          1             1            2
## 2 1002945            5         4          4             5            7
## 3 1015425            3         1          1             1            2
## 4 1016277            6         8          8             1            3
## 5 1017023            4         1          1             3            2
## 6 1017122            8        10         10             8            7
##   Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses     Class
## 1           1           3               1       1    benign
## 2          10           3               2       1    benign
## 3           2           3               1       1    benign
## 4           4           3               7       1    benign
## 5           1           3               1       1    benign
## 6          10           9               7       1 malignant
summary(BreastCancer)
##          Id       Cl.thickness   Cell.size     Cell.shape  Marg.adhesion
##  Length   :699   1      :145   1      :384   1      :353   1      :407  
##  N.unique :645   5      :130   10     : 67   2      : 59   2      : 58  
##  N.blank  :  0   3      :108   3      : 52   10     : 58   3      : 58  
##  Min.nchar:  5   4      : 80   2      : 45   3      : 56   10     : 55  
##  Max.nchar:  8   10     : 69   4      : 40   4      : 44   4      : 33  
##                  2      : 50   5      : 30   5      : 34   8      : 25  
##                  (Other):117   (Other): 81   (Other): 95   (Other): 63  
##   Epith.c.size  Bare.nuclei   Bl.cromatin  Normal.nucleoli    Mitoses   
##  2      :386   1      :402   2      :166   1      :443     1      :579  
##  3      : 72   10     :132   3      :165   10     : 61     2      : 35  
##  4      : 48   2      : 30   1      :152   3      : 44     3      : 33  
##  1      : 47   5      : 30   7      : 73   2      : 36     10     : 14  
##  6      : 41   3      : 28   4      : 40   8      : 24     4      : 12  
##  5      : 39   (Other): 61   5      : 34   6      : 22     7      :  9  
##  (Other): 66   NAs    : 16   (Other): 69   (Other): 69     (Other): 17  
##        Class    
##  benign   :458  
##  malignant:241  
##                 
##                 
##                 
##                 
## 
## ANN Regresi

# Menghapus variabel Id
BreastCancer <- BreastCancer[,-1]

# Menghapus data yang memiliki NA
BreastCancer <- na.omit(BreastCancer)

# Mengubah variabel menjadi numerik
BreastCancer[,1:9] <- lapply(BreastCancer[,1:9], as.numeric)

Dataset BreastCancer terdiri atas 699 pengamatan dengan sembilan variabel prediktor dan satu variabel respons (Class), yaitu benign sebanyak 458 data dan malignant sebanyak 241 data. Variabel Id dihapus karena hanya berfungsi sebagai identitas data. Selanjutnya, 16 pengamatan yang memiliki nilai kosong dihapus, kemudian sembilan variabel prediktor diubah menjadi tipe numerik agar dapat digunakan pada pemodelan ANN regresi.

4.2 Membagi 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

Data sebanyak 683 pengamatan dibagi secara acak menjadi data training sebesar 80% (546 pengamatan) dan data testing sebesar 20% (137 pengamatan). Data training digunakan untuk membangun model ANN, sedangkan data testing digunakan untuk menguji kemampuan model dalam memprediksi 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.7 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.8 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.9 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.10 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.11 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.12 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.

BAB V KESIMPULAN

5.1 Kesimpulan

Artificial Neural Network (ANN) merupakan metode machine learning yang meniru cara kerja jaringan saraf manusia melalui hubungan antarneuron yang diatur menggunakan bobot dan bias. ANN dapat diterapkan untuk regresi dengan memprediksi nilai numerik serta klasifikasi dengan memprediksi data berdasarkan kategori. Implementasi ANN regresi menggunakan dataset BreastCancer dilakukan dengan variabel target Bare.nuclei, pembagian data training sebesar 80% dan testing sebesar 20%, serta variasi jumlah hidden neuron sebanyak 10, 20, dan 30 dengan maksimum iterasi 250 dan 500. Hasil pengujian menunjukkan bahwa arsitektur 9–20–1 dengan 250 iterasi merupakan model terbaik karena menghasilkan MAE sebesar 1,455899 dan RMSE sebesar 2,417498. Model tersebut memiliki nilai RMSE terendah dibandingkan seluruh model yang diuji, sehingga menghasilkan kesalahan prediksi paling kecil berdasarkan metrik tersebut.

5.2 Saran

Berdasarkan hasil penelitian yang telah dilakukan, disarankan untuk melakukan pengujian menggunakan variasi jumlah hidden neuron dan maksimum iterasi yang lebih beragam agar diperoleh model ANN dengan kinerja prediksi yang lebih baik. Selain itu, pembagian data training dan testing perlu diperhatikan agar model dapat diuji menggunakan data yang belum digunakan selama pelatihan. Persiapan data, pemilihan parameter, serta evaluasi model juga perlu diperhatikan secara cermat agar hasil analisis yang diperoleh lebih akurat.

DAFTAR PUSTAKA

Das, B., Nair, B., Reddy, V. K., & Venkatesh, P. (2018). Evaluation of multiple linear, neural network and penalised regression models for prediction of rice yield based on weather parameters for west coast of India. International Journal of Biometeorology, 62(10), 1809–1822.

Fausett, L. V. (2007). Fundamentals of neural networks: Architectures, algorithms, and applications. Prentice Hall.

Fei, J., & Lu, C. (2018). Adaptive sliding mode control of dynamic systems using double loop recurrent neural network structure, 29(4).

Fransiska, H. (2026). Modul praktikum machine learning and modern prediction. Universitas Bengkulu.

Hamid, N. A., Nawi, N. M., Ghazali, R., & Salleh, M. N. M. (2011). Accelerating learning performance of back propagation algorithm by using adaptive gain together with adaptive momentum and adaptive learning rate on classification problems. International Journal of Software Engineering and Its Applications, 5(4), 31–44.

Haryanto. (2020). Analisis parameter jaringan saraf tiruan menggunakan metode backpropagation pada pengenalan pola angka. METIK: Jurnal Informatika, 4(2). https://journal.universitasmulia.ac.id/index.php/metik/article/view/183/163

Hasanah, S. H. (2019). Perbandingan metode klasifikasi artificial neural network backpropagation dan regresi logistik (Studi kasus: Bank Internasional Indonesia). STATMAT: Jurnal Statistika dan Matematika, 1(1), 44–62.

Hertanto, I., Wulan, R., Mahida, L. R., Meilano, D. R., & Setiawan, P. A. (2025). Implementasi jaringan syaraf tiruan backpropagation untuk peramalan penjualan pada PT. Central Pacific Development. SKANIKA: Sistem Komputer dan Teknik Informatika, 8(2), 364–376.

Jayapranata, W. S., Intan, R., & Liliana. (2021). Electrocardiogram biometrics recognition menggunakan artificial neural network. Jurnal Infra, 9(1), 141–147. https://publication.petra.ac.id/index.php/teknik-informatika/article/view/10936

Krestinskaya, O., Salama, K. N., & James, A. P. (2019). Learning in memristive neural network architectures using analog backpropagation circuits. IEEE Transactions on Circuits and Systems I: Regular Papers, 66(2), 719–732.

Nurdiawan, O., Fathurrohman, F., & Faqih, A. (2024). Optimisasi model backpropagation untuk meningkatkan deteksi kejang epilepsi pada sinyal electroencephalogram. Information System for Educators and Professionals: Journal of Information System, 9(2), 151–160. https://doi.org/10.51211/isbi.v9i2.3187

Putra, A. D. E., Nihmah, A. H., Harin, A., & Syaifuddin, A. (2025). Penerapan neural network backpropagation dalam peramalan produksi ubi jalar tahunan. SUBMIT (Jurnal Ilmiah Teknologi Informasi dan Sains), 5(2), 11–17. http://ejurnal.unim.ac.id/index.php/submit

Putra, H., & Walmi, N. U. (2020). Penerapan prediksi produksi padi menggunakan artificial neural network algoritma backpropagation. Jurnal Nasional Teknologi dan Sistem Informasi, 6(2), 100–107. https://doi.org/10.25077/TEKNOSI.v6i2.2020.100-107

Ramdhan, N. A. (2019). Penerapan metode neural network untuk prediksi nilai ujian nasional (Study kasus di SMK Muhammadiyah Slawi). Syntax Literate: Jurnal Ilmiah Indonesia, 4(4). https://jurnal.syntaxliterate.co.id/index.php/syntax-literate/article/view/593/922

Reyson, P. R., & Donna, M. S. R. (2012). Artificial neural network model and multiple regression analysis model in predicting rainfall—The case of Isabela, Philippines. Journal of Arts and Sciences, 5(4), 243–263.

Ridho, I. I., Ramadhani, C. F., & Windarto, A. P. (2023). Penerapan artificial neural network dengan metode backpropagation dalam memprediksi harga saham (Kasus: PT. Bank BCA, Tbk). JURASIK (Jurnal Riset Sistem Informasi dan Teknik Informatika), 8(1), 295–303. https://doi.org/10.30645/jurasik.v8i1.612

Russell, S. J., & Norvig, P. (2010). Artificial intelligence: A modern approach (3rd ed.). Prentice Hall.

Sapriani, Poerwanto, B., & Aswi. (2023). Implementasi backpropagation neural network pada status preeklampsia ibu hamil. Jurnal MSA (Matematika dan Statistika serta Aplikasinya), 11(2), 72–76. https://doi.org/10.24252/msa.v11i2.40657

Sari, S. K., & Manurung, J. (2021). Implementasi jaringan syaraf tiruan untuk memprediksi tingkat pemahaman siswa pada mata pelajaran Ujian Akhir Sekolah (UAS) di SD Mis An Nur Sukamandi menggunakan metode backpropagation. Jurnal Ilmu Komputer dan Sistem Informasi (JIKOMSI), 3(3), 283–292. https://doi.org/10.9767/jikomsi.v3i1.1.113

Siang, JJ. (2005). Jaringan Saraf Tiruan & Program Menggunakan Matlab. Andi : Yogyakarta.

Solikhun, & Wahyudi, M. (2020). Jaringan saraf tiruan backpropagation pengenalan pola calon debitur. Yayasan Kita Menulis.

Wahyuningrum, V. (2020). Penerapan radial basis function neural network dalam pengklasifikasian daerah tertinggal di Indonesia. Jurnal Aplikasi Statistika & Komputasi Statistik, 12(1), 37–54. https://doi.org/10.34123/jurnalasks.v12i1.250

Wiranto, A. R., Setiawan, E., Nuryaman, A., & Usman, M. (2023). Implementasi metode backpropagation neural network dalam meramalkan tingkat inflasi di Indonesia. MATHunesa: Jurnal Ilmiah Matematika, 11(1).

Zola, F. (2018). Jaringan syaraf tiruan menggunakan algoritma backpropagation untuk memprediksi prestasi siswa. Jurnal Teknologi dan Open Source.