1 Pendahuluan

Regresi neural network adalah metode pembelajaran mesin yang menggunakan jaringan saraf untuk memodelkan hubungan antara variabel input dan output yang bersifat kontinu.1.

Dalam regresi, model ini bertujuan untuk memprediksi nilai output (seperti pendapatan atau suhu) berdasarkan sejumlah fitur atau variabel input. Jaringan saraf ini terdiri dari lapisan-lapisan neuron yang saling terhubung, dimana setiap neuron memproses informasi dan menghasilkan output yang diteruskan ke neuron lainnya hingga mencapai output akhir.

Pada umumnya, jaringan saraf terdiri dari tiga jenis lapisan: lapisan input, lapisan tersembunyi (hidden layers), dan lapisan output. Setiap lapisan terdiri atas satu atau beberapa unit neuron yang mempunyai sebuah fungsi aktivasi yang menentukan keluaran dari unit tersebut. Bisa dilakukan penambahan hidden layers untuk menambah kemampuan dari neural network tersebut.

Keunggulan regresi neural network dibandingkan dengan regresi linier atau metode tradisional lainnya adalah kemampuannya dalam menangani hubungan yang lebih kompleks dan non-linier antara variabel input dan output. Dengan pelatihan yang tepat menggunakan algoritma backpropagation, jaringan saraf dapat menyesuaikan bobot dan biasnya untuk mengoptimalkan prediksi. Hal ini membuatnya sangat berguna untuk masalah regresi dengan data yang sangat besar dan memiliki hubungan yang tidak dapat diprediksi dengan model linier sederhana.2

Untuk mengukur performa model neural network digunakan dua ukuran yaitu Root Mean Square Error (RMSE) dan Mean Absolute Error (MAE). Nilai RMSE terendah menunjukkan hasil akurasi yang terbaik. Formula RMSE dan MAE dirumuskan sebagai berikut:

  • RMSE (Root Mean Squared Error) mengukur akar dari rata-rata kuadrat selisih antara nilai aktual dan nilai prediksi. Rumusnya adalah: \[ RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2} \] Dimana \(y_i\) adalah nilai aktual dan \(\hat{y}_i\) adalah nilai prediksi.

  • MAE (Mean Absolute Error) mengukur rata-rata dari selisih absolut antara nilai aktual dan nilai prediksi. Rumusnya adalah: \[ MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| \] Dimana \(y_i\) adalah nilai aktual dan \(\hat{y}_i\) adalah nilai prediksi.

library(tensorflow)
library(keras)
library(reticulate)
library(caret)
library(tidyverse)
library(knitr)
library(ggplot2)
library(tidyr)
library(e1071)
library(ROCR)
library(rpart)
library(UBL)
library(neuralnet)
library(NeuralNetTools)
library(reticulate)
library(readr)

Load Data

## 'data.frame':    100 obs. of  5 variables:
##  $ besar.pinjaman      : num  224 122 107 188 230 ...
##  $ lama.pembayaran     : int  14 9 14 3 10 4 17 4 14 20 ...
##  $ pembayaran.per.bulan: num  1.84 1.48 1.12 2.11 1.46 ...
##  $ bunga               : num  1.412 0.795 1.593 1.158 1.621 ...
##  $ rating              : int  4 10 6 1 8 1 8 7 9 8 ...
##  besar.pinjaman   lama.pembayaran pembayaran.per.bulan     bunga        
##  Min.   : 54.03   Min.   : 3.00   Min.   :1.009        Min.   :-0.8721  
##  1st Qu.:129.60   1st Qu.: 7.00   1st Qu.:1.534        1st Qu.: 1.0196  
##  Median :176.53   Median :12.00   Median :1.961        Median : 1.8880  
##  Mean   :175.36   Mean   :11.88   Mean   :1.995        Mean   : 1.8929  
##  3rd Qu.:222.94   3rd Qu.:17.00   3rd Qu.:2.441        3rd Qu.: 2.8367  
##  Max.   :298.84   Max.   :20.00   Max.   :2.982        Max.   : 4.4655  
##      rating     
##  Min.   : 1.00  
##  1st Qu.: 3.00  
##  Median : 5.00  
##  Mean   : 5.18  
##  3rd Qu.: 7.25  
##  Max.   :10.00

2 Preliminary Analysis

Pengecekan Missing Value

Pengecekan data missing sangat penting dalam analisis data dan pemodelan karena dapat mempengaruhi kualitas hasil analisis dan prediksi. Melalui pengecekan dan penanganan data missing, dapat dipastikan model yang dibangun lebih robust dan hasil analisis lebih andal, mengurangi potensi kesalahan dan bias yang muncul akibat data yang hilang.

dev.off()
## null device 
##           1
library(DataExplorer)
plot_intro(data = data)

Dari grafik di atas terlihat tidak ada missing value pada data sehingga tidak perlu penanganan data hilang. Seluruh kolom atau variabel bertipe kontinu serta baris atau cases semua lengkap.

Hubungan antar Variabel

library(GGally)
library(ggplot2)
ggpairs(data, columns = 1:5)

Distribusi Variabel

par(mfrow = c(2, 3))
boxplot(data$besar.pinjaman, horizontal = T,
        main = "Besar Pinjaman", col="darkred")
boxplot(data$lama.pembayaran, horizontal = T,
        main = "Lama Pembayaran", col="red")
boxplot(data$pembayaran.per.bulan, horizontal = T,
        main="Pembayaran per Bulan", col="skyblue")
boxplot(data$bunga, horizontal = T,
        main="Bunga Pinjaman", col = "pink")
boxplot(data$rating, horizontal = T,
        main="Rating", col="yellow")

Penjelasan Variabel:

  • Besar Pinjaman: Besar uang yang dipinjam (dalam juta).

  • Lama Pembayaran: Durasi pinjaman dalam tahun.

  • Pembayaran per Bulan: Jumlah uang yang dibayar tiap bulan untuk pelunasan pinjaman (dalam juta).

  • Bunga (%): Tingkat bunga yang diterapkan pada pinjaman.

  • Rating Peminjam: Penilaian dari lembaga keuangan terhadap peminjam, diukur dengan angka dari 1 (terendah) hingga 10 (tertinggi).

Rating peminjam adalah penilaian atau skor yang diberikan oleh lembaga keuangan atau pemberi pinjaman untuk menggambarkan seberapa besar risiko yang terkait dengan peminjam tersebut. Rating ini digunakan untuk menilai kemampuan dan niat peminjam untuk melunasi pinjaman mereka. Biasanya, rating peminjam berkisar dari nilai terendah (misalnya, 1) hingga nilai tertinggi (misalnya, 10), dengan rating yang lebih tinggi menunjukkan peminjam yang lebih aman dan lebih dapat diandalkan, sementara rating yang lebih rendah menunjukkan peminjam yang berisiko lebih tinggi.

3 Pemodelan

Scaling Data

Neural network sering kali lebih efektif jika dilakukan pada data yang telah dinormalisasi atau diskalakan (misalnya, menggunakan Min-Max Scaling atau Z-Score Scaling). Hal ini karena model neural network sangat sensitif terhadap skala input. Tanpa normalisasi, variabel dengan skala yang lebih besar akan mendominasi model.3

Variabel seperti bunga, pembayaran per bulan, dan lama pembayaran memiliki skala yang sangat berbeda, jadi perlu menormalkan atau menstandardisasi data sebelum melatih model neural network. Data dinormalisasi menggunakan fungsi scale01 yang mengubah setiap variabel menjadi skala antara 0 dan 1.

set.seed(785)
scale01 <- function(x){
  (x - min(x)) / (max(x) - min(x))
}
data <- data %>%
  mutate_all(scale01)
head(data)
##   besar.pinjaman lama.pembayaran pembayaran.per.bulan     bunga    rating
## 1      0.6947709      0.64705882           0.41975044 0.4278610 0.3333333
## 2      0.2757374      0.35294118           0.23881035 0.3124150 1.0000000
## 3      0.2151919      0.64705882           0.05676476 0.4618050 0.5555556
## 4      0.5465375      0.00000000           0.55906505 0.3804151 0.0000000
## 5      0.7182585      0.41176471           0.22648400 0.4670702 0.7777778
## 6      0.4156098      0.05882353           0.46072968 0.2746768 0.0000000

Splitting Data

Pembagian data latih dan data uji dapat menggunakan fungsi createDataPartition. Dataset akan dibagi menjadi 70% data latih dan 30% data uji. Pembagian ini dilakukan untuk melatih model pada data pelatihan dan mengujinya pada data pengujian.

set.seed(785)
in.train <- createDataPartition(data$besar.pinjaman, p = 0.7, list = FALSE)
data_train <- data[in.train,] #data training utk modelling
data_test<- data[-in.train,]  #data testing utk evaluasi model
round(prop.table(table(data$besar.pinjaman)), digits = 4)
## 
##                  0 0.0280447672594609 0.0444724141910165 0.0684883339686548 
##               0.01               0.01               0.01               0.01 
## 0.0775872772545246 0.0812713752803123  0.101599483295154  0.106716028568336 
##               0.01               0.01               0.01               0.01 
##  0.137861733796597  0.139846011441242  0.145860056556545  0.162701987670799 
##               0.01               0.01               0.01               0.01 
##  0.169891288948275  0.181871353694773  0.215191939447622  0.216633662275545 
##               0.01               0.01               0.01               0.01 
##  0.229493435892796  0.232363526555764   0.23929652066767  0.275737393606583 
##               0.01               0.01               0.01               0.01 
##  0.283472774677094  0.294100258007388  0.294761272150157  0.302413360776237 
##               0.01               0.01               0.01               0.01 
##  0.307544191039004  0.309056548193069  0.313337963899958  0.333562971565837 
##               0.01               0.01               0.01               0.01 
##   0.33398593931245  0.334269834011073  0.346992954034143  0.348507105252218 
##               0.01               0.01               0.01               0.01 
##  0.352991334748486  0.380729392713638  0.383963511708871   0.39001596270209 
##               0.01               0.01               0.01               0.01 
##  0.390160389348193  0.390865648900175  0.407153886600981  0.409396465796014 
##               0.01               0.01               0.01               0.01 
##  0.415609769414834  0.418391375795127  0.418923443629628  0.423530593879018 
##               0.01               0.01               0.01               0.01 
##   0.42642920983295  0.431403603596258  0.474661763730571  0.476808720375952 
##               0.01               0.01               0.01               0.01 
##  0.487685471580637  0.496009955545168  0.504777730178125  0.514032745145931 
##               0.01               0.01               0.01               0.01 
##  0.526354940880997  0.526637012921694  0.540158278608602  0.546537543360423 
##               0.01               0.01               0.01               0.01 
##  0.549671110214822  0.552124001341075  0.568128185034295  0.581893699546303 
##               0.01               0.01               0.01               0.01 
##  0.589287641069991  0.590569223669317  0.599380488832095  0.607512784915051 
##               0.01               0.01               0.01               0.01 
##  0.609423486368894  0.620716475946219  0.621687188754707   0.62408240921953 
##               0.01               0.01               0.01               0.01 
##  0.627888618953999  0.631386098539544  0.667039469287259  0.672528753702539 
##               0.01               0.01               0.01               0.01 
##  0.679280711560252  0.682884538456509  0.689902364182516  0.690176556148348 
##               0.01               0.01               0.01               0.01 
##  0.693811285306988  0.694770873448073  0.703440594640003  0.718258512737129 
##               0.01               0.01               0.01               0.01 
##  0.721296016695564  0.722289630371669   0.72335063500683  0.728042470224378 
##               0.01               0.01               0.01               0.01 
##  0.737177918505452  0.762251114965981  0.763410218383952  0.827397233865616 
##               0.01               0.01               0.01               0.01 
##  0.843051582429685   0.84373828657237  0.850978017428745  0.868213372238255 
##               0.01               0.01               0.01               0.01 
##  0.877555090087745  0.887634430083758  0.895867779518052  0.928284423096878 
##               0.01               0.01               0.01               0.01 
##  0.947715550494271  0.985096152690869  0.989993460523535                  1 
##               0.01               0.01               0.01               0.01

Penentuan Jumlah Hidden Layer dan Neuron

Menentukan jumlah hidden layer dan neuron dalam neural network adalah langkah penting yang memengaruhi kinerja model. Tidak ada aturan baku yang pasti, namun beberapa pendekatan dan pertimbangan berikut dapat membantu dalam proses ini:

  1. Jumlah Hidden Layer:

    Single Hidden Layer: Untuk banyak masalah, satu hidden layer sudah cukup untuk menangkap hubungan non-linier antara input dan output.

    Multiple Hidden Layers: Jika masalah yang dihadapi lebih kompleks dan memerlukan representasi bertingkat, menambahkan lebih dari satu hidden layer (deep neural network) dapat meningkatkan kemampuan model dalam menangkap pola yang lebih rumit.

  2. Jumlah Neuron dalam Setiap Hidden Layer:

    Pendekatan Heuristic: Beberapa metode heuristik dapat digunakan untuk menentukan jumlah neuron, seperti rumus Hecht-Nelson untuk lapisan tersembunyi pertama dan rumus Lawrence-Fredrickson untuk lapisan tersembunyi berikutnya.

    Eksperimen dan Validasi: Melakukan eksperimen dengan berbagai konfigurasi jumlah neuron dan menggunakan teknik validasi silang (cross-validation) untuk mengevaluasi kinerja model pada data yang tidak terlihat sebelumnya.

  3. Pendekatan Praktis:

    Mulai dengan Sederhana: Mulailah dengan satu hidden layer dan jumlah neuron yang moderat.

    Evaluasi Kinerja: Uji kinerja model pada data pelatihan dan data pengujian.

    Iterasi dan Penyesuaian: Sesuaikan jumlah hidden layer dan neuron berdasarkan hasil evaluasi untuk meningkatkan kinerja model.

  4. Pertimbangan Tambahan:

    Overfitting dan Underfitting: Jumlah hidden layer dan neuron yang terlalu banyak dapat menyebabkan overfitting, sementara terlalu sedikit dapat menyebabkan underfitting.

    Keterbatasan Komputasi: Jumlah hidden layer dan neuron yang besar memerlukan sumber daya komputasi yang lebih besar dan waktu pelatihan yang lebih lama.

    Menentukan jumlah hidden layer dan neuron dalam neural network memerlukan pendekatan yang seimbang antara kompleksitas model dan kemampuan komputasi. Eksperimen dan evaluasi kinerja model secara berulang sangat penting untuk menemukan konfigurasi yang optimal sesuai dengan karakteristik data dan tujuan analisis.

Pemodelan dengan dua hidden layer yang masing-masing memiliki 20 neuron adalah konfigurasi yang umum digunakan dalam neural network. Oleh karena itu pemodelan berangkat dari ide ini.

3.1 Model 1

Pada model 1, jumlah hidden layer sebanyak 2 yang terdiri dari 20 neuron di setiap layer.

set.seed(785)
Model_nn1 <- neuralnet(besar.pinjaman ~ ., data =
                         data_train, hidden=c(20,20), linear.output = TRUE)
plot(Model_nn1, rep = "best")

3.1.1 Prediksi Data Testing

output <- compute(Model_nn1, data_test[,2:5]) 
head(output$net.result)
##           [,1]
## 1  -0.08446796
## 2   1.06589810
## 10  0.53229426
## 11  0.35648732
## 12 -0.02370787
## 13  0.65374705

3.1.2 Evaluasi Model

NN1_Test_RMSE <- sqrt(sum(((output$net.result - data_test[,1])^2)/2)) #Variabel 1 adalah Var Y
NN1_Test_RMSE
## [1] 1.915095

3.1.3 Nilai RMSE Predict

keras_train <- Model_nn1 %>% predict(data_train[, 2:5]) #Variabel 2-5 adalah Var X
keras_test <- Model_nn1 %>% predict(data_test[, 2:5])

RMSETrain1<-postResample(keras_train[,1], data_train$rating);RMSETrain1
##        RMSE    Rsquared         MAE 
## 0.409148383 0.002072538 0.318653899
RMSETest1<-postResample(keras_test[,1], data_test$rating);RMSETest1
##      RMSE  Rsquared       MAE 
## 0.3356143 0.2889795 0.2577832

3.2 Model 2

Pada model 2, jumlah hidden layer sebanyak 1 yang terdiri dari 20 neuron di setiap layer.

set.seed(785)
Model_nn2 <- neuralnet(besar.pinjaman ~ ., data =
                         data_train, hidden=c(20), linear.output = TRUE)
plot(Model_nn2, rep = "best")

3.2.1 Prediksi Data Testing

output <- compute(Model_nn2, data_test[,2:5]) 
head(output$net.result)
##          [,1]
## 1  -0.4340852
## 2   0.3084334
## 10  1.6575365
## 11  1.0137866
## 12  0.9663442
## 13  1.3986141

3.2.2 Evaluasi Model

NN2_Test_RMSE <- sqrt(sum(((output$net.result - data_test[,1])^2)/2))
NN2_Test_RMSE
## [1] 2.459755

3.2.3 Nilai RMSE Predict

keras_train <- Model_nn2 %>% predict(data_train[, 2:5])
keras_test <- Model_nn2 %>% predict(data_test[, 2:5])

RMSETrain2<-postResample(keras_train[,1], data_train$rating); RMSETrain2
##        RMSE    Rsquared         MAE 
## 0.405416404 0.002141688 0.314220305
RMSETest2<-postResample(keras_test[,1], data_test$rating); RMSETest2
##      RMSE  Rsquared       MAE 
## 0.6395327 0.0294226 0.5461948

3.3 Model 3

Pada model 3, jumlah hidden layer sebanyak 4 yang terdiri dari 20 neuron, 15 neuron, 10 neuron, dan 5 neuron.

set.seed(785)
Model_nn3 <- neuralnet(besar.pinjaman ~ ., data =
                         data_train, hidden=c(20,15,10,5), linear.output = TRUE)
plot(Model_nn3, rep = "best")

3.3.1 Prediksi Data Testing

output <- compute(Model_nn3, data_test[,2:5]) 
head(output$net.result)
##          [,1]
## 1  0.09072778
## 2  0.73581764
## 10 0.68997590
## 11 0.07646375
## 12 0.79263046
## 13 0.30401599

3.3.2 Evaluasi Model

NN3_Test_RMSE <- sqrt(sum(((output$net.result - data_test[,1])^2)/2))
NN3_Test_RMSE
## [1] 1.507035

3.3.3 Nilai RMSE Predict

keras_train <- Model_nn3 %>% predict(data_train[, 2:5])
keras_test <- Model_nn3 %>% predict(data_test[, 2:5])

RMSETrain3<-postResample(keras_train[,1], data_train$rating); RMSETrain3
##        RMSE    Rsquared         MAE 
## 0.410103236 0.002388406 0.321223386
RMSETest3<-postResample(keras_test[,1], data_test$rating); RMSETest3
##       RMSE   Rsquared        MAE 
## 0.39132878 0.07254714 0.31527335

3.4 Perbandingan Model

hasil_eval_Train <- rbind(
  c(RMSETrain1),
  c(RMSETrain2),
  c(RMSETrain3))
row.names(hasil_eval_Train) <- 
  c("Model NN 1","Model NN 2","Model NN 3")
hasil_eval_Test <- rbind(
  c(RMSETest1),
  c(RMSETest2),
  c(RMSETest3))
row.names(hasil_eval_Test) <- 
  c("Model NN 1","Model NN 2","Model NN 3")
hasil_eval_Train
##                 RMSE    Rsquared       MAE
## Model NN 1 0.4091484 0.002072538 0.3186539
## Model NN 2 0.4054164 0.002141688 0.3142203
## Model NN 3 0.4101032 0.002388406 0.3212234
hasil_eval_Test
##                 RMSE   Rsquared       MAE
## Model NN 1 0.3356143 0.28897945 0.2577832
## Model NN 2 0.6395327 0.02942260 0.5461948
## Model NN 3 0.3913288 0.07254714 0.3152734

Analisis Hasil:

Model NN 1:

Data Pelatihan: RMSE sebesar 0.4091 dan R-squared sebesar 0.0021 menunjukkan bahwa model ini memiliki kesalahan prediksi yang relatif rendah, namun kemampuan menjelaskan variasi data masih sangat terbatas.

Data Pengujian: RMSE sebesar 0.3356 dan R-squared sebesar 0.2890 menunjukkan bahwa model ini memiliki kesalahan prediksi yang paling rendah di antara ketiga model dan kemampuan menjelaskan variasi data yang lebih baik pada data pengujian.

Model NN 2:

Data Pelatihan: RMSE sebesar 0.4054 dan R-squared sebesar 0.0021 menunjukkan kesalahan prediksi yang sedikit lebih rendah dibandingkan Model NN 1, namun kemampuan menjelaskan variasi data tetap sangat terbatas.

Data Pengujian: RMSE sebesar 0.6395 dan R-squared sebesar 0.0294 menunjukkan peningkatan kesalahan prediksi dan penurunan signifikan dalam kemampuan menjelaskan variasi data dibandingkan dengan Model NN 1.

Model NN 3:

Data Pelatihan: RMSE sebesar 0.4101 dan R-squared sebesar 0.0024 menunjukkan kesalahan prediksi yang sedikit lebih tinggi dibandingkan Model NN 1 dan NN 2, dengan kemampuan menjelaskan variasi data yang tetap sangat terbatas.

Data Pengujian: RMSE sebesar 0.3913 dan R-squared sebesar 0.0725 menunjukkan kesalahan prediksi yang lebih tinggi dibandingkan Model NN 1, namun lebih rendah dibandingkan Model NN 2. Kemampuan menjelaskan variasi data juga lebih baik daripada Model NN 2, namun masih di bawah Model NN 1.

Berdasarkan metrik evaluasi pada data pengujian, Model NN 1 menunjukkan kinerja terbaik dengan RMSE terendah dan R-squared tertinggi, yang mengindikasikan kesalahan prediksi yang lebih kecil dan kemampuan yang lebih baik dalam menjelaskan variasi data. Oleh karena itu, Model NN 1 layak dipertimbangkan untuk digunakan. 4

4 Variabel Penting

Selanjutnya dari Model NN-1 ini ingin dilihat variabel-variabel mana yang penting.

olden(Model_nn1)

Grafik menunjukkan pentingnya variabel independen berdasarkan hasil analisis regresi neural network.

pembayaran.per.bulan (Negatif dan Paling Signifikan):

Variabel ini memiliki pengaruh negatif paling besar terhadap besar uang pinjaman. Semakin tinggi nilai pembayaran per bulan, semakin kecil besar uang yang dipinjam. Nilai yang besar menunjukkan bahwa ini adalah faktor kunci dalam model.

rating (Negatif, Pengaruh Moderat):

Rating juga mempengaruhi besar pinjaman secara negatif. Hal ini menunjukkan bahwa variabel ini penting, tetapi kontribusinya tidak sebesar pembayaran per bulan. Mungkin saja rating rendah lebih mengarah pada tingginya besar nilai uang pinjaman.

bunga (Negatif, Pengaruh Kecil):

Variabel bunga memiliki pengaruh yang lebih kecil dibandingkan dua variabel sebelumnya, tetapi tetap penting. Semakin tinggi tingkat bunga,semakin rendah besaran nilai uang yang dipinjam.

lama.pembayaran (Positif, Pengaruh Kecil):

Lama pembayaran adalah satu-satunya variabel dengan pengaruh positif. Semakin panjang tenor pembayaran, ada pengaruh positif terhadap besar uang pinjaman, meskipun pengaruhnya relatif kecil dibandingkan variabel lainnya.

Model neural network menunjukkan bahwa variabel “pembayaran.per.bulan” adalah faktor utama yang mempengaruhi hasil prediksi, diikuti oleh “rating”. Sementara itu, “lama.pembayaran” memiliki pengaruh yang kecil dan positif, mungkin karena memberi fleksibilitas yang lebih besar dalam pembayaran.

5 References

Alkahfi, C. (2023, February 19). Model Neural Network pada R Menggunakan Library Keras. Sains Data. Retrieved from https://sainsdata.id/uncategorized/2630/model-neural-network-pada-r-menggunakan-library-keras/

Hermansah, H., & Muhajir, M. (2021). Perbandingan akurasi peramalan antara model neural network dan regresi linier. Evolusi: Jurnal Sains dan Manajemen, 10(2), 66-72.

Ryandhi, R. (2017). Penerapan metode artificial neural network (ANN) untuk peramalan inflasi di Indonesia. Tugas Akhir, Institut Teknologi Sepuluh Nopember.

Sari, D. P., & Sari, D. P. (2020). Penerapan artificial neural network (ANN) dalam memprediksi kapasitas produksi padi. MATRIKS (Matematika, Riset, dan Aplikasi), 6(2), 100-107.


Direktorat Statistik Kesejahteraan Rakyat, BPS,


  1. Jika semua variabel independen bertipe kontinu dan variabel dependen bertipe kategorik, sebaiknya menggunakan klasifikasi neural network daripada regresi neural network. Metode regresi neural network hanya cocok untuk variabel dependen kontinu, sedangkan klasifikasi neural network cocok untuk variabel dependen kategorik.↩︎

  2. Regresi neural network adalah teknik yang kuat untuk menangani masalah dengan hubungan non-linier antara variabel independen dan dependen, terutama ketika data mengandung pola yang rumit atau interaksi antara variabel yang tidak mudah diungkapkan dengan model linier biasa.↩︎

  3. Neural network seringkali lebih mudah berkonvergensi ketika data input berada dalam skala yang seragam.↩︎

  4. Namun, penting untuk mempertimbangkan konteks spesifik dan melakukan evaluasi lebih lanjut, seperti validasi silang (cross-validation) dan analisis residual, untuk memastikan pemilihan model yang optimal.↩︎