#BelajarBersama Kides episode 5

>> Memahami Artificial Neural Network (ANN) Dengan R <<

RIZKY DESI RAMADHANI
5 min readJun 25, 2019

Assalamualaikum temen-temen , kembali lagi pada #BelajarBersama Kides , untuk episode kali ini Kides masih akan membahas materi mengenai artificial neural network atau biasa dikenal ANN dengan menggunakan software R . Biar lebih jelas yuk kita bahas materinya !!!! Check this out dan DONT FORGET TO CLAP GUYSSS ❤❤ ❤

picture giphy.com

Apa sih ANN itu ???

Artificial Neural Network atau jaringan saraf tiruan adalah system komputasi dimana arsitektur dan komputasi diilhami dari pengetahuan tentang sel saraf dalam otak. ANN merupakan model yang meniru cara kerja jaringan neural biologis. Dengan melakukan proses belajar jaringan saraf tiruan dapat mengatur dirinya untuk menghasilkan suatu respon yang konsisten terhadap rangkaian masukkan. Jaringan saraf tiruan dirancang dan dilatih untuk memiliki kemampuan seperti manusia.

Bagaimana Arsitektur dari ANN ???

picture from towardsdatascience.com

Setiap neuron dapat memiliki beberapa masukan dan mempunyai satu keluaran. Jalur masukan pada suatu neuron bisa berisi data mentah atau data hasil olahan neuron sebelumnya. Sedangkan hasil keluaran suatu neutron dapat berupa hasil akhir atau berupa bahan masukkan bagi neutron berikutnya.

Jaringan neuron buatan terdiri atas kumpulan grup neuron yang tersusun dalam lapisan yaitu;

  1. Lapisan Input (Input Layer) berfungsi sebagai penghubung jaringan ke dunia luar (sumber data). Neuron-neuron ini tidak melakukan apapun pada data, hanya meneruskan data ini kelapisan berikutnya.
  2. Lapisan Tersembunyi (Hidden Layer). Suatu jaringan dapat memiliki lebih dari satu hidden layer atau bahkan tidak bisa punya sama sekali. Jika jaringan memiliki beberapa lapisan tersembunyi, maka lapisan tersembunyi paling bawah yang menerima dari input dari input layer.L
  3. Lapisan Output (Output Layer). Prinsip kerja pada lapisan ini sama dengan prinsip kerja pada hidden layer dan ini juga digunakan fungsi sigmoid. Tetapi keluaran dari lapisan ini sudah dianggap dari keluaran proses

Contoh : Menerapkan ANN Pada Datasets Penderita Penyakit Liver

Sebagai contoh, kita akan menunjukkan cara kerja ANN dengan dataset dari datasets penderita penyakit liver dari North East of Andhra Pradesh, India . Data sekunder ini bersumber dari http://archive.ics.uci.edu/ (UCI Wicoxsin University). Mari kita lihat langkah-langkah sebagai berikut :

Langkah 1: Install Packages
Install Packages terlebih dahulu menggunakan syntax berikut :

--- Install Packages ---
install.packages("neuralnet")
library(neuralnet)

Langkah 2: Input Data
Untuk menginput data yang digunakan dapat menggunakan syntax berikut :

--- Membaca Data ---
data=read.delim("clipboard")
data
str(data)
Output Data Yang Digunakan

Dari datasets penyakit liver , jumlah data yang ada sebanyak 579 dengan jumlah variabel 11 variabel. Dimana variabel dependennya yaitu Selector dan variabel independennya yaitu Age, Gender, TB, DB, Alkphos, SGPT, SGOT, TP, AIB, dan A/G Ratio.

Output Struktur Data

Diketahui bahwa untuk variabel age , gender, alkphos, SGPT, SGOT, dan Selector struktur datanya adalah Integer, sedangkan untuk variabel TB, DB, TP, AIB, A.G Ratio Selector struktur datanya adalah Numeric. Pada variable gender, nilai 1 berarti male dan 2 berarti female, dan pada variabel Selector 0 menunjukkan TL yang artinya tidak terjangkit Liver , dan 1 menunjukkan L yang artinya terjangkit liver.

Langkah 3 : Membentuk Data Training dan Data Testing
Untuk membentuk data training dan testing dapat menggunakan syntax berikut :

--- Membentuk Data Training dan Data Testing ---
##training sample with n observations
n<-round(nrow(data)*0.75);n
set.seed(12);samp=sample(1:nrow(data),n)
##memisahkan
train=data[samp,]
test=data[-samp,]
Output Membentuk Data Training

Berdasarkan hasil yang diperoleh jumlah data training sebesar 434 data, yaitu 75% dari data awal. Setelah didapat jumlah data training , maka akan diketahui jumlah data testing sebesar 145 dengan setseed 12

Langkah 4: Membentuk Formula
Karena pada package neuralnet ini dibutuhkan formula, sehingga di perlukan perintah untuk mengambil nama-nama variabel dari data yang kita miliki dengan menggunakan syntax berikut :

--- Membentuk Formula ---
#mengambil nama variabel
feats<-names(data[,1:10])
#concatenate strings
f<-paste(feats,collapse=’+’):f
f1<-paste(‘Selector~’,f):f1
#convert to formula
f2<-as.formula(f1);f2
Output Formula Terbentuk

Variabel yang digunakan yakni variabel pada kolom 1 hingga kolom 10. dimana variabel ke 11 atau variabel selector tidak diikutkan pada f atau formula 1(f) karena merupakan variabel dependent, pada f juga terdapat perintah untuk memberikan tanda “+” (Plus) untuk memisahkan nama variabel. Formula 2 (f1) diberi keterangan bahwa variabel dependen nya yaitu variabel selector, sehingga di formula 2 variabel selector muncul sebagai variabel dependent. Sehingga terbentuk formulanya sebagai berikut :

Selector ~ Age + Gender + TB + DB + Alkphos + SGPT + SGOT + TP + AIB + A.G.Ratio

Langkah 5 : Model dan Visualisasi Data
Untuk memodelkan dan memvisualisasikan data nn dapat menggunakan syntax berikut :

--- Membentuk Formula ---
##train neural net
library(neuralnet)
nn<-neuralnet(f2,train,hidden=7)
##plot model
plot(nn)
Plot Neural Network ( 1 Hidden & 7 Node)

Pada plot neural network diatas ,diketahui nilai error nya yaitu sebesar 38.188799, dan steps nya di dapatkan mesin telah melakukan 39951 kali iterasi

Langkah 6: Nilai Prediksi dan Akurasi
Untuk melihat nilai prediksi dan akurasi dapat menggunakan syntax berikut :

--- Nilai Prediksi dan Akurasi  ---
#prediksi & akurasi model NN
pred<- compute(nn,test[1:10])
pred_1<- ifelse(pred_1$net.result > 0.5, 1, 0)
conf_matrix=table(pred_1.1,test$Se1ector);conf_matrix
accuracy_nn=(conf_matrix[1,1]+conf_matrix[2,2])/sum(conf_matrix)

Diketahui nilai dari confusion matrix nya yaitu jumlah benar pada kategori 0 (kategori Tidak Terjangkit Liver) adalah sebanyak 10, dan jumlah benar prediksi pada kategori 1 (kategori Terjangkit Liver) adalah sebanyak 90. Sedangkan error yang terjadi ketika kategori 0 setelah diprediksi ternyata masuk kategori 1 sebanyak 23, dan error yang terjadi ketika kategori 1 setelah diprediksi ternyata masuk kategori 0 sebanyak 22. Diperoleh nilai akurasi confusion matrix sebesar 0.6896551724 atau 68.9% nilai ini tergolong tidak terlalu bagus.

Menurut kides , ANN adalah materi yang mudah dipahami, terutama jika kita langsung mengaplikasikan sebuah data . Dengan berlatih pada tutorial-tutorial yang ada pasti kita akan cepat paham mengenai materi ini .

Ini pengalaman Kides, semoga bermanfaat 😊 . Apa pengalaman Anda dengan ANN pada machine learning?

Yuk kita sharing bersama . Silakan bagikan komentar yang kamu miliki dibawah ini yaa !!!!

--

--