Anda di halaman 1dari 3

NAMA : Muhammad Alfin Nuron

NIM 20210120029

# memasukkan library tensorflow untuk membuat model ML/DL


import tensorflow as t
# memasukkan library numpy untuk membuat array multi dimensi
import numpy as np
#memproses data library tensorflow secara sequential
(berurutan) from tensorflow.keras.models import Sequential #
memproses data hingga menjadi data satu dimensi from
tensorflow.keras.layers import Flatten #menambahkan layer
pada neuron network from tensorflow.keras.layers import
Dense # fungsi untuk mengaktufkan neuron network from
tensorflow.keras.layers import Activation
# memasukan library matplotlib untuk memvisualisasikan data
import matplotlib.pyplot as pt

# fig adalah grafik, ax adalah axis.


# menggambar subplot 5x5 # ukuran gambar
12*12 fig, ax = pt.subplots(5, 5,
figsize=(12, 12)) # memasukan nilai
variabel k sama dengan 0 k = 0
# i mewakili jumlah nilai dalam rentang daftar (5)
for i in range(5):
# j mewakili jumlah nilai dalam rentang daftar (5)
for j in range(5):
# memberikan data kedalam axis ax[i]
[j].imshow(x_train[k].reshape(28, 28), aspect='auto') k =
k + 1
pt.show()

# show feedforward artificial neural network that generates a set of


outpu ts from a set of inputs with sequential method model_MLP =
Sequential([
# reshape 28 row * 28 column data to 28*28 rows
# sigmoid function in machine learning which is used to add
nonlinearity
Flatten(input_shape=(28,
28)), # hidden layer 1
# memasukan nilai pada layer
Dense(700,
activation='sigmoid'), # hidden
layer 2
Dense(100,
activation='sigmoid'), # output
layer
Dense(10, activation='sigmoid'),
])
# optimizer adalah untuk menjadwal peng-inpuan oleh user,
pengaksesan basis data, proses komputasi, dan pengeluaran ou tput
untuk meningkatkan kegunaan.
# loss adalah fungsi yang mengukur seberapa bagus performa yang
dihasilkan oleh model dalam melakukan prediksi terhadap target #
metrics adalah pengukur kualitas akurasi macjine learning
model_MLP.compile(optimizer='adam',
loss='sparse_categorical_crossentropy'
, metrics=['accuracy'])

# epoch adalah hyperparameter yang menentukan berapa kali algoritma


deep l earning bekerja melewati seluruh dataset baik secara forward
maupun backwa rd.
# batch_size adalah umlah training sampel yang digunakan dalam
satu batch untuk sekali iterasi
# validation_split adalah alogaritma yang digunakan untuk melakukan
valida si dari pelatihan history = model_MLP.fit(x_train, y_train,
epochs=10, batch_size=2000, vali dation_split=0.2)

# merubah ukuran figur menjadi 16*10


pt.figure(figsize=(16,10))
# the figure has 2 row, 2 columns, and this plot is the first plot.
pt.subplot(2,2,1)
#summarize history for accuracy
#make a limit
pt.plot(history.history['accuracy'])
pt.plot(history.history['val_accuracy'])
pt.ylim(0, 1) pt.title('model accuracy')
pt.ylabel('accuracy') pt.xlabel('epoch')
pt.legend(['train', 'valid'], loc='lower
right') # the figure has 2 row, 2 columns,
and this plot is the second plot.
pt.subplot(2,2,2)
#summarize history for
loss # make a limit
pt.plot(history.history['loss'])
pt.plot(history.history['val_loss'])
pt.title('model loss') pt.ylabel('loss')
pt.xlabel('epoch') pt.legend(['train',
'valid'], loc='upper right') pt.ylim([0,2])

# Confusion Matrix adalah pengukuran performa untuk masalah klasifikasi


ma chine learning dimana keluaran dapat berupa dua kelas atau lebih
#mengklasifikasi data dari data metrics from sklearn.metrics
import confusion_matrix, classification_report #memasukkan
testing data ke variabel y_predict y_pred =
model_MLP.predict(x_test)
# argmax mencari label terbesar 0.2[0]; 0.3[1]; 0.5[2]; 0.33[3] = 2
y_pred = np.argmax(y_pred, axis=1)
# memunculkan kata "===========================Confusion
Matrix===========
=================" print("===========================Confusion
Matrix========================
====")
#menampilkan hasil confusin matrix
print(confusion_matrix(y_test,y_pred))

#memunculkan kata "==============Classification Report============="


print("==============Classification Report=============")
#menampilkan classification report
print(classification_report(y_test, y_pred))

# menggambar subplot 5x5 # ukuran gambar


12*12 fig, ax = pt.subplots(5, 5,
figsize=(12, 12)) # memasukan nilai
variabel k sama dengan 0 k = 0
# i mewakili jumlah nilai dalam rentang daftar (5)
for i in range(5):
# i mewakili jumlah nilai dalam rentang daftar (5
for j in range(5):
# memasukan hasil prediksi
# coordinat (0,10) #warna merah ax[i][j].text(0,
10, y_pred[k], fontsize=40, color='red')
# memberikan data kedalam axis ax[i]
[j].imshow(x_test[k].reshape(28, 28), aspect='auto')
# memasukan nilai variabel k sama dengan k ditambah 1
k = k + 1
#menampilkan objek
visual pt.show()

Anda mungkin juga menyukai