Machine learning bukanlah konsep yang baru. Sejak akhir tahun 1950-an, para peneliti telah berupaya mengembangkan algoritma yang memungkinkan mesin untuk belajar dari data. Salah satu pionirnya adalah Arthur Samuel, yang mengembangkan program bermain catur yang dapat “belajar” dari permainan sebelumnya untuk menjadi lebih baik. Seiring waktu, machine learning berkembang pesat dengan meningkatnya kemampuan komputasi dan ketersediaan data dalam jumlah besar. Di era digital saat ini, machine learning telah menjadi salah satu bidang yang paling cepat berkembang di dunia teknologi. Dari pengenalan pola sederhana hingga sistem pembelajaran mendalam (deep learning) yang kompleks, machine learning telah menjadi fondasi dari banyak inovasi teknologi modern, seperti pengenalan wajah, kendaraan otonom, asisten virtual, dan sistem rekomendasi (Bintoro dkk., 2024).
Machine Learning terbagi menjadi 2 macam konsep pembelajaran, yaitu pertama Supervised Learning yang merupakan teknik machine learning yang membuat suatu fungsi berdasarkan data latihan yang sudah ada, dalam hal ini dapat dikatakan untuk teknik ini sudah tersedia data latihan secara detail dan terklasifikasi dengan baik yang akan dijadikan sebuah model data saat dilakukan proses uji coba dengan data tes yang baru dan menghasilkan hasil keluaran yang sesuai diharapkan sebelumnya berdasarkan data latihan yang ada. Kedua adalah Unsupervised Learning yang merupakan teknik machine learning yang berusaha untuk melakukan representasi pola sebuah input yang berasal dari data latihan dan salah satu yang menjadi perbedaan dengan Supervised Learning adalah tidak adanya pengklasifikasian dari input data. Dalam Machine Learning teknik Unsupervised Learning menjadi esensial karena sistem kerja yang diberikan sama dengan cara kerja otak manusia dimana dalam proses pembelajaran tidak ada role model atau informasi dan contoh yang tersedia untuk dijadikan sebagai model dalam melakukan proses uji coba untuk penyelesaian sebuah masalah dengan data yang baru (Fathurohman, 2021).
Artificial Neural Network (ANN) merupakan model komputasi yang terinspirasi dari jaringan saraf biologis manusia. ANN tersusun atas node atau neuron yang dikelompokkan dalam tiga lapisan utama, yaitu lapisan input, hidden layer, dan output. Setiap koneksi antar neuron memiliki bobot dan bias yang berfungsi sebagai mekanisme penyimpanan informasi. Tujuan utama ANN adalah mempelajari pola non-linear yang kompleks, sehingga dapat digunakan secara fleksibel baik untuk pemodelan klasifikasi maupun regresi (Anggraini., dkk)
Berdasarkan latar belakang tersebut, rumusan masalah yang dapat disimpulkan adalah:
1.Bagaimana mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi menggunakan bahasa pemrograman R?
2.Bagaimana mengevaluasi performa model ANN menggunakan metrik evaluasi MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi?
Berdasarkan rumusan masalah tersebut, tujuan yang dapat disimpulkan adalah:
1.Memahami konsep dan mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi menggunakan bahasa pemrograman R.
2.Mengevaluasi performa model ANN menggunakan metrik evaluasi MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi.
Adapun manfaat pada penelitian ini yaitu:
1.Bagi Penulis
a.Memberikan informasi serta pengetahuan tentang konsep dan mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi dalam Machine Learning.
b.Mengembangkan dan menerapkan wawasan ilmu yang telah diperoleh dalam bidang statistika, khususnya tentang konsep dan mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi dengan R-Studio.
2.Bagi Pembaca
Menambah ilmu pengetahuan dan pemahaman yang berkaitan dengan Mengevaluasi performa model ANN menggunakan metrik evaluasi MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi dengan R-Studio.
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!
Adapun sistematika penulisan dari praktikum ini adalah sebagai berikut.
BAB IPENDAHULUAN
Bab ini terdiri dari latar belakang, rumusan masalah, tujuan penelitian, manfaat penelitian, batasan masalah, dan sistematika penulisan.
BAB IITINJAUAN PUSTAKA
Bab ini berisi kajian pustaka yang terdiri dari jurnal, buku, dan informasi pendukung mengenai Artificial Neural Network (ANN) pada program R-Studio.
BAB IIIMETODE PENELITIAN
Bab ini terdiri dari jenis dan sumber data, variabel penelitian, algoritma penelitian, dan diagram alir.
BAB IVHASIL DAN PEMBAHASAN
Bab ini berisi hasil yang diperoleh dari analisis data beserta penjelasannya pada bagian pembahasan.
BAB VKESIMPULAN
Bab ini merupakan bagian penutup laporan yang berisi kesimpulan dari hasil analisis serta saran dari penulis.
DAFTAR PUSTAKA
LAMPIRAN
Machine Learning adalah studi tentang algoritma untuk mempelajari bagaimana melakukan tugas-tugas tertentu yang dilakukan secara otomatis oleh orang-orang. Di sini, belajar mengacu pada kemampuan untuk melakukan berbagai kegiatan yang sudah ada atau untuk mengekstrapolasi kesimpulan baru dengan benar dari berbagai pola yang diamati sebelumnya. Salah satu subbidang kecerdasan buatan, Machine Learning, dapat berdampak pada sejumlah bidang lain, termasuk statistik, matematika, dan banyak bidang teoretis ilmu komputer. Intinya, tujuan machine learning adalah untuk mengembangkan algoritma yang dapat mengeksekusi sistem pembelajaran otonom dengan sangat sedikit masukan dari orang-orang pada umumnya. Berikut beberapa contoh algoritma dari konsep pembelajaran Supervised Learning dan Unsupervised Learning (Fathurohman, 2021):
1.Supervised Learning
a.Logistic Regression: adalah strategi statistik yang dapat digunakan untuk memecahkan masalah dengan membuat prediksi variabel baru berdasarkan sejumlah variabel yang sudah ada dan yang ditentukan sebelumnya dan mencari korelasi antara variabel data input yang ditentukan sebelumnya dengan variabel prediksi baru.
b.K-Nearest Neighbors Algorithm (KNN): memerlukan pembentukan ruang fitur di mana item yang menjadi data pelatihan dan model data diberi nilai berbobot dan direpresentasikan dalam vektor n-dimensi untuk menyelesaikan masalah klasifikasi. Kesulitan tersebut kemudian diselesaikan dengan menentukan jarak dari item baru yang dapat ditentukan menggunakan model data dalam vektor n-dimensi, dan objek baru tersebut kemudian diberikan kategori.
2.Unsupervised Learning
a.Clustering: sebuah proses untuk membuat arketipe item yang digunakan dalam pembelajaran mesin untuk mengatasi tantangan seperti mengklasifikasikan atau mengkategorikan hal-hal ke dalam kelas atau kategori. Data yang digunakan sebagai model data belum membentuk kelompok data, sehingga tidak dapat mengidentifikasi klasifikasi suatu item. Akibatnya, pola dasar pertama-tama harus dibangun menggunakan sejumlah karakteristik yang diperlukan sebelum model data dan data pelatihan dapat digunakan. jika terjadi klasifikasi objek baru.
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. Secara matematis, proses pengolahan informasi pada suatu neuron dapat dinyatakan sebagai (Fransiska, 2026):
\[ y = f\left(\sum_{i=1}^{p} w_i x_i + b\right) \]
dengan 𝑥𝑖 merupakan masukan ke-𝑖, 𝑤𝑖 bobot yang menghubungkan masukan ke-𝑖 dengan neuron, 𝑏 adalah bias, 𝑓 merupakan fungsi aktivasi, dan 𝑦 adalah keluaran neuron.
Model Artificial Neural Network (ANN) umumnya terdiri dari tiga komponen utama, yaitu lapisan input, satu atau lebih lapisan tersembunyi (hidden layer), dan lapisan output. Lapisan input berfungsi menerima data meteorologi historis yang telah melalui tahap prapengolahan, seperti data suhu dan kelembapan udara. Data tersebut kemudian diteruskan ke lapisan tersembunyi, yang berperan sebagai pusat pemrosesan utama dalam jaringan saraf. Pada lapisan ini, ANN mempelajari pola, karakteristik, serta hubungan nonlinier antarvariabel melalui proses perhitungan berbobot dan fungsi aktivasi yang diterapkan pada setiap neuron. Lapisan output merupakan bagian akhir dari jaringan yang menghasilkan nilai prediksi sesuai dengan tujuan pemodelan, misalnya berupa klasifikasi kondisi cuaca harian seperti cerah, berawan, atau hujan. Proses pelatihan ANN dilakukan menggunakan metode supervised learning, yaitu pendekatan pembelajaran yang memanfaatkan data latih dengan nilai target yang telah diketahui. Selama proses pelatihan, selisih antara hasil prediksi dan nilai aktual dihitung sebagai error, kemudian error tersebut digunakan untuk menyesuaikan bobot jaringan melalui algoritma backpropagation. Proses ini dilakukan secara iteratif hingga diperoleh bobot optimal yang mampu meminimalkan kesalahan prediksi dan meningkatkan akurasi model (Fadil., dkk).
ANN regresi digunakan untuk memprediksi variabel respons berupa nilai numerik kontinu.Lapisan keluaran umumnya menggunakan fungsi aktivasi linear agar jaringan dapat menghasilkan nilai prediksi sesuai dengan rentang variabel respon (Fransiska, 2026).
1.Algoritma Backpropagation
Backpropagation merupakan algoritma pembelajaran pada ANN yang digunakan untuk menyesuaikan bobot jaringan berdasarkan kesalahan prediksi. Pada ANN regresi, proses pembelajaran bertujuan meminimalkan selisih antara nilai aktual dan nilai prediksi, misalnya menggunakan Mean Squared Error (MSE). Secara umum, proses pembelajaran terdiri atas tiga tahap berikut:
Forward Propagation : menghitung keluaran jaringan berdasarkan masukan, bobot, dan fungsi aktivasi
Backward Propagation : menghitung gradien kesalahan terhadap bobot jaringan
Pembaruan Bobot : memperbarui bobot berdasarkan gradien untuk mengurangi kesalahan prediksi
Fungsi aktivasi digunakan untuk menentukan keluaran neuron dan membantu jaringan mempelajari pola nonlinear. Beberapa fungsi aktivasi yang dapat digunakan dalam ANN regresi disajikan pada tabel berikut:
fungsi aktivasi ANN Regresi
3.Evaluasi Model
Evaluasi Evaluasi ANN regresi dilakukan dengan membandingkan nilai aktual dan nilai hasil prediksi. Beberapa ukuran yang umum digunakan adalah Mean Squared Error (MSE), Root Mean Squared Error (RMSE), dan koefisien determinasi (𝑅2).
\[ \begin{aligned} MSE &= \frac{1}{n}\sum_{i=1}^{n}\left(y_i - \hat{y}\right)^2 \\ MAPE &= \sum_{i=1}^{n}\left|\frac{y_i - \hat{y}_i}{y_i}\right| \end{aligned} \]
ANN klasifikasi digunakan untuk memprediksi variabel respons berupa kategori. Berdasarkan jumlah kelasnya, ANN klasifikasi dibedakan menjadi dua jenis (Fransiska, 2026):
a.Klasifikasi biner, yaitu klasifikasi dengan dua kategori. Lapisan keluaran umumnya menggunakan satu neuron dengan fungsi sigmoid untuk menghasilkan probabilitas antara 0 dan 1.
b.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.
1.Proses Pembelajaran dan Backpropagation
Proses pembelajaran ANN klasifikasi dilakukan dengan menyesuaikan bobot jaringan untuk meminimalkan kesalahan klasifikasi. Salah satu fungsi kerugian yang digunakan adalah cross- entropy loss, yang mengukur perbedaan antara probabilitas prediksi dan kelas aktual.
a.Klasifikasi biner, fungsi binary cross-entropy dinyatakan sebagai:
\[ BCE = -\frac{1}{n}\sum_{i=1}^{n}\left[y_i \ln(\hat{p}_i) + (1 - y_i)\ln(1 - \hat{p}_i)\right] \]
dengan 𝑦𝑖 adalah kelas aktual observasi ke-𝑖, bernilai 0 atau 1, 𝑝̂𝑖 merupakan probabilitas kelas posiitf pada observasi ke-𝑖.
b.Klasifikasi multikelas, fungsi categorical cross-entropy dinyatakan sebagai:
\[ L = -\frac{1}{n}\sum_{i=1}^{N}\sum_{k=1}^{K} y_{ik}\,\log(\hat{y}_{ik}) \]
dengan 𝑦𝑖𝑘 adalah label aktual dan 𝑦̂𝑖𝑘 prediksi model.
c.Bobot jaringan diperbarui berdasarkan gradien fungsi kerugian. Secara umum, pembaruan bobot menggunakan gradient descent dapat dituliskan sebagai:
\[ w_{ij}^{(t+1)} = w_{ij}^{(t)} - \eta \frac{\partial L}{\partial w_{ij}} \]
dengan 𝜂 adalah laju pembelajaran (learning rate).
2.Fungsi Aktivasi
Fungsi aktivasi berperan penting dalam menentukan non-linearitas jaringan. Beberapa fungsi umum pada ANN klasifikasi meliputi:
a.Sigmoid : cocok untuk klasifikasi biner
b.Softmax : cocok untuk multiclass classification
c.ReLU (Rectified Linear Unit) : mempercepat konvergensi dan mengatasi masalah vanishing gradient
d.Tanh : menghasilkan output antara -1 dan 1, serta membantu normalisasi sinyal neuron
3.Evaluasi Model
Evaluasi ANN Klasifikasi dilakukan dengan membandingkan kelas aktual dan kelas hasil prediksi. Hasil perbandingan tersebut dapat disajikan dalam confusion matrix.
confusion matrix
Berdasarkan confusion matrix, beberapa ukuran evaluasi yang dapat digunakan adalah:
ukuran evaluasi
Penelitian ini merupakan penelitian kuantitatif dengan pendekatan komputasi yang bertujuan untuk menerapkan metode Random Forest Classification dalam mengklasifikasikan data kanker payudara. Data yang digunakan adalah dataset BreastCancer yang tersedia dalam paket mlbench pada perangkat lunak R-Studio. Dataset ini memuat informasi karakteristik sel hasil pemeriksaan yang digunakan untuk membedakan dua kelas diagnosis, yaitu benign (jinak) dan malignant (ganas). Pengolahan data dan pembentukan model dilakukan menggunakan bahasa pemrograman R dengan bantuan paket mlbench, caret, dan ranger. Data dibagi menjadi data training sebesar 80% dan data testing sebesar 20%. Setiap baris data merepresentasikan satu pasien. Karena metode yang digunakan adalah Artificial Neural Network (ANN) untuk regresi, variabel respon dan seluruh variabel prediktor yang dipakai berskala rasio (kontinu).
Variabel penelitian yang digunakan terdiri atas variabel respons dan variabel prediktor. Variabel respons adalah Class, yang menunjukkan kategori diagnosis kanker payudara, yaitu benign (jinak) dan malignant (ganas). Sementara itu, variabel prediktor terdiri atas sembilan karakteristik sel, yaitu Cl.thickness (ketebalan kelompok sel), Cell.size (keseragaman ukuran sel), Cell.shape (keseragaman bentuk sel), Marg.adhesion (adhesi marginal sel), Epith.c.size (ukuran sel epitel tunggal), Bare.nuclei (kondisi inti sel), Bl.cromatin (karakteristik kromatin), Normal.nucleoli (kondisi nukleolus), dan Mitoses (tingkat mitosis sel). Dataset ini tidak memiliki nilai hilang (missing value). Pada penelitian ini variabel diagnosis dan id pasien tidak digunakan, karena analisis yang dilakukan adalah regresi terhadap variabel numerik.
Algoritma berdasarkan batasan masalah adalah:
1.Memasukkan dataset Breast Cancer ke dalam R-Studio.
2.Memeriksa struktur dataset dan statistika deskriptif setiap variabel.
3.Menentukan variabel respon (area_mean) dan variabel prediktor (29 variabel lainnya).
4.Menghapus variabel identitas (ID) dan variabel diagnosis yang tidak digunakan dalam pemodelan.
5.Mengidentifikasi dan menangani nilai yang hilang (missing value) pada dataset.
6.Memeriksa korelasi antarvariabel untuk melihat pola hubungan awal.
7.Melakukan normalisasi min-max pada variabel prediktor dan variabel respon.
8.Membagi dataset menjadi data training sebesar 80% dan data testing sebesar 20% menggunakan createDataPartition() dengan set.seed(234).
9.Menentukan kombinasi parameter hidden neuron, yaitu 10, 20, dan 30, serta maxit, yaitu 250 dan 500, sehingga diperoleh enam kombinasi model.
10.Membentuk enam model ANN regresi dengan satu hidden layer menggunakan fungsi nnet() pada data training dengan linout = TRUE. Penggunaan set.seed(234) dilakukan untuk mendukung reproduksibilitas hasil.
11.Menampilkan arsitektur jaringan, jumlah bobot, nilai SSE akhir, dan status konvergensi (konvergen atau berhenti karena mencapai maxit) untuk setiap model.
12.Melakukan prediksi terhadap data training dan data testing, kemudian mengembalikan hasil prediksi ke skala asli (denormalisasi).
13.Menghitung nilai RMSE, MAE, MAPE, dan R² pada data training dan data testing untuk mengevaluasi kinerja masing-masing model.
14.Menginterpretasikan output setiap model, meliputi pengaruh jumlah hidden neuron, pengaruh maxit, ukuran kesalahan prediksi, nilai R², serta selisih kinerja data training dan data testing untuk mendeteksi overfitting.
15.Menyajikan hasil analisis melalui tabel perbandingan evaluasi, grafik aktual versus prediksi, dan grafik residual.
16.Menentukan model terbaik berdasarkan RMSE, MAE, dan MAPE terkecil serta R² terbesar pada data testing, dengan selisih kinerja training–testing yang kecil.
17.Kesimpulan.
Berikut ini diagram alir penelitian:
DiagrammeR::grViz("
digraph flow {
graph [rankdir = TB, bgcolor = white, nodesep = 0.25, ranksep = 0.35]
node [shape = box, style = rounded, fontname = Helvetica, fontsize = 10,
color = '#52799B', margin = '0.16,0.10']
edge [color = '#777777', arrowsize = 0.7]
A [label = 'Mulai']
B [label = 'Memuat Dataset BreastCancer']
C [label = 'Pemeriksaan Struktur dan Statistika Deskriptif']
D [label = 'Persiapan Data: Hapus Id dan Diagnosis, Tangani Missing Value']
E [label = 'Menentukan Variabel Respon (area_mean) dan Prediktor']
F [label = 'Normalisasi Min-Max']
G [label = 'Pembagian Data Training 80% dan Testing 20%']
H [label = 'Menentukan Kombinasi Hidden Neuron dan maxit']
I [label = 'Membentuk 6 Model ANN Regresi']
J [label = 'Prediksi Data Training dan Testing, Denormalisasi']
K [label = 'Evaluasi Kinerja: RMSE, MAE, MAPE, dan R2']
L [label = 'Visualisasi: Aktual vs Prediksi dan Residual']
M [label = 'Menentukan Model Terbaik dan Interpretasi']
N [label = 'Kesimpulan']
O [label = 'Selesai']
A -> B -> C -> D -> E -> F -> G -> H
H -> I -> J -> K -> L -> M -> N -> O
}
") Berikut ini eksplorasi data yang digunakan dalam data kanker payudara:
## Loading required package: ggplot2
## Loading required package: lattice
library(nnet)
library(NeuralNetTools)
# 1. Memuat dan memeriksa data
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
## 'data.frame': 699 obs. of 11 variables:
## $ Id : chr "1000025" "1002945" "1015425" "1016277" ...
## $ Cl.thickness : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 5 5 3 6 4 8 1 2 2 4 ...
## $ Cell.size : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 4 1 8 1 10 1 1 1 2 ...
## $ Cell.shape : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 4 1 8 1 10 1 2 1 1 ...
## $ Marg.adhesion : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 5 1 1 3 8 1 1 1 1 ...
## $ Epith.c.size : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 2 7 2 3 2 7 2 2 2 2 ...
## $ Bare.nuclei : Factor w/ 10 levels "1","2","3","4",..: 1 10 2 4 1 10 10 1 1 1 ...
## $ Bl.cromatin : Factor w/ 10 levels "1","2","3","4",..: 3 3 3 3 3 9 3 3 1 2 ...
## $ Normal.nucleoli: Factor w/ 10 levels "1","2","3","4",..: 1 2 1 7 1 7 1 1 1 1 ...
## $ Mitoses : Factor w/ 9 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 5 1 ...
## $ Class : Factor w/ 2 levels "benign","malignant": 1 1 1 1 1 2 1 1 1 1 ...
## 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
##
##
##
##
##
# 2. Persiapan data
df <- BreastCancer
df$Id <- NULL # hapus ID
df$Class <- NULL # hapus diagnosis (tidak dipakai di regresi)
colSums(is.na(df)) # cek missing value## Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size
## 0 0 0 0 0
## Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses
## 16 0 0 0
df <- na.omit(df) # tangani missing value
df[] <- lapply(df, function(x) as.numeric(as.character(x))) # faktor -> numerik
nrow(df)## [1] 683
## Cl.thickness Cell.size Cell.shape Marg.adhesion
## Min. : 1.000 Min. : 1.000 Min. : 1.000 Min. : 1.00
## 1st Qu.: 2.000 1st Qu.: 1.000 1st Qu.: 1.000 1st Qu.: 1.00
## Median : 4.000 Median : 1.000 Median : 1.000 Median : 1.00
## Mean : 4.442 Mean : 3.151 Mean : 3.215 Mean : 2.83
## 3rd Qu.: 6.000 3rd Qu.: 5.000 3rd Qu.: 5.000 3rd Qu.: 4.00
## Max. :10.000 Max. :10.000 Max. :10.000 Max. :10.00
## Epith.c.size Bare.nuclei Bl.cromatin Normal.nucleoli
## Min. : 1.000 Min. : 1.000 Min. : 1.000 Min. : 1.00
## 1st Qu.: 2.000 1st Qu.: 1.000 1st Qu.: 2.000 1st Qu.: 1.00
## Median : 2.000 Median : 1.000 Median : 3.000 Median : 1.00
## Mean : 3.234 Mean : 3.545 Mean : 3.445 Mean : 2.87
## 3rd Qu.: 4.000 3rd Qu.: 6.000 3rd Qu.: 5.000 3rd Qu.: 4.00
## Max. :10.000 Max. :10.000 Max. :10.000 Max. :10.00
## Mitoses
## Min. : 1.000
## 1st Qu.: 1.000
## Median : 1.000
## Mean : 1.603
## 3rd Qu.: 1.000
## Max. :10.000
## Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size
## Cl.thickness 1.00 0.64 0.65 0.49 0.52
## Cell.size 0.64 1.00 0.91 0.71 0.75
## Cell.shape 0.65 0.91 1.00 0.69 0.72
## Marg.adhesion 0.49 0.71 0.69 1.00 0.59
## Epith.c.size 0.52 0.75 0.72 0.59 1.00
## Bare.nuclei 0.59 0.69 0.71 0.67 0.59
## Bl.cromatin 0.55 0.76 0.74 0.67 0.62
## Normal.nucleoli 0.53 0.72 0.72 0.60 0.63
## Mitoses 0.35 0.46 0.44 0.42 0.48
## Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses
## Cl.thickness 0.59 0.55 0.53 0.35
## Cell.size 0.69 0.76 0.72 0.46
## Cell.shape 0.71 0.74 0.72 0.44
## Marg.adhesion 0.67 0.67 0.60 0.42
## Epith.c.size 0.59 0.62 0.63 0.48
## Bare.nuclei 1.00 0.68 0.58 0.34
## Bl.cromatin 0.68 1.00 0.67 0.35
## Normal.nucleoli 0.58 0.67 1.00 0.43
## Mitoses 0.34 0.35 0.43 1.00
# 3. Variabel respon dan prediktor
respon <- "Cl.thickness"
form <- as.formula(paste(respon, "~ ."))Data yang digunakan dalam penelitian ini adalah dataset Breast Cancer dari paket mlbench pada R, yang terdiri dari 699 pengamatan dan 11 variabel. Variabel tersebut meliputi Id sebagai identitas pasien, sembilan variabel karakteristik sel, dan satu variabel Class sebagai diagnosis. Kesembilan variabel karakteristik sel dinilai pada skala 1 sampai 10, tetapi tersimpan di R sebagai faktor atau faktor terurut, sehingga perlu diubah menjadi numerik sebelum dilakukan analisis regresi. Variabel Class terdiri dari 458 pengamatan benign (65,5%) dan 241 pengamatan malignant (34,5%). Variabel Id dan Class tidak digunakan dalam pemodelan regresi karena Id hanya berfungsi sebagai identitas dan Class bukan variabel numerik. Selain itu, Id hanya memiliki 645 nilai unik dari 699 pengamatan, yang berarti sebagian pasien memiliki lebih dari satu pengamatan. Hasil pemeriksaan missing value menunjukkan bahwa data yang hilang hanya terdapat pada variabel Bare.nuclei, yaitu sebanyak 16 pengamatan atau sekitar 2,3% dari seluruh data, sedangkan delapan variabel lainnya lengkap. Karena proporsinya kecil, pengamatan yang mengandung missing value dihapus menggunakan na.omit, sehingga tersisa 683 pengamatan yang digunakan pada tahap analisis selanjutnya.
Berdasarkan statistika deskriptif, variabel respon Cl.thickness memiliki rata-rata 4,442 dan median 4, dengan separuh pengamatan berada pada rentang 2 sampai 6 serta nilai minimum 1 dan maksimum 10. Sebaran nilai respon relatif luas dan mengisi seluruh rentang skala, sehingga menguntungkan bagi model regresi karena respon memiliki variasi yang cukup. Pada variabel prediktor, rata-rata hampir seluruhnya lebih besar daripada median. Variabel Cell.size, Cell.shape, Marg.adhesion, Bare.nuclei, dan Normal.nucleoli memiliki median 1 tetapi rata-rata antara 2,830 sampai 3,545, yang menunjukkan distribusi menjulur ke kanan, yaitu sebagian besar pengamatan bernilai rendah dan sebagian kecil bernilai tinggi hingga 10. Kondisi paling ekstrem terdapat pada variabel Mitoses dengan rata-rata 1,603, sedangkan median dan kuartil ketiganya sama-sama bernilai 1 dan nilai maksimumnya 10, sehingga hampir seluruh pengamatan bernilai 1 dan hanya sedikit yang bernilai tinggi. Karena seluruh variabel berada pada skala yang sama, perbedaan skala antarvariabel tidak besar, tetapi normalisasi min-max tetap dilakukan karena ANN dengan fungsi aktivasi sigmoid bekerja lebih stabil pada data berskala 0 sampai 1.
Hasil matriks korelasi menunjukkan bahwa seluruh koefisien korelasi bernilai positif. Korelasi antara variabel respon Cl.thickness dan variabel prediktor berkisar antara 0,35 sampai 0,65, yang termasuk kategori lemah sampai sedang. Hubungan terkuat dengan Cl.thickness dimiliki oleh Cell.shape sebesar 0,65 dan Cell.size sebesar 0,64, diikuti Bare.nuclei sebesar 0,59, Bl.cromatin sebesar 0,55, Normal.nucleoli sebesar 0,53, Epith.c.size sebesar 0,52, dan Marg.adhesion sebesar 0,49, sedangkan hubungan terlemah dimiliki oleh Mitoses sebesar 0,35. Tidak adanya prediktor yang berkorelasi sangat tinggi dengan respon menunjukkan bahwa hubungan antara Cl.thickness dan prediktor tidak bersifat linier sempurna, sehingga penggunaan ANN yang mampu menangkap hubungan nonlinier dapat dipandang tepat. Antarvariabel prediktor terdapat korelasi yang cukup tinggi, terutama antara Cell.size dan Cell.shape sebesar 0,91, sedangkan sebagian besar pasangan prediktor lainnya berada pada kisaran 0,6 sampai 0,76. Hal ini mengindikasikan adanya multikolinearitas antarprediktor. Pada regresi linier klasik kondisi ini menjadi masalah, tetapi ANN tidak mensyaratkan bebas multikolinearitas, sehingga seluruh prediktor tetap digunakan dalam pemodelan.
Berikut ini pra-pemprosesan dan pembagian data yang digunakan dalam data kanker payudara:
# 4. Normalisasi min-max
mn <- sapply(df, min); mx <- sapply(df, max)
df_n <- as.data.frame(scale(df, center = mn, scale = mx - mn))
denorm <- function(x) x * (mx[respon] - mn[respon]) + mn[respon]
# 5. Split data training 80% dan testing 20%
set.seed(234)
index <- createDataPartition(df_n[[respon]], p = 0.8, list = FALSE)
train <- df_n[index, ]; nrow(train)## [1] 548
## [1] 135
Tahap pra-pemrosesan dilakukan dengan normalisasi min-max pada seluruh variabel, baik variabel respon maupun variabel prediktor, sehingga setiap variabel berada pada rentang 0 sampai 1. Normalisasi ini diperlukan karena ANN dengan fungsi aktivasi sigmoid pada hidden layer bekerja lebih stabil dan konvergen lebih cepat pada data berskala kecil. Berdasarkan statistika deskriptif pada subbab 4.1, seluruh variabel memiliki nilai minimum 1 dan nilai maksimum 10, sehingga rumus normalisasi pada penelitian ini menjadi X’ = (X − 1) / 9. Dengan demikian, nilai 1 diubah menjadi 0 dan nilai 10 menjadi 1, sedangkan nilai di antaranya diubah secara proporsional. Karena variabel respon juga dinormalisasi, hasil prediksi model berada pada skala 0 sampai 1 dan harus dikembalikan ke skala asli (denormalisasi) menggunakan rumus X = X’ × 9 + 1 sebelum dievaluasi. Dengan cara ini, nilai RMSE dan MAE yang diperoleh nanti berada pada satuan asli variabel Cl.thickness, sehingga lebih mudah ditafsirkan.
Setelah normalisasi, data dibagi menjadi data training dan data testing menggunakan fungsi createDataPartition() dengan set.seed(234) dan proporsi 80% untuk data training. Hasil pembagian menunjukkan bahwa data training terdiri dari 548 pengamatan, sedangkan data testing terdiri dari 135 pengamatan, dari total 683 pengamatan. Proporsi tersebut setara dengan 80,2% untuk data training dan 19,8% untuk data testing, sehingga sudah sesuai dengan skenario 80:20 yang direncanakan. Selisih kecil dari angka 80% dan 20% yang tepat terjadi karena createDataPartition() melakukan pengambilan sampel secara berstrata berdasarkan sebaran nilai variabel respon, sehingga distribusi Cl.thickness pada data training dan data testing tetap mirip dengan distribusi pada data keseluruhan. Penggunaan set.seed(234) memastikan bahwa pembagian data dapat direproduksi dengan hasil yang sama setiap kali kode dijalankan. Data training digunakan untuk melatih model ANN, sedangkan data testing digunakan untuk menguji kemampuan model memprediksi data baru yang tidak dipakai saat pelatihan.
Berikut ini pembentukan model ANN regresi yang digunakan dalam data kanker payudara:
# Fungsi evaluasi
evaluasi <- function(aktual, prediksi) {
e <- aktual - prediksi
c(RMSE = sqrt(mean(e^2)),
MAE = mean(abs(e)),
MAPE = mean(abs(e / aktual)) * 100,
R2 = 1 - sum(e^2) / sum((aktual - mean(aktual))^2))
}
# 6. Kombinasi hidden neuron dan maxit (6 model)
kombinasi <- expand.grid(size = c(10, 20, 30), maxit = c(250, 500))
model_list <- list()
hasil <- data.frame()
for (i in 1:nrow(kombinasi)) {
s <- kombinasi$size[i]; m <- kombinasi$maxit[i]
set.seed(234)
nn <- nnet(form, data = train, size = s, linout = TRUE,
maxit = m, trace = FALSE)
model_list[[i]] <- nn
pred_train <- as.numeric(denorm(predict(nn, newdata = train, type = "raw")))
pred_test <- as.numeric(denorm(predict(nn, newdata = test, type = "raw")))
ev_train <- evaluasi(y_train, pred_train)
ev_test <- evaluasi(y_test, pred_test)
hasil <- rbind(hasil, data.frame(
Model = i, Hidden = s, Maxit = m,
Bobot = length(nn$wts),
SSE = round(nn$value, 4),
Status = ifelse(nn$convergence == 0, "Konvergen", "Mencapai maxit"),
RMSE_Train = ev_train["RMSE"], MAE_Train = ev_train["MAE"],
MAPE_Train = ev_train["MAPE"], R2_Train = ev_train["R2"],
RMSE_Test = ev_test["RMSE"], MAE_Test = ev_test["MAE"],
MAPE_Test = ev_test["MAPE"], R2_Test = ev_test["R2"]))
}
hasil <- cbind(hasil[, 1:6], round(hasil[, -(1:6)], 4))
rownames(hasil) <- NULL
nrow(hasil) # harus 6## [1] 6
## Model Hidden Maxit Bobot SSE Status RMSE_Train MAE_Train
## 1 1 10 250 101 14.6116 Mencapai maxit 1.4696 1.1961
## 2 2 20 250 201 10.2737 Mencapai maxit 1.2323 0.9849
## 3 3 30 250 301 9.5270 Mencapai maxit 1.1867 0.9173
## 4 4 10 500 101 14.1204 Mencapai maxit 1.4447 1.1678
## 5 5 20 500 201 8.8524 Mencapai maxit 1.1439 0.8829
## 6 6 30 500 301 7.1449 Mencapai maxit 1.0277 0.7149
## MAPE_Train R2_Train RMSE_Test MAE_Test MAPE_Test R2_Test
## 1 51.1808 0.7216 2.6686 1.9465 71.6706 0.1809
## 2 44.2955 0.8043 3.0467 2.3050 82.7398 -0.0676
## 3 44.4573 0.8185 3.3605 2.4072 80.3167 -0.2989
## 4 49.6362 0.7310 2.6525 1.9451 72.0196 0.1908
## 5 40.8860 0.8314 3.2250 2.4031 88.0410 -0.1963
## 6 37.2604 0.8639 4.3722 2.9505 83.4172 -1.1987
# Tabel ringkas training vs testing (untuk 4.4)
hasil[, c("Model", "Hidden", "Maxit",
"RMSE_Train", "RMSE_Test",
"MAE_Train", "MAE_Test",
"MAPE_Train", "MAPE_Test",
"R2_Train", "R2_Test")]## Model Hidden Maxit RMSE_Train RMSE_Test MAE_Train MAE_Test MAPE_Train
## 1 1 10 250 1.4696 2.6686 1.1961 1.9465 51.1808
## 2 2 20 250 1.2323 3.0467 0.9849 2.3050 44.2955
## 3 3 30 250 1.1867 3.3605 0.9173 2.4072 44.4573
## 4 4 10 500 1.4447 2.6525 1.1678 1.9451 49.6362
## 5 5 20 500 1.1439 3.2250 0.8829 2.4031 40.8860
## 6 6 30 500 1.0277 4.3722 0.7149 2.9505 37.2604
## MAPE_Test R2_Train R2_Test
## 1 71.6706 0.7216 0.1809
## 2 82.7398 0.8043 -0.0676
## 3 80.3167 0.8185 -0.2989
## 4 72.0196 0.7310 0.1908
## 5 88.0410 0.8314 -0.1963
## 6 83.4172 0.8639 -1.1987
Evaluasi kinerja keenam model dilakukan pada data training dan data testing menggunakan RMSE, MAE, dan MAPE. Pada data training, kinerja model membaik seiring bertambahnya jumlah hidden neuron dan maxit. Pada maxit 250, RMSE training turun dari 1,4696 (10 neuron) menjadi 1,2323 (20 neuron) dan 1,1867 (30 neuron), sedangkan pada maxit 500 turun dari 1,4447 menjadi 1,1439 dan 1,0277. Pola yang sama terlihat pada MAE dan MAPE. Nilai R² training naik dari 0,7216 pada model 1 menjadi 0,8639 pada model 6, artinya model terbesar mampu menjelaskan sekitar 86,4% keragaman ketebalan gumpalan sel pada data training. Model 6 (30 neuron, maxit 500) mencapai MAE training 0,7149, yaitu rata-rata selisih prediksi dengan nilai aktual hanya sekitar 0,7 poin pada skala 1 sampai 10. Temuan ini konsisten dengan nilai SSE pada subbab 4.3.
Pola sebaliknya muncul pada data testing. RMSE testing terkecil dicapai oleh model 4 (10 neuron, maxit 500) sebesar 2,6525, disusul model 1 (10 neuron, maxit 250) sebesar 2,6686. Model dengan 20 neuron memiliki RMSE testing 3,0467 (maxit 250) dan 3,2250 (maxit 500), sedangkan model dengan 30 neuron memiliki 3,3605 dan 4,3722. Model 6, yang paling baik pada data training, justru paling buruk pada data testing, dengan RMSE 4,3722 dan MAE 2,9505. MAE testing menunjukkan urutan yang sama, dengan nilai terkecil pada model 4 (1,9451) dan model 1 (1,9465). Untuk MAPE testing, nilai terkecil dimiliki model 1 (71,6706%), dengan model 4 (72,0196%) hampir sama. MAPE yang tinggi, antara 71% sampai 88%, perlu dibaca hati-hati karena MAPE membagi galat dengan nilai aktual, sedangkan banyak pengamatan memiliki nilai aktual rendah (median Cl.thickness hanya 4), sehingga selisih kecil pun menghasilkan persentase besar.
Perbedaan antara kinerja training dan testing menunjukkan adanya overfitting, dan tingkatnya meningkat seiring kompleksitas model. Selisih RMSE testing terhadap training adalah 1,1990 (model 1), 1,2078 (model 4), 1,8144 (model 2), 2,0811 (model 5), 2,1738 (model 3), dan 3,3445 (model 6). Dengan kata lain, RMSE testing model 6 sekitar 4,3 kali RMSE trainingnya, sedangkan pada model 1 dan model 4 hanya sekitar 1,8 kali. Model 6 memiliki 301 bobot untuk 548 data training, sehingga jaringan cenderung menghafal pola dan noise pada data training dan kurang mampu menggeneralisasi ke data baru.
Pengaruh maxit bergantung pada ukuran jaringan. Pada 10 neuron, kenaikan maxit dari 250 ke 500 sedikit memperbaiki RMSE testing (2,6686 menjadi 2,6525) dan hampir tidak mengubah MAE testing. Pada 20 neuron, RMSE testing memburuk dari 3,0467 menjadi 3,2250, dan pada 30 neuron memburuk lebih besar dari 3,3605 menjadi 4,3722, padahal RMSE training pada ketiganya membaik. Jadi, tambahan iterasi pada jaringan yang lebih besar hanya memperkuat penyesuaian terhadap data training tanpa meningkatkan prediksi pada data testing. Secara keseluruhan, model terbaik berdasarkan RMSE dan MAE testing adalah model 4 (10 hidden neuron, maxit 500). Model ini memiliki selisih training–testing paling kecil dan kinerja testing yang paling baik, meskipun kinerja trainingnya paling rendah di antara semua model.
Berikut ini pemilihan model terbaik yang digunakan dalam data kanker payudara:
## [1] 4
## Model Hidden Maxit Bobot SSE Status RMSE_Train MAE_Train
## 4 4 10 500 101 14.1204 Mencapai maxit 1.4447 1.1678
## MAPE_Train R2_Train RMSE_Test MAE_Test MAPE_Test R2_Test
## 4 49.6362 0.731 2.6525 1.9451 72.0196 0.1908
Pemilihan model terbaik dilakukan berdasarkan nilai RMSE data testing terkecil, karena data testing menggambarkan kemampuan model memprediksi data baru yang tidak digunakan saat pelatihan. Hasilnya, model terbaik adalah model 4, yaitu ANN dengan 10 hidden neuron dan maxit 500. Model ini memiliki 101 bobot dengan arsitektur 8 neuron input, 10 neuron hidden, dan 1 neuron output. SSE akhir pada data training sebesar 14,1204, dan status pelatihannya mencapai maxit, yang berarti iterasi berhenti karena batas yang ditetapkan, bukan karena kriteria konvergensi terpenuhi.
Pada data training, model 4 memiliki RMSE 1,4447, MAE 1,1678, MAPE 49,6362%, dan R² 0,7310. Artinya, rata-rata selisih prediksi dengan nilai aktual Cl.thickness adalah sekitar 1,17 poin pada skala 1 sampai 10, dan model menjelaskan sekitar 73,1% keragaman respon pada data training. Pada data testing, model ini mencapai RMSE terkecil di antara keenam model, yaitu 2,6525, dengan MAE 1,9451 dan MAPE 72,0196%. Kinerja pada data training memang bukan yang terbaik, karena model dengan 20 dan 30 hidden neuron menghasilkan RMSE training yang lebih kecil. Namun, model tersebut jauh lebih buruk pada data testing, sehingga kinerja training yang lebih tinggi tidak dijadikan dasar pemilihan.
Pemilihan model 4 didukung oleh tiga pertimbangan. Pertama, RMSE dan MAE testing model 4 adalah yang terkecil. Kedua, selisih kinerja training dan testing relatif kecil dibandingkan model yang lebih kompleks, dengan RMSE testing sekitar 1,8 kali RMSE training, sedangkan model 6 mencapai sekitar 4,3 kali. Ketiga, jaringan dengan 101 bobot lebih sederhana dibandingkan jaringan 201 atau 301 bobot, sehingga risiko overfitting lebih rendah. Perlu dicatat bahwa model 1 (10 neuron, maxit 250) memiliki kinerja yang hampir sama, dengan RMSE testing 2,6686 dan MAPE testing 71,6706%. Selisih dengan model 4 sangat kecil, sehingga keduanya dapat dikatakan setara, dan model 4 dipilih karena memiliki RMSE dan MAE testing paling kecil sesuai kriteria yang ditetapkan.
Berikut ini interpretasi model terbaik yang digunakan dalam data kanker payudara:
## $struct
## [1] 8 10 1
##
## $wts
## $wts$`hidden 1 1`
## [1] 1.154835 -25.465641 34.728892 20.950369 -22.383063 23.145642 -48.016178
## [8] 19.718774 10.282079
##
## $wts$`hidden 1 2`
## [1] -3.759781 4.976444 -8.528908 -8.455945 -14.310718 -2.259642 14.724525
## [8] 4.554570 -17.088724
##
## $wts$`hidden 1 3`
## [1] -0.26905505 3.80703318 -21.11035484 0.01791992 22.68798061
## [6] -4.07039788 24.87686895 -5.94978256 79.14749650
##
## $wts$`hidden 1 4`
## [1] -22.705129 81.901015 47.090022 -74.728844 -42.708212 -49.454218 -1.181273
## [8] 53.238081 8.670515
##
## $wts$`hidden 1 5`
## [1] 13.507120 -4.819790 5.199982 -1.760984 -23.363083 -6.483110 -6.416615
## [8] -2.473381 0.949037
##
## $wts$`hidden 1 6`
## [1] 6.446887 2.857367 16.380779 -12.063442 -29.394771 -27.830516 36.905081
## [8] 44.773354 -19.791666
##
## $wts$`hidden 1 7`
## [1] 31.442965 -13.525939 3.376762 2.122740 -44.182971 -28.570797 -26.592633
## [8] 7.531848 -6.706843
##
## $wts$`hidden 1 8`
## [1] -4.83215178 -0.08209269 -3.22054893 -1.38635587 -2.88221598 0.67710574
## [7] 2.91557187 1.34420205 -0.64923931
##
## $wts$`hidden 1 9`
## [1] -4.9055759 -49.0391753 -55.5251079 0.5911866 1.7096124 3.1797824
## [7] -3.5143709 -35.9474293 2.0313915
##
## $wts$`hidden 1 10`
## [1] -34.340427 -12.903424 28.786944 9.044683 36.758397 -38.626379 66.901342
## [8] -48.560120 -48.103610
##
## $wts$`out 1`
## [1] -0.03198291 0.25869524 -1.08027379 0.39441468 0.39062054
## [6] 0.72883136 -0.21591948 -0.69144241 19.11735386 -18.80203229
## [11] 0.39695089
## Warning: `label` cannot be a <ggplot2::element_blank> object.
pred_best <- as.numeric(denorm(predict(nn_best, newdata = test, type = "raw")))
par(mfrow = c(1, 2))
{
plot(y_test, pred_best, pch = 19, col = "steelblue",
xlab = "Aktual", ylab = "Prediksi", main = "Aktual vs Prediksi")
abline(a = 0, b = 1, col = "red", lwd = 2)
}
{
plot(pred_best, y_test - pred_best, pch = 19, col = "steelblue",
xlab = "Prediksi", ylab = "Residual", main = "Plot Residual")
abline(h = 0, col = "red", lwd = 2)
par(mfrow = c(1, 1))
}Model terbaik yang terpilih memiliki struktur 8 10 1, yaitu 8 neuron input (variabel prediktor), satu hidden layer dengan 10 neuron, dan 1 neuron output (variabel respon). Pada output neuralweights, setiap hidden neuron memiliki 9 bobot, yaitu 1 bias dan 8 bobot dari masing-masing input. Neuron output memiliki 11 bobot, yaitu 1 bias dan 10 bobot dari tiap hidden neuron. Bobot yang diperoleh bernilai sangat besar, bahkan mencapai puluhan, seperti 81,90 pada hidden 4, -74,73 pada hidden 4, dan 79,15 pada hidden 3. Bobot sebesar ini menandakan jaringan memerlukan penyesuaian ekstrem untuk mencocokkan data, yang biasanya berkaitan dengan skala input yang belum dinormalisasi atau kecenderungan overfitting. Pada lapisan output, bobot dari hidden 9 (19,12) dan hidden 10 (-18,80) jauh lebih besar dibandingkan bobot lainnya yang kurang dari 1, sehingga kedua neuron ini paling dominan memengaruhi prediksi dan saling mengimbangi karena tandanya berlawanan. Bobot ANN tidak dapat ditafsirkan langsung seperti koefisien regresi karena adanya fungsi aktivasi pada hidden layer.
Pada grafik aktual vs prediksi, titik-titik secara umum mengikuti arah garis merah, artinya model sudah menangkap pola hubungan antara prediktor dan respon. Akan tetapi, sebaran titik di sekitar garis cukup lebar. Pada nilai aktual 10, prediksi berkisar dari sekitar 0,5 hingga 16,5, sedangkan pada nilai aktual 1 prediksi bisa mencapai sekitar 8,5 bahkan bernilai negatif (sekitar -2). Hal ini menunjukkan model cenderung melebih-lebihkan prediksi pada nilai aktual yang rendah dan meremehkan pada nilai aktual yang tinggi, sehingga prediksi terlihat “tertarik” ke nilai tengah.
Plot residual memperkuat temuan tersebut. Jika residual dihitung sebagai aktual dikurangi prediksi, titik-titik membentuk pola menurun dari kiri atas ke kanan bawah. Pada prediksi yang rendah (sekitar 0 sampai 4) residual cenderung positif, artinya nilai aktual lebih besar daripada prediksi (under-predict). Pada prediksi yang tinggi (di atas sekitar 8) residual cenderung negatif, artinya nilai aktual lebih kecil daripada prediksi (over-predict). Karena residual yang ideal seharusnya menyebar acak di sekitar garis nol, pola ini menunjukkan masih ada bias sistematis pada model. Sebaran residual juga tidak seragam, yaitu lebih lebar pada rentang prediksi 2 sampai 7, sehingga ada indikasi varians error yang tidak homogen. Beberapa titik menonjol sebagai pencilan, misalnya residual sekitar 9,7 pada prediksi sekitar 0,4 dan residual sekitar -7,5 pada prediksi sekitar 8,3.
Machine Learning adalah studi tentang algoritma untuk mempelajari bagaimana melakukan tugas-tugas tertentu yang dilakukan secara otomatis oleh orang-orang. Di sini, belajar mengacu pada kemampuan untuk melakukan berbagai kegiatan yang sudah ada atau untuk mengekstrapolasi kesimpulan baru dengan benar dari berbagai pola yang diamati sebelumnya. Salah satu subbidang kecerdasan buatan, Machine Learning, dapat berdampak pada sejumlah bidang lain, termasuk statistik, matematika, dan banyak bidang teoretis ilmu komputer. Intinya, tujuan machine learning adalah untuk mengembangkan algoritma yang dapat mengeksekusi sistem pembelajaran otonom dengan sangat sedikit masukan dari orang-orang pada umumnya.
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. 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.
Berdasarkan hasil telah didapatkan dengan 8 variabel prediktor yang dinormalisasi min-max dan dibagi 80:20 (548 data training dan 135 data testing), lalu membandingkan enam model dari kombinasi hidden neuron 10, 20, 30 dan maxit 250, 500. Hasilnya, kinerja pada data training membaik seiring bertambahnya neuron dan maxit (RMSE training terkecil 1,0277 dan R² 0,8639 pada model 30 neuron, maxit 500), tetapi kinerja pada data testing justru memburuk (RMSE testing naik dari 2,6525 menjadi 4,3722), yang menunjukkan overfitting makin parah pada jaringan yang lebih kompleks. Pengaruh maxit juga bergantung pada ukuran jaringan: pada 10 neuron hampir tidak berpengaruh, sedangkan pada 20 dan 30 neuron tambahan iterasi memperburuk RMSE testing. Berdasarkan RMSE testing terkecil, model terbaik adalah ANN dengan arsitektur 8-10-1 (101 bobot) dan maxit 500, dengan RMSE testing 2,6525, MAE 1,9451, dan MAPE 72,0196%, serta RMSE training 1,4447 dan R² training 0,7310. Namun, model ini baru mampu menangkap tren umum data, karena grafik aktual vs prediksi menunjukkan sebaran yang lebar, plot residual masih berpola dengan indikasi varians tidak homogen dan beberapa pencilan, serta pelatihan berhenti karena mencapai maxit, bukan karena konvergen.
Ketika menggunakan program R, diperlukan ketelitian dalam penulisan, memasukkan, melakukan perhitungan, dan hal lainnya dikarenakan jika salah maka tidak akan mendapatkan hasil yang diharapkan. Oleh karena itu, harus mengikuti prosedur yang ada. Ketelitian dalam menginterprestasikan output-nya agar tidak terjadi kekeliruan. Harus cermat dalam menggunakan fungsi yang akan gunakan.
Anggraini, R., Hafiz, M., Lestari, W. A., Pangesti, R. D. (2026). Penerapan Artificial Neural Network (ANN) untuk Klasifikasi Jenis Biji Gandum. MATHunesa Jurnal Ilmiah Matematika Volume 14 No 1 e-ISSN : 2716-506 p-ISSN : 2301-9115 Tahun 2026.
Bintoro, P., Ratnasari., Wihardjo, E., Putri, I, P., Asari, A. (2024). Pengantar Machine Learning.
Fadil, H. A., Rouza, E., Andriansya., Mutaqqin, Z., Mahendra, K. P., Abdi, K. (2026). Implementasi Artificial Neural Network (ANN) Untuk Memprediksi Cuaca Harian Berdasarkan Data Suhu Dan Kelembapan. Journal of Artificial Intelligence and Digital Business (RIGGS), Vol. 4 No. 4 (2026) pp: 12364-1237.
Fathurohman, A. (2021). Machine Learning Untuk Pendidikan: Mengapa Dan Bagaimana. JURNAL JITEK, Vol 1 No. 3 November (2021), Hal 57-62.
Fransiska, H. (2026). Modul Praktikum Machine Learning and Modern Prediction. Laboratorium Statistika, Universitas Bengkulu.