Anda di halaman 1dari 84

Prediksi Gambar Permainan

Kertas, Batu dan Gunting


menggunakan Framework
Tensorflow

Di Susun Oleh :
Dany Widiyanto

PEMBIMBING :
Devie Rosa Anamisa, S.Kom., M.Kom.

Program Studi Teknik Informatika


Fakultas Teknik
Universitas Trunojoyo Madura
Tahun 2021
LEMBAR PENGESAHAN

Telah diperiksa dan diuji oleh :


Pada Tanggal :………………………………..

Dengan Nilai :………………………………..

Menyetujui ,

Dosen Pembimbing,

Devie Rosa Anamisa, S.Kom., M.Kom.


NIP. 19841104 200812 2 003

Mengetahui,
Koordinator Kerja Praktek

Yoga Dwitya Pramudita,S.Kom,M.Cs NIP


19840413 200812 1 002

i
KATA PENGANTAR

Segala puji syukur saya panjatkan kepada


kehadirat Tuhan yang Maha Esa karena atas rahmat dan
hidayah-Nya, saya selaku penulis dapat menyelesaikan
buku tutorial yang berjudul “Prediksi Gambar Permainan
Kertas, Batu dan Gunting menggunakan Framework
Tensorflow”.

Penulisan buku tutorial ini bertujuan untuk


menambah wawasan para pembaca dan bisa bermanfaat
untuk perkembangan dan peningkatan ilmu pengetahuan
pembaca khususnya dalam penerapan algoritma Machine
Learning menggunakan framework TensorFlow.

Saya selaku penulis menyadari bahwa dalam


penyusunan buku tutorial ini masih jauh dari kata
sempurna. Oleh karena itu, kritik dan saran yang
membangun akan saya nantikan demi kesempurnaan buku
tutorial ini.

Bangkalan, 30 Juni 2021

Dany Widiyanto

ii
DAFTAR ISI

LEMBAR PENGESAHAN ............................................. i

KATA PENGANTAR .................................................... ii

DAFTAR ISI.................................................................. iii

BAB I Pengenalan Data ................................................. 1

1.1 Pengenalan Machine Learning .............................. 1

1.2 Data Collecting ..................................................... 4

1.3 Data Cleaning ....................................................... 6

1.4 Data Processing .................................................... 8

1.5 Data Preparation ................................................... 9

1.5.1 One Hot Encoding ....................................... 9

1.5.2 Deteksi Outlier .......................................... 10

1.5.3 Normalisasi ................................................ 11

1.5.4 Standarisasi ................................................ 13

1.5.5 Train Test Dataset Split ............................. 13

1.6 Data Evaluation .................................................. 14

iii
1.6.1 Train, Test, Validation Set ....................... 14

1.6.2 Cross Validation ....................................... 15

BAB II Supervised dan Unsupervised Learning ........... 17

2.1 Supervised Learning............................................ 17

2.1.1 Klasifikasi ................................................. 18

2.1.2 Regresi ...................................................... 19

2.1.3 Decision Trees .......................................... 20

2.1.4 Support Vector Machine (SVM) .............. 21

2.2 Unsupervised Learning ....................................... 24

2.2.1 Clustering ................................................. 24

2.2.2 Association Rules ..................................... 27

2.2.3 Dimensionality Reduction ........................ 27

2.3 Neural Networks ................................................ 31

2.3.1 Artificial Neural Network ........................ 31

2.3.2 Multi Layer Perceptron ............................ 37

2.3.3 Convolutional Neural Network ............... 39

BAB III Dasar – Dasar Machine Learning ................... 44

3.1 Machine Learning Workflow .............................. 44


iv
3.1.1 Pengumpulan Data .................................. 44

3.1.2 Exploratory Data Analysis ..................... 45

3.1.3 Preprocessing Data .................................. 45

3.1.4 Model Selection ....................................... 46

3.1.5 Model Evaluation .................................... 46

3.1.6 Deployment ............................................. 47

3.1.7 Monitoring ............................................... 47

3.2 Overfitting, Underfitting dan Good Fit ............... 48

3.3 Model Selection .................................................. 51

3.4 Menambahkan atau Mengurai Fitur ................... 52

BAB IV Tensorflow ...................................................... 55

4.1 Pengenalan Tensorflow ....................................... 55

4.2 Keunggulan Tensorflow ...................................... 56

4.3 Keras Library....................................................... 57

4.4 Deployment dan Feedback .................................. 58

4.5 Adjusment dan Relearning .................................. 59

BAB V Proyek Akhir : Prediksi Gambar ..................... 62

5.1 Persiapkan Data .................................................. 17


v
5.2 Import Library ..................................................... 63

5.3 Upload Resource ................................................ 64

5.4 Ekstraksi File Gambar ......................................... 65

5.5 Train, Test, dan Validation Dataset Split ............ 66

5.6 Preprocessing : Image Augmentation ................. 68

5.7 Build Arsitektur Model CNN .............................. 69

5.8 Compile dan Latih Model ................................... 71

5.9 Prediction Test..................................................... 74

DAFTAR PUSTAKA ................................................... 77

vi
BAB I
Pengenalan Data

1.1 Pengenalan Machine learning


Seiring berjalannya perkembangan teknologi,
tenaga dan pikiran manusia akan digantikan oleh
sebuah mesin yang memiliki kemampuan bertindak
selayaknya manusia atau bahkan melebihi dari
kapasitas manusia . Hal tersebut dimaksudkan untuk
keefektifan dalam pemenuhan kebutuhan manusia
juga. Jika semula suatu pabrik membutuhkan pekerja
yang banyak, namun kini bisa digantikan oleh
kehadiran teknologi mesin tersebut . Hal tersebutlah
yang memicu perubahan dari berbagai sektor , seperti
sektor industri yang memamerkan nya dengan slogan
“Revolusi Industri 4.0”.

Dalam proses pengembangannya, kenyataanya


tidak sesederhana yang banyak manusia biasa
pikirkan . Terutama bagi mereka yang awam
mengenai teknologi . Dalam dunia IT kita mengenal
dengan isitilah Artificial Intelligence (AI). Secara
bahasa terdapat dua kata penyusun yaitu Artificial
1
yang berarti buatan dan Intelligence yaitu kecerdasan
yang merupakan kemampuan untuk memperoleh dan
menerapkan suatu pengetahuan. Dapat disimpulkan
bahwa Artificial Intelligence adalah disiplin ilmu
yang berfokus dengan membangun mesin yang dapat
bertindak dan bereaksi dengan tepat, mengadaptasi
respons terhadap tuntutan situasi. Mesin tersebut
harus menampilkan perilaku yang sebanding dengan
dan dianggap membutuhkan kecerdasan pada
manusia.[1]

AI merupakan bidang yang memiliki cakupan


yang sangat luas sekali . Salah satu cabang AI yang
akan kita bahas dalam buku ini adalah Machine
Learning. Menurut Tom M. Mitchell (1986),
Machine Learning (ML) adalah studi mengenai
algoritma komputer yang dapat meningkatkan kinerja
program komputer secara otomatis melalui data
sebelumnya. Machine Learning bertindak dengan
mengumpulkan, memeriksa, dan membandingkan
data berukuran kecil hingga besar untuk menemukan
pola dan mengeksplorasi perbedaanya.[2]

2
Machine learning dibagi menjadi tiga kategori
besar, yaitu supervised learning, unsupervised
learning, dan reinforcement learning. Pada materi
selanjutnya kita akan membahas beberapa
diantaranya. Untuk pemahaman lebih
lanjut perhatikan gambar berikut yaitu korelasi
antara AI, Machine Learning dan Deep Learning atau
cabang yang mempelajari tiga jenis Machine
Learning diatas .

3
(Gambar 1.1 Hubungan AI, ML dan Deep Learning)

Gambar di atas menunjukan bahwa machine


learning mempunyai makna yang lebih spesifik
daripada artificial intelligence sendiri.

1.2 Data Collecting


Seperti yang telah dijelaskan sebelumnya ,
Langkah awal yang ditempuh dalam machine learning
adalah dengan mengumpulkan data (data collecting) .
Kumpulan data yang telah dihimpun disebut juga

4
dataset. Untuk memperoleh dataset kita bisa
mengekstrasi data dari sumber seperti internet, survei
dan sebagainya. Kita juga dapat membuat dataset
sendiri dari nol tetapi untuk tujuan pembelajaran itu
akan memakan waktu yang cukup lama atau kita bisa
menggunakan dataset yang telah ada . Menemukan
dataset yang tepat adalah salah satu langkah penting
dalam machine learning.

Berikut beberapa referensi sumber dataset yang


telah saya himpun :
1. Kaggle Dataset
https://www.kaggle.com/
2. Data World Dataset
https://data.world/
3. UC Irvine Machine Learning Repository
https://archive.ics.uci.edu/ml/index.php
4. Google Dataset Search Engine
https://datasetsearch.research.google.com/
5. Tensorflow Dataset
6. Satu Data Indonesia
https://data.go.id/

5
1.3 Data Cleaning
Pada tahap pembersihan data ( data cleaning )
merupakan sebuah proses yang perlu dilakukan sebelum
data diproses ke dalam model machine learning. Proses
ini dilakukan untuk meningkatkan kualitas data yang
berpengaruh terhadap produktivitas kerja karena misalkan
ada data yang tidak akurat itu akan berpengaruh buruk
terhadap akurasi dan performa model.
Saat proses data cleaning, kita membuang data dan
informasi yang tidak dibutuhkan. Data yang akurat dan
berkualitas akan berpengaruh baik terhadap proses
pengambilan keputusan.
Dalam proses pembersihan data ada beberapa hal
dasar yang harus diperhatikan yaitu:
1. Konsistensi Format Data
Contoh : Misalkan kita mempunyai dataset
tentang penjualan disitu tertera harga beras adalah
13000 dalam satuan kilogram tetapi disisi lain
mencatat bahwa harga dicantumkan dalam format
13.000 , perbedaan tanda baca “.” akan membuat
penafsiran salah dalam data . Solusinya, format
data harus disamakan dan dibuat konsisten
terlebih dahulu.

2. Skala Data

6
Contoh : Misalkan terdapat variable penelitian
dengan skala data numerik 0 – 100. Maka
pastikan bahwa tidak ada data melebihi nilai 100
atau negatif.

3. Duplikasi Data
Data duplikat dalam jumlah besar perlu dihapus
karena dapat mempengaruhi model machine
learning . Kita harus menggunakan data dengan
nilai unik atau tidak mempunyai duplikasi.

4. Kelengkapan Data (Missing Value)


Data yang tidak memiliki record lengkap atau
terdapat bagian yang tidak memiliki nilai atau
hilang dapat digantikan dengan nilai lain, seperti
rata-rata dari kolom tersebut (mean) atau nilai
yang paling sering muncul (modus), atau nilai
tengah (median).

5. Skewness Distribution
Skewness atau ketidakseimbangan distribusi
menyebabkan model akan sering memprediksi
sesuatu yang memiliki prorporsi data yang lebih
banyak. Karena ia lebih sering mempelajari hal
tersebut. Hal tersebut lah yang dinamakan dengan
bias. Untuk mengatasi skewness adalah dengan
menyamakan proporsi kelas mayoritas dengan
kelas minoritas.

7
1.4 Data Processing
Pada tahap ini kita akan mengunggah data dan
menerapkan algoritma machine learning pada sebuah
bahasa pemrogaman yaitu Python . Kita akan
menggunakan sebuah software open source yaitu Google
Colaboratory. Untuk membuka Google Colab, kita dapat
membuka tautan colab.research.google.com.

(Gambar 1.2 Halaman awal Google Colaboratory)

Dalam tutorial prediksi gambar ini kita akan


menggunakan beberapa library dan framework python
seperti :

8
 Tensorflow
 Keras
 Sklearn
 Matplotlib
 Numpy
 Pandas

1.5 Data Preparation


1.5.1 One Hot Encoding
Biasanya, dataset kita akan terdiri dari dua jenis data
yaitu kategorik dan numerik. Umumnya, model machine
learning tidak dapat mengolah data kategorik, sehingga
kita perlu melakukan konversi data kategorik menjadi
data numerik. Teknik yang dapat kita pakai adalah teknik
One Hot Encoding .

(Gambar 1.3 Teknik one-hot-encoding )

9
1.5.2 Deteksi Outlier
Dalam statistika outlier nilai yang jauh atau beda
sekali dengan sebagian besar nilai lain dalam
kelompoknya atau disebut nilai pencilan. Outlier dapat
mengacaukan hasil dari model machine learning yang
akan kita buat. Outlier dapat disebabkan oleh kesalahan
dalam pengumpulan data atau nilai tersebut memang unik
dari kumpulan nilai lainnya.
Salah satu cara termudah untuk mengecek apakah
terdapat outlier dalam data kita adalah dengan melakukan
visualisasi.

(Gambar 1.4 Deteksi Outlier Visualisasi Boxplot)

Dari hasil visualisasi tampak persebaran data .


Data yang digambarkan dengan lingkaran merupakan data
outlier yang melebihi dari skala data yang lain.

10
1.5.3 Normalisasi
Normalisasi adalah mengubah nilai-nilai dari sebuah
fitur ke dalam skala yang sama. Normalisasi dapat
membuat kenaikan performa dan stabilitas dari model
machine learning yang kita buat. Salah satu contoh dari
normalisasi adalah min-max scaling di mana nilai-nilai
dipetakan ke dalam skala 0 sampai 1.
Contoh kita mempunyai deskripsi data seperti berikut :

(Gambar 1.5 Deskripsi data untuk min-max scaling)

Sebagai contoh kita akan membandingkan skala dari dua


fitur yang berbeda dan melakukan visualisasi . Hasilnya
akan tampak seperti ini .

11
(Gambar 1.6 Perbandingan skala data sebelum Normalisasi)

Min-Max Scaler akan mengubah data kita menjadi skala


0 -1 . Ketika kita lakukan visualisasi hasilnya akan tampak
seperti berikut :

(Gambar 1.7 Perbandingan skala data setelah Normalisasi)

12
Dalam Google Colaboratory tersedia library
MinMaxScaler untuk melakukan normalisasi . Kita
tinggal mengimport library tersebut.
1.5.4 Standarisasi
Standarisasi tidak jauh berbeda dengan
Normalisasi yaitu proses konversi nilai-nilai dari suatu
fitur sehingga nilai-nilai tersebut memiliki skala yang
sama. Tetapi Standarisasi menggunakan sistem Z score di
mana setiap nilai pada sebuah atribut numerik akan
dikurangi dengan rata-rata dan dibagi dengan standar
deviasi dari seluruh nilai pada sebuah kolom atribut.
Rumus untuk menghtung z-score :
𝑛𝑖𝑙𝑎𝑖 − 𝑚𝑒𝑎𝑛
𝑧=
𝑠𝑡𝑎𝑛𝑑𝑎𝑟𝑑 𝑑𝑒𝑣𝑖𝑎𝑠𝑖

1.5.5 Train Test Dataset Split


Dataset yang telah dibersihkan dan diproses
kemudian siap kita latih dengan machine learning.
Kemudian kita akan menguji model pada kasus atau data
baru yang belum dikenali oleh model untuk menunjukan
kualitas model bagus atau tidaknya. Oleh karena itu kita
akan membagi dataset menjadi 2 bagian yaitu data
training dan data testing.
Dengan demikian, kita bisa melakukan pelatihan
model pada train set, kemudian mengujinya pada test set
yang merupakan sekumpulan data yang belum dikenali

13
model. Penting untuk kita memilih rasio yang sesuai
dalam pembagian dataset. Saat rasio training kecil
algoritma ML tidak dapat belajar dengan baik pada data
training. Tetapi, jika alokasi data pada data testing terlalu
kecil, kita tidak bisa mendapatkan estimasi performa
model yang akurat.

(Gambar 1.8 Proporsi Train Test Dataset Split)

Pembagian data training dan data testing yang paling


umum adalah 80:20, 70:30, atau 60:40, tergantung dari
ukuran atau jumlah data. Namun, untuk dataset berukuran
besar, proporsi pembagian 90:10 atau 99:1 juga biasa
dilakukan.

1.6 Data Evaluation


1.6.1 Train, Test , Validation Set
Selain membagi dataset menjadi train set dan test
set. Kita akan mengambil beberapa bagian train set untuk
validasi atau disebut validation set (holdout validation)
.Hal tersebut dimaksudkan untuk pengujian model pada
tahap awal. Kita menguji beberapa model
dengan hyperparameter yang berbeda pada train set yang

14
telah dikurangi data untuk validation. Metode ini baik saat
kita mempunyai data yang besar.

(Gambar 1.9 Proporsi Train, Test, dan Validatation Dataset Split)

1.6.2 Cross Validation


Berbeda dengan validation set , untuk Cross
Validation bertindak dengan membagi dataset sebanyak k
kelipatan . Pada setiap iterasi yang sudah ditentukan
dengan nilai k , satu lipatan akan digunakan sebagai test
set dan lipatan sisanya dipakai sebagai train set. Kita akan
memperoleh hasil evaluasi yang lebih akurat karena
model dievaluasi dengan seluruh data. Metode ini cocok
untuk model machine learning dengan sampel data
terbatas.

15
(Gambar 1.10 Algoritma K Cross Validation )

16
BAB II
Supervised dan Unsupervised Learning

2.1 Supervised Learning


Pada supervised learning kita melatih sekumpulan
data yang memiliki label. Label adalah pengenal dari
sebuah data. Misal terdapat buah A memiliki atribut atau
fitur berwarna merah, bentuknya bulatk. Buah B
atributnya berwarna kuning, bentuknya agak memanjang.
Buah yang memiliki atribut seperti yang
disebutkan pada buah A dikenali sebagai apel, sedangkan
buah dengan atribut seperti disebutkan pada buah B
dikenal sebagai pisang. Maka label dari buah A adalah
apel dan label buah B adalah pisang. Contoh sederhana
supervised learning seperti demikian.

(Gambar 2.1 Ilustrasi supervised learning)

17
Sekumpulan data yang memiliki label biasanya
digunakan untuk membuat model klasifikasi. Kasus diatas
dapat dibuat model machine learning yaitu klasifikasi
buah. Model machine learning mempelajari pola
berdasarkan atribut dari data buah yang kita miliki.
Kemudian , dari pengalaman belajar tersebut, model
machine learning kita dapat digunakan untuk
memprediksi data baru, dan menentukan apakah data baru
ini termasuk buah dengan label A atau label B.
2.1.1 Klasifikasi
Klasifikasi adalah teknik untuk menentukan kelas
atau kategori berdasarkan atribut yang diberikan.
Klasifikasi yang menghasilkan dua kategori disebut
klasifikasi biner, sedangkan klasifikasi yang
menghasilkan 3 kategori atau lebih disebut multiclass
classification. Penggambaran apel dan pisang diatas
adalah salah satu contoh klasifikasi biner.
Ada beberapa jenis teknik klasifikasi, antara lain:
 Logistic Regression
 K-nearest neighbors
 Naive Bayes
 Decision trees
 Random forest
 Support Vector Machine (SVM)
 Neural Networks

18
 Dll.

2.1.2 Regresi
Untuk algoritma regresi kita memprediksi hasil
dalam keluaran yang kontinyu berupa fungsi. Jika
terdapat kontinuitas dalam keluaran model ML, maka
dapat dipastikan itu adalah permasalahan regresi.
Misalnya saat kita memprediksi harga apel dalam satuan
kilogram, model kita memprediksi harganya Rp. 30.00
atau Rp. 32.000 padahal harga seharusnya adalah Rp.
31.000. Prediksi dalam regresi linear akan berada
dalam range bilangan numerik tertentu yang mendekati
nilai seharusnya. Inilah yang dimaksud dengan regresi
memberikan keluaran yang kontinyu.
Sedangkan pada masalah klasifikasi, kita
memprediksi hasil dalam keluaran diskrit. Seperti kasus
buah diatas . Apakah buah tergolong label A atau B.
Ada beberapa jenis teknik regresi, antara lain:
 Linear Regression
 Decision trees
 Support Vector Machine (SVM)
 Neural Networks
 Trees
 Dll.

19
2.1.3 Decision Trees
Decision trees atau pohon keputusan adalah salah
satu algoritma supervised learning yang dapat dipakai
untuk masalah klasifikasi dan regresi. Decision trees
mampu dipakai dalam masalah yang kompleks. Decision
trees juga merupakan komponen pembangun utama
algoritma Random Forest, yang merupakan salah satu
algoritma yang cukup kuat saat ini.
Decision trees bisa tergolong klasifikasi maupun
regresi tergantung target prediksinya . Jika memprediksi
sebuah kelas (klasifikasi) atau nilai (regresi) berdasarkan
aturan-aturan yang dibentuk setelah mempelajari data.
Misalnya kita memiliki data berisi informasi
mengenai kondisi cuaca pada hari tertentu. Kita dapat
membuat sebuah keputusan apakah cuaca sekarang cocok
untuk bermain golf atau tidak dengan membuat decision
trees nya.

20
Gambar 2.2 Data cuaca untuk membuat pohon keputusan

Gambar 2.3 Pohon keputusan dari data cuaca

2.1.4 Support Vector Machine (SVM)


Support Vector Machine adalah model ML
multifungsi yang dapat digunakan untuk menyelesaikan
permasalahan klasifikasi, regresi, dan

21
pendeteksian outlier. Awalnya SVM diperkenalkan
sebagai algoritma training yang bertujuan untuk
memaksimalkan margin antara pola pelatihan dan batas
keputusan (decision boundary).
Tujuan utama dari SVM adalah untuk
menemukan hyperplane terbaik dalam ruang berdimensi-
N (ruang dengan N-jumlah fitur) yang berfungsi sebagai
pemisah yang jelas bagi titik-titik data input.

(Gambar 2.4 Menemukan Optimal Hyperplane dengan SVM)

Dari gambar tersebut terlihat bahwa terdapat


banyak kemungkinan bidang (hyperplane) yang dapat
memisahkan data segitiga dan lingkaran. Tugas SVM
adalah mencari hyperplane terbaik yang dapat
memisahkan kedua kelas secara optimal dengan
memaksimalkan margin.
Dalam beberapa kasus penerapan SVM mungkin
akan berbeda . Contoh diatas kita hanya melibatkan 2
class . SVM dapat digunakan untuk klasifikasi beberapa
class (multi class). Bahkan Support Vector dapat

22
diterapkan dalam kasus regresi atau disebut Support
Vector Regression (SVR).
Support Vector Regression (SVR) menggunakan
prinsip yang sama dengan SVM pada kasus klasifikasi.
Perbedaannya adalah jika pada kasus klasifikasi, SVM
berusaha mencari ‘jalan’ terbesar yang bisa memisahkan
sampel-sampel dari kelas berbeda, maka pada kasus
regresi SVR berusaha mencari jalan yang dapat
menampung sebanyak mungkin sampel di ‘jalan’.

(Gambar 2.5 Support Vector Regression Hyperplane)

23
2.2 Unsupervised Learning
Unsupervised learning merupakan algoritma
Machine Learning yang digunakan untuk menarik
kesimpulan dari kumpulan data tanpa campur tangan
manusia, berbeda dengan supervised learning di mana
label disediakan bersama dengan data. Dalam algoritma
unsupervised learning hanya diberikan sejumlah data
tanpa label atau output yang benar. Dengan kata lain
dalam algoritma ini tidak ada supervisor atau pengawas
yang membantu dalam menentukan apakah kinerja dan
output yang dihasilkan benar atau salah.

2.2.1 Clustering
Cluster merupakan sebuah kelompok yang
memiliki kemiripan tertentu. Clustering adalah sebuah
metode machine learning unsupervised untuk
mengelompokkan objek-objek yang memiliki kemiripan,
ke dalam sebuah klaster.
Menurut Andriy Burkov dalam buku nya yang
berjudul The Hundred Page Machine Learning Book [3],
clustering atau pengklasteran merupakan sebuah metode
untuk memberi label pada data tanpa campur tangan
manusia. Data yang memiliki kemiripan akan
dikelompokkan, lalu setiap data pada kelompok yang
sama akan diberikan label yang sama. Berbeda dengan

24
model klasifikasi dan regresi di mana setiap data memiliki
label yang ditulis oleh manusia.
Contohnya ketika kita memiliki data penjualan
toko online. Kemudian kita ingin mengembangkan
sebuah model yang bisa mengelompokkan pembeli
produk berdasarkan kemiripan yang dimiliki. Misalnya,
kita ingin mengelompokkan pembeli berdasarkan tempat
mereka berasal untuk mengetahui target market yang
sesuai untuk setiap kelompok.

(Gambar 2.6 Ilustrasi persebaran data konsumen )

Sebuah model clustering akan membandingkan


atribut setiap pengunjung lalu membuat sebuah cluster
yang diisi oleh konsumen yang memiliki kemiripan
karakteristik/atribut yang tinggi.

25
(Gambar 2.7 Ilustrasi clustering konsumen berdasarkan tempat)

Hasil clustering yang baik yaitu dengan tingkat


kemiripan yang tinggi dalam satu kelas dan tingkat
kemiripan yang rendah dibandingkan kelas lain. Metode
yang dipakai juga berdampak pada hasil klasterisasi.
Selain itu metode clustering yang kita pakai juga harus
dapat mengukur kemampuannya sendiri ketika
menemukan suatu pola yang jarang ditemui atau
tersembunyi pada data yang sedang kita teliti.
Terdapat berbagai metode yang dapat digunakan
untuk mengukur nilai kemiripan antar objek-objek yang
dibandingkan saat klasterisasi. Metode yang cukup
terkenal yaitu dengan Euclidean Distance. Euclidean
distance menghitung jarak dua buah titik dengan
mengetahui nilai dari masing-masing atribut pada kedua
titik tersebut.
Berikut merupakan rumus untuk menghitung jarak
pada Euclidean distance:
𝐽𝑎𝑟𝑎𝑘(𝑝, 𝑞) = (∑ 𝜇𝑘 |𝑃𝑘 − 𝑞𝑘|𝑟)1/𝑟

26
Keterangan:
N = Jumlah record data
K= Urutan field data
r= 2
µk= Bobot field yang diberikan user

2.2.2 Association rules


Asociation rules berpedoman pada pernyataan
"jika-maka", focus utama dalam algoritma ini adalah
kemungkinan hubungan antara item data bahkan dalam
kumpulan data besar sekaligus . Association rules banyak
dimanfaatkan dalam dunia bisnis terutama dalam
menemukan hubungan penjualan dan target pasar.
Contohnya pada saat kita di supermarket , pasti
kita menemukan bahwa barang yang memiliki tingkat
kesamaan akan ditempatkan pada tempat yang berdekatan
misalkan sabun dan sampo pada lorong yang sama.
Contoh algoritma association rules adalah Apriori
dan FP Growth. Kita tidak akan bahas lebih dalam karena
tidak menyangkut proyek prediksi yang menggunakan
model klasifikasi pada gambar.

2.2.3 Dimensionality Reduction

Dalam praktik machine learning terkadang kita


akan menghadapi data dengan ribuan atau jutaan atribut .

27
Dengan banyaknya atribut, proses pelatihan akan lambat
dan memakan waktu yang lama. Dalam kasus deteksi
objek pada gambar (image recognition) atribut
merupakan jumlah pixel dari gambar tersebut. Jika
sebuah gambar memiliki resolusi 50 x 50 pixel, maka
atribut yang dimiliki terdapat 2500 atribut.

(Gambar 2.8 Image Recognition)

Dalam pengenalan objek seperti gambar diatas


atribut dalam kotak merah saja yang dibutuhkan. Untuk
itu kita menggunakan algoritma dimensionality reduction
atau pengurangan dimensi yaitu membuang pixel atau
atribut yang berada di luar kotak merah. Jadi kita tidak
perlu risau lagi , karena dimensionality reduction akan
mempercepat pelatihan model secara signifikan.
Beberapa teknik dimensionality reduction antara lain :
1. Principal Component Analysis (PCA)
PCA merupakan teknik dimensionality reduction
yang berfokus mengurangi jumlah atribut pada dataset

28
tanpa mengurangi informasinya. Contohnya pada sebuah
dataset harga rumah. Pada PCA setiap atribut disebut
sebagai principal component.
PCA menghitung variance dari tiap atribut.
Variance adalah informasi yang dimiliki sebuah atribut.
Pada dataset gaji karyawan, atribut jabatan memiliki
variance atau informasi sebesar 92% dan alamat
karyawan memiliki variance/informasi sebesar 4%. Dari
perhitungan variance dapat disimpulkan bahwa alamat
karyawan tidak memiliki informasi yang cukup signifikan
ketika kita ingin mempercepat pelatihan dari model
machine learning kita.
2. Linear Discriminant Analysis (LDA)
Linear Discriminant Analysis juga merupakan
salah satu teknik dimensionality reduction. Perbedaan
dengan PCA adalah LDA bekerja dengan meminimalkan
varian sementara PCA mencari atribut komponen yang
memiliki varian tertinggi pada masing-masing kelas.
Selain itu LDA membuat kombinasi atribut terbaik yang
dapat memisahkan kelas-kelas pada dataset .
Perbedaan lain yang membedakan LDA dan PCA
adalah PCA merupakan teknik unsupervised karena tidak
menghiraukan label yang terdapat pada data. Sedangkan
LDA merupakan teknik supervised karena
memperhatikan bagaimana kelas-kelas pada data dapat
dipisahkan dengan baik.

29
LDA bertindak dengan memproyeksikan dataset
berdimensi-i ke subruang berdimensi-j, dengan j<i. LDA
membuat sumbu baru menggunakan fitur dari kedua
sumbu (X dan Y), dua kriteria utama yang digunakan
LDA untuk membuat sumbu baru adalah.
1. Meminimalkan variance pada tiap kelas.
2. Memaksimalkan jarak antara rata-rata (mean)
kedua kelas.

3. t-Distributed Stochastic Neighbor Embedding (t-


SNE)
t-Distributed Stochastic Neighbor Embedding
atau t-SNE adalah teknik unsupervised yang digunakan
untuk dimensionality reduction, eksplorasi data, dan
visualisasi data berdimensi tinggi yaitu data yang tidak
dapat dipisahkan oleh garis linear , t-SNE menghitung
ukuran kesamaan antara pasangan titik data di ruang
berdimensi tinggi dan dimensi rendah, kemudian
mengoptimalkan dua kesamaan ini.
Sederhananya, t-SNE mengurangi dimensi dengan
mendekatkan sampel-sampel yang mirip dan menjauhkan
sampel-sampel yang kurang mirip, t-SNE dipakai untuk
visualisasi data yang memiliki dimensi besar dan banyak
dipakai dalam bidang pengolahan citra, pemrosesan
bahasa alami, data genomika, dan speech processing.

30
2.3 Neural Networks
Neural networks akan menjadi algortima yang akan
kita terapkan dalam klasifikasi untuk prediksi
gambar.Oleh karena itu kita bahas tersendiri dalam modul
ini. Neural network terinpirasi dari cara kerja otak
manusia . Terdapat tiga pokok bahasan yaitu Artificial
Neural Network (ANN) , Multi Layer Perceptron (MLP)
dan Convolutional Neural Network (CNN).
2.3.1 Artificial Neural Network
Jaringan Saraf Tiruan atau Artificial Neural
Network (ANN) merupakan algoritma untuk membuat
model machine learning yang terinspirasi dari bagaimana
neuron atau saraf yang terdapat pada otak manusia
bekerja.

(Gambar 2.9 Jaringan Saraf Manusia)

Setiap neuron menerima input dan kemudian


melakukan operasi dot dengan sebuah weight, lalu
menjumlahkannya kemudian didaptkanlah weight sum
dan menambahkan bias kedalamnya . Hasil dari operasi

31
penjumalahan tersebut digunakan sebagai parameter
activation function yang akhirnya akan menjadi sebuah
output dari neuron itu.

(Gambar 2.10 Model Matematis Jaringan Saraf)

ANN merupakan salah satu model yang


multiguna, tangguh, dan memiliki skalabilitas tinggi.
Oleh karena itu ANN sangat baik dipakai dalam
menangani masalah yang sangat kompleks seperti
mengklasifikasi miliaran gambar, mengenali ratusan
bahasa dunia, merekomendasikan video ke ratusan juta
pengguna, dan masih banyak lagi
Neuron pada jaringan saraf di otak manusia
merupakan perceptron pada jaringan saraf tiruan, karena
merujuk pada hal yang sama. Sebuah perceptron
menerima input berupa bilangan numerik. Kemudian
memprosesnya untuk menghasilkan sebuah output.

32
Gambar 2.11 Susunan sebuah perceptron

Sebuah perceptron terdiri dari 5 penyusun yaitu:


1. Input (xi)
2. Bobot atau weights (Wi) dan bias (W0)
3. Penjumlahan atau sum (∑)
4. Activation Function atau non linearity
function (⎰)
5. Output (y)
Berikut merupakan cara kerja perceptron:
 Perceptron menerima input berupa angka-angka.
 Setiap input memiliki bobot (weight) tersendiri.
 Selanjutnya semua input akan
dijumlahakan (sum). Setiap input akan dikalikan
dengan bobotnya masing masing, lalu hasilnya
akan ditambahkan dengan bias yang merupakan
sebuah konstanta atau angka. Nilai bias
menentukan pengaturan kurva activation function

33
ke atas atau ke bawah sehingga dapat lebih
fleksibel dalam meminimalisasi eror.
Hasil penjumlahan disebut weighted sum.
 Selanjutanya, weighted sum akan diterapkan pada
activation function atau Non-Linearity Function
yang digunakan untuk memetakan nilai yang
dihasilkan menjadi nilai yang diperlukan,
misalnya antara (0, 1) atau (-1, 1). Fungsi ini
memungkinkan perseptron dapat menyesuaikan
pola untuk data yang non linier.
 Setelah semua langkah di atas, akhirnya kita
memperoleh output, yaitu hasil dari perhitungan
sebuah perceptron yang merupakan bilangan
numerik.
Berikut merupakan rumus atau fungsi matematis dari
perceptron .

(Gambar 2.12 Fungsi matematis perceptron)

Activation function pada perceptron bertugas


untuk menentukan apakah perceptron tersebut harus

34
berjalan atau tidak berdasarkan weighted sum dari input
yang diterima . Secara umum terdapat 2 jenis activation
function, Linear dan Non-Linear Activation function.
Jika sebuah perceptron menggunakan sebuah fungsi
linear, maka output yang dihasilkan neuron tersebut
adalah weighted sum dari yaitu penjumlahan input dan
bias.
Ada 3 jenis non-Linear Activation function yang
paling umum yaitu :

1. Sigmoid dan Hyperbolic Tangent (tanh).


Sigmoid function berada di antara nilai 0 hingga 1
sedangkan rentang dari tanh adalah -1 hingga 1.
Keduanya hanya digunakan dalam klasifikasi 2 kelas saja.

(Gambar 2.13 sigmoid dan tanh function)

35
2. Rectified Linear Unit (ReLU)
Fungsi ReLU bersifat kontinu meski
kemiringannya berubah secara tiba-tiba dan nilai
turunannya bernilai 0 pada z < 0. Tetapi fungsi ini bekerja
dengan sangat baik dan efisien sehingga mempercepat
waktu komputasi. Oleh karena itu ReLU digunakan
sebagai activation function default pada jaringan saraf
tiruan.

(Gambar 2.14 ReLU function)

3. Softmax Function
Activation function softmax digunakan untuk
masalah multi class classification. Kita tidak boleh
menggunakan activation function sigmoid dan tanh dalam
masalah multi class classification . Mirip dengan fungsi
aktivasi sigmoid, fungsi softmax mengembalikan nilai
peluang dari tiap kelas.

36
2.3.2 Multi Layer Perceptron

Dalam diagram perceptron sederhana seperti berikut .


Terdapat 3 input yang masuk dari sebuah perceptron yang
belum termasuk bias dan weight.

(Gambar 2.15 Ilustrasi input masuk dari sebuah perceptron)

Jika terdapat dua atau lebih perceptron saling


terhubung maka akan menciptakan sebuah koneksi dari
tiap input dan kedua perceptron itu membentuk suatu
lapisan atau disebut dense layer.

(Gambar 2.16 Dense layer)

37
Kemudian ada yang dinamakan dengan hidden
layer yang merupakan dense layer yang berada di antara
input layer dan output layer .

(Gambar 2.17 Hidden Layer )

Pada gambar sebelah kiri jaringan saraf memiliki 1 hidden


layer dan sebelah kanan memiliki 4 buah hidden layer.
Hidden layer dan output layer sama-sama merupakan
sebuah layer yang memiliki beberapa perceptron.
Sedangkan input layer adalah sebuah layer yang hanya
menampung angka-angka
Fungsi linear biasanya hanya menggunakan 2
layer (Input dan Output) saja untuk menyelesaikan
permasalahan. Tetapi pada fungsi non linear kita
membutuhkan sedikitnya 3 layer neural network atau
lebih yang biasa disebut Multilayer Perceptron (MLP)
atau Fully-Connected Layer . MLP pasti menggunakan
non-linear activation function juga pada seluruh neuron di
hidden layernya.
Proses training pada neural network terdiri dari 2
tahap yaitu :

38
1. Forward Pass
Forward pass (forward propagation) akan
membawa data pada input melewati tiap perceptron pada
hidden layer sampai ke output layer dan menghitung error
yang terjadi.
2. Backward Pass
Kemudian pada Backward Pass error yang kita
dapat pada forward pass akan digunakan untuk
mengupdate setiap weight dan bias dengan learning rate
tertentu.
Kedua proses tersebut akan dilakukan terus
menerus sampai didapatkan nilai weight dan bias yang
dapat memberikan nilai error sekecil mungkin pada
output layer .

2.3.3 Convolutional Neural Network


Convolutional Neural Network (CNN) merupakan
perkembangan neural network yang digunakan untuk
mengolah data berbentuk gambar (image). CNN
diterapkan untuk mendeteksi dan mengenali objek pada
sebuah gambar (image recognition). Konsep CNN tidak
jauh berbeda dengan neural network biasa karena CNN
juga disusun dari neuron yang mengandung beban
(weight), bias dan activation function.

39
Convolutional neural networks (CNNs) pertama
kali dikenalkan oleh Yann LeCun pada tahun 1998 dalam
makalahnya “Gradient-Based Learning Applied to
Document Recognition” yang berhasil mengenali karakter
tulisan tangan pada gambar dengan resolusi rendah.
Jika dalam neural network biasa mungkin metode
yang dilakukan adalah mengenali gambar berdasarkan
piksel-piksel yang terdapat pada gambar. Teknik yang
lebih optimal adalah dengan menggunakan convolutional
layer di mana neural network akan mengenali objek
berdasarkan atribut-atribut yang memiliki lebih banyak
informasi daripada mengenali objek berdasarkan piksel-
piksel

(Gambar 2.18 Pengenalan objek berdasarkan piksel)

Convolutional layer bertujuan mengenali atribut-


atribut unik pada sebuah objek. Atribut-atribut yang lebih
rendah membentuk atribut lebih tinggi contohnya atribut
wajah dibentuk dari atribut mata, telinga, dan hidung.
Atribut mata dibentuk dari garis, lengkungan dan bintik
hitam.
Dalam proses kerjanya convolutional layer
dibantu oleh filter untuk dapat mengenali atribut dalam

40
objek. Filter merupakan sebuah matriks yang berisi
bilangan numerik.

(Gambar 2.19 Contoh penggunaan filter)

Proses mengaplikasikan filter pada gambar


disebut proses konvolusi yaitu perkalian matriks
terhadap filter dan area pada gambar.

(Gambar x Perkalian matriks pada proses konvolusi)


Setelah proses konvolusi dilakukan maka selanjutnya
yaitu proses pooling. Pooling adalah proses untuk
mengurangi resolusi gambar dengan tetap
mempertahankan informasi pada gambar.

41
(Gambar 2.20 Proses pooling)

Salah satu contoh dari pooling adalah max


pooling. Pada Teknik tersebut setiap area dengan luas
piksel tertentu akan diambil satu buah piksel dengan nilai
tertinggi. Hasilnya akan menjadi gambar baru. Ketika kita
menggunakan 64 filter pada konvolusi maka akan
menghasilkan 64 gambar baru. Max pooling membantu
mengurangi ukuran dari setiap gambar dari proses
konvolusi.
Arsitektur CNN dibentuk dari sebuah layar
konvolusi dan max pooling. Berikut adalah contoh
arsitektur CNN sebuah gambar , pertama masukan
dideteksi atributnya kemudian diterapkan proses
konvolusi dengan 3 filter. Lalu setelah proses konvolusi
dilakukan proses max pooling yang kemudian
menghasilkan 3 buah gambar baru yang memiliki resolusi
lebih kecil. Terakhir, hasil tersebut dimasukkan ke dalam
sebuah hidden layer dari MLP.

42
(Gambar 2.21 Arsitektur CNN)

Untuk mendapatkan hasil yang lebih detail kita


dapat melakukan beberapa kali atau lapisan (konvolusi
dan max pooling) setelah lapisan sebelumnya , sebelum
ke proses akhircyaitu memasukkannya ke hidden layer
sebuah MLP. Contoh gambaran hasilnya adalah pada
kasus face recognition . Mungkin pada proses konvolusi
pertama kita dapat mendeteksi wajah dari seorang
manusia. Lalu proses konvolusi kedua dapat dideteksi
fitur yang lebih detail seperti hidung, mata, dan telinga,
bahkan setelah beberapa lapisan konvolusi dan pooling
dilakukan kita dapat membedakan wajah dari beberapa
orang.

43
BAB III
Dasar – Dasar Machine Learning

3.1 Machine Learning Workflow


Dalam sebuah project machine learning ada
tahapan-tahapan yang perlu dilalui sebelum project
tersebut bisa diimplementasi di tahap produksi. Tahapan-
tahapan tersebut dijelaskan dalam buku Hands on
Machine Learning karya Aurelien Geron seperti diagram
berikut . [4]

(Gambar 3.1 Alur Kerja Machine Learning)

Dalam diagram tersebut proses yang dilakukan iterative


atau berulang . Berikut penjelasan tiap langkah – langkah
nya.
3.1.1 Pengumpulan Data
Proses pengumpulan data seperti yang telah
dijelaskan merupakan langkah awal dan terpenting dalam
membangun model machine learning . Model prediktif
seperti dalam klasifikasi gambar yang akan kita lakukan
harus memiliki data yang baik dari segi mana data
dibangun, jadi praktik pengumpulan data yang baik sangat

44
penting untuk mengembangkan model berperforma
tinggi. Data harus bebas dari kesalahan dan berisi
informasi yang relevan untuk tugas yang akan kita
lakukan.
3.1.2 Exploratory Data Analysis
Exploratory Data Analysis atau EDA merupakan
penyelidikan awal terhadap data dan melihat bagaimana
kualitas data untuk meminimalkan potensi kesalahan
sebelum data benar – benar di proses . Pada tahap ini
dilakukan investigasi awal pada data untuk menemukan
pola, anomali, menguji hipotesis , memahami distribusi,
frekuensi, hubungan antar variabel, dan memeriksa
asumsi dengan teknik statistik dan visualisasi berupa
grafik.
3.1.3 Preprocessing Data
Data preprocessing adalah tahap pengolahan data
lebih lanjut sehingga siap dipakai dalam pengembangan
model ML. Proses ini mengubah dan mentransformasi
fitur-fitur data ke dalam bentuk yang mudah
diinterpretasikan dan diproses oleh algoritma machine
learning. Termasuk di dalam data preprocessing adalah
proses data cleaning dan data transformation yang berupa
standarisasi,normalisasi dan lain - lain.
Beberapa hal yang bisa dilakukan dalam proses
data cleaning adalah: penanganan missing value, data
yang tidak konsisten, duplikasi data, ketidakseimbangan
data (skewness distribution), dan lain -lain. Sementara

45
beberapa hal yang bisa dilakukan untuk proses
transformasi data adalah: scaling atau merubah skala data
agar sesuai dengan skala tertentu, standarisasi,
normalisasi, koneversi data menjadi variabel kategori,
dan sebagainya. Begitu juga proses train-test split yang
semuanya telah dijelaskan dalam materi sebelumnya
merupakan bagian dari data preprocessing.

3.1.4 Model Selection


Model selection bisa didefenisikan menjadi dua
hal yaitu pemilihan learning method atau algoritma ML
dan pemilihan hyperparameter terbaik untuk metode
machine learning yang dipilih.
Kedua proses diatas dilakukan untuk menemukan
performa terbaik model . Pemilihan metode yang tidak
tepat dapat menyebabkan kesimpulan yang menyesatkan
atau performa prediksi yang mengecewakan. Sebagai
contoh, saat kita memiliki kasus klasifikasi biner kita
perlu mempertimbangkan apa model terbaik untuk data
kita, apakah logistic regression atau SVM classifier.
3.1.5 Model Evaluation
Pada tahap Model Evaluation ini kita akan menilai
kinerja model ML pada data baru, yaitu data yang belum
pernah “dilihat” oleh model sebelumnya. Evaluasi model
bertujuan untuk membuat estimasi generalisasi eror dari
model yang dipilih, yaitu, seberapa baik kinerja model
tersebut pada data baru. Idealnya, model machine learning

46
yang baik adalah model yang tidak hanya bekerja dengan
baik pada data training, tapi juga pada data baru.
Oleh karena itu, sebelum mengirimkan model ke
tahap produksi, kita harus cukup yakin bahwa performa
model akan tetap baik dan tidak menurun saat dihadapkan
dengan data baru. Hal tersebut menggambarkan betapa
pentingnya membagi dataset untuk validation juga.
3.1.6 Deployment
Ketika model dievaluasi, model siap untuk dipakai
pada tahap produksi. Caranya adalah dengan menyimpan
model yang telah dilatih dari tahap preprocessing hingga
pipeline prediksi. Kemudian deploy model tersebut ke
tahap produksi untuk membuat prediksi dengan
memanggil kode yang menjalankan perintah prediksinya.
3.1.7 Monitoring
Model yang telah dipakai dalam tahap produksi
masih harus tetap dimonitor untuk menjaga kualitasnya.
Pada tahap produksi model bisa saja menemukan data
yang tidak dikenali sehingga performa model dapat
menurun.
Jika kita bekerja dengan model machine learning
yang datanya terus berubah, kita perlu melakukan update
pada dataset dan melatih ulang model kita secara regular
atau membuat sistem yang dapat membuat proses update
berjalan secara otomatis.

47
3.2 Overfitting, Underfitting dan Good Fit
Salah satu hal yang paling penting untuk
diperhatikan saat mengembangkan model machine
learning adalah mengecek apakah model
tersebut underfit atau overfit. Sebuah model yang layak
untuk di-deploy di tahap produksi adalah model
yang tidak underfit atau overfit. Sebuah model yang tidak
overfit dan underfit juga disebut dengan model good fit.
Dengan membagi dataset menjadi train set dan
test set. Kemudian kita mengembangkan model hanya
dengan train set. Setelah itu kita lakukan pengujian model
terhadap test set , hasil pengujian dapat memberitahu kita
apakah model kita underfit atau overfit.
Overfitting
Overfitting terjadi ketika model memiliki prediksi
yang terlalu baik pada data training, namun prediksinya
buruk pada data testing. Ketika sebuah model overfit,
model tidak dapat melakukan generalisasi dengan baik
sehingga akan membuat banyak kesalahan dalam
memprediksi data-data baru yang ditemui pada tahap
produksi.
Sebuah model yang overfit akan sangat
menyesuaikan dengan dataset. Sebelum men-
deploy model ke tahap produksi, ada teknik sederhana
untuk mengecek apakah model overfit atau tidak. Pada
model klasifikasi jika akurasi model pada data training
tinggi dan data testing rendah, maka model yang Anda

48
kembangkan overfitting. Pada model jenis regresi, jika
model membuat kesalahan yang tinggi pada data testing
maka model tersebut overfitting.
Beberapa cara untuk menghindari overfitting yaitu:
 Memilih model yang lebih sederhana, contohnya
pada data yang memiliki pola linier menggunakan
model regresi linear daripada model decision tree.
 Mengurangi dimensi data contohnya dengan
metode PCA.
 Menambahkan data untuk pelatihan model jika
memungkinkan.

Underfitting
Underfit terjadi ketika model terlalu sederhana
dan tidak mampu untuk menyesuaikan pola yang terdapat
pada data latih. Sebuah model dapat dikatakan underfit
jika memiliki eror yang tinggi pada data training.
Underfitting menandakan bahwa model tersebut belum
cukup baik dalam mengenali pola yang terdapat pada data
latih
Pada kasus klasifikasi, underfitting ditandai ketika
model memiliki akurasi yang rendah pada data training.
Pada kasus regresi, underfitting terjadi ketika model
memiliki tingkat eror yang tinggi.

49
Cara menghindari underfitting adalah dengan
menyeleksi model atau meningkatkan performa
dengan tuning hyperparameter. Kualitas data juga sangat
berpengaruh. Model machine learning yang sangat
kompleks sekalipun tidak akan memiliki performa yang
baik jika data yang digunakan memiliki kualitas yang
buruk.
Good Fit
Model ML yang baik adalah model good fit atau
model yang tidak underfit maupun overfit. Sebuah model
good fit akan memprediksi lebih baik dan membuat lebih
sedikit kesalahan di tahap produksi. Contoh dari model
yang tidak good fit seperti di bawah.

(Gambar 3.3 Contoh gambar yang tidak good fit)

Berikut sebuah tabel yang membandingkan model yang


underfitting, good fit, dan overfitting pada masalah
regresi dan klasifikasi.

50
Underfitting Good Fit Overfitting
Tanda - Nilai Error training - Nilai error training - Nilai error training
tinggi sedikit lebih rendah sangat rendah
- Nilai Error training daripada nilai error - Nilai error training
mendekati error test test lebih rendah
- Nilai Bias tinggi daripada error test
- Nilai variance
tinggi

Ilustrasi
Regresi

Ilustrasi
Klasifikasi

(Tabel 3.1 Perbandingan Underfitting , good fit dan Underfitting)

3.3 Model Selection


Sebuah model machine learning memiliki
parameter yang dapat di tuning. Contohnya ketika kita
memasukkan parameter “n_cluster” pada model K-
Means.

# membuat objek KMeans


Km = KMeans(n_clusters = 10).fit(X)

51
Ketika mengembangkan model K-Means, mengubah
parameter yaitu mengubah nilai n_cluster merupakan
bentuk dari tuning parameter.
Tuning Parameter adalah istilah yang digunakan
untuk meningkatkan performa model machine learning.
Proses ini mirip dengan proses tweak. Pada model K-
means di atas, jumlah cluster yang kurang atau terlalu
banyak akan menyebabkan hasil pengklasteran kurang
optimal. Tuning parameter dalam hal ini adalah
bereksperimen mencari parameter terbaik untuk model K-
Means tersebut.
Tujuan melakukan tuning pada model yaitu agar
model memiliki tingkat eror yang lebih kecil atau akurasi
yang lebih baik. Berbagai model machine learning
dari library SKLearn memiliki parameter-parameter yang
bisa kita ubah untuk meningkatkan performa dari sebuah
model tersebut. Kita bisa menggunakan salah satu teknik
untuk menguji beberapa parameter sekaligus contohnya
dengan Grid Search.

3.4 Menambahkan atau Mengurai Fitur


Pada dataset kita telah mengenal istilah fitur atau
atribut. Nyatanya fitur yang kita dapatkan saat
pengambilan data tidak semua bagus untuk
pengembangan model. Oleh karena itu kita mengenal
istilah rekayasa fitur. Dikatakan bahwa tahap rekayasa
fitur merupakan salah satu tahapan yang memakan

52
banyak waktu. Jadi, rekayasa fitur itu pastinya penting.
Berikut beberapa teknik dalam rekayasa fitur.
1. Binning
Binning adalah pengelompokan nilai sesuai
dengan batas besaran yang ditentukan. Pada binning, data
dikelompokkan dalam tiap ‘bin’ sesuai dengan nilai yang
cocok dengan bin tersebut. Bin sederhananya adalah
sebuah kategori yang menampung nilai-nilai tertentu.
Ada beberapa jenis binning di mana salah satu
contohnya adalah binning jarak. Pada binning jarak, nilai-
nilai dari sebuah atribut akan dikategorikan ke dalam
jumlah bin tertentu yang memiliki interval sama besar.
Pada gambar dibawah dapat dilihat contoh kumpulan nilai
yang dibagi menjadi 4 bin, 8 bin, dan 16 bin.

(Gambar 3.4 Grafik interval 4 bin, 8 bin, dan 16 bin)

Binning bisa membantu untuk


menghindari overfitting. Namun binning juga
mengorbankan informasi yang terkandung dari sebuah
atribut sehingga, penggunaanya perlu dilakukan dengan
teliti.

53
2. Splitting
Memisahkan sebuah atribut menjadi atribut-
atribut baru juga merupakan salah satu cara yang berguna.
Dengan splitting kita membuat atribut lebih mudah
dipahami oleh model machine learning.. Memisahkan
sebagian data dalam kolom menjadi fitur baru
memberikan keuntungan antara lain meningkatkan
performa model dengan menemukan informasi berharga
dan membuat kita lebih mudah untuk melakukan proses
binning serta grouping.
3. Interaction feature
Dalam model machine learning, kita juga bisa
menciptakan fitur atau atribut baru dari atribut-atribut
yang ada. Mengkombinasikan dua atribut kadang bisa
menjelaskan varian data dengan lebih baik dibanding dua
atribut yang dioperasikan secara terpisah. Membuat
atribut baru melalui interaksi antar atribut disebut sebagai
interaction feature. Sederhananya, interaction feature
adalah perkalian produk antara dua buah fitur. Analoginya
adalah logika AND.

54
BAB IV
Tensorflow

4.1 Pengenalan Tensorflow


TensorFlow adalah platform open source end-to-
end untuk machine learning. Tensorflow berisi tools,
library, dan resource dari komunitas untuk
mengembangkan , melatih serta mengimplementasikan
model Machine Learning secara mutakhir.

(Gambar 4.1 Logo TensorFlow)

Data pada Machine Learning umumnya


membutuhkan komputasi dalam beberapa bentuk atau
tipe. Oleh karena itu, kita sering melihat representasi data
baik itu numerik seperti int32, float32, atau string . Tensor
diartikan sebagai wadah atau tempat yang dapat
menampung data tersebut kedalam array berdimensi -n.
Sedangkan Flow mewakili grafik aliran data dari
seluruh proses komputasi dan state dalam algoritma
machine learning, termasuk operasi matematika. Grafik
aliran data tersebut merepresentasikan komunikasi antara

55
sub komputasi secara eksplisit sehingga mudah untuk
menjalankan penghitungan independen secara paralel.
Berikut merupakan skema aliran data TensorFlow
untuk pipeline pelatihan berbentuk subgraph dimulai dari
membaca data masukan, preprocessing, training, dan
checkpointing [5].

(Gambar 4.2 Alur kerja TensorFlow)

4.2 Keunggulan Tensorflow


TensorFlow menyediakan semua tools dan library
yang kita butuhkan untuk proyek machine learning dari
tahap training model hingga tahap produksi atau disebut
end-to-end platform machine learning.
Berikut beberapa kelebihan dari Tensorflow :
 Bisa dijalankan di hampir semua platform (multi
platform .
 Mempunyai performa terbaik dengan kemampuan
melakukan iterasi dan melatih model ML kita
secara cepat sehingga mampu menjalankan lebih
banyak eksperimen.

56
 Skalabilitas komputasi yang tinggi pada kumpulan
data yang sangat besar.
 Pembuatan model machine learning yang mudah
dengan beberapa level abstraksi sesuai kebutuhan.
 Menyediakan jalur langsung ke produksi, baik itu
pada server, perangkat mobile atau web sehingga
memudahkan kita melakukan pipeline machine
learning hingga ke level produksi.
Kita bisa mempelajari dokumentasi dari TensorFlow
beserta tutorial dasar pada situs resmi nya pada laman
https://www.tensorflow.org/

4.3 Keras Library

(Gambar 4.3 Logo Keras Library)

Keras merupakan sebuah Apllication


Programming Intercae (API) untuk mengembangkan
model machine learning khusus jaringan saraf tiruan
(artificial neural network). Dengan Keras kita dapat
membuat sebuah multi layer perceptron (MLP)
dan Convolutional Neural Networks (CNNs) dengan
sangat mudah. Aplikasi pada Keras sangat luas di mana
kita dapat membangun jaringan saraf tiruan untuk

57
klasifikasi gambar, pemrosesan bahasa alami, pengenalan
suara, dan prediksi time series.
Komponen utama pembangun sebuah neural
networks adalah layer begitu juga dalam Keras. Sebuah
layer pada Keras, sama dengan sebuah layer pada MLP
yang memiliki beberapa perceptron.
4.4 Deployment dan Feedback
Proyek machine learning umumnya terdiri dari
tiga fase berbeda yaitu :
1. Training , kita melakukan proses pelatihan atau
training model dengan data yang kita miliki.
Selain itu, kita juga menguji model dengan data uji
dan melatihnya kembali sampai kita merasa
performanya baik atau sesuai harapan.
2. Saving model , kita menyimpan model menjadi
file yang bisa digunakan di server produksi.
3. Deployment , kita menerapkan model yang telah
disimpan tadi ke server produksi dan siap
membuat prediksi pada data baru
Kita bisa melakukan proses deployment pada tiga
platform yaitu.
1. Mobile dan IoT (internet of things).
2. Cloud menggunakan TensorFlow serving.
3. Browser dan Node.js dengan menggunakan
TensorFlow.js.

58
Selanjutnya kita akan membahas feedback yaitu
komponen penting dalam pemodelan sistem khususnya
dalam siklus pengembangan perangkat lunak. Feedback
loops adalah proses di mana perubahan atau output dari
salah satu bagian sistem dikirimkan kembali ke dalam
sistem sebagai input sehingga mempengaruhi tindakan
atau output sistem selanjutnya.
Ketika model telah di-deploy di tahap produksi,
sangat penting untuk selalu memonitor kinerja model
Anda. Memonitor kinerja atau performa model dapat
dilakukan dengan teknik yang sama saat kita
mengembangkannya. Pada model klasifikasi, hal yang
dimonitor adalah akurasinya terhadap data-data baru yang
ditemui. Sedangkan pada model regresi, tingkat erornya
yang dimonitor.
Kita juga bisa mendapatkan feedback dari sisi
pengguna. Saat dijalankan dengan benar, feedback
loops dapat membantu kita membuat model menjadi lebih
baik (feedback positif). Tetapi, feedback loops juga bisa
berujung pada konsekuensi negatif yang tidak diinginkan
seperti bias, atau pengukuran performa model yang tidak
akurat .

4.5 Adjusment dan Relearning


Umumnya sebuah model machine learning yang
di-deploy kinerjanya akan turun seiring waktu karena
model akan terus menemui lebih banyak data baru seiring

59
waktu.Untuk mengatasi masalah ini, ada 2 teknik dasar
untuk menjaga agar model selalu bisa belajar dengan data
baru yaitu manual retraining dan continuous learning.
1. Manual Retraining
Teknik manual retraining melakukan ulang
proses pelatihan model dari awal. Data baru yang
dijumpai di tahap produksi akan digabung dengan data
lama. Model dilatih ulang dari awal sekali menggunakan
data yang telah campur.
Proses ini akan sangat memakan waktu, namun
manual retraining memungkinan kita menemukan model-
model baru atau atribut-atribut baru yang menghasilkan
performa lebih baik.

2. Continuous Learning
Teknik continuous learning dilakukan dengan
menjaga model kita up-to-date dengan menggunakan
sistem terotomasi dalam pelatihan ulang model. Alur dari
continuous learning yaitu:
1. Menyimpan data-data baru yang ditemui pada
tahap produksi..
2. Pengujian akurasi model dilakukan ketika data
baru yang dikumpulkan dirasa sudah cukup.
3. Jika akurasi model menurun seiring waktu,
gunakan data baru, atau kombinasi data lama dan

60
data baru untuk melatih dan men-deploy ulang
model.

61
BAB V
Proyek Prediksi Gambar

5.1 Persiapkan Data


Dalam klasifikasi gambar kali ini kita akan
menggunakan dataset yang berisi kumpulan gambar
tangan dengan tanda kertas , batu , dan gunting yang
dipisah dalam folder masing – masing .

(Gambar 5.1 Dataset Kertas)

62
(Gambar 5.2 Dataset Batu)

(Gambar 5.3 Dataset Gunting)


5.2 Import Library
Pertama, kita akan mengimpor library Keras dari
TensorFlow . Kemudian kita akan menggunakan fungsi –
fungsi yang telah tersedia seperti ImageDataGenerator

63
untuk preprocessing data berbentuk gambar. Serta
RMSprop untuk memanfaatkan optimizer yang tersedia .
Optimizer yang akan kita gunakan nantinya yaitu Adam.
Selanjutnya kita akan mengimpor sebuah fungsi
dari library sklearn yang telah didefinisikan yaitu
train_test_split untuk memisahkan dataset gambar
menjadi dua bagian yaitu train set dan test set .

import tensorflow as tf
from tensorflow.keras.optimizers import RMSprop
from tensorflow.keras.preprocessing.image import ImageDataGenerator
print(tf.__version__)

import sklearn
from sklearn import datasets
from sklearn.model_selection import train_test_split
import os

5.3 Upload Resource


Proses upload file membutuhkan waktu yang lama
karena dataset memiliki ribuan data yang akan di latih.
Kita bisa mengupload file zip kita yang bernama ke
direktori /tmp/rockpaperscissors.zip. Sebelumnya kita
perlu menginstal splitfolders terlebih dahulu untuk
menggunakannya .

!pip install split-folders tqdm

64
1. Upload file di direktori
‘tmp’

3. File setelah di ekstrak


dan split

2. File sebelum di ekstrak

(Gambar 5.4 Direktori upload file zip pada Google Colaboratory)

5.4 Ekstrasi File gambar


Pada tahap ini kita membutuhkan bantuan
splitfolders dan zipfile untuk mengekstrak file zip ,
membaca kemudian memisahkan data dalam train set
menjadi dua bagian lagi untuk train set 60 % dan untuk
validation set 40% yang ditunjukan dalam ratio=(.6,.4)
tersebut .
Setelah itu data akan dimasukkan ke direktori nya
masing - masing menggunakan fungsi os.path.join
(nama_direktori).

# melakukan ekstraksi pada file zip


import zipfile,os
import splitfolders

65
local_zip = '/tmp/rockpaperscissors.zip'
zip_ref = zipfile.ZipFile(local_zip, 'r')
zip_ref.extractall('/tmp')
zip_ref.close()

base_dir = '/tmp/rockpaperscissors/rps-cv-images'
splitfolders.ratio(base_dir, output='/tmp/rockpaperscissors', seed=
1337 ,ratio=(.6,.4))
train_dir = os.path.join('/tmp/rockpaperscissors', 'train')
validation_dir = os.path.join('/tmp/rockpaperscissors', 'val')

Hasil Running :
Copying files: 2188 files [00:00, 3085.57 files/s]

5.5 Train, Test, Validation Dataset Split


Dalam direktori untuk train set dan validation set
terdapat 3 folder yang memisahkan gambar kertas , batu
dan gunting.

rock_dir = os.path.join(base_dir, 'rock')


paper_dir = os.path.join(base_dir, 'paper')
scissors_dir = os.path.join(base_dir, 'scissors')

Untuk memastikan direktori sukses dibuat ikuti kode


berikut .

os.listdir('/tmp/rockpaperscissors/train')

66
os.listdir('/tmp/rockpaperscissors/val')

Hasil Running :
['scissors', 'paper', 'rock']
Kemudian kita lakukan train dan test split masing –
masing direktori tersebut.

train_rock_dir,validation_rock_dir = train_test_split(os.listdir(roc
k_dir),test_size =0.4)
train_paper_dir,validation_paper_dir = train_test_split(os.listdir(p
aper_dir),test_size =0.4)
train_scissors_dir,validation_scissors_dir = train_test_split(os.list
dir(scissors_dir),test_size =0.4)

# membuat direktori rock pada direktori data training


train_rock_dir = os.path.join(train_dir, 'rock')

# membuat direktori paper pada direktori data training


train_paper_dir = os.path.join(train_dir, 'paper')

# membuat direktori scissors pada direktori data training


train_scissors_dir = os.path.join(train_dir, 'scissors')

# membuat direktori rock pada direktori data validasi


validation_rock_dir = os.path.join(validation_dir, 'rock')

67
# membuat direktori paper pada direktori data validasi
validation_paper_dir = os.path.join(validation_dir, 'paper')

# membuat direktori scissors pada direktori data validasi


validation_scissors_dir = os.path.join(validation_dir, 'scissors')

5.6 Pre-processing : Image Augmentation


train_datagen = ImageDataGenerator(
rescale=1./255,
rotation_range=20,
horizontal_flip=True,
shear_range = 0.2,
fill_mode = 'nearest')

test_datagen = ImageDataGenerator(
rescale=1./255,
rotation_range=20,
horizontal_flip=True,
shear_range = 0.2,
fill_mode = 'nearest')
train_generator = train_datagen.flow_from_directory(
train_dir, # direktori data latih
target_size=(150, 150), # mengubah resolusi seluruh gamba
r menjadi 150x150 piksel
batch_size=32,
class_mode='categorical')

68
validation_generator = test_datagen.flow_from_directory(
validation_dir, # direktori data validasi
target_size=(150, 150), # mengubah resolusi seluruh gambar
menjadi 150x150 piksel
batch_size=32,
class_mode='categorical')

Hasil running :
Found 1312 images belonging to 3 classes.

Found 876 images belonging to 3 classes.

Dalam klasifikasi gambar, setiap piksel pada


gambar memiliki nilai dari 0 sampai 255. Kita perlu
melakukan normalisasi dengan membagi setiap pixel pada
gambar dengan 255. Dengan nilai yang telah
dinormalisasi, neural networks dapat belajar dengan lebih
baik.
5.7 Build Arsitektur Model CNN
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape
=(150, 150, 3)),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Conv2D(128, (3,3), activation='relu'),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Conv2D(256, (3,3), activation='relu'),

69
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dense(3, activation='softmax')
])

Dalam pembuatan sebuah MLP kita perlu


mendefinisikan sebuah input layer, hidden layer dan
sebuah output layer. Untuk membuat sebuah model MLP
di Keras kita bisa memanggil fungsi
tf.keras.models.Sequential([...]) dan menampungnya
pada suatu variabel. Model sequential pada keras adalah
tumpukan layer-layer, yang sama seperti pada sebuah
MLP.
Berikut kita mendefinisikan 3 layer utama pada model
sequential:
 Input layer : Adalah layer yang memiliki
parameter ‘input_shape’. Input_shape sendiri
adalah resolusi dari gambar-gambar pada data
training. Dalam kasus ini kita menggunakan
gamabar dengan ukuran 150x150 pixel. Sehingga
input shape-nya adalah (150, 150). Sebuah layer
Flatten pada Keras akan berfungsi untuk
meratakan input. Meratakan di sini artinya
mengubah gambar yang merupakan matriks 2
dimensi menjadi larik 1 dimensi. Pada kasus kita
sebuah gambar yang merupakan matriks 150x 150
elemen akan diubah menjadi array satu dimensi
70
sebesar 22.500 elemen.

 Hidden layer : Dense layer pada Keras merupakan


layer yang dapat dipakai sebagai hidden layer dan
output layer pada sebuah MLP. Parameter unit
merupakan jumlah perceptron pada sebuah layer.
Kita menggunakan activation function ReLU
(Rectified Linear Unit) atau fungsi aktivasi lain
untuk hidden layer kita.

 Output layer : Output layer juga didefinisikan


dengan membuat sebuah Dense layer. Jumlah unit
menyesuaikan dengan jumlah label pada dataset.
Untuk activation function pada layer output,
gunakan Sigmoid ketika hanya terdapat 2
kelas/label pada dataset. Untuk dataset yang
memiliki 3 kelas atau lebih, gunakan fungsi
aktivasi Softmax. Fungsi aktivasi softmax akan
memilih kelas mana yang memiliki probabilitas
tertinggi. Untuk data kali ini kita akan
menggunakan fungsi aktivasi softmax karena
terdapat 3 kelas.

5.8 Compile dan Latih model


model.compile(loss='categorical_crossentropy',
optimizer=tf.optimizers.Adam(),
metrics=['accuracy'])

71
Setelah membuat arsitektur dari MLP, model kita
belum bisa melakukan apa-apa. Agar model bisa belajar,
kita perlu memanggil fungsi compile pada model kita dan
menspesifikasikan optimizer dan loss function.
Untuk optimizer kita menggunakan Optimizer
Adam. Selanjutnya untuk loss function kita dapat
menggunakan sparse categorical entropy atau cross
categorical entropy pada kasus klasifikasi 3 kelas atau
lebih. Untuk masalah 2 kelas, loss function yang lebih
tepat adalah binary cross entropy. Parameter metrics
berfungsi untuk menampilkan metrik yang dipilih pada
proses training model.
Setelah membuat arsitektur MLP dan menentukan
optimizer serta loss functionnya, kita dapat melatih model
kita pada data training. Parameter epoch merupakan
jumlah berapa kali sebuah model melakukan propagasi
balik (backward pass).

history = model.fit(
train_generator,
steps_per_epoch=25,
epochs=20,
validation_data=validation_generator,
validation_steps=5,
verbose=2,
)

72
Hasil Running :
Epoch 1/20
25/25 - 49s - loss: 1.1269 - accuracy: 0.3400 - val_loss: 1.0576 -
val_accuracy: 0.3750
Epoch 2/20
25/25 - 47s - loss: 0.8833 - accuracy: 0.6000 - val_loss: 0.7307 -
val_accuracy: 0.7812
Epoch 3/20
25/25 - 47s - loss: 0.5271 - accuracy: 0.8175 - val_loss: 0.4269 -
val_accuracy: 0.8250
Epoch 4/20
25/25 - 47s - loss: 0.2685 - accuracy: 0.9013 - val_loss: 0.3536 -
val_accuracy: 0.9000
Epoch 5/20
25/25 - 48s - loss: 0.2136 - accuracy: 0.9150 - val_loss: 0.2942 -
val_accuracy: 0.9062
Epoch 6/20
25/25 - 48s - loss: 0.1671 - accuracy: 0.9350 - val_loss: 0.2095 -
val_accuracy: 0.9438
Epoch 7/20
25/25 - 47s - loss: 0.1881 - accuracy: 0.9400 - val_loss: 0.1893 -
val_accuracy: 0.9500
Epoch 8/20
25/25 - 47s - loss: 0.1352 - accuracy: 0.9575 - val_loss: 0.1294 -
val_accuracy: 0.9625
Epoch 9/20
25/25 - 47s - loss: 0.1343 - accuracy: 0.9450 - val_loss: 0.1388 -
val_accuracy: 0.9625
Epoch 10/20
25/25 - 48s - loss: 0.1191 - accuracy: 0.9663 - val_loss: 0.1583 -
val_accuracy: 0.9563
Epoch 11/20
25/25 - 49s - loss: 0.2061 - accuracy: 0.9262 - val_loss: 0.1232 -
val_accuracy: 0.9625
Epoch 12/20

73
25/25 - 48s - loss: 0.1070 - accuracy: 0.9625 - val_loss: 0.0635 -
val_accuracy: 0.9812
Epoch 13/20
25/25 - 48s - loss: 0.1112 - accuracy: 0.9688 - val_loss: 0.1486 -
val_accuracy: 0.9563
Epoch 14/20
25/25 - 48s - loss: 0.0712 - accuracy: 0.9737 - val_loss: 0.0886 -
val_accuracy: 0.9500
Epoch 15/20
25/25 - 48s - loss: 0.0861 - accuracy: 0.9688 - val_loss: 0.1132 -
val_accuracy: 0.9750
Epoch 16/20
25/25 - 48s - loss: 0.0636 - accuracy: 0.9775 - val_loss: 0.1641 -
val_accuracy: 0.9563
Epoch 17/20
25/25 - 48s - loss: 0.0621 - accuracy: 0.9812 - val_loss: 0.0335 -
val_accuracy: 0.9812
Epoch 18/20
25/25 - 49s - loss: 0.0907 - accuracy: 0.9688 - val_loss: 0.1496 -
val_accuracy: 0.9688
Epoch 19/20
25/25 - 49s - loss: 0.0660 - accuracy: 0.9787 - val_loss: 0.1093 -
val_accuracy: 0.9750
Epoch 20/20
25/25 - 49s - loss: 0.0418 - accuracy: 0.9837 - val_loss: 0.0474 -
val_accuracy: 0.9812

5.9 Prediction Test


import numpy as np
from google.colab import files
from keras.preprocessing import image
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

74
%matplotlib inline

uploaded = files.upload()

for fn in uploaded.keys():

# predicting images
path = fn
img = image.load_img(path, target_size=(150,150))
imgplot = plt.imshow(img)
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)

images = np.vstack([x])
classes = model.predict(images, batch_size=10)

print(fn)
if classes[0][0]==1:
print('Paper')
elif classes[0][1]==1:
print('Rock')
elif classes[0][2]==1:
print('Scissors')

Langkah terakhir kita melakukan prediksi dengan


data baru . Dengan fungsi model.predict parameter
batch_size 10 . Didalam Keras kita dapat memprediksi
beberapa nilai pada saat yang sama, misalnya kita
memasukkan vektor 100 elemen, Keras dapat menghitung

75
satu prediksi untuk setiap elemen, memberikan 100
output. Perhitungan tersebut dapat dilakukan dalam batch,
yang ditentukan oleh batch_size. Hal tersebut dilakukan
untuk mencegah pada saat CPU/GPU RAM tidak bisa
memasukkan semua data di pada saat yang sama dan
pemrosesan batch diperlukan.
Hasil Prediksi :

(Gambar 5.5 Hasil Prediksi)

76
DAFTAR PUSTAKA

[1] Finlay, Janet. (1996). An Introduction To Artificial


Intelligence. United Kingdom: CRC Press.

[2] Mitchell, Tom M. (1986). Machine Learning : A Guide


to Current Research. USA: Springer US.

[3] Burkov, Andriy (2019). The Hundred Page Machine


Learning Book.Canada.

[4] Geron, Aurelien (2017). Hands-On Machine Learning


with Scikit-Learn & Tensorflow.Beijing: O'Reilly.

[5] S. Campbell, et all. Deep Learning vs. Traditional


Computer Vision. Tersedia di :
https://arxiv.org/ftp/arxiv/papers/1910/1910.13796.pdf.

77

Anda mungkin juga menyukai