Laporan KB DL
Laporan KB DL
Dataset yang digunakan pada KB ini adalah dataset zoo yang diambil dari
https://archive.ics.uci.edu/ml/datasets/zoo untuk menentukan kelas tipe hewan. Dataset ini
berisi 18 atribut dengan 16 input dan 1 output (type). Data input terdiri dari 15 data boolean
(hair, feathers, eggs, milk, airborne, aquatic, predator, toothed, backbone, breathes, venomous,
fins) dan 1 data numerik (legs).
Arsitektur yang digunakan pada KB ini menggunakan aktivasi default milik library
SKLearn yaitu relu. Dan hidden layer yang digunakan sejumlah 6 node (Gambar 1.). Pada
arsitektur lainnya juga menggunakan aktivasi default milik library SKLearn yaitu relu. Dan
hidden layer yang digunakan sejumlah 10 node (Gambar 2.). Jumlah epoch yang dilakukan
pada kedua arsitektur yaitu sejumlah 5000, 8000, dan 10000.
Dengan menentukan input, hidden layer, dan output. Maka terbentuklah algoritma
ANN (Artificial Neural Network) yang disusun menggunakan MLPClassifier, Algoritma akan
dibagi dalam 2 kasus, kasus pertama adalah 100% data train dan 100% data test dan kasus
kedua adalah 80% data train dan 20% data test. Oleh karena itu, dilakukan coding untuk
menentukan tingkat akurasi test dengan algoritma ANN. Serta pengaruh perubahan hidden
layer pada akurasi test.
Setelah hasil akurasi dan rata rata didapatkan, hasil tersebut akan diuji dengan Wilcoxon
Signed Rank Test yaitu uji nonparametris untuk mengukur signifikansi perbedaan antara 2
kelompok data berpasangan berskala ordinal atau interval tetapi berdistribusi tidak normal.
Pada kasus 1 (100% data train dan 100% data test) dilakukan perulangan sebanyak 10
kali dengan epoch 5000, 8000, dan 10000 dan dengan hidden layer 6 node dan 10 node hingga
mendapatkan hasil sebagai berikut.
Epoch 5000
Akurasi Test Hidden Layer 6 Akurasi Test Hidden Layer 10
Iterasi 1 97% 100%
Iterasi 2 99% 99%
Iterasi 3 94% 100%
Iterasi 4 97% 100%
Iterasi 5 99% 100%
Iterasi 6 99% 100%
Iterasi 7 100% 100%
Iterasi 8 90% 100%
Iterasi 9 94% 100%
Iterasi 10 100% 100%
Mean 97% 100%
Epoch 8000
Akurasi Test Hidden Layer 6 Akurasi Test Hidden Layer 10
Iterasi 1 99% 100%
Iterasi 2 92% 100%
Iterasi 3 94% 100%
Iterasi 4 100% 100%
Adi Pratama Kurniawan 311810001
Albert Meidison Wijaya 311810002
Iterasi 5 98% 100%
Iterasi 6 99% 97%
Iterasi 7 100% 100%
Iterasi 8 100% 100%
Iterasi 9 98% 100%
Iterasi 10 99% 100%
Mean 98% 100%
Epoch 10000
Akurasi Test Hidden Layer 6 Akurasi Test Hidden Layer 10
Iterasi 1 99% 100%
Iterasi 2 98% 100%
Iterasi 3 92% 99%
Iterasi 4 98% 100%
Iterasi 5 98% 100%
Iterasi 6 99% 100%
Iterasi 7 73% 100%
Iterasi 8 98% 100%
Iterasi 9 96% 100%
Iterasi 10 99% 100%
Mean 95% 100%
Tabel 1. Tabel hasil akurasi tes dari kasus 1
Analisa hasil akurasi test kasus 1 dilakukan dengan Wilcoxon test dan dengan hasil
sebagai berikut.
Pada kasus 2 (80% data train dan 20% data test) dilakukan tanpa perulangan dengan
epoch 5000, 8000, dan 10000 serta hidden layer 6 node dan 10 node sehingga mendapatkan
hasil sebagai berikut.
Akurasi Test Hidden Layer 6 Akurasi Test Hidden Layer 10
Epoch 5000 100% 95%
Epoch 8000 95% 95%
Epoch 10000 86% 95%
Tabel 2. Tabel hasil akurasi tes dari kasus 2
Adi Pratama Kurniawan 311810001
Albert Meidison Wijaya 311810002
Analisa hasil akurasi test kasus 2 dilakukan dengan Wilcoxon test dan dengan hasil
sebagai berikut.
Code:
dataset.drop('animal_name',axis = 1, inplace=True)
y = dataset['type']
X = dataset.drop('type', axis=1)
scaler = MinMaxScaler()
# mengubah data numerik menjadi boolean menggunakan label_binarize
X = pd.DataFrame(scaler.fit_transform(X), columns=X.columns)
print(X)
y = label_binarize(y, classes=[1,2,3,4,5,6,7])
Epoch 5000
for i in range (10):
model = MLPClassifier(hidden_layer_sizes=(6),max_iter=5000)
model.fit(X,y)
ar5t.append(model.score(X,y))
print("5000 Epoch completed successfully. Loading next run...")
Epoch 8000
for i in range (10):
model = MLPClassifier(hidden_layer_sizes=(6),max_iter=8000)
model.fit(X,y)
ar8t.append(model.score(X,y))
Epoch 10000
print("8000 Epoch completed successfully. Loading next run...")
for i in range (10):
model = MLPClassifier(hidden_layer_sizes=(6),max_iter=10000)
model.fit(X,y)
ar10t.append(model.score(X,y))
print("10000 Epoch completed successfully. Loading output...")
print()
print()
Epoch 5000
for i in range (10):
model = MLPClassifier(hidden_layer_sizes=(10),max_iter=5000)
model.fit(X,y)
ar5t.append(model.score(X,y))
print("5000 Epoch completed successfully. Loading next run...")
Epoch 8000
for i in range (10):
model = MLPClassifier(hidden_layer_sizes=(10),max_iter=8000)
model.fit(X,y)
ar8t.append(model.score(X,y))
print("8000 Epoch completed successfully. Loading next run...")
Epoch 10000
for i in range (10):
model = MLPClassifier(hidden_layer_sizes=(10),max_iter=10000)
model.fit(X,y)
ar10t.append(model.score(X,y))
print("10000 Epoch completed successfully. Loading output...")
print()
print()
Hasil :
[Hidden layer 1]
5000 Epoch completed successfully. Loading next run...
8000 Epoch completed successfully. Loading next run...
10000 Epoch completed successfully. Loading output...
[Hidden layer 2]
5000 Epoch completed successfully. Loading next run...
8000 Epoch completed successfully. Loading next run...
10000 Epoch completed successfully. Loading output...
Analisa Wilcoxon:
from scipy.stats import wilcoxon
Adi Pratama Kurniawan 311810001
Albert Meidison Wijaya 311810002
Hasil analisa:
Test statistik train test split antara Case 1 Hidden Layer 6 node dan
Hidden Layer 10 node
Statistics=0.000, p=0.109
Tidak ada perubahan signifikan (menerima H0)
Adi Pratama Kurniawan 311810001
Albert Meidison Wijaya 311810002
ANN case 2 (80% Data Latih, 20% Data Uji)
X_1 = dataset.iloc[:41,:15]
X_2 = dataset.iloc[41:61,:15]
X_3 = dataset.iloc[61:66,:15]
X_4 = dataset.iloc[66:79,:15]
X_5 = dataset.iloc[79:83,:15]
X_6 = dataset.iloc[83:91,:15]
X_7 = dataset.iloc[91:,:15]
Epoch 5000
model = MLPClassifier(hidden_layer_sizes=(6),max_iter=5000)
model.fit(X_train,y_train)
ar5t.append(model.score(X_test,y_test))
print("5000 Epoch completed successfully. Loading next run...")
Epoch 8000
model = MLPClassifier(hidden_layer_sizes=(6),max_iter=8000)
model.fit(X_train,y_train)
ar8t.append(model.score(X_test,y_test))
print("8000 Epoch completed successfully. Loading next run...")
Epoch 10000
model = MLPClassifier(hidden_layer_sizes=(6),max_iter=10000)
model.fit(X_train,y_train)
ar10t.append(model.score(X_test,y_test))
print("10000 Epoch completed successfully. Loading output...")
print()
print()
Epoch 5000
model = MLPClassifier(hidden_layer_sizes=(10),max_iter=5000)
model.fit(X_train,y_train)
ar5t.append(model.score(X_test,y_test))
print("5000 Epoch completed successfully. Loading next run...")
Epoch 8000
model = MLPClassifier(hidden_layer_sizes=(10),max_iter=8000)
model.fit(X_train,y_train)
ar8t.append(model.score(X_test,y_test))
print("8000 Epoch completed successfully. Loading next run...")
Epoch 10000
model = MLPClassifier(hidden_layer_sizes=(10),max_iter=10000)
model.fit(X_train,y_train)
ar10t.append(model.score(X_test,y_test))
print("10000 Epoch completed successfully. Loading output...")
print()
print()
Hasil :
[Hidden layer 1]
5000 Epoch completed successfully. Loading next run...
8000 Epoch completed successfully. Loading next run...
10000 Epoch completed successfully. Loading output...
[Hidden layer 2]
5000 Epoch completed successfully. Loading next run...
8000 Epoch completed successfully. Loading next run...
10000 Epoch completed successfully. Loading output...
Analisa Wilcoxon:
from scipy.stats import wilcoxon
Adi Pratama Kurniawan 311810001
Albert Meidison Wijaya 311810002
testC2 =pd.read_csv('/content/drive/My Drive/ML/WTC2all.csv')
dfC2= testC2[['HL1','HL2']].dropna()
Hasil analisa:
Test statistik train test split antara Case 2 Hidden Layer 6 node dan
Hidden Layer 10 node
Statistics=1.000, p=0.655
Tidak ada perubahan signifikan (menerima H0)