Tugas Individu 1
STA1382 Teknik
Pembelajaran Mesin
Pendahuluan
Neural Network merupakan salah satu teknik dalam algoritma machine learning yang terinspirasi dari cara kerja otak manusia dalam memproses informasi. Secara umum, model Neural Network terdiri atas input layer, hidden layer, dan output layer dengan fungsi aktiviasi di dalamnya. Metode ini menggunakan algoritma yang dapat melakukan prediksi maupun klasifikasi pada data input hingga diperoleh ouput yang mampu merepresentasikan keadaan sesungguhnya (Nielsen 2015).
Eksplorasi Data
Impor Data
Data yang digunakan merupakan data skema pinjaman suatu perusahaan
perbakan dengan beberapa peubah penjelas dalam format
.csv. Proses impor data ke software R dapat
dilakukan dengan menggunakan fungsi read.csv sebagai
berikut,
setwd("D:/DATA AKMAL/IPB/Semester 6/Teknik Pembelajaran Mesin/Pertemuan 5")
data.tpm <- read.csv("data ann.csv")
head(data.tpm)## besar_pinjaman lama_pembayaran bunga pembayaran_perbulan banyak_cashback
## 1 70 4 1 130 10.0
## 2 120 3 5 15 2.0
## 3 70 4 1 260 9.0
## 4 50 4 0 140 14.0
## 5 110 2 2 180 1.5
## 6 110 2 0 125 1.0
## rating
## 1 68.40297
## 2 33.98368
## 3 59.42551
## 4 93.70491
## 5 29.50954
## 6 33.17409
str(data.tpm)## 'data.frame': 75 obs. of 6 variables:
## $ besar_pinjaman : int 70 120 70 50 110 110 130 90 90 120 ...
## $ lama_pembayaran : int 4 3 4 4 2 2 3 2 3 1 ...
## $ bunga : int 1 5 1 0 2 0 2 1 0 2 ...
## $ pembayaran_perbulan: int 130 15 260 140 180 125 210 200 210 220 ...
## $ banyak_cashback : num 10 2 9 14 1.5 1 2 4 5 0 ...
## $ rating : num 68.4 34 59.4 93.7 29.5 ...
Dapat diamati bahwa terdapat lima peubah penjelas, yaitu besar pinjaman, lama pembayaran, tambahan bunga, pembayaran per bulan, dan banyak cash back yang diterapkan, serta satu peubah respon, yaitu rating. Seluruh peubah diketahui berjenis numerik, baik itu berkategori integer (bilangan bulat) maupun float (bilangan desimal).
summary(data.tpm)## besar_pinjaman lama_pembayaran bunga pembayaran_perbulan
## Min. : 50.0 Min. :1.000 Min. :0.000 Min. : 0.0
## 1st Qu.:100.0 1st Qu.:2.000 1st Qu.:0.000 1st Qu.:132.5
## Median :110.0 Median :3.000 Median :1.000 Median :180.0
## Mean :106.9 Mean :2.547 Mean :1.013 Mean :160.2
## 3rd Qu.:110.0 3rd Qu.:3.000 3rd Qu.:1.500 3rd Qu.:215.0
## Max. :160.0 Max. :6.000 Max. :5.000 Max. :320.0
## banyak_cashback rating
## Min. : 0.000 Min. :18.04
## 1st Qu.: 0.500 1st Qu.:32.69
## Median : 2.000 Median :40.40
## Mean : 2.183 Mean :42.48
## 3rd Qu.: 3.000 3rd Qu.:50.80
## Max. :14.000 Max. :93.70
Dengan memanfaatkan fungsi summary, dapat diamati secara
general sifat sebaran data. Secara umum, seluruh peubah memiliki satuan
sebagai berikut,
- Besar pinjaman (dalam juta rupiah)
- Lama pembayaran (dalam tahun)
- Tambahan bunga (dalam persen)
- Pembayaran per bulan (dalam ratus ribu rupiah)
- Banyak cash back (dalam persen)
- Rating (dalam indeks 1-100)
Identifikasi Missing Value
Data merupakan informasi yang diharapkan terkandung dan memiliki
nilai tambah dalam suatu kasus. Meskipun demikian, dalam suatu gugus
data, sangat mungkin terdapat banyak data hilang (missing
value) akibat berbagai macam alasan, baik itu alasan teknis maupun
nonteknis. Apabila data hilang tidak ditangani dengan baik, terdapat
berbagai macam potensi masalah yang mungkin terjadi, salah satunya
adalah hilangnya nilai suatu atribut yang mungkin penting (Arifianto et
al 2022). Melalui fungsi is.na, jumlah data hilang dapat
diketahui sebagai berikut,
colSums(is.na(data.tpm))## besar_pinjaman lama_pembayaran bunga pembayaran_perbulan
## 0 0 0 0
## banyak_cashback rating
## 0 0
Identifikasi data hilang dengan fungsi is.na
menginformasikan bahwa tidak ditemukan satu pun data hilang pada gugus
data. Analisis data kemudian dapat dilakukan pada langkah
selanjutnya.
Identifikasi Sebaran Peubah
library(Hmisc)
hist.data.frame(data.tpm)Sebaran keenam peubah yang digunakan diketahui beragam, dengan sebagian mendekati sebaran Normal, sementara lainnnya cenderung menjulur ke kanan. Selain itu, satuan dari keenam peubah memiliki skala yang berbeda drastis sehingga memungkinkan terjadinya bias dalam memprediksi nilai respon. Oleh karena itu, perlu dilakukan normalisasi skala peubah guna menstandardisasi satuan.
Pra-processing Data
Normalisasi Data
Proses normalisasi data pada software R dapat dilakukan
dengan menggunakan fungsi scale. Normalisasi peubah
dilakukan pada seluruh peubah kecuali peubah respon
(rating).
data.tpm.norm <- as.data.frame(scale(data.tpm[,-6]))
data.tpm.norm$rating <- data.tpm$rating
head(data.tpm.norm)## besar_pinjaman lama_pembayaran bunga pembayaran_perbulan
## 1 -1.8723125 1.3135571 -0.01324532 -0.3581621
## 2 0.6624066 0.4097334 3.96035175 -1.7220242
## 3 -1.8723125 1.3135571 -0.01324532 1.1835951
## 4 -2.8862001 1.3135571 -1.00664459 -0.2395653
## 5 0.1554628 -0.4940903 0.98015394 0.2348215
## 6 0.1554628 -0.4940903 -1.00664459 -0.4174604
## banyak_cashback rating
## 1 3.24677497 68.40297
## 2 -0.07586699 33.98368
## 3 2.83144472 59.42551
## 4 4.90809594 93.70491
## 5 -0.28353211 29.50954
## 6 -0.49119724 33.17409
Identifikasi Sebaran Peubah Hasil Normalisasi
hist.data.frame(data.tpm.norm)Setelah proses normalisasi data, dapat diamati peubah lebih menyebar Normal dibandingkan sebelumnya. Selain itu, seluurh peubah penjelas sudah memiliki skala satuan yang serupa sehingga diharapkan mampu menurunkan potensi bias terhadap respon.
Analisis Neural Network
Partisi Data Latih dan Uji
Pembagian data aktual menjadi data latih (training) dan data uji (testing) sepenuhnya menjadi subjektivitas peneliti. Dalam praktiknya, terdapat beberapa opsi proporsi antara keduanya, antara lain 70%:30%, 80%:20%, hingga 90%:10% (Avuclu dan Elen 2020). Pada penugasan kali ini, proporsi data latih dan uji akan ditentukan sebesar 70%:30%.
library(keras)
library(caret)##
## Attaching package: 'caret'
## The following object is masked from 'package:survival':
##
## cluster
library(tensorflow)##
## Attaching package: 'tensorflow'
## The following object is masked from 'package:caret':
##
## train
set.seed(345)
train.index2 <- createDataPartition(data.tpm.norm$rating, p = 0.7, list = F)
train2 <- data.tpm[train.index2,]
test2 <- data.tpm[-train.index2,]Scaling Nilai Minimum dan Maksimum
Langkah analisis selanjutnya adalah proses scaling data.
Metode scaling yang digunakan menstandardisasi data dari nilai
minimum dan maksimum sehingga dihasilkan nilai data dalam skala interva
0-1. Proses scaling dilakukan dengan fungsi
preProcess sebagai berikut,
preprocessParams2 <- preProcess(train2[,-6], method = c("range"))
train_X2 <- as.matrix(predict(preprocessParams2, train2[,-6]))
test_X2 <- as.matrix(predict(preprocessParams2, test2[,-6]))
train_y2 <- train2[,6]
test_y2 <- test2[,6]Prediksi Model
Setelah menentukan nilai parameter model Neural Network, prediksi
nilai respon berdasarkan nilai-nilai peubah penjelas dapat dilakukan
dengan memanfaatkan fungsi predict pada nilai-nilai data
uji. Proses prediksi dapat diamati dalam rangkaian sintaks sebagai
berikut,
prediksi2 <- predict(model2, test_X2)
head(prediksi2)## [,1]
## [1,] 37.85464
## [2,] 27.91291
## [3,] 40.72640
## [4,] 37.95988
## [5,] 38.43535
## [6,] 39.68523
Evaluasi Model
Evaluasi model dilakukan pada data uji berdasarkan model Neural
Network yang didapatkan pada data latih. Proses evaluasi model dilakukan
dengan memanfaatkan fungsi evaluate dengan parameter loss,
MSE, dan MAE sebagai berikut,
print(scores2)## loss mean_squared_error mean_absolute_error
## 41.363861 41.363861 5.270816
postResample(keras_train2[,1], train2$rating)## RMSE Rsquared MAE
## 4.8796527 0.8800535 4.1036580
postResample(keras_test2[,1], test2$rating)## RMSE Rsquared MAE
## 6.4314736 0.8689697 5.2708150
Berdasarkan keluaran di atas, dapat diketahui bahwa model Neural Network yang diujikan pada data uji berhasil memiliki nilai koefisien determinasi (R-squared) sebesar 82,42%. Menurut Chin (1998), model yang dibangun dapat dikategorikan kuat karena memiliki nilai koefisien determinasi lebih dari 0,67.
Kesimpulan
Algoritma Neural Network digunakan untuk memprediksi rating skema pinjaman nasabah berdasarkan peubah-peubah penjelas pada suatu perusahaan perbankan. Model Neural Network yang digunakan terdiri atas dua hidden layer dengan masing-masing terdiri atas 256 neuron dan satu output layer dengan fungsi aktivasi linear. Model Neural Network menghasilkan nilai koefisien determinasi sebesar 82,42% sehingga dapat dikategorikan sebagai model yang kuat dalam memprediksi peubah respon.
Daftar Pustaka
Arifianto AS, Safitri KD, Agustianto K, Wiryawan IG. 2022. Pengaruh prediksi missing value pada klasifikasi decision tree C4.5. Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK). 9(4): 779-786. doi:10.25126/jtiik.2022944778.
Avuclu E, Elen A. 2020. Evaluation of train and test performance of maching learning algorithm and Parkinson diagnosis with statistical measurements. Medical & Biological Engineering & Computing. 58: 2775-2788.
Chin WW. 1998. The partial least squares approach to structural equation modeling. Modern Methods for Business Research. 295: 336.
Nielsen M. 2015. Neural Networks and Deep Learning: A Textbook. Determination Press.
Wibawa MS. 2017. Pengaruh fungsi aktivasi, optimisasi, dan jumlah epoch terhadap performa jaringan saraf tiruan. J. Sist. dan Inform.. 11(2): 167-174. doi:10.13140/RG.2.2.21139.94241.