Anda di halaman 1dari 5

LABORATORIUM PEMBELAJARAN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER


UNIVERSITAS BRAWIJAYA
BAB : EXTREME LEARNING MACHINE
NAMA : MUHAMMAD HAMAAS TAQIYUDDIN A.
NIM : 185150200111071
TANGGAL : 11/12/2020
ASISTEN : - YUNITA DWI LESTARI
- AKHMAD DIMITRI BAIHAQI

A. Praktikum
1. Buka Google Colaboratory melalui tautan ini.
2. Tulis kode berikut ke dalam setiap cell pada notebook tersebut.
a. Fungsi Training ELM

import numpy as np
def elm_fit(X, target, h, W=None):
if W is None:
W = np.random.uniform(-.5, .5, (h, len(X[0])))

Hinit = X @ W.T
H = 1 / (1 + np.exp(-Hinit))
Ht = H.T
Hp = np.linalg.inv(Ht @ H) @ Ht
beta = Hp @ target
y = H @ beta
mape = sum(abs(y - target) / target) * 100 / len(target)

return W, beta, mape

b. Fungsi Testing ELM

def elm_predict(X, W, b, round_output=False):


Hinit = X @ W.T
H = 1 / (1 + np.exp(-Hinit))
y = H @ b

if round_output:
y = [int(round(x)) for x in y]

return y

c. Klasifikasi Dataset Iris

from sklearn import datasets


from sklearn.model_selection import train_test_split
from sklearn.preprocessing import minmax_scale
from sklearn.metrics import accuracy_score
iris = datasets.load_iris()
X = minmax_scale(iris.data)
Y = iris.target
Y += 1
X_train, X_test, y_train, y_test = train_test_split(X, Y,
test_size=.3)
W, b, mape = elm_fit(X_train, y_train, 4)
print('MAPE:', mape)
output = elm_predict(X_test, W, b, round_output=True)
accuracy = accuracy_score(output, y_test)
print('Output:', output)
print('True :', y_test)
print('Accuracy:', accuracy)

B. Screenshot
a. Fungsi Training ELM

b. Fungsi Testing ELM


c. Klasifikasi Dataset Iris

Hasil :

C. Analisis
1. Jalankan program beberapa kali dan perhatikan nilai MAPE dan accuracy yang
dihasilkan. Simpulkan hubungan antara MAPE dan nilai akurasi!

Jawab :
Nilai dari variable MAPE menyimpan nilai dari nilai error pada jaringan,
sehingga hubungan dari nilai MAPE dan nilai akurasi adalah semakin kecil nilai
MAPE akan semakin baik dan meyebabkan besarnya nilai akurasi dan begitu
pula sebaliknya.

2. Ubahlah rentang bobot pada kode a dimana awalnya memiliki rentang -0.5
hingga 0.5 menjadi rentang lain (yang lebih besar maupun yang lebih kecil).
Simpulkan berdasarkan apa yang terjadi!

Jawab :
a. Rentang lebih besar (.7)
Hasil :

MAPE: 7.746317179663275
Output: [2, 2, 1, 3, 2, 1, 3, 3, 2, 2, 2, 3, 2, 1, 2, 3,
3, 2, 1, 3, 1, 1, 2, 1, 3, 1, 1, 2, 3, 2, 2, 3, 2, 1, 1,
2, 3, 1, 2, 3, 3, 1, 2, 3, 3]
True : [2 2 1 3 2 1 3 3 2 2 3 3 3 1 2 3 3 2 1 3 1 1 2 1
3 1 1 2 3 2 2 3 2 1 1 2 3
1 2 3 3 1 3 3 3]
Accuracy: 0.9333333333333333

b. Rentang lebih kecil (.3)

Hasil :

MAPE: 11.29073316846559
Output: [1, 2, 3, 2, 2, 2, 2, 1, 3, 3, 2, 2, 3, 1, 3, 1,
3, 1, 2, 2, 1, 1, 2, 2, 1, 3, 2, 1, 3, 3, 3, 1, 3, 1, 2,
1, 3, 2, 3, 2, 2, 2, 2, 2, 2]
True : [1 2 3 3 3 2 3 1 3 2 2 2 3 1 3 1 3 1 2 2 1 1 2 2
1 3 3 1 3 3 3 1 3 1 2 1 3
2 3 2 2 2 2 2 3]
Accuracy: 0.8666666666666667

Pada percobaan perubahan rentang bobot diatas, baik dalam kondisi


rentang lebih kecil ataupun lebih besar, hasilnya pada rentang bobot
yang lebih luas menurunkan nilai MAPE sehinggga meningkatkan nilai
akurasi.
D. Kesimpulan

Terdapat perbedaan dari jaringan feedforward dengan ELM yaitu ELM dapat
mengatasi kelemahan yang dimiliki oleh jaringan feedforward dalam hal learning
speed yang terjadi, dikarenakan semua parameter pada jaringan ditentukan secara
iterative menggunakan metode pembelajaran satu-persatu untuk setiap data.

ELM dapat menghasilkan akurasi yang baik bahkan pada 1 kali proses
pelatihan karena tidak memerlukan backpropagation yang berbasis gradien.
Namun menggunakan inverse dari Moore-Penrose untuk perubahan bobot, ELM
juga menggunakan model Single Layer Feedforward Neural Network (SLFN).
Pada JST lain pada umumnya memiliki proses sebagai berikut, pertama melakukan
perkalian input dengan bobot, lalu langkah kedua menambahkan bias, dilanjut
dengan langkah ketiga yaitu melakukan fungsi aktivasi, kemudian langkah keempat
mengulangi langkah pertama sampai ketiga sebanyak jumlah layer, lalu langkah
kelima menghitung output, langkah keenam melakukan backpropagation dilanjut
dengan langkah ketujuh mengulangi langkah yang dilakukan sebelumnya. Namun
pada ELM Langkah keempat tak lagi diperlukan karena ELM menggunakan model
SLFN yang mana layer-nya single. Lalu pada langkah keenam, diganti
menggunakan matrix inverse yang hanya perlu dilakukan sekali, yang
menyebabkan langkah ketujuh pun tak perlu dilakukan.

Anda mungkin juga menyukai