DAFTAR ISI
PENDAHULUAN 3
Latar Belakang 3
Perumusan Masalah 4
Tujuan 4
Manfaat 4
TINJAUAN PUSTAKA 5
Dataset Iris 5
Artificial Neural Network 5
METODE PENELITIAN 7
Pemilihan Data 7
Algoritma Backpropagation Network 7
DAFTAR PUSTAKA 24
PENDAHULUAN
Latar Belakang
Artificial Neural Network atau jaringan syaraf tiruan merupakan bidang yang
sangat berkembang saat ini. Pemanfaatan teknologi mesin dan komputer yang tidak
terbatas sebagai alat bantu dalam aktivitas manusia mendorong penelitian secara besar-
3
besaran terhadap kecerdasan buatan atau artificial intelligence. Mesin yang selama ini
hanya bekerja sesuai dengan instruksi yang ditentukan diharapkan mampu bekerja dan
mengambil keputusan sekaligus layaknya manusia (Parker, 2006).
Jaringan syaraf tiruan merupakan model matematika yang meniru cara kerja
syaraf manusia sehingga komputer atau mesin dapat belajar dari data yang diberikan
dan memberikan output yang ditentukan. Jaringan backpropagation merupakan
metode yang banyak digunakan dalam proses identifikasi dan proses klasifikasi karena
kemampuannya dalam mempelajari beberapa kelas sekaligus melalui proses propagasi
balik. Backpropagation merupakan metode yang sangat baik dalam proses pengenalan
mengingat kemampuannya dalam mengadaptasikan kondisi jaringan dengan data yang
diberikan dengan proses pembelajaran (Hermawan, 2006).
Artificial Neural Network / Jaringan Syaraf Tiruan (JST) adalah paradigma
pengolahan informasi yang terinspirasi oleh sistem saraf secara biologis, seperti proses
informasi pada otak manusia. Elemen kunci dari paradigma ini adalah struktur dari
sistem pengolahan informasi yang terdiri dari sejumlah besar elemen pemrosesan yang
saling berhubungan (neuron), bekerja serentak untuk menyelesaikan masalah tertentu.
Cara kerja JST seperti cara kerja manusia, yaitu belajar melalui contoh. Lapisan-lapisan
penyusun JST dibagi menjadi 3, yaitu lapisan input (input layer), lapisan tersembunyi
(hidden layer), dan lapisan output (output layer) (Sutojo, 2010).
Data iris merupakan data dari 150 bunga yang diidentifikasi berdasarkan
panjang mahkota, lebar mahkota, panjang kelopak dan lebar kelopak. Dari 150 data
tersebut pada umumnya peneliti-peneliti sebelumnya mengelompokkan menjadi tiga
kelompok bunga, yaitu iris setosa, iris virginica dan iris versicolor. Untuk menguji
metode pengklasifikasian banyak peneliti-peneliti sebelumnya yang menggunakan data
iris, karena data iris merupakan data sederhana yang mudah didapat. Metode
pengklasifikasian yang akan kami gunakan adalah metode backpropagation artificial
neural network / backpropagation JST.
Perumusan Masalah
Berdasarkan latar belakang yang dikemukakan, masalah-masalah yang
diselesaikan adalah bagaimana menerapkan algoritma pengklasifikasian
Backpropagation Neural Network pada dataset iris berdasarkan panjang mahkota, lebar
mahkota, panjang kelopak dan lebar kelopak.
Tujuan
Tujuan yang akan dicapai yaitu menerapkan algoritma pengklasifikasian
Backpropagation Neural Network pada dataset iris.
4
Manfaat
Manfaat yang akan diperoleh yaitu mendapatkan data acuan untuk
pengklasifikasian bunga iris berdasarkan panjang mahkota, lebar mahkota, dan lebar
kelopak.
TINJAUAN PUSTAKA
Dataset Iris
Iris adalah genus dari spesies bunga yang memiliki warna yang cukup menarik.
Iris berasal dari bahasa yunani yang artinya adalah pelangi. Dataset iris merupakan data
umum yang biasa digunakan dalam eksperimen klasifikasi. Dataset ini pertama kali
dikenalkan oleh Sir Ronald Aylmer Fisher pada tahun 1936 sebagai contoh dari
permasalahan analisis diskriminan.
Dataset iris ini memiliki empat atribut yang menjadi feature dalam klasifikasi
tiga kelas yang berbeda. Keempat feature tersebut adalah sepal length, sepal width,
petal length, dan petal width. Sementara tiga kelas yang menjadi dasar klasifikasi
adalah spesies yaitu setosa, versicolor dan virginica.
5
METODE PENELITIAN
Dalam penelitian ini digunakan teknik data mining untuk memprediksi jenis
bunga iris dengan menggunakan metode klasifikasi. Algoritma klasifikasi
backpropagation neural network digunakan untuk memprediksi jenis bunga iris
berdasarkan data yang ada yakni panjang mahkota, lebar mahkota, panjang kelopak
dan lebar kelopak.
Pemilihan Data
Data yang digunakan dalam penelitian ini adalah dataset Iris. Dataset bunga Iris
atau Fisher's Iris dataset adalah dataset multivariat yang diperkenalkan oleh ahli
statistik dan biologi Inggris Ronald Fisher dalam makalahnya tahun 1936. Makalahnya
berjudul The use of multiple measurements in taxonomic problems sebagai contoh dari
analisis diskriminan linear.
Dataset terdiri dari 50 sampel dari masing-masing tiga spesies Iris (Iris setosa,
Iris virginica dan Iris versicolor). Empat fitur diukur dari masing-masing sampel yakni
panjang serta lebar mahkota dan kelopak dalam sentimeter. Berdasarkan kombinasi
keempat fitur ini, Fisher mengembangkan model diskriminan linier untuk membedakan
spesies dari satu sama lain.
7
Dataset ini terdiri dari 150 instances, 4 atribut dan 1 kelas. Keempat atribut itu
diantaranya sepal length (panjang mahkota), sepal width (lebar mahkota), petal length
(panjang kelopak), dan petal width (lebar kelopak).
5. Hitung error untuk seluruh data latih (1 epoch), yaitu rata-rata dari MSE setiap
data latih (Mean of MSE). Jika error atau jumlah epoch yang diinginkan belum
tercapai, maka ulangi pelatihan (langkah 4).
6. Lakukan pengujian untuk setiap data uji dengan cara:
a. melakukan feed-forward calculation dengan konfigurasi network
(bobot) yang telah diperoleh dari tahap pelatihan.
b. melakukan pembulatan hasil klasifikasi (jika diperlukan), dengan nilai
threshold tertentu
7. Hitung akurasi pengujian (Recognition Rate – RR), yaitu:
9
Mengimport library
import pandas as pd
import io
import random
import math
import array as arr
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from pylab import rcParams
from scipy.stats import norm,zscore,t,ttest_ind
import statistics
Membaca dataset iris dan fungsi df.head() berfungsi untuk menampilkan dataset iris
sebanyak n pada kolom awal
df = pd.read_csv("Iris.csv")
df.head()
Output :
10
11
TAHAP NORMALISASI
Pada bagian dibawah ini dilakukan normalisasi setiap dimensi input sehingga berada
pada rentang [0, 1]. Fungsi aktivasi yang digunakan adalah fungsi aktivasi biner.
Normalisasi diawali dengan menggunakan metode z-score.
SepalLength_New = []
SepalWidth_New = []
PetalLength_New = []
PetalWidth_New = []
for i in range(df["Id"].count()) :
SepalLength_New.append((df["SepalLengthCm"][i]-
df["SepalLengthCm"].min())/(df["SepalLengthCm"].max()-
df["SepalLengthCm"].min()))
SepalWidth_New.append((df["SepalWidthCm"][i]-
df["SepalWidthCm"].min())/(df["SepalWidthCm"].max()-
df["SepalWidthCm"].min()))
PetalLength_New.append((df["PetalLengthCm"][i]-
df["PetalLengthCm"].min())/(df["PetalLengthCm"].max()-
df["PetalLengthCm"].min()))
PetalWidth_New.append((df["PetalWidthCm"][i]-
df["PetalWidthCm"].min())/(df["PetalWidthCm"].max()-
df["PetalWidthCm"].min()))
SepalLengthCm_New = pd.Series(SepalLength_New)
SepalWidthCm_New = pd.Series(SepalWidth_New)
PetalLengthCm_New = pd.Series(PetalLength_New)
PetalWidthCm_New = pd.Series(PetalWidth_New)
Dibuat fitur baru di dataframe yang akan memberi tahu nilai target dari setiap inputan.
Nantinya akan mendapatkan nilai error yang digunakan untuk propagation
yt1 = []
yt2 = []
yt3 = []
for i in range(df["Id"].count()):
if df['Species'][i] == 'Iris-setosa':
y1 = 1
y2 = 0
y3 = 0
elif df['Species'][i] == 'Iris-versicolor':
y1 = 0
y2 = 1
y3 = 0
elif df['Species'][i] == 'Iris-virginica':
y1 = 0
y2 = 0
y3 = 1
yt1.append(y1)
yt2.append(y2)
yt3.append(y3)
df2.head()
Output :
Membagi dataset iris menjadi data latih (train) dan uji (test) masing masing 75 data
(50% dari keseluruhan jumlah data)
train = df2.sample(frac = 0.5)
test = df2.drop(train.index)
train.head()
test.head()
TAHAP FEEDFORWARD
Z = []
for i in range(M):
Z.append(sigmoid(Z_in[i]))
E.append(e2)
e3 = (train.iloc[k, 7] - Y[2])*2
E.append(e3)
Kesalahan (error) lapis keluaran pada bagian yang terhubung dengan lapis tersembunyi
T_L = []
for i in range(L):
T_L.append(E[i] * ((Y[i] * (1 - Y[i]))))
D_W0 = []
for i in range(L):
D_W0.append(alpha * T_L[i])
Kesalahan lapis tersembunyi pada bagian yang terhubung dengan lapis masukan
T_M = []
for i in range(M):
T_M.append(T_in[i] * ((Z[i] * (1 - Z[i]))))
D_V0 = []
17
for i in range(M):
D_V0.append(alpha * T_M[i])
for i in range(L):
W0[i] = W0[i] + D_W0[i]
for i in range(N):
for j in range(M):
V[i][j] = V[i][j] + D_V[i][j]
for i in range(M):
V0[i] = V0[i] + D_V0[i]
for i in range(L):
Y.append(1/(1+math.exp(Y_in[i])))
if max(Y) == Y[0]:
return 'Iris-setosa'
elif max(Y) == Y[1]:
return 'Iris-versicolor'
elif max(Y) == Y[2]:
return 'Iris-virginica'
Dari implementasi algoritma backpropagation yang telah dibuat ini didapatkan hasil
nilai akurasi sebesar 97,3334%.
Saran
19
DAFTAR PUSTAKA