20/11/2019
PYTHON
PROGRAMMING
Perceptron
Mulai
• Mengkodekan program klasifikasi dengan menggunakan
python dapat menggunakan notebook Jupyter.
• Jupyter memfasilitasi kerja luar biasa dan bereksperimen
dengan kode Python di lingkungan yang sangat ramah
bagi penjelajah dan peneliti data (data science).
• Kita dapat menggunakan notebook Jupyter secara gratis,
misalnya di Google colab: [Link].
Fajar Astuti Hermawati - Untag Surabaya 1
20/11/2019
Tampilan Google colab
• Pilih new python untuk memulai file baru
Tampilan Google colab
• Mulai tuliskan kode program di editor berikut
Fajar Astuti Hermawati - Untag Surabaya 2
20/11/2019
Import Library
• Pertama kita mengimpor beberapa pustaka Python
standar.
• Numpy akan membantu kita dengan aljabar linier dan
fungsionalitas array.
• Kerangka data panda akan sangat berguna saat kita
mengimpor dan menyiapkan data kita.
• Dan Matplotlib akan membantu kita melakukan beberapa
grafik keren.
• Akhirnya, sklearn membantu kita menormalkan data dan
menampilkan grafik yang berguna, seperti confusion
matrices
Import Library
• import numpy as np
import pandas as pd
import [Link] as plt
from sklearn import preprocessing
from [Link] import MinMaxScaler
from sklearn import metrics
from [Link] import confusion_matrix
import itertools
Fajar Astuti Hermawati - Untag Surabaya 3
20/11/2019
Inisialisasi
• Selanjutnya, kita membuat kelas Python yang mengatur
dan menginisialisasi jaringan kita.
• def __init__(self, alfa=0.1, n_iter=10, random_seed=1, t
hresh=0.2):
• [Link] = alfa
• self.n_iter = n_iter
• self.random_seed = random_seed
• [Link]=thresh;
Inisialisasi
• Pertama-tama memberi nama kelas kita (Perceptron),
dan mendefinisikan metode init-nya.
• Pada saat metode init dijalankan pertama kali kita
membuat instance kelas yang bertanggung jawab untuk
membuat struktur jaringan dan metode yang akan
mengendalikannya.
• Inisialisasi terdiri dari learning rate (alfa) dan jumlah
iterasi (n_iter)
• Kemudian kita membuat serangkaian variabel kelas yang
akan menampung data kunci jaringan.
Fajar Astuti Hermawati - Untag Surabaya 4
20/11/2019
Definisi Fungsi Fit
• Fungsi Fit digunakan untuk update bobot dari jaringan
dengan input data training X dan target y
def fit(self, X, y):
• Menentukan bobot awal
#generate random w
#rgen = [Link](self.random_seed) # add this line
#self.w_ = [Link](loc=0.0, scale=0.1, size=[Link][1])
self.w_ = [Link]([0.3, -0.1])
• Proses iterasi untuk mengupdate bobot
• Menghitung error
• Menghitung update (w)
• Tambahkan ke nilai w yang lama
Definisi Fungsi Fit
• for _ in range(self.n_iter):
• errors = 0
•
• for xi, target in zip(X, y):
• print('Iterasi : ',iterasi)
• print('iteration for data :',xi,target)
• errors = target - [Link](xi)
• print('error :', errors)
• print([Link])
• update = [Link] * xi *errors
• print('update w :', update)
• self.w_ += update
• print('new w :', self.w_)
• if errors >= 0.0 :
• self.errors_.append(errors)
• iterasi=iterasi+1
• return self
Fajar Astuti Hermawati - Untag Surabaya 5
20/11/2019
Definisi fungsi input jaringan
• Fungsi ini digunakan untuk mendapatkan nilai dari fungsi
linier yang mewakili setiap simpul
• def net_input(self, X):
• return [Link](X, self.w_) - [Link]
Definisi Fungsi prediksi
• Fungsi ini digunakan untuk mendapatkan output dari
jaringan
• Fungsi ini memanggil fungsi input jaringan
• def predict(self, X):
• return [Link](self.net_input(X) >= 0.0, 1, 0)
Fajar Astuti Hermawati - Untag Surabaya 6
20/11/2019
Definisi input dan target
• X = [Link]([[0, 0],
• [0, 1],
• [1, 0],
• [1, 1]])
• y = [Link]([[0],
• [0],
• [0],
• [1]])
• T=[Link]([[0,0],
• [1,1]])
Proses training
• ppn = Perceptron(alfa=0.1, n_iter=10, random_seed=1, th
resh=0.2)
• [Link](X, y)
•
Fajar Astuti Hermawati - Untag Surabaya 7
20/11/2019
Proses prediksi
• print("prediksi untuk data :",T)
• [Link](T)
Menampilkan error
• [Link](range(1, len(ppn.errors_) + 1), ppn.errors_, marker
='o')
• [Link]('Epochs')
• [Link]('Errors')
•
Fajar Astuti Hermawati - Untag Surabaya 8