0% menganggap dokumen ini bermanfaat (0 suara)
1 tayangan13 halaman

Modul 12 - ANN Python

Dokumen ini merupakan modul praktikum tentang Artificial Neural Network (ANN) menggunakan Python, bertujuan untuk mengajarkan mahasiswa cara mengimplementasikan ANN. Praktikum mencakup penggunaan Google Colab dan Github, serta teori dasar tentang ANN dan algoritma backpropagation. Selain itu, terdapat beberapa percobaan yang meliputi klasifikasi data Iris dan Titanic dengan analisis terhadap ukuran hidden layer dan fungsi aktivasi.

Diunggah oleh

ravielmain3
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
1 tayangan13 halaman

Modul 12 - ANN Python

Dokumen ini merupakan modul praktikum tentang Artificial Neural Network (ANN) menggunakan Python, bertujuan untuk mengajarkan mahasiswa cara mengimplementasikan ANN. Praktikum mencakup penggunaan Google Colab dan Github, serta teori dasar tentang ANN dan algoritma backpropagation. Selain itu, terdapat beberapa percobaan yang meliputi klasifikasi data Iris dan Titanic dengan analisis terhadap ukuran hidden layer dan fungsi aktivasi.

Diunggah oleh

ravielmain3
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Data Mining – Jurusan Teknologi Informasi

Modul 12
Artificial Neural Network dengan Python

1.1. Tujuan Praktikum


Setelah menyelesaikan praktikum ini, mahasiswa mampu:

• Mengimplementasikan ANN menggunakan Python

1.2. Peralatan yang dibutuhkan


Beberapa peralatan yang dibutuhkan dalam menyelesaikan praktikum ini adalah:

• Aplikasi Pyhton Menggunakan Google Colab


• Github

1.3. Dasar Teori

1.3.1. ANN
Sistem saraf bekerja melalui jaringan interkoneksi miliaran neuron, 86 milyar neuron
diantaranya ada di otak manusia. Neuron ini mengirimkan informasi dalam bentuk impuls
saraf yang bertanggung jawab untuk mengendalikan dan mengkoordinasikan semua fungsi
tubuh. Sistem saraf manusia yang bersangkutan dengan menerima informasi dari dunia luar,
pengolahan, dan kemudian menghasilkan respon yang tepat. Jaringan yang mengontrol dan
mengkoordinasikan semua kegiatan tubuh, dengan mengirimkan pesan atau sinyal dari otak
ke bagian-bagian berbeda dari tubuh dan sebaliknya.
Data Mining – Jurusan Teknologi Informasi

Gambar 1. Struktur Sel


Neuron sensorik mengirimkan rangsangan atau impuls yang diterima dari alat indera
(mata, hidung, kulit) ke sistem saraf pusat (otak dan sumsum tulang belakang). Interneuron
berfungsi membaca impuls yang diterima dari neuron sensorik dan memutuskan respon yang
akan dihasilkan. Otak memproses rangsangan tersebut dan mengirimkannya kembali ke
bagian lain dari tubuh, memberitahu mereka bagaimana bereaksi terhadap jenis tertentu dari
stimulus. Motor neuron bertanggung jawab untuk menerima sinyal dari saraf otak dan tulang
belakang, dan mengirim mereka ke bagian lain dari tubuh.

Gambar 2 Bagian dari Neuron


Cara kerja dari neuron adalah menggabungkan pengaruh dari semua masukan dan
mempertimbangkan apakah pengaruh dari masukan tadi dapat mencapai threshold yang
telah ditetapkan atau tidak. Jika nilai threshold tadi tercapai, maka neuron akan memproduksi
keluaran dalam bentuk suatu pulsa tertentu yang diproses dari sel hingga dikeluarkan melalui
axon. Jika hal ini terjadi, maka neuron sedang dalam keadaan aktif.
Data Mining – Jurusan Teknologi Informasi

Artificial neural network (Neural Network) adalah sebuah sistem untuk pemrosesan
informasi dengan “meniru” cara kerja sistem saraf biologis.

Gambar 3. Konsep Neural Network


Tiap penghubung diasosiasikan dengan sebuah nilai bobot (w). Seperti pada sebuah
sinapsis, nilai bobot menentukan derajat pengaruh dari sebuah neuron ke neuron yang
lainnya. Pengaruh dari sebuah neuron ke neuron yang lainnya merupakan hasil kali dari nilai
keluaran dari neuron-neuron yang masuk ke neuron (x) dengan nilai bobot (w) yang
menghubungkan neuron-neuron tadi. Tiap neuron dikombinasikan dengan sebuah fungsi
aktivasi yang berfungsi sebagai penghubung dari penjumlahan semua nilai masukan dengan
nilai keluarannya. Keluaran dari neuron inilah yang nantinya akan menentukan apakah
sebuah neuron itu aktif ataukah tidak.

Neural network bisa menyelesaikan problem yang mempunyai karakteristik:

• Instance direpresentasikan dalam pasangan attribute-value yang banyak


• Target output bisa bernilai diskrit, real, atau vector(diskrit/real)
• Penggunaan representasi simbolik, misalnya decision tree
• Data training bisa mengandung error
• Tidak ada batasan waktu pelatihan
• Dibutuhkannya evaluasi yang cepat terhadap proses pembelajaran
• Tidak mementingkan kemampuan manusia untuk mengerti proses pembelajaran
Data Mining – Jurusan Teknologi Informasi

Algoritma ANN:

Langkah 0 Inisialisasi semua bobot dan bias


Untuk kemudahan, set bobot dan bias = 0
Set learning rate  ( 0   1) Untuk kemudahan, set  =1
Langkah 1
selama kondisi stop tidak terpenuhi, lakukan langkah 2 –
6
Langkah 2
untuk setiap pasangan vektor input dan target output , s :
t, lakukan langkah 3 – 5
Langkah 3 Set aktivasi input :
x i = si ,
Langkah 4 Hitung output :
y_in = b + i x i w i
y = 1 jika y_in > 
y = 0 jika -   y_in  
y = -1 jika y_in < 
Langkah 5 update nilai bobot dan bias jika terjadi error
If y  t
w i (new) = w i (old) + tx i
b (new) = b (old) + t
else
w i (new) = w i (old)
b (new) = b (old)
Langkah 6 Tes kondisi stop
Jika tidak ada bobot yang berubah pada step 2, maka stop,
selain itu lanjutkan

ANN yang digunakan adalah backpropagation menggunakan MLPClassifier dari library Neural
Network sklearn.
Percobaan 1:
Lakukan praktikum sesuai langkah-langkah berikut:

1. Buka Google Colab dan berikan nama [Link]


2. Tekan pada bagian Text untuk memberikan penamaan pada masing-masing bagian
3. Tekan pada bagian Code untuk menambahkan bagian Code
4. Lakukan instalasi keseluruhan library yang dibutuhkan
Data Mining – Jurusan Teknologi Informasi

5. Lakukan Upload dataset dengan tahapan seperti pada gambar

6. Setelah melakukan upload, ketikkan code seperti pada gambar dan pastikan Output sesuai
Data Mining – Jurusan Teknologi Informasi

7. Membuat fitur dan target dengan menuliskan code berikut

8. Membuat Training dan Testing Dataset (Output yang dihasilkan bisa berbeda)
Data Mining – Jurusan Teknologi Informasi

9. Melakukan Modelling Multilayer Perceptron

10. Melakukan evaluasi dari model yang digunakan (Output yang dihasilkan bisa berbeda)

Latihan
1. Lakukan perubahan terhadap hidden layer size seperti berikut:
a. 10,10,6
b. 6,8,9
c. 6,9,1
d. 6,3,9
e. 7,10,8
2. Tuliskan hasil dari perubahan masing-masing hidden layer size dan lakukan analisa
terhadap kombinasi yang memiliki tingkat akurasi yang terbaik
3. Sebutkan ada berapa activation yang bisa digunakan dan jelaskan secara singkat (5
baris masing-masing activation)
Data Mining – Jurusan Teknologi Informasi

4. Lakukan percobaan terhadap masing-masing activation dan analisa terhadap


activation yang memiliki tingkat akurasi terbaik. Tuliskan hasilnya!
5. Tuliskan pengertian dari Precision, Recall, f1-score, dan support!

Percobaan 2:
Pada percobaan ini akan dilakukan proses klasifikasi data Iris menggunakan Backpropagation.
Dimulai dari load dataset, membagi dataset menjadi data train dan data tes, standarisasi fitur,
training, prediksi, evaluasi model, menampilkan arsitektur NN, dan melihat nilai bobot tiap
layer.
Data Mining – Jurusan Teknologi Informasi

Gambar 1. Code Bacpropagation menggunakan MLPClassifier


Keluaran dari code diatas seperti terlihat pada gambar berikut:
Data Mining – Jurusan Teknologi Informasi

Gambar 2. Keluaran dari hasil klasifikasi menggunakan MLPClassifier


Percobaan 3:
Pada percobaan kedua ini, akan dilakukan klasifikasi menggunakan Backpropagation tanpa
menggunakan Library. Fungsi aktivasi yang dipilih menggunakan Sigmoid.

Import numpy as np
from [Link] import load_iris
from sklearn.model_selection import train_test_split
from [Link] import OneHotEncoder
from [Link] import accuracy_score

# Load dataset Iris


iris = load_iris()
Data Mining – Jurusan Teknologi Informasi

X = [Link]
y = [Link]

# One-hot encoding untuk label


encoder = OneHotEncoder(sparse=False)
y = encoder.fit_transform([Link](-1, 1))

# Bagi data menjadi data pelatihan dan data uji


X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.2, random_state=42)

# Fungsi aktivasi sigmoid


def sigmoid(x):
return 1 / (1 + [Link](-x))

# Turunan fungsi sigmoid


def sigmoid_derivative(x):
return x * (1 – x)

# Parameter jaringan neural


input_layer_neurons = X_train.shape[1]
hidden_layer_neurons = 10
output_layer_neurons = y_train.shape[1]

# Inisialisasi bobot dan bias


[Link](42)
weights_input_hidden =
[Link](size=(input_layer_neurons,
hidden_layer_neurons))
weights_hidden_output =
[Link](size=(hidden_layer_neurons,
output_layer_neurons))
bias_hidden = [Link](size=(1, hidden_layer_neurons))
bias_output = [Link](size=(1, output_layer_neurons))

# Hiperparameter
learning_rate = 0.01
epochs = 5000

# Proses pelatihan
Data Mining – Jurusan Teknologi Informasi

for epoch in range(epochs):


# Forward propagation
hidden_layer_input = [Link](X_train, weights_input_hidden) +
bias_hidden
hidden_layer_output = sigmoid(hidden_layer_input)

output_layer_input = [Link](hidden_layer_output,
weights_hidden_output) + bias_output
predicted_output = sigmoid(output_layer_input)

# Backpropagation
error = y_train – predicted_output
d_predicted_output = error *
sigmoid_derivative(predicted_output)

error_hidden_layer =
d_predicted_output.dot(weights_hidden_output.T)
d_hidden_layer = error_hidden_layer *
sigmoid_derivative(hidden_layer_output)

# Update bobot dan bias


weights_hidden_output +=
hidden_layer_output.[Link](d_predicted_output) * learning_rate
bias_output += [Link](d_predicted_output, axis=0,
keepdims=True) * learning_rate
weights_input_hidden += X_train.[Link](d_hidden_layer) *
learning_rate
bias_hidden += [Link](d_hidden_layer, axis=0, keepdims=True) *
learning_rate

# Cetak error setiap 1000 epochs


if (epoch + 1) % 1000 == 0:
loss = [Link]([Link](error))
print(f’Epoch {epoch + 1}, Loss: {loss}’)

# Prediksi pada data uji


hidden_layer_input = [Link](X_test, weights_input_hidden) +
bias_hidden
hidden_layer_output = sigmoid(hidden_layer_input)
Data Mining – Jurusan Teknologi Informasi

output_layer_input = [Link](hidden_layer_output,
weights_hidden_output) + bias_output
predicted_output = sigmoid(output_layer_input)

# Evaluasi model
y_test_labels = [Link](y_test, axis=1)
predicted_labels = [Link](predicted_output, axis=1)
accuracy = accuracy_score(y_test_labels, predicted_labels)
print(f’Accuracy: {accuracy * 100}%’)

Hasil keluaran dari code diatas adalah sebagai berikut:

Gambar 3. Keluaran hasil klasifikasi menggunakan Backpropagation tanpa Library


Latihan:

1. Dengan menggunakan data Titanic [Link]


dataset, lakukan prediksi penumpang yang selamat dan tidak selamat menggunakan
Backpropagation dan Python.
2. Carilah data yang ada di Kaggle dimana untuk masing-masing mahasiswa tidak boleh
sama!
a. Deskripsikan data yang didapatkan!
b. Sebutkan fitur-fitur apa saja yang ada dalam data
c. Sebutkan kolom mana yang menjadi target dari data
3. Lakukan percobaan seperti pada praktikum dengan menganalisa kombinasi hidden layer
size dan activation yang digunakan untuk mendapatkan akurasi yang terbaik! Tuliskan
setiap hasilnya

--- SELAMAT BELAJAR ---

Anda mungkin juga menyukai