Oleh :
Mukhlishotus Soimah
Raudlatunnafisah
Ummu Amania
FAKULTAS TEKNIK
TAHUN 2022/2023
BAB I
PENDAHULUAN
A. Latar Belakang
Jaringan syaraf tiruan (JST) merupakan salah satu metode klasifikasi yang lapisan input
(input layer) dan lapisan tersembunyi (hidden layer) dalam menghasilkan pengelompokan data
pda lapisan keluaran (output layer) dengan kinerja yang cukup baik.
Dengan tingkat akurasi yang mencapai nilai lebih dari 83%, metode ini sering
dimanfaatkan untuk masalah klasifikasi dengan data yang kompleks dan berjumlah sangat besar.
Selama bertahun-tahun banyak peneliti yang kesulitan menemukan cara untuk melatih
MLP. Barulah pada tahun 1986, David Rumelhart, Geoffrey Hinton, dan Ronald Williams
mempublikasikan penelitian yang mengenalkan propagasi balik alias backpropagation .
Propagasi balik adalah sebuah algoritma untuk melatih MLP yang masih digunakan hingga
sekarang.
B. Rumusan Masalah
1. Apa yang dimaksud dengan Multi Layer Perceptron?
2. Bagaimana langkah-langkah algoritma metode Multi Layer Perceptron?
3. Apa Saja kelebihan dan kekurangan Multi Layer Perceptron?
BAB II
LANDASAN TEORI
MLP merupakan model Jaringan saraf yang berfungsi sebagai aproksimator universal, yaitu
mereka mendekati setiap fungsi kontinyu. Misalnya mereka dapat digunakan sebagai model
SEE. MLP terdiri dari neuron yang disebut persepsi. Jadi sebelum menjelaskan struktur
umum MLP, akan dijelaskan struktur umum perceptron. Sebuah jaringan saraf tiruan seperti
MLP mirip dengan seorang bayi baru lahir yang belum mengerti apa-apa. Dengan belajar lah
seorang bayi dapat meningkat pengetahuannya tentang dunia sekitar. Begitu juga dengan
MLP. Ketika kita melatihnya pada sebuah data, kita ingin agar MLP membuat kesalahan
yang sangat minim pada prediksinya. (Robert and Brown, 2004)
Dalam mengukur kinerja sebuah algoritma klasifikasi, dapat digunakan nilai-nilai seperti
area under the curve (AUC), precision, recall, mean squared error (MSE), mean
absolute percentage error (MAPE), dan root mean square error (RMSE). Ada beberapa
variasi nilai ukur yang digunakan di dalam penelitianpenelitian penerapan algoritma MLP
pada artikel yang ditinjau, seperti mean squared error (MSE), root mean squared error
(RMSE), mean absolute percentage (MAPE), mean absolute error (MAE), dan akurasi
prediksi (predicted accuracy). (Setiadi, 2012)
RMSE merupakan hasil dari akar kuadrat jumlah nilai MSE, dengan
menggunakan persamaan.
MAE merupakan nilai mutlak dari jumlah selisih antara data aktual dengan hasil
prediksi dibagi dengan nilai akutial dan kemudian dibagi dengan jumlah data, dengan
menggunakan persamaan.
MAPE merupakan hasil dari nilai MAE dikali dengan 100%, dengan
menggunakan persamaan.
Akurasi prediksi dapat dihitung menggunakan beberapa jenis teknik seperti
confusion matrix dan cross validation, dengan membandingkan nilai true positive, true
negative, false positive, dan false negative dari hasil prediksi. Nilai akurasi ini dapat
dihitunh dengan menggunakan persamaan.
Keterangan:
TP = True Positive.
TN = True Negative.
FP = False Positive.
FN = False Negative.
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import accuracy_score
#from sklearn.metrics import confusion_matrix,
ConfusionMatrixDisplay
from sklearn.metrics import classification_report
dataset = pd.read_csv('diabetes.csv')
dataset.head()
Hasil
x = data_input[['Age', 'Pregnancies',]]
y = data_uji[['Outcome']]
data_input.head(20)
Hasil
y.head()
Hasil
trainX, testX, trainY, testY = train_test_split(x, y, test_size = 0.2)
sc=StandardScaler()
scaler = sc.fit(trainX)
trainX_scaled = scaler.transform(trainX)
testX_scaled = scaler.transform(testX)
mlp_clf = MLPClassifier(hidden_layer_sizes=(5,2),
max_iter = 300,activation = 'relu',
solver = 'adam')
mlp_clf.fit(trainX_scaled, trainY)
y_pred = mlp_clf.predict(testX_scaled)
plt.plot(mlp_clf.loss_curve_)
plt.title("Loss Curve", fontsize=14)
plt.xlabel('Iterations')
plt.ylabel('Transaksi')
plt.show()
param_grid = {
'hidden_layer_sizes': [(150,100,50), (120,80,40),
(100,50,30)],
'max_iter': [50, 100, 150],
'activation': ['tanh', 'relu'],
'solver': ['sgd', 'adam'],
'alpha': [0.0001, 0.05],
'learning_rate': ['constant','adaptive'],
}
mlp_clf = MLPClassifier(hidden_layer_sizes=(5,2),
max_iter = 300,activation = 'relu',
solver = 'adam')
MLPClassifier
Sebelum kita melatih MLP pertama, saya akan menjelaskan secara singkat tentang
parameternya.
Misalkan kita memiliki dua variabel prediktor dan ingin melakukan klasifikasi biner.
Untuk ini saya bisa memasukkan parameter berikut pada model:
hidden_layer_sizes : Dengan parameter ini kita dapat menentukan jumlah layer dan
jumlah node yang ingin kita miliki di Neural Network Classifier. Setiap elemen dalam
tupel mewakili jumlah node pada posisi ke-i, di mana i adalah indeks tupel. Dengan
demikian, panjang tuple menunjukkan jumlah total lapisan tersembunyi di jaringan
saraf.
solver: Parameter ini menentukan algoritme untuk optimalisasi bobot di atas node.
y_pred = mlp_clf.predict(testX_scaled)
Dalam klasifikasi biner, fungsi ini sama dengan fungsi jaccard_score. Dalam
klasifikasi multilabel, fungsi ini menghitung akurasi subset: kumpulan label yang
diprediksi untuk sampel harus sama persis dengan kumpulan label yang sesuai di
y_true.
DAFTAR PUSTAKA