# Pengenalan Konsep


# Learning


# Pembelajaran Mesin dan Deep


## 𝐔#𝐕# 𝐔#𝐕#𝐖#𝑻


## Jan Wira Gotama Putra


## Daftar Isi

- Bagian I Pengetahuan Dasar
- 1 Pengenalan
   - 1.1 Kecerdasan Buatan
   - 1.2 Intelligent Agent
   - 1.3 Konsep Belajar
   - 1.4 Statistical Learning Theory
   - 1.5 Training, Validation, Testing Set
   - 1.6 Supervised Learning
   - 1.7 Regresi
   - 1.8 Semi- _supervised_ Learning
   - 1.9 Un _supervised_ Learning
   - 1.10 Proses Belajar
   - 1.11 Tips
   - 1.12 Contoh Aplikasi
   - Soal Latihan
- 2 Fondasi Matematis
   - 2.1 Probabilitas
   - 2.2 Probability Density Function
   - 2.3 Expectation dan Variance
   - 2.4 Bayesian Probability
   - 2.5 Gaussian Distribution
   - 2.6 Apakah Karakteristik Sampel Mencerminkan Populasi?
   - 2.7 Teori Keputusan
   - 2.8 Hypothesis Testing
   - 2.9 Teori Informasi
   - 2.10 Matriks
   - 2.11 Bacaan Lanjutan
   - Soal Latihan
- 3 Data Analytics
   - 3.1 Pengenalan Data Analytics
   - 3.2 Nilai Atribut dan Transformasi
   - 3.3 Ruang Konsep
   - 3.4 Linear Separability DAFTAR ISI XI
   - 3.5 Seleksi Fitur
   - 3.6 Classification, Association, Clustering
   - 3.7 Mengukur Kinerja
   - 3.8 Evaluasi Model
   - 3.9 Kategori Jenis Algoritma
   - 3.10 Tahapan Analisis
   - Soal Latihan
- Bagian II Algoritma Pembelajaran Mesin
- 4 Algoritma Dasar
   - 4.1 Naive Bayes
   - 4.2 K- _mean_ s
   - 4.3 K-nearest-neighbor
   - Soal Latihan
- 5 Model Linear
   - 5.1 Curve Fitting dan Error Function
   - 5.2 Binary Classification
   - 5.3 Log-linear Binary Classification
   - 5.4 Multi- _class_ Classification
   - 5.5 Multi-label Classification
   - 5.6 Pembelajaran sebagai Permasalahan Optimisasi
   - 5.7 Batasan Model Linear
   - 5.8 Overfitting dan Underfitting
   - 5.9 Regularization
   - 5.10 Transformasi Data
   - 5.11 Bacaan Lanjutan
   - Soal Latihan
- 6 Pohon Keputusan
   - 6.1 Inductive Learning
   - 6.2 ID3
   - 6.3 Isu pada ID3
   - 6.4 Pembagian Ruang Konsep
   - Soal Latihan
- 7 Support Vector Classifier
   - 7.1 Maximal Margin Classifier
   - 7.2 Support Vector Classifier
   - 7.3 Support Vector Machine
   - 7.4 Klasifikasi lebih dari dua kelas
   - 7.5 Tips
   - Soal Latihan XII DAFTAR ISI
- 8 Hidden Markov Model
   - 8.1 Probabilistic Reasoning
   - 8.2 Generative Model
   - 8.3 Part-of-speech Tagging
   - 8.4 Hidden Markov Model Tagger
   - 8.5 Algoritma Viterbi
   - 8.6 Proses Training Hidden Markov Model
   - Soal Latihan
- 9 Seleksi Fitur dan Metode Evaluasi
   - 9.1 Feature Engineering
   - 9.2 High Dimensional Data
   - 9.3 Feature Selection
   - 9.4 Evaluasi Kinerja Model
   - 9.5 Cross Validation
   - 9.6 Replicability, Overclaiming dan Domain Dependence
   - Soal Latihan
- 10 Clustering
   - 10.1 K- _mean_ s, Pemilihan Centroid, Kemiripan Data
   - 10.2 Hierarchical Clustering
   - 10.3 Evaluasi
   - Soal Latihan
- Bagian III Artificial Neural Network
- 11 Feed _forward_ Neural Network
   - 11.1 Definisi Artificial Neural Network
   - 11.2 Single Perceptron
   - 11.3 Permasalahan XOR
   - 11.4 Multi _layer_ Perceptron
   - 11.5 Interpretability
   - 11.6 Binary Classification
   - 11.7 Multi- _class_ Classification
   - 11.8 Multi-label Classification
   - 11.9 Deep Neural Network
   - 11.10 Tips
   - 11.11 Regularization and Dropout
   - 11.12 Vanishing and Exploding Gradients
   - 11.13 Rangkuman
   - Soal Latihan
- 12 Auto _encoder_
   - 12.1 Representation Learning DAFTAR ISI XIII
   - 12.2 Singular Value Decomposition
   - 12.3 Ide Dasar Auto _encoder_
   - 12.4 Resisting Perturbation
   - 12.5 Representing Context: Word Embedding
   - 12.6 Tips
   - Soal Latihan
- 13 Arsitektur Neural Network
   - 13.1 Convolutional Neural Network
   - 13.2 Recurrent Neural Network
   - 13.3 Part-of-speech Tagging Revisited
   - 13.4 Sequence to Sequence
   - 13.5 Arsitektur Lainnya
   - 13.6 Architecture Ablation
   - 13.7 Transfer Learning
   - 13.8 Multi- _task_ Learning
   - Soal Latihan
- Bagian IV Aplikasi dan Topik Tambahan
- 14 Penerapan Pembelajaran Mesin
   - 14.1 Sistem Rekomendasi
   - 14.2 Peringkasan Dokumen
   - 14.3 Konklusi
   - 14.4 Saran Buku Lanjutan
   - Soal Latihan
- Referensi


## 12 Auto _encoder_

```
“The goal is to turn data into
information, and information
into insight.”
```
```
Carly Fiorina
```
Bab ini memuat materi yang relatif sulit (karena agakhigh level). Bab
ini memuat materi _autoencoder_ serta penerapannya pada pemrosesan bahasa
alami ( _natural language processing_ –NLP). Berhubung aplikasi yang diceritakan
adalah aplikasi pada NLP, kami akan memberi sedikit materi (background
_knowledge_ ) agar bisa mendapat gambaran tentang persoalan pada
domain tersebut. Bagi yang tertarik belajar NLP, kami sa _rank_ an untuk membaca
buku [64]. Teknik yang dibahas pada bab ini adalah _representation_
_learning_  untuk melakukan pengurangan dimensi pada _feature vector_ (dimensionality
reduction), teknik ini biasanya digolongkan sebagai _unsupervised_
_learning_. Artinya, _representation learning_ adalah mengubah suatu representasi
menjadi bentuk representasi lain yang ekuvalen, tetapi berdimensi lebih
rendah; sedemikian sehingga informasi yang terdapat pada representasi asli
tidak hilang/terjaga. Ide dasar teknik ini bermula dari dekomposisi matriks
pada aljabar linear.


## 11 Feed _forward_ Neural Network

```
“If you want to make
information stick, it’s best to
learn it, go away from it for a
while, come back to it later,
leave it behind again, and once
again return to it–to engage with
it deeply across time. Our
memories naturally degrade, but
each time you return to a
_memory_, you reactivate its neural
_network_  and help to lock it in.”
Joshua Foer
```
Penulis cukup yakin pembaca sudah menanti-nanti bagian ini. Bagian
ketiga membahas algoritma _machine learning_ yang sedang populer belakangan
ini, yaitu _artificial neural network_. Buku ini lebih berfokus pada penggunaan
artifical neural networkuntuk _supervised learning_. Pembahasan dimulai dari
hal-hal sederhana ( _single perceptron_, _multilayer perceptron_ ) sampai yang lebih
kompleks. Sebelum membaca bab ini, ada baiknya kamu mengulang membaca
bab 5 karena memberikan fondasi matematis untuk mengerti bab ini.


## 10 Clustering

```
“Most of us cluster somewhere in
the middle of most statistical
distributions. But there are lots
of bell curves, and pretty much
everyone is on a tail of at least
one of them. We may collect
st _range_ memorabillia or read
esoteric books, hold unsual
religious beliefs or wear
odd-sized shoes, suffer rare
diseases or enjoy obscure
moveis.”
Virginia Postrel
```
Pada bab 4, kamu sudah mempelajari salah satu teknik _clustering_ yang
cukup umum yaitu K- _mean_ s. Bab ini akan mengupas _clustering_ secara lebih
dalam. Kami sa _rank_ an kamu untuk membaca paper [41], walaupun relatif
lama, tetapi paper tersebut memberikan penjelasan yang mudah dimengerti
tentang _clustering_. Selain itu, kamu juga dapat membaca _paper_ oleh Saad et
al. [42].
_Clustering_ adalah pengelompokkan data dengan sifat yang mirip. Data
untuk _clustering_ tidak memiliki label (kelas). Secara umum, algoritma _clustering_ dapat
dikategorikan menjadi dua macam berdasarkan hasil yang dinginkan
[43]: (1) _partitional_, yaitu menentukan partisi sebanyakKdan (2) _hierarchical_,
yaitu mengelompokan data berdasarkan struktur taksonomi. Contoh algoritma _partitional_ adalah _K-means_ pada
subbab 10.1, sementara contoh
algoritma _hierarchical_ adalah _agglomerative clustering_ pada subbab 10.2.

136 10 Clustering


## 6 Pohon Keputusan

```
“Some _time_ s you make the right
decision, some _time_ s you make
the decision right.”
Phil McGraw
```
Bab ini akan menjelaskan salah satu varian pohon keputusan yaitu ID3
oleh Quinlan [33, 34] yang terinspirasi oleh teori informasi [35]. Algoritma ini
sudah cukup tua, tetapi layak dimengerti. ID3 adalah salah satu varian dari
_supervised learning_.


## Bagian III Artificial Neural Network


## 7 Support Vector Classifier

```
“More data beats clever
algorithms, but better data
beats more data.”
Peter Norvig
```
Saat membaca judul bab ini, kamu mungkin berpikir bahwa _support vector_
machineakan dibahas.Support vector classifierdan _support vector machine_ adalah
dua hal yang berbeda, walau kedua istilah tersebut sering digunakan
pada konteks yang mirip [20].Support vector classifiersesungguhnya
adalah konsep yang lebih sederhana. Walaupun bab ini menyinggung kulit
_support vector machine_, kami tidak membahas secara rinci. Akan tetapi, kami
berharap pembaca mampu mendapatkan intuisi. Kamu dapat menganggap
bab ini sebagai kelanjutan cerita bab 5. Referensi utama bab ini adalah buku
karangan James et al. [20].


## 3 Data Analytics

```
“Hiding within those mounds of
_data_  is knowl _edge_ that could
change the life of a patient, or
change the world”
Atul Butte
```
Bab ini memuat penjelasan tahapan-tahapan umum untuk analisis data,
serta beberapa karakteristik tipe data. Materi pada bab ini dapat dianggap
sebagai kerangka berpikir ( _framework_ ) atau langkah kerja. Karena buku ini
hanya bersifat pengantar, materi yang disampaikan mungkin kurang lengkap.
Penulis menya _rank_ an pembaca untuk membaca buku oleh Witten et al. [21]
dan Jeff Leek [22].


## 2 Fondasi Matematis

```
“He uses statistics as a drunken
man uses lamp posts – for
support rather than for
illumination.”
```
```
Andrew Lang
```
Mungkin saat pertama kali membaca bab ini, kamu merasa bab ini tidak
masuk akal atau kurang dibutuhkan. Seiring membaca buku ini, mungkin
bab ini akan sering dikunjungi kembali. Bab ini hanyalah pengingat materi
yang sudah kamu pernah pelajari saja (semacamcheatsheet). Kamu boleh
melewati bab ini apabila sudah familiar dengan materi probabilitas, statistika,
serta aljabar linier. Seharusnya, bab ini memang diberikan paling awal. Tetapi
penulis khawatir pembaca mungkin merasa buku ini tidak menarik apabila
bab ini diberikan paling awal.
Bab ini memuat sekilas tentang probabilitas, statistika, dan operasi matriks.
Tentunya untuk mengerti materi tersebut sebaiknya kamu mengambil
kuliah khusus berkaitan karena kamu diharapkan sudah memiliki cukup
latar pengetahuan, bab ini sebenarnya hanyalah sekilas pengingat. Kami akan
banyak memakai contoh-contoh dari buku Bishop [8] untuk materi probabilitas.
Penulis merekomendasikan untuk menonton kuliah _statistical inference_
(coursera) oleh Professor Brian Caffo.


## Biografi Penulis

JanWiraGotama Putra adalah PhD Candidate (JSPS Research Fellow)
di Computational Linguistics laboratory, Artificial Intelligence Major, Department
of Computer Science, Tokyo Institute of Technology. Sebelumnya,
penulis mendapatkan gelar sarjana di jurusan Teknik Informatika, Institut
Teknologi Bandung. Kemudian, melanjutkan magister di Tokyo Institute of
Technology dengan pendanaan MEXT scholarship. Penulis memiliki pengalaman
menulis makalah ilmiah pada bidang pemrosesan bahasa alami dan menerapkan
teknik pembelajaran mesin untuk perusahaan IT (saat _internship_ ),
e.g., _discourse processing_, klasifikasi teks, peringkasan teks, _automatic hashtag-ing_,
dan _content filtering_ ( _moderation_ ). Penulis pernah mendapatkanbest
_paper_  awarddi workshop internasional dan memenangkan lomba _data mining_
(terbuka untuk publik) di Indonesia. Penulis masih terus mempelajari teknik
_machine learning_. Buku ini adalah catatan yang ingin ia bagikan.

```
https://wiragotama.github.io/
```


## Bagian II Algoritma Pembelajaran Mesin


## 1 Pengenalan

```
“People worry that computers
will get too smart and take over
the world, but the real problem
is that they’re too stupid and
they’ve al _ready_ taken over the
world.”
Pedro Domingos
```
Penulis yakin istilah _machine learning_ atau _deep learning_ sudah tidak asing
di telinga pembaca. _Machine learning_ dan _deep learning_ adalah salah satu
materi kuliah pada jurusan Teknik Informatika atau Ilmu Komputer. Selain
mengenal kedua istilah tersebut dari perkuliahan, pembaca mungkin mengenal
istilah tersebut karena digunakan untuk pemasaran (marketing). Sebagai
permulaan, _machine learning_ dan _deep learning_ bukanlah kedua hal yang
berbeda.^1 Perlu diingat, _deep learning_ adalah bagian dari _machine learning_.
_Machine learning_ sudah diaplikasikan pada banyak hal, baik untuk klasifikasi
gambar, mobil tanpa pengemudi, klasifikasi berita, dsb. Bab ini menjelaskan
konsep paling dasar dan utama _machine learning_.


## 𝐄 𝐗#

Gambar 12.2: Hubungan auto _encoder_ dan singular value decomposition
(analogi).

Perhatikan, _hidden layer_ / _coding_ dapat dianalogikan sebagaiE=Uˆ Vˆ.
Dengan kata lain, kita dapat melakukan operasi _dot-product_ pada _coding_ untuk
merepresentasikan _dot-product_ pada data asliX. Ini adalah ide utama

(^5) Pada banyak literatur, kumpulan _weight matrices_ ANN sering dilambangkan den-
ganθ
(^6) Hanya sebuah analogi.

168 12 Auto _encoder_

_autoencoder_, yaitu meng-aproksimasi/meng _kompresi data_ asli menjadi bentuk
lebih kecil _coding_. Kemudian, operasi pada bentuk _coding_ merepresentasikan
operasi pada data sebenarnya.
_Autoencoder_  terdiri dari _encoder_ (sebuah _neural network_ ) dan _decoder_
(sebuah _neural network_ ). _Encoder_ merubah _input_ ke dalam bentuk dimensi
lebih kecil (dapat dianggap sebagai kompresi). _Decoder_ berusaha merekonstruksi _coding_ menjadi
bentuk aslinya. Secara matematis, kita dapat menulis
_autoencoder_ sebagai persamaan 12.6, dimana dec melambangkan _decoder_, enc
melambangkan _encoder_ danx adalah _input_. _Encoder_ diberikan pada persamaan
12.7 yang berarti melewatkan _input_ pada suatu _layer_ di _neural network_ untuk
menghasilkan representasixberdimensi rendah, disebut _coding_
c.Udanαmelambangkan _weight matrix_ dan _bias_.

```
f(d,θ) = dec(enc(x)) (12.6)
```
```
c= enc(x) =g(x,U,α) (12.7)
```
Representasicini kemudian dilewatkan lagi pada suatu _layer_ untuk merekonstruksi
kembali _input_, kita sebut sebagai _decoder_. _Decoder_ diberikan pada persamaan
12.8 dimanaWdanβmelambangkan _weight matrix_ dan _bias_. Baik
pada fungsi _encoder_ dan _decoder_,σmelambangkan fungsi aktivasi.

```
f(d,θ) = dec(c) =h(c,W,β) (12.8)
```
Pada contoh sederhana ini, _encoder_ dan _decoder_ diilustrasikan sebagai sebuah
_layer_. Kenyataannya, _encoder_ dan _decoder_ dapat diganti menggunakan sebuah
_neural network_ dengan arsitektur kompleks.
Sekarang kamu mungkin bertanya-tanya, bila auto _encoder_ melakukan
hal serupa seperti _singular value decomposition_, untuk apa kita menggunakan _autoencoder_ ?
(mengapa tidak menggunakan aljabar saja?) Berbeda
dengan teknik SVD, teknik _autoencoder_ dapat juga mempelajari fitur nonlinear.^7
Pada penggunaan praktis, _autoencoder_ adalah _neural network_ yang
cukup kompleks (memiliki banyak _hidden layer_ ). Dengan demikian, kita dapat
”mengetahui”berbagai macam representasiatau transformasi data.
_Framework autoencoder_  yang disampaikan sebelumnya adalah framework
dasar. Pada kenyataannya, masih banyak ide lainnya yang bekerja dengan
prinsip yang sama untuk mencari _coding_ pada permasalahan khusus. _Output_
dari _neural network_ juga bisa tidak sama _input_ -nya, tetapi tergantung permasalahan
(kami akan memberikan contoh persoalan _word embedding_ ). Selain
itu, _autoencoder_ juga relatif fleksibel; dalam artian saat menambahkan data
baru, kita hanya perlu memperbaharui parameter _autoencoder_ saja. Kami
sa _rank_ an untuk membaca _paper_ [72, 73] perihal penjelasan lebih lengkap tentang
perbedaan dan persamaan SVD dan _autoencoder_ secara lebih matematis.
Secara sederhana, _representation learning_ adalah teknik untuk mengkompresi _input_ ke
dalam dimensi lebih rendah tanpa (diharapkan) ada kehilangan

(^7) Hal ini abstrak untuk dijelaskan karena membutuhkan pengalaman.

```
12.4 Resisting Perturbation 169
```
informasi. Operasi vektor (dan lainnya) pada level _coding_ merepresentasikan
operasi pada bentuk aslinya. Untuk pembahasan _autoencoder_ secara lebih
matematis, kamu dapat membaca pranala ini.^8 Setelah _autoencoder_ dilatih,
pada umumnya _encoder_ dapat digunakan untuk hal lainnya juga, e.g., klasifikasi
kelas gambar.


## 𝐗 Encoder Decoder


## 13 Arsitektur Neural Network

```
“As students cross the threshold
from outside to insider, they also
cross the threshold from
superficial learning motivated by
grades to deep learning
motivated by engagement with
questions. Their transformation
entails an awakening–even,
perhaps, a falling in love.”
John C. Bean
```
Seperti yang sudah dijelaskan pada bab 9 dan bab 12, data memiliki karakteristik
(dari segi struktur) misal _sequential data_, _compositional_ data, dsb.
Terdapat arsitektur khusus _artificial neural network_ (ANN) untuk menyelesaikan
persoalan pada tipe data tertentu. Pada bab ini, kami akan memberikan
beberapa contoh variasi arsitektur ANN yang cocok untuk tipe data tertentu.
Penulis akan berusaha menjelaskan semaksimal mungkin ide-ide penting
pada masing-masing arsitektur. Tujuan bab ini adalah memberikan pengetahuan
konseptual (intuisi). Pembaca harus mengeksplorasi tutorial pemrograman
untuk mampu mengimplementasikan arsitektur-arsitektur ini. Penjelasan
pada bab ini bersifat abstrak dan kamu harus mengerti penjelasan
bab-bab sebelumnya untuk mengerti konsep pada bab ini.


## 9 Seleksi Fitur dan Metode Evaluasi

```
“The key to artificial intelligence
has always been the
_representation_.”
```
```
Jeff Hawkins
```
Bab ini membahas beberapa tips dan trik yang sebenarnya sudah disinggung
pada bab 3 dan bab 5. Hanya saja, beberapa hal lebih baik dijelaskan
secara lebih mendalam ketika sudah mempelajari beberapa algoritma pembelajaran
mesin, seperti pentingnya _feature engineering_, _feature selection_ dan
penjelasan lebih lanjut _cross validation_. Kamu dapat menganggap bab ini sebagai
kelanjutan tips dan trik pembelajaran mesin lanjutan bab 3 dan bab 5.


### Edisi1.4 ( 17 Agustus2020)


## 5 Model Linear

```
“Some _time_ s an entirely
inaccu _rate_ formula is a handy
way to move you in the right
direction if it offers simplicity.”
```
```
Scott Adams
```
Bab ini membahas tentang model linear (algoritma parametrik), sebagai
contoh pembelajaran yang sederhana karena cukup mudah dipahami idenya.
Bab ini juga membahas _error function_ dan _stochastic gradient descent_. Dimulai
dari bab ini, kita akan memasuki materi lebih serius. Materi pada bab ini
dijelaskan dengan sangat baik dan mendalam pada bukuAn Introduction to
Statistical Learning[20].


## Referensi

```
[1] Yoav Goldberg. _Neural Network Methods in Natural Language Processing_.
Morgan & Claypool Publishers, 2017.
[2] Peter Linz. _An Introduction to Formal Language and Automata_. Jones
and Bartlett Publishers, Inc., USA, 2006.
[3] Ronald Brachman and Hector Levesque.Knowl _edge_ Representation and
Reasoning. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA,
2004.
[4] Tom Mitchell. _Machine Learning_. McGraw-Hill, 1997.
[5] Stuart Russel and Peter Norvig. _Artificial Intelligence: A Modern Approach_.
Prentice Hall, 1995.
[6] Jonathan Gratch and Stacell Marsella. Computationally modelling human
emotion. _Communications of the ACM_, 57(12):71–99, 2014.
[7] Masayu Leylia Khodra and Dessi Puji Lestari. Odd semester lecture on
_machine learning_. Lecture of Institute Teknologi Bandung, 2015.
[8] Christopher M. Bishop. Pattern Recognition and Machine Learning.
Springer, 2006.
[9] Sumio Watanabe and Hidetoshi Nishimori. Fall lecture note on statistical
_learning_  theory. Lecture note for Tokyo Institute of Technology,
2016.
[10] Brian Caffo. Statistical Inference for Data Science. Lean Publishing,
2015.
[11] Ian Goodfellow, Yoshua Bengio, and Aaron Courville. Deep Learning.
MIT Press, 2016.
[12] Daniel Jurafsky and James H. Martin. _Speech and Language Processing_
Second Edition. Prentice Hall, 2009.
[13] Nils Reimers and Iryna Gurevych. Reporting score distributions makes
a difference: Performance study of LSTM- _network_ s for sequence tagging.
InProceedings of the 2017 Conference on Empirical Methods in Natural
Language Processing, pages 338–348, Copenhagen, Denmark, September
```
2017. Association for Computational Linguistics.

228 Referensi

```
[14] Rotem Dror, Gili Baumer, Segev Shlomov, and Roi Reichart. The hitchhiker’s
guide to testing statistical significance in natural language processing.
InProceedings of the 56th Annual Meeting of the Association
for Computational Linguistics (Volume 1: Long Papers), pages 1383–
1392, Melbourne, Australia, July 2018. Association for Computational
Linguistics.
[15] Rotem Dror, Segev Shlomov, and Roi Reichart. Deep dominance - how
to properly compare deep neural models. InProceedings of the 57th
Annual Meeting of the Association for Computational Linguistics, pages
2773–2785, Florence, Italy, July 2019. Association for Computational
Linguistics.
[16] Thomas M. Cover and Joy A. Thomas. _Elements of Information Theory_.
Wiley, 1991.
[17] Hidetoshi Nishimori.Statistical Physics of Spin Glasses and Information
Processing: An Introduction. Clarendon Press, 2001.
[18] Sharon L. Myres Ronald E. Walpole, Raymond H. Myers and Keying
Ya. Probability and Statistics for Engineers and Scientists. Prentice
Hall, 2012.
[19] Gilbert Strang. Linear algebra and its applications. Thomson,
Brooks/Cole, Belmont, CA, 2006.
[20] G. James, D. Witten, T. Hastie, and R. Tibshirani.An Introduction to
Statistical Learning, with applications in R. Springer, 2013.
[21] Ian H. Witten, Eibe F _rank_, and Mark A. Hall.Data Minin gg: Practical
_Machine Learning_  Tools and Techniques. Morgan Kaufmann Publishers
Inc., San Francisco, CA, USA, 3rd edition, 2011.
[22] Jeff Leek. _The Elements of Data Analytic Style_. Leanpub, 2015.
[23] Takao Terano and Tsuyoshi Murata. Spring lecture on machine learning.
Lecture of Tokyo Institute of Technology, 2017.
[24] Kishore Papineni, Salim Roukos, Todd Ward, and Wei-Jing Zhu. Bleu: A
method for automatic evaluation of machine translation. InProceedings
of the 40th Annual Meeting on Association for Computational Linguistics,
ACL ’02, pages 311–318, Stroudsburg, PA, USA, 2002. Association
for Computational Linguistics.
[25] Chin-Yew Lin. Rouge: A package for automatic evaluation of summaries.
InProc. ACL workshop on Text Summarization Branches Out, page 10,
2004.
[26] Irina Rish. An empirical study of the naive bayes classifier. InIJCAI
2001 workshop on empirical methods in artificial intelligence, volume 3,
pages 41–46. IBM New York, 2001.
[27] J. A. Hartigan and M. A. Wong. A k- _mean_ s clustering algorithm.JSTOR:
Applied Statistics, 28(1):100–108, 1979.
[28] T. Cover and P. Hart. Nearest neighbor pattern classification. IEEE
Trans. Inf. Theor., 13(1):21–27, September 2006.
[29] Mohammad S. Sorower. A literature survey on algorithms for multilabel
_learning_. 2010.
```

```
Referensi 229
```
[30] John Duchi, Elad Hazan, and Yoram Singer. Adaptive sub _gradient_
methods for online learning and stochastic optimization, 2010.
[31] Corinna Cortes and Vladimir Vapnik. Support-vector networks. Machine
_Learning_, 20(3):273–297, Sep 1995.
[32] Marti A. Hearst. Support vector machines. _IEEE Intelligent Systems_,
13(4):18–28, July 1998.
[33] J. R. Quilan. Discovering rules by induction from large collections of
examples. Edinburgh University Press, 1979.
[34] J.R. Quinlan. Induction of decision trees. Mach. Learn., 1(1):81–106,
March 1986.
[35] C. E. Shannon. A mathematical theory of communication. The Bell
System Technical Journal, 27(3):379–423, 1948.
[36] Takao Terano and Tsuyoshi Murata. Spring lecture on machine learning.
Lecture of Tokyo Institute of Technology, 2017.
[37] L. R. Rabiner and B. H. Juang. An introduction to hidden markov
_model_ s. _IEEE ASSp Magazine_, 1986.
[38] James Allen. Natural Language Understanding. Benjamin-Cummings
Publishing Co., Inc., 1995.
[39] Eliyahu Kiperwasser and Yoav Goldberg. Simple and accu _rate_ dependency
parsing using bidirectional LSTM feature representations.Trans _action_ s
of the Association for Computational Linguistics, 4:313–327,
2016.
[40] Vishal M. Patel, Raghuraman Gopalan, Ruonan Li, and Rama Chellappa.
Visual domain adaptation: A survey of recent advances. IEEE
Signal Process. Mag., 32(3):53–69, 2015.
[41] George Karypis Michael Steinbach and Vipin Kumar. A comparison of
document clustering techniques. InKDD Workshop on Text Mining,
pages 525 – 526, 2000.
[42] Omer I. E. Mohamed Fathi H. Saad and Rafa E. Al-Qutaish. Comparison
of hierarchical agglomerative algorithms for clustering medical
documents. International Journal of Software Engineering and Applications
(IJSEA), 3(3), 2012.
[43] Rajeev Rastogi Sudipto Guha and Kyuseok Shim. Cure: An efficient
_clustering_  algorithm for large databases. InProceedings of ACMSIGMOD
International Conference on Management of Data, pages 73 – 84,
1998.
[44] Jack D. Cowan. Neural networks: The early days. InProceedings of
Advances in Neural Information Processing Systems 2, 1989.
[45] Amir Atiya. Learning Algorithms for Neural Network. PhD thesis,
California Institute of Technology, 1994.
[46] Al. Cripps. Using artificial neural nets to predict academic performance.
In _Proceedings of the 1996 ACM Symposium on Applied Computing_,
pages 33–37, 1996.
[47] Thomas Mikolov. Statistical Language Models Based on Neural Networks.
PhD thesis, Brno University of Technology, 2012.

230 Referensi

```
[48] Kai Chen Greg Corrado Thomas Mikolov, Ilya Sutskever and Jeffrey
Dean. Distributed representations of words and phrases and their compositionality.
In _Proceedings of CoRR_, 2013.
[49] Gred Corrado Thomas Mikolov, Kai Chen and Jeffrey Dean. Efficient
estimation of word representations in vector space. InProceedings of
_CoRR_, 2013.
[50] Kai Yu. Large-scale deep learning at baidu. InProceedings of the 22nd
ACM International Conference on Information and Knowl _edge_ Management,
pages 2211–2212, 2013.
[51] M. A. Aizerman, E. A. Braverman, and L. Rozonoer. Theoretical foundations
of the potential function method in pattern recognition learning.
In _Automation and Remote Control,_, number 25, pages 821–837, 1964.
[52] F. Rosenblatt. The perceptron: A probabilistic model for information
storage and organization in the brain. _Psychological Review_, pages 65–
386, 1958.
[53] Marvin L. Minsky and Seymour A. Papert. _Perceptrons: Expanded Edition_.
MIT Press, Cambridge, MA, USA, 1988.
[54] D. E. Rumelhart, G. E. Hinton, and R. J. Williams. Parallel distributed
processing: Explo _ratio_ ns in the microstructure of cognition, vol. 1. chapter
_Learning_  Internal Representations by Error Propagation, pages 318–
```
362. MIT Press, Cambridge, MA, USA, 1986.
[55] Tao Lei, Regina Barzilay, and Tommi Jaakkola. Rationalizing neural
_prediction_ s. InProceedings of the 2016 Conference on Empirical
Methods in Natural Language Processing, pages 107–117, Austin, Texas,
November 2016. Association for Computational Linguistics.
[56] David Alvarez-Melis and Tommi Jaakkola. A causal framework for explaining
the predictions of black-box sequence-to-sequence models. In
Proceedings of the 2017 Conference on Empirical Methods in Natural
Language Processing, pages 412–421, Copenhagen, Denmark, September
2017. Association for Computational Linguistics.
[57] Dzmitry Bahdanau, KyungHyun Cho, and Yoshua Bengio. Neural machine
translation by jointly learning to align and translate. InProceedings
of the International Conference on Learning and Representation
(ICLR), 2015.
[58] Thang Luong, Hieu Pham, and Christopher D. Manning. Effective approaches
to attention-based neural machine translation. InProceedings
of the 2015 Conference on Empirical Methods in Natural Language Processing,
pages 1412–1421, Lisbon, Portugal, September 2015. Association
for Computational Linguistics.
[59] Finale Doshi-Velez and Been Kim. A roadmap for a rigorous science of
_interpretability_. In _ArXiv e-prints_.
[60] Jeffrey L. Elman. Learning and development in neural networks: The
importance of starting small. _Journal of Cognition_, (48):71–99, 1993.
[61] Yoshua Bengio, J ́erˆome Louradour, Ronan Collobert, and Jason Weston.
_Curriculum learning_. InProceedings of the 26th Annual International

```
Referensi 231
```
Conference on Machine Learning, ICML ’09, pages 41–48, New York,
NY, USA, 2009. ACM.
[62] Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, and
Ruslan Salakhutdinov. Dropout: A simple way to pr _event_ neural networks
from overfitting.J. Mach. Learn. Res., 15(1):1929–1958, January
2014.
[63] Dzmitry Bahdanau Kyunghyun Cho, Bart van Merrienboer and Yoshua
Bengio. On the properties of neural machine translation: Encoder–
_decoder_  approaches. InProceedings of SSST-8, Eighth Workshop on
Syntax, Semantics and Structure in Statistical Translation, pages 103–
111, Doha, Qatar, October 2014. Association for Computational Lin-
guistics.
[64] Christopher D. Manning and Hinrich Schutze.Foundations of Statistical
Natural Language Processing. MIT Press, 1999.
[65] Prabhakar Raghavan Christopher D. Manning and Hinrich Schutze.An
Introduction to Information Retrieval. Cambridge UP, 2009.
[66] Andrew Y. Ng Richard Socher, Cliff Chiung-Yu Lin and Christopher D.
Manning. Parsing natural scenes and natural language with recursive
_neural network_ s. InProceedings of the 28thInternational Conference on
_Machine Learning_, 2011.
[67] Jean Y. Wu Jason Chuang Richard Socher, Alex Perelygin and Christopher
D. Manning. Recursive deep models for semantic compositionality
over a sen _time_ nt treebank. InProceedings of the Emperical Methods in
Natural Language Processing, 2013.
[68] Erhc H. Huang Andrew Y. Ng Richard Socher, Jeffrey Pennington and
Christoper D. Manning. Semi- _supervised_ recursive auto _encoder_ s for predicting
sen _time_ nt distributions. InProceedings of the Emperical Methods
in Natural Language Processing, 2011.
[69] Quoc Le and Tomas Mikolov. Distributed representations of sentences
and documents. InProceedings of the 31stInternational Conference on
_Machine Learning_, 2014.
[70] Richard Socher Jeffrey Pennington and Christopher D. Manning. Glove:
Global vectors for word representation. InProceedings of the Emperical
Methods in Natural Language Processing, pages 1532 – 1543, 2014.
[71] Yoshua Bengio, R ́ejean Ducharme, Pascal Vincent, and Christian Janvin.
A neural probabilistic language model. J. Mach. Learn. Res.,
3:1137–1155, March 2003.
[72] Omer Levy, Yoav Goldberg, and Ido Dagan. Improving distributional
similarity with lessons learned from word embeddings.Trans _action_ s of
the Association for Computational Linguistics, 3:211–225, 2015.
[73] Guoqiang Zhong, Li-Na Wang, Xiao Ling, and Junyu Dong. An overview
on data representation learning: From traditional feature learning to
recent deep learning.The Journal of Finance and Data Science, 2(4):265

- 278, 2016.

232 Referensi

```
[74] Peter D. Turney and Patrick Pantel. From frequency to meaning: Vector
_space_  models of semantics. Journal of Artificial Intelligence Research,
(37):141–188, 2010.
[75] Jan Wira Gotama Putra and Takenobu Tokunaga. Evaluating text
coherence based on semantic similarity graph. In Proceedings of
TextGraphs-11: the Workshop on Graph-based Methods for Natural Language
Processing, pages 76–85, Vancouver, Canada, August 2017. Association
for Computational Linguistics.
[76] Y. LeCun and Y. Bengio. Convolutional networks for images, speech,
and time-series. In M. A. Arbib, editor,The Handbook of Brain Theory
and Neural Networks. MIT Press, 1995.
[77] Jeffrey L. Elman. Finding structure in time. Cognitive Science,
14(2):179–211, 1990.
[78] Sepp Hochreiter and J ̈urgen Schmidhuber. Long short- _term_ memory.
_Neural Comput._, 9(8):1735–1780, November 1997.
[79] Paul J. Werbos. Backpropagation through time: what does it do and
how to do it. In _Proceedings of IEEE_, volume 78, pages 1550–1560, 1990.
[80] Caglar Gulcehre Dzmitry Bahdanau Fethi Bougares HolgerSchwenk
Kyunghyun Cho, Bart van Merrienboer and Yoshua Bengio. Learning
phrase representations using rnn encoder– _decoder_ for statistical machine
translation. InProceedings of the 2014 Conference on Empirical Methods
in Natural Language Processing (EMNLP), pages 1724–1734, Doha,
Qatar, October 2014. Association for Computational Linguistics.
[81] Ilya Sutskever, Oriol Vinyals, and Quoc V. Le. Sequence to sequence
_learning_  with neural networks. InProceedings of the 27th International
Conference on Neural Information Processing Systems, NIPS’14, pages
3104–3112, Cambridge, MA, USA, 2014. MIT Press.
[82] Yan Shao, Christian Hardmeier, J ̈org Tiedemann, and Joakim Nivre.
Character-based joint segmentation and pos tagging for chinese using
_bidirectional_  rnn-crf. InProceedings of the Eighth International Joint
Conference on Natural Language Processing (Volume 1: Long Papers),
pages 173–183, Taipei, Taiwan, November 2017. Asian Fede _ratio_ n of
Natural Language Processing.
[83] To _bias_ Horsmann and Torsten Zesch. Do lstms really work so well for
pos tagging? – a replication study. InProceedings of the 2017 Conference
on Empirical Methods in Natural Language Processing, pages 727–736,
Copenhagen, Denmark, September 2017. Association for Computational
Linguistics.
[84] Barbara Plank, Anders Søgaard, and Yoav Goldberg. Multilingual partof-speech
_tagging_  with bidirectional long short- _term_ memory models and
auxiliary loss. InProceedings of the 54th Annual Meeting of the Association
for Computational Linguistics, ACL 2016, August 7-12, 2016,
Berlin, Germany, Volume 2: Short Papers, 2016.
[85] Ryohei Sasano Hiroya Takamura Yuta Kikuchi, Graham Neubig and
Manabu Okumura. Controlling output length in neural encoder-
```

```
Referensi 233
```
_decoder_ s. InProceedings of the 2016 Conference on Empirical Methods
in Natural Language Processing, pages 1328–1338, Austin, Texas,
November 2016. Association for Computational Linguistics.
[86] Ramesh Nallapati, Bowen Zhou, C ́ıcero Nogueira dos Santos, and
aglar G ̈ulehre and Bing Xiang. Abstractive text summarization using
sequence-to-sequence rnns and beyond. In _CoNLL_, 2016.
[87] Yan-Kai Lin Cun-Chao Tu Yu Zhao Zhi-Yuan Liu Ayana, Shi-Qi Shen
and Mao-Song Sun. Recent advances on neural headline gene _ratio_ n.
_Journal of Computer Science and Technology_, 32(4):768–784, Jul 2017.
[88] Chlo ́e Kiddon, Luke Zettlemoyer, and Yejin Choi. Globally coherent
text gene _ratio_ n with neural checklist models. InProceedings of the
2016 Conference on Empirical Methods in Natural Language Processing,
pages 329–339, Austin, Texas, November 2016. Association for Computational
Linguistics.
[89] Xiaojun Wan Jiwei Tan and Jianguo Xiao. Abstractive document summarization
with a graph-based attentional neural model. InProceedings
of the 55th Annual Meeting of the Association for Computational Linguistics
(Volume 1: Long Papers), pages 1171–1181, Vancouver, Canada,
July 2017. Association for Computational Linguistics.
[90] Oriol Vinyals, Alexander Toshev, Samy Bengio, and Dumitru Erhan.
Show and tell: A neural image caption generator. 2015 IEEE Conference
on Computer Vision and Pattern Recognition (CVPR), pages
3156–3164, 2015.
[91] Zichao Yang, Diyi Yang, Chris Dyer, Xiaodong He, Alex Smola, and
Eduard Hovy. Hierarchical attention networks for document classification.
InProceedings of the 2016 Conference of the North American
Chapter of the Association for Computational Linguistics: Human Language
Technologies, pages 1480–1489, San Diego, California, June 2016.
Association for Computational Linguistics.
[92] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion
Jones, Aidan N Gomez, L ukasz Kaiser, and Illia Polosukhin. Attention
is all you need. In I. Guyon, U. V. Luxburg, S. Bengio, H. Wallach,
R. Fergus, S. Vishwanathan, and R. Garnett, editors,Advances
in Neural Information Processing Systems 30, pages 5998–6008. Curran
Associates, Inc., 2017.
[93] Karl Weiss, Taghi M. Khoshgoftaar, and DingDing Wang. A survey of
_transfer learning_. _Journal of Big Data_, 3(1):9, May 2016.
[94] Sebastian Ruder, Matthew E. Peters, Swabha Swayamdipta, and
Thomas Wolf. Transfer learning in natural language processing. In
Proceedings of the 2019 Conference of the North American Chapter of
the Association for Computational Linguistics: Tutorials, pages 15–18,
Minneapolis, Minnesota, June 2019. Association for Computational Lin-
guistics.

234 Referensi

[95] Ronan Collobert, Jason Weston, L ́eon Bottou, Michael Karlen, Koray
Kavukcuoglu, and Pavel Kuksa. Natural language processing (almost)
from scratch.J. Mach. Learn. Res., 12:2493–2537, November 2011.
[96] Daxiang Dong, Hua Wu, Wei He, Dianhai Yu, and Haifeng Wang. Multi _task_
_learning_  for multiple language translation. InProceedings of the
53rd Annual Meeting of the Association for Computational Linguistics
and the 7th International Joint Conference on Natural Language
Processing (Volume 1: Long Papers), pages 1723–1732. Association for
Computational Linguistics, 2015.
[97] Pengfei Liu, Xipeng Qiu, and Xuanjing Huang. Adversarial multi- _task_
_learning_  for text classification. InProceedings of the 55th Annual Meeting
of the Association for Computational Linguistics (Volume 1: Long
Papers), pages 1–10. Association for Computational Linguistics, 2017.
[98] Anne Lauscher, Goran Glavaˇs, Simone Paolo Ponzetto, and Kai Eckert.
Investigating the role of argumentation in the rhetorical analysis
of scientific publications with neural multi- _task_ learning models. In
Proceedings of the 2018 Conference on Empirical Methods in Natural
Language Processing, pages 3326–3338. Association for Computational
Linguistics, 2018.
[99] Alex Kendall, Yarin Gal, and Roberto Cipolla. Multi- _task_ learning using
_uncertainty_  to weigh losses for scene geometry and semantics. In 2018
IEEE Conference on Computer Vision and Pattern Recognition, CVPR
2018, Salt Lake City, UT, USA, June 18-22, 2018, pages 7482–7491,
2018.
[100] Arda Antikacioglu and R. Ravi. Post processing recommender systems
for diversity. InProceedings of the 23rd ACM SIGKDD International
Conference on Knowl _edge_ Discovery and Data Mining, KDD 17, page
707716, New York, NY, USA, 2017. Association for Computing Machin-
ery.
[101] Daniel Billsus and Michael J. Pazzani. The adaptive web. chapter Adaptive
News Access, pages 550–570. Springer-Verlag, Berlin, Heidelberg,
2007.
[102] Paul Resnick and Hal R. Varian. Recommender systems. Commun.
ACM, 40(3):56–58, March 1997.
[103] Daniar Asanov. Algorithms and methods in recommender systems.
Berlin Institute of Technology, 2011.
[104] Charu C. Aggrawal. Recommender Systems: The Textbook. Springer
International Publishing Switzerland, 2016.
[105] Eduard Hovy and Chin-Yew Lin. Automated text summarization and
the summarist system. InProceedings of a Workshop on Held at Baltimore,
Maryland: October 13-15, 1998, TIPSTER ’98, pages 197–214,
Stroudsburg, PA, USA, 1998. Association for Computational Linguis-
tics.

```
Referensi 235
```
[106] Liang Zhou and Eduard Hovy. Template- _filter_ ed headline summarization.
InIn the Proceedings of the ACL workshop, Text Summarization
Branches Out, pages 56–60, 2004.
[107] Amin Mantrach Carlos A. Colmenares, Marina Litvak and Fabrizio Silvestri.
Heads: Headline gene _ratio_ n as sequence prediction using an abstract
feature-rich space. InProceedings of the 2015 Conference of the
North American Chapter of the Association for Computational Linguistics:
Human Language Technologies, pages 133–142, Denver, Colorado,
May–June 2015. Association for Computational Linguistics.
[108] Daniele Pighin Enrique Alfonseca and Guillermo Garrido. Heady: News
headline abstr _action_ through event pattern clustering. InProceedings of
the 51st Annual Meeting of the Association for Computational Linguistics
(Volume 1: Long Papers), pages 1243–1253, Sofia, Bulgaria, August

2013. Association for Computational Linguistics.
[109] Pierre-Etienne Genest and Guy Lapalme. Framework for abstractive
summarization using text-to-text gene _ratio_ n. In Proceedings of the
Workshop on Monolingual Text-To-Text Gene _ratio_ n, pages 64–73, Portland,
Oregon, June 2011. Association for Computational Linguistics.
[110] Shufeng Xiong and Donghong Ji. Query-focused multi-document summarization
using hypergraph-based ranking. Inf. Process. Manage.,
52(4):670–681, July 2016.
[111] David Zajic, Bonnie J. Dorr, and Richard Schwartz. Bbn/umd at duc2004:
Topiary. InProceedings of the North Americal Chapter of the
Association for Computational Linguistics Workshop on Document Understanding,
pages 112–119, 2004.
[112] Simone Teufel and Marc Moens. Argumentative classification of extracted
_sentence_ s as a first step towards flexible abstr _acting_. InAdvances
in automatic Text Summarization, pages 155–171. MIT Press,
1999.
[113] Bonnie J. Dorr, David Zajic, and Richard Schwartz. H _edge_ trimmer:
A parse-and-trim approach to headline gene _ratio_ n. In Dragomir Radev
and Simone Teufel, editors,Proceedings of the HLT-NAACL 03 Text
Summarization Workshop, pages 1–8, 2003.
[114] Jurij Leskovec, Natasa Milic-Frayling, and Marko Grobelnik. Extr _acting_
summary sentences based on the document semantic graph. Micro _soft_
Research, 2005.
[115] Jan Wira Gotama Putra. Rhetorical sentence classification for automatic
title gene _ratio_ n in scientific article. _TELKOMNIKA_, 15(2):656–
664, 2017.
[116] Jan Pedersen Julian Kupiec and Francine Chen. A trainable document
summarizer. InProceedings of the 18th Annual International ACM
SIGIR Conference on Research and Development in Information Retrieval,
SIGIR ’95, pages 68–73, New York, NY, USA, 1995. ACM.
[117] Hans-Martin Ramsl Daraksha Parveen and Michael Strube. Topical
coherence for graph-based extractive summarization. InConference on

236 Referensi

Empirical Methods in Natural Language Processing, pages 1949–1954.
The Association for Computational Linguistics, 2015.
[118] Simone Teufel and Marc Moens. Summarizing scientific articles: Experiments
with relevance and rhetorical status. Comput. Linguist.,
28(4):409–445, December 2002.
[119] DiarmuidO S ́eaghdha and Simone Teufel. Un _supervised learning_ of ́
rhetorical structure with un-topic models. InProceedings of COLING
2014, the 25th International Conference on Computational Linguistics:
Technical Papers, pages 2–13, Dublin, Ireland, August 2014. Dublin City
University and Association for Computational Linguistics.
[120] Vibhu O. Mittal Michele Banko and Michael J. Witbrock. Headline
_generation_  based on statistical translation. InProceedings of the 38th
Annual Meeting on Association for Computational Linguistics, ACL ’00,
pages 318–325, Stroudsburg, PA, USA, 2000. Association for Computational
Linguistics.
[121] Jianpeng Cheng and Mirella Lapata. Neural summarization by extr _acting_
_sentence_ s and words. _CoRR_, abs/1603.07252, 2016.
[122] Christopher D. Manning. Part-of-speech tagging from 97% to 100%: Is
it time for some linguistics? InProceedings of the 12th International
Conference on Computational Linguistics and Intelligent Text Processing
- Volume Part I, CICLing’11, pages 171–189, Berlin, Heidelberg,

2011. Springer-Verlag.
[123] Lev Ratinov and Dan Roth. De _sign_ challenges and misconceptions in
_named entity recognition_. InProceedings of the Thirteenth Conference
on Computational Natural Language Learning, CoNLL ’09, pages 147–
155, Stroudsburg, PA, USA, 2009. Association for Computational Lin-
guistics.
[124] Jiwei Li and Dan Jurafsky. Neural net models of open-domain discourse
coherence. InProceedings of the 2017 Conference on Empirical Methods
in Natural Language Processing, pages 198–209, Copenhagen, Denmark,
September 2017. Association for Computational Linguistics.


## Bagian I Pengetahuan Dasar


## 4 Algoritma Dasar

```
“It is a capital mistake to
theorize before one has data.”
Arthur Conan Doyle
```
Sebelum masuk ke algoritma _machine learning_ yang cukup modern/
matematis, kami akan memberi contoh algoritma yang lebih mudah yaitu
_Naive Bayes_, _K-means_, danK-nearest-neighbor. Algoritma-algoritma
ini tergolongnon-parametrik. Bab ini akan memuat contoh sederhana _supervised_ dan _unsupervised_
_learning_. Mudah-mudahan bab ini memberikan kamu
gambaran aplikasi _machine learning_ sederhana.


## Bagian IV Aplikasi dan Topik Tambahan


## 8 Hidden Markov Model

```
“Probability is expectation
founded upon partial knowl _edge_.
A perfect acquaintance with all
the circumstances affecting the
occurrence of an event would
change expectation into
certainty, and leave neither room
nor demand for a theory of
probabilities.”
George Boole
```
_Hidden Markov Model_ (HMM) adalah algoritma yang relatif cukup lama
[37]. Tetapi algoritma ini penting untuk diketahui karena digunakan sebagai
teknik dasar untukautomatic speech recognition (ASR) danpart-of-speech
(POS) _tagging_. Bab ini akan membahas ide dasar HMM serta aplikasinya pada
POS _tagging_ ( _natural language processing_ ). Aplikasi tersebut dipilih karena
penulis lebih familiar dengan POS _tagging_. Selain itu, POS _tagging_ relatif lebih
mudah dipahami dibandingkan aplikasi HMM pada ASR.^1 HMM adalah kasus
spesialBayesian Inference[12, 38, 5]. Untuk mengertiBayesian Inference,
ada baiknya kamu membaca materi _graphical model_ pada bukupattern
recognition and machine learning[8]. Bab ini relatif lebih kompleks secara
matematis dibanding bab-bab sebelumnya. Oleh karena itu, kami harap kamu
membaca dengan sabar.


## Kata Pengantar

Buku ini ditujukan sebagai bahan pengantar (atau penunjang) mata kuliah
_machine learning_ untuk mahasiswa di Indonesia, khususnya tingkat sarjana
(tidak menutup kemungkinan digunakan untuk tingkat pascasarjana). Buku
ini hanya merupakan komplemen, bukan sumber informasi utama. Buku ini
memuat materi dasar _machine learning_, yang ditulis sedemikian rupa sehingga
pembaca mampu mendapatkanintuisi. Materi pada buku ini tidaklah dalam
(tapi tidak dangkal); artinya, pembaca masih harus membaca buku-buku lainnya
untuk mendapatkan pemahaman lebih dalam.
Walaupun tidak sempurna, mudah-mudahan buku ini mampu memberi inspirasi.
Anggap saja membaca buku ini seperti sedang membaca “ _light novel_ ”.
Penulis ingin buku ini bisa menjadi _pointer_ ; i.e. dengan membaca buku ini, diharapkan
kawan-kawan juga mengetahui harus belajar apa secara lebih jauh.
Setelah membaca buku ini, pembaca diharapkan mampu membaca literatur
_machine learning_ yang dijelaskan secara lebih matematis ataupun mendalam
(kami memberi rekomendasi bacaan lanjutan).
Di Indonesia, penulis banyak mendengar baik dari teman, junior, senior,
dll; suatu pernyataan “kuliah mengajari teori saja, praktiknya kurang, dan
tidak relevan dengan industri.” Tentu saja pernyataan ini cukup benar, tetapi
karena permikiran semacam ini terkadang kita tidak benar-benar mengerti
permasalahan. Ketika mengalami kendala, kita buntu saat mencari solusi
karena fondasi yang tidak kokoh. Banyak orang terburu-buru “menggunakan
_tools_ ” karena lebih praktikal. Penulis ingin mengajak saudara/i untuk memahami
konsep _machine learning_ secara utuh sebelum memanfaatkan. Ada
perbedaan yang mendasar antara orang yang hanya mampu menggunakan
_tools_ dan mengerti konsep secara utuh.
Buku ini menjelaskan algoritma _machine learning_ dari sudut pandang
agak matematis. Pembaca disa _rank_ an sudah memahami/mengambil setidaknya
mata kuliah statistika, kalkulus, aljabar linear, pengenalan kecerdasan
buatan, dan logika fuzzy. Penulis merasa banyak esensi yang hilang
ketika materi _machine learning_ hanya dijelaskan secara deskriptif karena
itu buku ini ditulis dengan bahasa agak matematis. Walaupun demikian,

VIII Kata Pengantar

penulis berusaha menggunakan notasi matematis seminimal dan sesederhana
mungkin, secukupnya sehingga pembaca mampu mendapatkan intuisi. Saat
membaca buku ini, disa _rank_ an membaca secara runtun. Gaya penulisan buku
inisantai/semiformalagar lebih mudah dipahami, mudah-mudahan tanpa
mengurangi esensi materi.
Buku ini ditulis menggunakan template monograph (LATEX) dari Springer
yang dimodifikasi. Dengan demikian, mungkin ada kesalahan pemenggalan
kata. Tentunya, buku tidak lepas dari kekurangan, misalnya kesalahan tipografi.
Kami sa _rank_ an pembaca untuk membaca secara seksama, termasuk
menginterpretasikan variabel pada persamaan.

Petunjuk Penggunaan
Struktur penyajian buku ini dapat dijadikan acuan sebagai struktur kuliahmachine
_learning_  yang berdurasi satu semester (bab 1 untuk sesi pertama,
dst). Agar dapat memahami materi per bab, bacalah keseluruhan isi
bab secara utuh sebelum mempertanyakan isi materi. Penulis sangat menya _rank_ an
untuk membahas soal latihan sebagai tambahan materi (bisa juga
sebagai PR). Soal latihan ditujukan untuk mengarahkan apa yang harus
dibaca/dipahami lebih lanjut.
Pembaca dipersilahkan menyebarkan ( _share_ ) buku ini untuk alasanNON
KOMERSIAL(pendidikan), tetapidimohon kesadarannya untuk tidak
menyalin atau meniru isi buku ini. Bila ingin memuat konten diktat
ini pada media yang pembaca kelola, dimohon untuk mengontak pengarang
terlebih dahulu. Tidak semua istilah bahasa asing diterjemahkan ke Bahasa
Indonesia supaya makna sebenarnya tidak hilang (atau penulis tidak tahu
versi Bahasa Indonesia yang baku).
Bab lebih awal memuat materi yang relatif lebih “mudah” dipahami
dibanding bab berikutnya. Buku ini memberikan contoh dimulai dari contoh
sederhana (beserta contoh data). Semakin menuju akhir buku, notasi yang
digunakan akan semakin simbolik, beserta contoh yang lebih abstrak. Penulis
sangat menya _rank_ an untukmembaca buku ini secara sekuensial.

Kutipan
Buku ini tergolong _self-published work_ (atau mungkin lebih tepat dikatakan sebagai _draft_ ),
tetapi sudah di- _review_ oleh beberapa orang. Kami yakin para _reviewer_ adalah
orang yang berkompeten. Silahkan merujuk buku ini sesuai dengan
paduan cara merujuk _self-published work_, apabila memang diperbolehkan
untuk merujuk _self-published work_ pada pekerjaan pembaca.

Notasi Penting
Karakter bold kapital merepresentasikan matriks (X,Y,Z). Dimensi matriks
ditulis dengan notasiN×MdimanaNmerepresentasikan banyaknya
baris danMmerepresentasikan banyaknya kolom. Elemen matriks direpresentasikan
olehXi,j,X[i,j], atauxi,juntuk baris ke-ikolom ke-j(penggunaan
akan menyesuaikan konteks pembahasan agar tidak ambigu). Karakter di-

```
Kata Pengantar IX
```
_bold_ merepresentasikan vektor (x). Elemen vektor ke-idirepresentasikan oleh
xiatau x[i]tergantung konteks. Ketika penulis menyebutkan vektor, yang
dimaksud adalah _vektor_ baris( _row vector_, memiliki dimensi 1×N, mengadopsi
notasi Goldberg [1]). Perhatikan, literatur _machine learning_ lainnya
mungkin tidak menggunakan notasi _row vector_ tetapi _column vector_. Kami
harap pembaca mampu beradaptasi. Simbol “·” digunakan untuk melambangkan
operator _dot-product_.
Kumpulan data (atau himpunan) direpresentasikan dengan karakter kapital
(C,Z), dan anggotanya ( _data point_, _data entry_ ) ke-idirepresentasikan
dengan karakterci. Perhatikan, elemen vektor dan anggota himpunan bisa
memiliki notasi yang sama (himpunan dapat direpresentasikan di komputer
sebagai _array_, jadi penggunaan notasi vektor untuk himpunan pada konteks
pembicaraan kita tidaklah salah). Penulis akan menggunakan simbolx[i]sebagai
elemen vektor apabila ambigu. Fungsi dapat direpresentasikan dengan
huruf kapital maupun non-kapitalf(...),E(...),G(...). Ciri fungsi adalah
memiliki parameter! Pada suatu koleksi vektor (himpunan vektor)D, vektor
ke-idirepresentasikan dengandi, dan elemen ke-jdari vektor ke-idirepresentaiskan
dengandi[j],Di,j, atauD[i,j](karena sekumpulan vektor dapat
disusun sebagai matriks).
Karakter non-kapital tanpa _bold_ dan tanpa indeks, seperti (a,b,c,x,y,z),
merepresentasikan _random variable_ (statistik) atau variabel (matematik). Secara
umum, saat _random variable_ memiliki nilai tertentu, dinotasikan dengan
x=X(nilai tertentu dinotasikan dengan huruf kapital), kecuali disebutkan
secara khusus saat pembahasan. Probabilitas direpresentasikan dengan karakter
kapital (P), dengan karakter non-kapital merepresentasikanprobability
density(p). Penulis yakin pembaca dapat menyesuaikan interpretasi simbol
berdasarkan konteks pembahasan. Untuk menginterpretasikan notasi lain, selain
yang diberikan pada paduan ini, mohon menyesuaikan dengan ceritera
pembahasan.

Ucapan Terima Kasih
Terima kasih pada Bapak/Ibu/Saudara/i atas kontribusi pada penulisan buku
ini: Adhiguna Surya Kuncoro, Arief Yudha Satria, Candy Olivia Mawalim,
Chairuni Aulia Nusapati, Genta Indra Winata, Hayyu Luthfi Hanifah, I Gede
Mahendra Darmawiguna, dan Tifani Warnita. Terima kasih pada Natasha
Christabelle Santosa atas desain cover.

Catatan lain
Buku ini adalah _ongoing project_. Versi terakhir dan terakurat dapat diakses
padahttps://wiragotama.github.io/. Buku ini lebih baik dibaca versi full
pdf-nya agar pranala bisa di-klik dan gambar memiliki kualitas terbaik.

Tokyo, Jepang Jan Wira Gotama Putra


## 14 Penerapan Pembelajaran Mesin

```
“Leading is not the same as
being the leader. Being the
leader means you hold the
highest rank, either by earning
it, good fortune or navigating
internal politics. Leading,
however, means that others
willingly follow you–not because
they have to, not because they
are paid to, but because they
want to.”
Simon Sinek
```
Bab ini memuat contoh penggunaan _machine learning_ untuk dua permasalahan
praktis yaitu: (1) sistem rekomendasi dan (2) sistem peringkasan
dokumen. Dua domain ini dipilih karena tidak asing (familiar) bagi penulis.
Seperti yang sudah dideskripsikan pada bab-bab sebelumnya, penerapanmachine
_learning_ pada suatu domain membutuhkan pengetahuan/keahlian pada
domain tersebut. Bab ini tidak akan membahas domain secara detail, tetapi secara
abstrak (bertujuan memberikan gambaran/pengenalan). Untuk mengerti
domain yang dibahas secara mendalam, silakan membaca sumber lainnya. Bab
ini akan memuat secara sangat singkat, apa guna _machine learning_ dan pada
contoh kasus seperti apa teknik _machine learning_ diterapkan pada permasalahan
spesifik domain. Tujuan bab ini adalah untuk memberikan gambaran,
bahwa mengetahui _machine learning_ saja mungkin tidak cukup. Sekali lagi
penulis ingin menekankan, pembaca harus mengerti domain aplikasi. Selain
itu, bab ini mengilustrasikan bahwa model _machine learning_ tidak berdiri
sendiri. Artinya, model _machine learning_ bisa jadi hanyalah sebuah modul
(untuk mengeksekusi fungsi tertentu) pada sebuah perangkat lunak.

216 14 Penerapan Pembelajaran Mesin


### 7.1 Maximal Margin Classifier

Ingat kembali kedua bab sebelumnya bahwa model klasifikasi mencari suatu
_decision boundary_ untuk memisahkan data pada kelas satu dan kelas lainnya.
Apabila kamu memiliki data berdimensi dua, maka _decision boundary_ yang
kita dapat berupa garis. Pada data tiga dimensi, _decision boundary_ berupa
sebuah bidang ( _plane_ ). Sebagai ilustrasi, lihatlah Gambar 7.1. Secara umum,
konsep bidang pemisah disebut sebagai _hyperplane_. Untuk data berdimensi
F, bidang pemisah kita memiliki dimensiF−1.
Secara matematis, _hyperplane_ didefinisikan pada persamaan 7.1 (dapat
ditulis ulang seperti persamaan 7.2), dimanaxmelambangkan suatu fitur,x
adalah _input_ dalam bentuk _feature vector_ danFmelambangkan banyaknya fitur.
Ingat kembali, ruas kiri pada persamaan adalah bentuk dasar pada model
linear. Dengan demikian, kita mengasumsikan bahwa data dapat dipisahkan

92 7 Support Vector Classifier

```
Gambar 7.1: Ilustrasi _hyperplane_.
```
secara linear.
x 1 w 1 +x 2 w 2 +···+xFwF+b= 0 (7.1)
x·w+b= 0 (7.2)

Untuk permasalahan klasifikasi dua kelas, kita dapat memisahkan keputusan
berdasarkan letak data pada _hyperplane_, misal di atas atau di bawah _hyperplane_ pada
Gambar 7.1. Secara lebih matematis, seperti pada persamaan 7.3
dan 7.4. Konsep ini mirip seperti yang sudah dijelaskan pada bab 5 tentang
melakukan _binary classification_ menggunakan fungsi _sign_ dan _thresholding_.

```
ifx·w+b > 0 ,then classA (7.3)
```
ifx·w+b < 0 ,then classB (7.4)
Apabila kita memang mampu memisahkan data dua kelas secara sempurna
dengan suatu _hyperplane_ ( _linearly separable_ ), pilihan _hyperplane_ yang
dapat kita buat tidaklah satu. Artinya, kita dapat menggeser-geser garis pembatas,
disamping tetap memisahkan data secara sempurna, seperti diilustrasikan
pada Gambar 7.2. _Hyperplane_ terbaik dari beberapa pilihan yang
ada adalah yang memiliki _maximal margin_. Artinya, suatu _hyperplane_ yang
memiliki jarak terjauh terhadap data pada suatu kelas. Dengan demikian,
ada jarak yang besar dari _hyperplane_ dengan data. Ilustrasi diberikan pada
Gambar 7.3. Kita harap, suatu _hyperplane_ yang memiliki _margin_ besar dapat
melakukan klasifikasi dengan baik pada data yang belum kita lihat, karena
kita memberikan _margin_ yang besar untuk suatu data baru masuk ke daerah
kelas masing-masing. Bentuk lingkaran yang memiliki _border_ berwarna hitam
pada Gambar 7.3 menandakan data terluar pada masing-masing kelas, dikenal

```
7.1 Maximal Margin Classifier 93
```
Gambar 7.2: Ilustrasi banyak pilihan _hyperplane_. Garis hitam melambangkan
opsi _hyperplane_ untuk memisahkan data secara sempurna.

sebagai _support vectors_. Garis putus-putus melambangkan garis yang dibentuk
oleh masing-masing _support vectors_ untuk masing-masing kelas ( _margin_ ).
Apabila kita definisikan (simbolkan) kelas pertama dengan _output_ bernilai
1 dan kelas kedua bernilai−1 (ingat kembali materi fungsi _sign_ ), makasupport
vectorsadalah poinxyang memenuhi kriteria pada persamaan 7.5. Dengan
demikian, semua data berlabel 1 dan−1 memenuhi persamaan 7.6, dimanay
melambangkan kategori. Hal inilah yang disebut sebagai _maximal margin_
_classifier_. Kita mencari _support vectors_ yang memberikan _hyperplane_ yang
memiliki _maximal margin_. Lihatlah ilustrasi pada Gambar 7.4!

```
|x·w+b|= 1 (7.5)
```
yi(x·w+b)≥ 1 (7.6)
Misalkan kita ambil satu _support vector_ dari masing-masing kelas. Pada
kelas pertama, ia memenuhixc^1 ·w+b= 1. Pada kelas kedua, ia memenuhi
xc^2 ·w+b=−1. Apabila kita kurangi kedua persamaan tersebut, kita mendapatkan
persamaan 7.7. Persamaan 7.8 memberikan perhitungan _margin_ antara
_support vectors_ dan _hyperplane_ yang memberikan nilai maksimal.

```
w·(xc^1 −xc^2 ) = 2 (7.7)
```
```
w
‖w‖
·(xc^1 −xc^2 ) =
```
#### 2

```
‖w‖
```
#### (7.8)

Sekarang, kita formalisasi _maximal margin classifier_ secara matematis. Objektifnya
adalah memaksimalkan _margin_ (persamaan 7.9) dengan menjaga
setiap _training data_ diklasifikasikan dengan benar (persamaan 7.10).

94 7 Support Vector Classifier

Gambar 7.3: _Maximal Margin Hyperplane_. Bentuk lingkaran yang memiliki
_border_ di- _bold_ berwarna hitam menandakan data terluar pada masing-masing
kelas, dikenal sebagai _support vectors_. Garis putus-putus melambangkan garis
yang dibentuk oleh masing-masing _support vectors_ untuk masing-masing kelas
( _margin_ ).

```
Objective : maximize Margin =
```
#### 2

```
‖w‖
```
#### (7.9)

```
Subject to :yi(xi·w+b)≥ 1 (7.10)
```
Tidak sama dengan _model linear_ yang sudah dijelaskan sebelumnya, kita ingin
mengoptimasi sebuah fungsi sembari memenuhi kendala ( _constraint_ ) dari
fungsi lain. Ini adalah bentuk _integer linear programming_, dan solusi untuk
_maximal margin classifier_ dapat diselesaikan menggunakan _lagrange multiplier_.
Untuk detail penyelesaiannya, silahkan membaca sumber lainnya.
Seperti yang kamu sadari, _maximal margin classifier_ hanya bergantung
pada subset _training data_ yang dipilih sebagai _support vectors_. Dengan demikian,
metode ini sangat sensitif terhadap tiap-tiap observasi. Satu observasi baru
yang menjadi _support vector_ dapat merubah _decision boundary_. Kita kenal
ini sebagai _overfitting_. Ilustrasi permasalahan ini diberikan pada Gambar 7.5.
Selain itu, _maximal margin classifier_ mengasumsikan bahwa data bersifatlinearly
separable, walaupun kebanyakan data tidak bersifat demikian.

```
7.1 Maximal Margin Classifier 95
```
```
Gambar 7.4:Maximal Margin Classifier.
```
Gambar 7.5:Maximal Margin Classifiersangatlah sensitif terhadap perubahan _training_
_data_. Lingkaran berwarna oranye melambangkan _training data_
baru. Akibat kemuculan data baru ini, _decision boundary_ awal (garis berwarna
hitam) berubah secara cukup dramatis (garis berwarna oranye).

96 7 Support Vector Classifier


### 7.3 Support Vector Machine

```
Transformasi
```
Gambar 7.7: Ilustrasi transformasi data. Garis berwarna hijau (dashed)
melambangkan _decision boundary_.

Berhubung banyak _decision boundary_ tidak dapat di _model_ kan dengan suatu
bentuk atau persamaan linear, kita harus me _model_ kan _decision boundary_ sebagai
fungsi non-linear. Ekstensi _support vector classifier_ adalahsupport
vector machineyang menggunakan teknik _kernel_. Suatu fungsi _kernel_
mentransformasi data ke ruang ( _space_ atau dimensi) lainnya ( _bias_ anya ke dimensi
lebih tinggi). Data yang ditransformasi ini (pada dimensi lebih tinggi),
kita harapkan dapat dipisahkan dengan fungsi linear. Apabila kita lihat balik
pada dimensi asli, _decision boundary_ pada dimensi yang baru me _model_ kan suatudecision
boundarynon-linear pada dimensi aslinya. Hal ini diilustrasikan
pada Gambar 7.7. Fungsi _kernel_ ini ada banyak, beberapa yang terkenal di-
antaranya:^1

1. Polynomial Kernel (persamaan 7.13)

```
k(xi,xj) = (xi·xj+ 1)d (7.13)
```
2. Radial Basis Function Kernel (persamaan 7.14,σ^2 melambangkan varians)

```
k(x,y) = exp
```
#### (

#### −

```
‖x−y‖^2
2 σ^2
```
#### )

#### (7.14)

Yang membedakan _support vector machine_ dan _support vector classifier_ adalah
mengintegrasikan fungsi _kernel_ pada model.
Sebelum membahas bagaimana fungsi _kernel_ diintegrasikan pada SVM,
kita sedikit bahas kembali _support vector classifier_. Ingat kembalisupport
vector classifier mencari _maximal margin_ (persamaan 7.9) dengan kendala
persamaan 7.11 dan 7.12. Suatu _support vector classifier_ yang memenuhi seluruh
kendala tersebut dapat direpresentasikan sebagai persamaan 7.15 dimana

(^1) https:// _data_ -flair. _training_ /blogs/svm- _kernel_ - _function_ s/

98 7 Support Vector Classifier

x′melambangkan suatu data baru,xiadalah suatu _instance_ pada _training_
_data_ danNadalah banyaknya _training data_. Operasi〈x′,xi〉melambangkan
_inner product_. Cara menghitung _inner product_ dari dua vektor diberikan pada
persamaan 7.16, dimanaFmelambangkan panjangnya vektor. _Inner product_
dapat diinterpretasikan sebagai perhitungan kemiripan dua vektor.

```
f(x′) =β 0 +
```
#### ∑N

```
i=1
```
```
αi〈x′,xi〉 (7.15)
```
```
〈a,b〉=
```
#### ∑F

```
j=1
```
```
ajbj (7.16)
```
Untuk menghitung parameterβdanαpada persamaan 7.15, kita membu-
tuhkan

#### (N

```
2
```
#### )

kombinasi pasangan _instance_ yang ada pada _training data_. Akan
tetapi, pada saat melewatkan suatu _input_ baru pada persamaan tersebut,
kita sebenarnya cukup menghitung seberapa kedekatan (kemiripan) antara
_input_  dan _support vectors_. Hal ini disebabkanαbernilai 0 untuk _instance_
selain _support vectors_, i.e., diatur hanya bernilai _nonzero_ untuk _support vectors_.
Artinya, keputusan klasifikasi bergantung pada pilihan _support vectors_.
Dengan demikian, kita dapat menulis kembali persamaan 7.15 sebagai persamaan
7.17, dimanaSmelambangkan _support vectors_.

```
f(x′) =β 0 +
```
#### ∑

```
xi∈S
```
```
αi〈x′,xi〉 (7.17)
```
Ketika menggunakan fungsi _kernel_, kita menghitung kemiripan ( _inner product_ )
antara dua vektor pada dimensi transformasi. Kita menggantiinner
productmenggunakan suatu fungsi _kernel_, ditulis sebagai persamaan 7.18.
Persamaan inilah yang dikenal sebagai _support vector machine_ (SVM).
Untuk me _model_ kan _non-linear decision boundary_, kita menggunakan fungsi
yang bersifat non-linear sebagai _kernel_.

```
f(x′) =β 0 +
```
#### ∑

```
xi∈S
```
```
αik(x′,xi) (7.18)
```
Untuk memahami SVM lebih dalam, kamu bisa membaca buku karangan
Bishop [8].


### Soal Latihan

7.1. Metode _Kernel_
Baca dan jelaskanlah konsep metode kernel yang dijelaskan pada buku
Bishop [8]!

7.2. Fungsi _Kernel_
Jelaskanlah macam-macam fungsi _kernel_ yang sering digunakan untuksupport
vector machine!

7.3. SVM- _rank_
Walau umumnya digunakan untuk permasalahan klasifikasi, SVM juga dapat
diaplikasikan pada permasalahan _ranking_ ( _learning to rank_ ), dikenal sebagai
SVM- _rank_.^2. Permasalahan ini adalah inti dari _search engine_ Jelaskanlah
bagaimana cara kerja SVM- _rank_ !

(^2) https://www.cs.cornell.edu/people/tj/svm_ _light/svm_ _ _rank_.html


### 7.5 Tips

Untuk memahami materi yang disampaikan pada bab ini secara lebih dalam,
kami menya _rank_ an kamu untuk mempelajari _optimization theory_ danope _ratio_ n
research (i.e., integer linear programming). Penulis harus mengakui
tidak terlalu familiar dengan teori-teori tersebut. Sejarah dan perkembangansupport
vector machinedapat dibaca pada paper- _paper_ yang diberikan
di pranalahttp://www.svms.org/ _history_.html. Walaupun penjelasan pada
bab ini hanya bersifat “kulit”-nya saja, kami harap pembaca mampu mendapatkan
intuisi.


### 7.4 Klasifikasi lebih dari dua kelas

Penjelasan pada bab ini berfokus pada _binary classification_. Memang,maximal
_margin_  classifierdan ekstensinya difokuskan pada permasalahan _binary classification_.
Kita dapat mengekstensinya untuk _multi-class classification_. Ada
dua teknik yang umumnya digunakan, yaitu _one versus one_ danone versus
allseperti yang sudah dijelaskan pada bab 5. Kita dapat mendekomposisi
_classifier_ untuk _multi-label classification_ menjadi beberapa _binary classifiers_,
seperti yang sudah dijelaskan pada bab 5.

```
7.5 Tips 99
```


### 7.2 Support Vector Classifier

_Support Vector Classifier_  adalah ekstensi dari _maximal margin classifier_.
Ide utamanya adalah relaksasi kendala pada persamaan 7.10. Sebelumnya,maximal
_margin_  classifiermengasumsikan bahwa data bersifatlinearly
separabledan dipisahkan secara sempurna. Akan tetapi, kenyataan tidaklah
demikian. Ide _support vector classifier_ adalah memperbolehkan beberapa data
diklasifikasikan dengan salah. Kita modifikasi _constraint_ persamaan 7.10 menjadi
persamaan 7.11 untuk memperbolehkan model salah mengklasifikasikan
_data_  dengan parameter kontrol, melambangkan apakah suatu observasi boleh
berada pada ruang yang tidak tepat. Kita juga dapat membatasi seberapa
banyak kesalahan yang dibuat dengan _constraint_ baru yang diberikan pada
persamaan 7.12.

```
Maximize margin,subject to :yi(xi·w+b)≥1(1−i) (7.11)
```
```
i≥0;
```
#### ∑

```
i≤C (7.12)
```
Ilustrasi _support vector classifier_ diberikan pada Gambar 7.6. Disini, kita
sedikit modifikasi definisi _support vectors_ sebagai observasi yang tepat jauh
pada _margin_ atau pada daerah yang tidak sesuai dengan kelasnya [20].

Gambar 7.6: Support Vector Classifier. Lingkaran dengan border di- _bold_
berwarna hitam melambangkan _support vectors_, garis putus-putus melambangkan
_margin_.

Walaupun memperbolehkan beberapa observasi boleh tidak berada pada
ruang yang tepat (berdasarkan _margin_ ), _support vector classifier_ masih memiliki
asumsi bahwa _decision boundary_ berbentuk suatu fungsi linear. Ini adalah
batasan utama model ini.

```
7.3 Support Vector Machine 97
```


### 4.2 K- _mean_ s

Pada _supervised learning_ kita mengetahui kelas data untuk setiap _feature vector_,
sedangkan untuk _unsupervised learning_ kita tidak tahu. Tujuan _unsupervised_
_learning_ salah satunya adalah melakukan _clustering_. Yaitu mengelompokkan
_data_ - _data_ dengan karakter mirip. Untuk melakukan pembelajaran
menggunakan _K-means_ [27], kita harus mengikuti langkah-langkah sebagai
berikut:

1. Tentukan jumlah kelompok yang kita inginkan.
2. Inisiasi _centroid_ untuk setiap kelompok (pada bab ini, secara acak). Cen-
    troid adalah data yang merepresentasikan suatu kelompok (ibaratnya ke-
    tua kelompok).
3. Hitung kedekatan suatu data terhadap _centroid_, kemudian masukkan data
    tersebut ke kelompok yang _centroid_ -nya memiliki sifat terdekat dengan
    dirinya.
4. Pilih kembali _centroid_ untuk masing-masing kelompok, yaitu dari anggota
    kelompok tersebut (semacam memilih ketua yang baru).
5. Ulangi langkah-langkah sebelumnya sampai tidak ada perubahan anggota
    untuk semua kelompok.

```
id rich intelligent good looking
1 yes yes yes
2 yes no no
3 yes yes no
4 no no no
5 no yes no
6 no no yes
```
```
Tabel 4.5: Contoh dataset orang kaya
```
Perhatikan Tabel 4.5, kita akan mengelompokkan data pada tabel tersebut
menjadi dua _clusters_ (dua kelompok) yaituk 1 ,k 2 menggunakan algoritma

```
4.2 K- _mean_ s 57
```
```
id perbedaan dengan _centroid_ 1 perbedaan dengan _centroid_ 2 as _sign_ ment
2 2 2 k 1
3 1 3 k 1
4 3 1 k 2
5 2 2 k 1
```
```
Tabel 4.6:As _sign_ ment _K-means_ langkah 1
```
```
id perbedaan dengan _centroid_ 1 perbedaan dengan _centroid_ 2 as _sign_ ment
1 2 3 k 1
3 1 3 k 1
5 3 1 k 2
6 2 2 k 1
```
```
Tabel 4.7:As _sign_ mentK-Means langkah 2
```
_K-means_. Pertama-tama kita inisiasi centroid secara acak,id 1 untukk 1 dan
id 6 untukk 2. Kita hitung kedekatan data lainnya terhadap _centroid_. Untuk
mempermudah contoh, kita hitung perbedaan data satu dan lainnya dengan
menghitung perbedaan nilai atribut (nilai atributnya sama atau tidak).
Apabila perbedaan suatu data terhadap kedua centroid bernilai sama, kita
masukkan ke kelas dengan nomor urut lebih kecil.
Setelah langkah ini, kelompok satu beranggotakan{id 1 ,id 2 ,id 3 ,id 5 }sementara
kelompok dua beranggotakan{id 4 ,id 6 }. Kita pilih kembali centroid
untuk masing-masing kelompok yang mana berasal dari anggota kelompok itu
sendiri. Misal kita pilih secara acak,^1 centroid untuk kelompok pertama adalah
id 2 sementara untuk kelompok kedua adalahid 4. Kita hitung kembali _assignment_ anggota
kelompok yang ilustrasinya dapat dilihat pada Tabel 4.7. Hasil
langkah ke-2 adalah perubahan anggota kelompok,k 1 ={id 1 ,id 2 ,id 3 ,id 5 }
dank 2 ={id 4 ,id 6 }. Anggap pada langkah ke-3 kita memilih kembaliid 2 dan
id 4 sebagai centroid masing-masing kelompok sehingga tidak ada perubahan
keanggotaan.
Bila kamu membaca buku literatur lain, kemungkinan besar akan dijelaskan
bahwa _clustering_ itu memilikihubungan erat denganGaussian
Mixture Model. Secara sederhana,satu _cluster_ (atau satu kelas)sebenarnya
seolah-olah dapat dipisahkan dengan kelas lainnya oleh distribusi
gaussian. Perhatikan Gambar 4.1! Suatu _cluster_ atau kelas, seolah olah “dibungkus”
oleh suatu distribusi gaussian. Distribusi seluruh dataset dapat diaproksimasi
dengan _Gaussian Mixture Model_ (GMM).
Ingat kembali bahwa data memiliki suatu pola (dalam statistik disebut
distribusi), kemudian pada bab 2 telah disebutkan bahwa GMM dipercaya dapat
mengaproksimasi fungsi apapun (silahkan perdalam pengetahuan statistik

(^1) Cara lain memilih akan dijelaskan pada bab 10.

58 4 Algoritma Dasar

```
Gambar 4.1: Ilustrasi hubungan Clustering, kelas, dan Gaussian
```
kamu untuk hal ini). Dengan demikian, _machine learning_ yang mempunyai
salah satu tujuan untuk menemukan pola dataset, memiliki hubungan yang
sangat erat dengan distribusi gaussian karena pola tersebut dapat diaproksimasi
dengan distribusi gaussian.


### Soal Latihan

4.1. Data numerik

(a) Carilah suatu contoh dataset numerik.
(b) Pikirkanlah st _rate_ gi untuk mengklasifikasi data numerik pada algoritma
_Naive Bayes_  danK-nearest-neighbor!

4.2. K- _mean_ s, KNN, GMM, EM
Buktikan bahwa K- _mean_ s, K-nearest-neighbor, _Gaussian Mixture Model_, dan
_Expectation Maximization_  Algorithm memiliki hubungan! (apa kesamaan
mereka).

4.3. K- _mean_ s

(a) Cari tahu cara lain untuk memilih _centroid_ pada algoritma K- _mean_ s
(selain cara acak) baik untuk data nominal dan numerik!
(b) Cari tahu cara lain untuk menghitung kedekekatan suatu data dengan
_centroid_ baik untuk data nominal dan numerik! Hint: _euclidian distance_,
_manhattan distance_, _cosine similarity_.


### 4.3 K-nearest-neighbor

IdeK-nearest-neighbor(KNN) adalah mengelompokkan data ke kelompok
yang memiliki sifat termirip dengannya [28]. Hal ini sangat mirip denganK _mean_ s.
Bila K- _mean_ s digunakan untuk _clustering_, KNN digunakan untuk
klasifikasi. Algoritma klasifikasi ini disebut juga algoritma malas karena tidak
mempelajari cara mengkategorikan data, melainkan hanya mengingat data
yang sudah ada.^2 Pada subbab 4.2, kita telah mengelompokkan data orang
kaya menjadi dua kelompok.
KNN mencariK _feature vector_ dengan sifat termirip, kemudian mengelompokkan
_data_  baru ke kelompok _feature vector_ tersebut. Sebagai ilustrasi mudah,
kita lakukan klasifikasi algoritma KNN denganK= 3 untuk data baru
{rich=no,intelligent=yes,good looking=yes}. Kita tahu pada subbab
sebelumnya bahwa kelompok satuk 1 ={id 1 ,id 2 ,id 3 ,id 5 }dank 2 ={id 4 ,id 6 },
pada Tabel 4.8. _feature vector_ termirip dimiliki oleh data denganid 1 ,id 5 ,id 6
seperti diilustrasikan pada Tabel 4.8. Kita dapat menggunakan st _rate_ gi untuk
mengurusi permasalahan ini, misalnya memberikan prioritas memasukkan ke
kelompok yang rata-rata perbedaannya lebih kecil.^3 Dengan st _rate_ gi tersebut,
kita mengklasifikasikan data baru ke kelompok pertama.

(^2) https://sebastianraschka.com/faq/docs/lazy-knn.html
(^3) Silahkan eksplorasi cara lain juga!

```
4.3 K-nearest-neighbor 59
```
```
id perbedaan
1 1
2 3
3 3
4 2
5 1
6 1
```
```
Tabel 4.8: Perbedaan data baru vs data orang kaya
```


### 4.1 Naive Bayes

_Naive Bayes_  adalah algoritma _supervised learning_ yang sangat sederhana [26].
Idenya mirip dengan probabilitas bayesian pada bab 2. Secara formal, persamaanNaive
Bayesuntuk klasifikasi diberikan pada persamaan 4.1 dimana
ciadalah suatu nilai kelas,Cadalah pilihan kelas (himpunan),tadalah fitur
(satu fitur, bukan _feature vector_ ) danF adalah banyaknya fitur. Kita
memprediksi kelas berdasarkan probabilitas kemunculan nilai fitur pada kelas
tersebut.
Pertama, kita hitung _likelihood_ suatu _feature vector_ diklasifikasikan ke kelas
tertentu berdasarkan bagaiman probabilitas korespondensi fitur-fiturnya
terhadap kelas tersebut (persamaan 4.1). Kemudian, kita normalisasi _likelihood_ semua
kelas untuk mendapatkan probabilitas _class-assignment_ ( _softmax_ –
persamaan 4.2). Akhirnya, kita pilih kelas dengan probabilitas tertinggi (persamaan
4.3).

```
_likelihood_ (ci) =P(ci)
```
#### ∏F

```
f=1
```
```
P(tf|ci) (4.1)
```

54 4 Algoritma Dasar

```
id outlook temperature humidity windy play ( _class_ )
1 sunny hot high false no
2 sunny hot high true no
3 overcast hot high false yes
4 rainy mild high false yes
5 rainy cool normal false yes
6 rainy cool normal true no
7 overcast cool normal true yes
8 sunny mild high false no
9 sunny cool normal false yes
10 rainy mild normal false yes
11 sunny mild normal true yes
12 overcast mild high true yes
13 overcast hot normal false yes
14 rainy mild high true no
```
```
Tabel 4.1: Contoh dataset _play tennis_ (UCI machine learning repository)
```
```
_outlook_  temperature humidity windy play ( _class_ )
yes no yes no yes no yes no yes no
sunny 2 3 hot 2 3 high 3 4 false 6 2 9 5
overcast 4 0 mild 4 2 normal 6 1 true 3 3
rainy 3 2 cool 3 1
```
```
Tabel 4.2: Frekuensi setiap nilai atribut
```
```
_outlook_  temperature humidity windy play ( _class_ )
yes no yes no yes no yes no yes no
sunny 2/9 3/5 hot 2/9 3/5 high 3/9 4/5 false 6/9 2/5 9/14 5/14
overcast 4/9 0/5 mild 4/9 2/5 normal 6/9 1/5 true 3/9 3/5
rainy 3/9 2/5 cool 3/9 1/5
```
```
Tabel 4.3: Probabilitas setiap nilai atribut
```
```
P _assignment_ (ci) =
```
```
_likelihood_ (ci)
∑
cjC _likelihood_ (cj)
```
#### (4.2)

```
cˆi= arg max
ciC
```
```
P _assignment_ (ci) (4.3)
```
Agar mendapatkan gambaran praktis, mari kita bangun model Naive
Bayes untuk Tabel 4.1. Tabel ini disebut sebagai _dataset_, yaitu memuat
_entry_ data (tiap baris disebut sebagai _instance_ ). Kita anggap Tabel 4.1 sebagai _training_
_data_. Untuk menghitung probabilitas, pertama-tama kita
hitung terlebih dahulu frekuensi nilai atribut seperti pada Tabel 4.2, setelah
itu kita bangun model probabilitasnya seperti pada Tabel 4.3.
Untuk menguji kebenaran model yang telah kita bangun, kita menggunakan _testing_
_data_, diberikan pada Tabel 4.4. _testing data_ berisiunseen
exampleyaitu contoh yang tidak ada pada _training data_.

```
4.1 Naive Bayes 55
```
```
id outlook temperature humidity windy play ( _class_ )
1 sunny cool high true no
```
```
Tabel 4.4: Contoh testing data _play tennis_ [7]
```
```
_likelihood_ ( _play=yes_ ) =P(yes)P(sunny|yes)P(cool|yes)P(high|yes)
P(true|yes)
```
```
=
```
#### 9

#### 14

#### ∗

#### 2

#### 9

#### ∗

#### 3

#### 9

#### ∗

#### 3

#### 9

#### ∗

#### 3

#### 9

#### = 0. 0053

```
_likelihood_ ( _play=no_ ) =P(no)P(sunny|no)P(cool|no)P(high|no)
P(true|no)
```
```
=
```
#### 5

#### 14

#### ∗

#### 3

#### 5

#### ∗

#### 1

#### 5

#### ∗

#### 4

#### 5

#### ∗

#### 3

#### 5

#### = 0. 0206

```
P _assignment_ ( _play=yes_ ) =
```
```
_likelihood_ ( _play=yes_ )
_likelihood_ ( _play=yes_ ) + likelihood( _play=no_ )
```
```
=
```
#### 0. 0053

#### 0 .0053 + 0. 0206

#### = 0. 205

```
P _assignment_ ( _play=no_ ) =
_likelihood_ ( _play=no_ )
_likelihood_ ( _play=yes_ ) + likelihood( _play=no_ )
```
```
=
```
#### 0. 0206

#### 0 .0053 + 0. 0206

#### = 0. 795

KarenaP _assignment_ ( _play_ =no)> P _assignment_ ( _play_ =yes) maka diputuskan
bahwa kelas untuk _unseen example_ adalah _play=no_. Proses klasifikasi
untuk data baru sama seperti proses klasifikasi untuk _testing data_, yaitu kita
ingin menebak kelas data. Karena model berhasil menebak kelas pada _training_
_data_ dengan tepat, akurasi model adalah 100% (kebetulan contohnya hanya
ada satu).
Perhatikan! Kamu mungkin berpikir kita dapat langsung menggunakan
_likelihood_ untuk mengklasifikasi, karena probabilitas dengan _likelihood_ terbesar
akan dipilih. Hal ini cukup berbahaya apabila _likelihood_ untuk masingmasing
kelas memiliki jarak yang cukup dekat. Sebagai contoh, menghitung
probabilitas apabila (kasus abstrak) _likelihood_ ={ 0. 70 , 0. 60 }, sehingga probabilitas
kelas menjadi={ 0. 54 , 0. 46 }. Karena perbedaan probabilitas kelas relatif
tidak terlalu besar (contoh ini adalah penyederhanaan), kita mungkin harus

56 4 Algoritma Dasar

berpikir kembali untuk mengklasifikasikan _instance_ ke kelas pertama. Hal ini
berkaitan dengan seberapa yakin kamu mengklasifikasikan suatu sampel ke
kelas tertentu. Perbedaan _likelihood_ yang besar menandakan keyakinan, sementara
perbedaan yang tipis menandakan ketidakyakinan.
Perhatikan, jumlah _likelihood_ mungkin lebih dari 1. Sementara, probabilitas
atau jumlahnya berada pada range [0,1] (0 ≤P ≤1). Pada contoh
sebelumnya, nilai _likelihood_ diubah menjadi bentuk probabilitas dengan
menggunakan teknik _softmax_. Fungsi _softmax_ berbentuk seperti pada persamaan
4.2.


### 3.6 Classification, Association, Clustering

Padasupervsied learning, kita memprediksi kelas berdasarkan _feature vector_
yang merepresentasikan suatu sampel ( _data_ /observasi). _Feature vector_ bisa
diibaratkan sebagai sifat-sifat atau keadaan yang diasosiasikan dengan kelas.
Pada _supervised learning_, setiap _feature vector_ berkorespondisi dengan kelas
tertentu. Mencari kelas yang berkorespondensi terhadap suatu _input_ disebutklasifikasi( _classification_ ).
Contoh klasifikasi adalah mengkategorikan
gambar buah (e.g. apel, jeruk, dsb). Sementara itu, apabila kita ingin mencari
hubungan antara satu atribut dan atribut lainnya, disebutassociation. Sebagai
contoh pada Tabel 3.1, apabila _outlook=sunny_, maka sebagian besar
_humidity=high_. Di lain pihak, pada _unsupervised learning_ tidak ada kelas
yang berkorespondensi; kita mengelompokkan data dengan sifat-sifat yang
mirip, disebut _clustering_. Contoh _clustering_ adalah pengelompokkan barang
di supermarket. Perlu kamu catat bahwa _unsupervised learning_ 6 = _clustering_.
_Clustering_ adalah salah satu _task_ pada _unsupervised learning_.
Pada Tabel 3.1, hanya ada dua kelas, klasifikasi data ini disebut binary
_classification_. Apabila kelas klasifikasi lebih dari dua ( _mutually exclusive_ ),
disebut _multi-class classification_. Apabila kelas-kelas tersebut
tidak bersifat _mutually exclusive_, maka kita melakukan _multi-label classification_.
Mohon bedakan antara _multi-label classification_ danmultilevel/ _hierarchical_
_classification_. Pada _multi-level/hierarchical classification_,
pertama-tama kita melakukan klasifikasi untuk suatu kelas generik, lalu

(^5) https://en.wikipedia.org/wiki/Feature_selection
(^6) [http://scikit-learn.org/stable/modules/feature_selection.html](http://scikit-learn.org/stable/modules/feature_selection.html)

46 3 Data Analytics

dilanjutkan mengklasifikan data ke kelas yang lebih spesifik. Contohmultilevel
_classification_ adalah _kingdom_ (biologi), pertama diklasifikasikan ke _kingdom_
animalia, lalu lebih spesifiknya ke _phylum Vertebrata_, dst.Multi-label
_classification_ hanya proses klasifikasi ke dalam banyak “kelas” tanpa tinjauan
hirarkis.
_Multi-class classification_ yang telah dijelaskan sebelumnya disebut juga
sebagai _hard classification_, artinya apabila data diklasifikasikan ke kelas tertentu,
maka tidak mungkin data berada di kelas lainnya (ya atau tidak).
_Multi-label classification_ bersifat lebih _soft_, karena dapat mengklasifikasikan
ke beberapa kelas, misal data X memiliki masuk ke kategori kelas A, B dan
C sekaligus (dengan nilai probabilitas masing-masing).


### 3.3 Ruang Konsep

Dengan data yang diberikan, kita ingin melakukan generalisasi aturan/ konsep
yang sesuai dengan data. Hal ini disebut sebagai _inductive learning_. Cara
paling sederhana untuk _inductive learning_ adalah mengenumerasi seluruh kemungkinan
kombinasi nilai sebagai _rule_, kemudian mengeleminasi _rule_ yang
tidak cocok dengan contoh. Metode ini disebut _list-then-eleminate_. Silahkan
baca buku Tom Mitchell [4] untuk penjelasakn lebih rinci. Kemungkinan kombinasi
nilai ini disebut sebagai ruang konsep ( _concept space_ ). Sebagai contoh
pada Tabel 3.1 himpunan nilai masing-masing atribut yaitu:

- outlook={sunny,overcast,rainy}
- temperature={hot,mild,cold}
- humidity={high, _norm_ al}
- windy={true,false}
- play={yes,no}

sehingga terdapat 3× 3 × 2 × 2 ×2 = 72 kemungkinan kombinasi. Tentunya kita
tidak mungkin mengenumerasi seluruh kemungkinan kombinasi nilai karena
secara praktikal, atribut yang digunakan banyak. Terlebih lagi, apabila mengenumerasi
kombinasi atribut bertipe numerik.
Ada algoritma lain yang mendaftar “seluruh kemungkinan kombinasi”
bernama _candidate-elemination algorithm_ yang lebih efisien dibandinglistthen-eliminate.
Akan tetapi, algoritma ini _computationally expensive_ secara
praktikal, dalam artian memiliki kompleksitas yang besar dan tidak bisa
menyelesaikan permasalahan nyata. Kamu dapat membaca algoritma ini
pada buku Tom Mitchell [4] juga. Selain _inductive learning_, kita juga dapat
melakukan _deductive learning_ yaitu melakukan inferensi dari hal general menjadi
lebih spesifik. Walau demikian, secara praktis kita sebenarnya melakukan
_inductive learning_.


### 3.2 Nilai Atribut dan Transformasi

Perhatikan Tabel 3.1 yang merupakan contoh _dataset_ pada _machine learning_.
_Dataset_ adalah kumpulan sampel. Seorang anak ingin bermain tenis, tetapi
keputusannya untuk bermain tenis ( _play_ ) tergantung pada empat variabel
{ _outlook_, temperature, humidity, windy}. Keempat variabel ini disebutfitur.
Setiap fitur memilikiatributnilai dengantipe datadan _range_ tertentu.
Keputusan untuk bermain ( _play_ ) disebut sebagai label atau kelas ( _class_ ).
Pada bab 1 kamu telah diperkenalkan _supervised learning_ dan _unsupervised_
_learning_. Pada _supervised learning_, kita ingin mengklasifikasikan apakah seorang
anak akan bermain atau tidak, diberikan fitur-fitur yang memuat kondisi
observasi. Pada _unsupervised learning_, informasi kolom _play_ tidak diberikan,
kita harus mengelompokkan data tersebut sesuai dengan fitur-fiturnya (contoh
lebih nyata diberikan pada bab 4).
Dari segi data statistik, terdapat beberapa tipe atribut [23]:
1.Nominal. Nilai atribut bertipe nominal tersusun atas simbol-simbol yang
berbeda, yaitu suatu himpunan terbatas. Sebagai contoh, fitur _outlook_
pada Tabel 3.1 memiliki tipe datanominalyaitu nilainya tersusun oleh
himpunan{sunny, overcast, rainy}. Pada tipe nominal, tidak ada urutan
ataupun jarak antar atribut. Tipe ini sering juga disebutkategorialatau
enumerasi. Secara umum, tipe _output_ pada _supervised learning_ adalah
_data_  nominal.

```
2.Ordinal. Nilai ordinal memiliki urutan, sebagai contoh 4> 2 >1. Tetapi
jarak antar suatu tipe dan nilai lainnya tidak harus selalu sama, seperti
4 − 26 = 2−1. Atribut ordinal kadang disebut sebagainumerikataukon-
tinu.
```
```
3.Interval. Tipe interval memiliki urutan dan _range_ nilai yang sama. Sebagai
contoh 1− 5 , 6 − 10 ,dst. Kita dapat mentransformasikan/ mengkonversi
nilai numerik menjadi nominal dengan cara merubahnya menjadi
```

42 3 Data Analytics

```
id outlook temperature humidity windy play ( _class_ )
1 sunny hot high false no
2 sunny hot high true no
3 overcast hot high false yes
4 rainy mild high false yes
5 rainy cool normal false yes
6 rainy cool normal true no
7 overcast cool normal true yes
8 sunny mild high false no
9 sunny cool normal false yes
10 rainy mild normal false yes
11 sunny mild normal true yes
12 overcast mild high true yes
13 overcast hot normal false yes
14 rainy mild high true no
```
```
Tabel 3.1: Contoh dataset _play tennis_ (UCI machine learning repository).
```
```
interval terlebih dahulu. Lalu, kita dapat memberikan nama (simbol) untuk
masing-masing interval. Misalkan nilai numerik dengan _range_ 1 − 100
dibagi menjadi 5 kategori dengan masing-masing interval adalah{ 1 −
20 , 21 − 40 ,..., 81 − 100 }. Setiap interval kita beri nama, misal interval
81 −100 diberi namanilai A, interval 61−80 diberi namanilai B.
```
```
4.Ratio. Tipe _ratio_ (rasio) didefinisikan sebagai perbandingan antara suatu
nilai dengan nilai lainnya, misalkan massa jenis (fisika). Pada tipe _ratio_
terdapat _absolute zero_ (semacam _ground truth_ ) yang menjadi acuan, dan
_absolute zero_ ini memiliki makna tertentu.
```
Secara umum, data pada _machine learning_ adalah nominal atau numerik
(ordinal). Variabel yang kita prediksi yaitu _play_ disebutkelas/ _class_ /label.
Untuk setiap baris pada Tabel 3.1, baris kumpulan nilai variabel non-kelas
disebut _vektor_ fitur/ _feature vector_. Contohnya pada Tabel 3.1,feature
vector-nya untuk data denganid= 4 adalahx 4 ={ _outlook=rainy_, temperature=mild,
_humidity=high_, windy=false}. _Feature vector_ adalah representasi
dari suatu observasi/ _data_. Pada _machine learning_, kita melakukan operasi terhadap
_data_  pada representasi _feature vector_ -nya. Kami serahkan pada pembaca
untuk mencari contoh dataset dengan tipe numerik sebagai pekerjaan
rumah.^2

(^2) https://www.cs.waikato.ac.nz/ml/weka/ _dataset_ s.html

```
3.4 Linear Separability 43
```


### 3.7 Mengukur Kinerja

Pada bab 1, sudah dijelaskan bahwa kita harus mengukur kinerja model dengan
cara yang kuantitatif. Pada saat proses latihan, kita ingin model mengoptimalkan
suatu nilai _utility function_, misal meminimalkan nilai _error_ atau
_entropy_. Pada saat latihan, model pembelajaran mesin dapat mengoptimalkan
_utility function_ yang berbeda-beda (tergantung algoritma).
Kita juga dapat mengevaluasi model secara eksternal dengan melewatkan
_data_  pada model (umumnya _validation_ dan _testing data_ ), kemudian mengevaluasi
prediksi final model tersebut dengan ukuran _performance measure_.Performance
measuredapat mengukur kinerja model yang dikonstruksi oleh algoritma
yang berbeda (akan lebih jelas sembari kamu membaca buku ini).
Sebagai contoh, kamu dapat membandingkan kinerja prediksi model dengan
menggunakan metrik seperti akurasi, presisi, _recall_, F1-measure, BLEU [24],
ROUGE [25], _intra-cluster similarity_, dsb. Masing-masing _performance measure_ mengukur
hal yang berbeda. Perlu kamu ketahui bahwa memilih ukuran
kinerja tergantung pada domain permasalahan. Misalkan pada translasi
otomatis, peneliti menggunakan ukuran BLEU; pada peringkasan dokumen,
menggunakan ROUGE. Sementara itu, pada _information retrival_ /sistem temu
balik informasi menggunaan presisi, _recall_, F1-measure, atau _mean_ average
precision (MAP). Pada domain klasifikasi gambar, menggunakan akurasi.
Masing-masing _performance measure_ dapat memiliki karakteristik nilai optimal
yang berbeda. Kamu harus mengerti domain permasalahan untuk
mengerti cara mencapai titik optimal. Sebagai pengantar, diktat ini tidak dapat
membahas seluruh domain. Dengan demikian, kamu harus membaca lebih
lanjut literatur spesifik domain, misal buku pemrosesan bahasa alami atau
sistem temu balik informasi, dsb. Sebagai contoh, untuk permasalahan klasifikasi,
akurasi sering digunakan. Akurasi didefinisikan pada persamaan 3.1.
Buku ini akan membahas _performance measure_ dengan lebih lengkap pada
bab 9.

```
akurasi =
```
```
# _input_ diklasifikasikan dengan benar
banyaknya data
```
#### (3.1)

```
3.8 Evaluasi Model 47
```


### Soal Latihan

3.1. Konversi atribut
Sebutkan dan jelaskan macam-macam cara untuk mengkonversi atribut! Sebagai
contoh, numerik-nominal dan nominal-numerik.

3.2. Transformasi data
Sebutkan dan jelaskan macam-macam cara transformasi data (e.g. merubah
_non-linearly separable_ menjadi _linearly separable_ )

3.3. Seleksi fitur
Bacalah algoritma seleksi fitur pada _library_ sklearn. Jelaskan alasan ( _rationale_ )
dibalik penggunaan tiap algoritma yang ada!

3.4. Inductive Learning
Jelaskanlah algoritma _list-then-eliminate_ dan _candidate-elimination_ !

3.5. Tahapan analisis
Agar mampu memahami tahapan analisis data dan pembelajaran mesin secara
lebih praktikal, kerjakanlah tutorial berikut!
https://scikit-learn.org/stable/tutorial/basic/tutorial.html


### 3.1 Pengenalan Data Analytics

Secara umum, subbab ini adalah ringkasan dari buku Jeff Leek [22]. Untuk
detailnya, kamu dapat membaca buku tersebut secara langsung. Penulis
merekomendasikan buku tersebut karena ringkas dan mudah dipahami bahkan
oleh pemula.
Kita tahu di dunia ini ada banyak masalah. Masalah adalah ketika tujuan
yang diinginkan tidak tercapai ( _current state_ bukanlah _desired state_ ). Agar
_current state_ menjadi _desired state_, kita melakukan kegiatan yang disebut
penyelesaian masalah ( _problem solving_ ). Tiap bidang (domain) mendefinisikan
permasalahan secara berbeda. Oleh karena itu, mengetahui teknikmachine
_learning_ tanpa mengetahui domain aplikasi adalah sesuatu yang kurang baik
(semacam buta). Kamu memiliki ilmu, tetapi tidak tahu ilmunya mau digunakan
untuk apa. Contohnya, bidang keilmuan pemrosesan bahasa alami
( _natural language processing_ ) menggunakan _machine learning_ untuk mengklasifikasikan
teks; bidang keilmuan pemrosesan suara menggunakanmachine

40 3 Data Analytics

_learning_ untuk mentranskripsikan suara manusia menjadi teks. Tiap bidang
merepresentasikan permasalahan ke dalam formulasi yang berbeda. Bisa jadi
bentuk komputasi (representasi) pada bidang satu berbeda dengan bidang
lainnya. Hal ini perlu kamu ingat karena interpretasi representasi sangat
bergantung pada konteks permasalahan (domain). Buku ini adalah pengenalan
teknik yang bersifat umum.
Seperti yang sudah dijelaskan pada bab-bab sebelumnya. _Machine learning_ adalah
_infer_ ensi berdasarkan data. _Raw data_ atau data mentah adalah
sekumpulan fakta ( _record_, _event_ ) yang kemungkinan besar tidak memberikan
penjelasan apapun. Sama halnya dengan kebanyakan data di dunia nyata,raw
_data_ bersifat tidak rapih, misalnya mengandung _missing value_, i.e., ada data
yang tidak memiliki label padahal data lainnya memiliki label (ingat kembali
materi bab 1). Agar mampu menganalisis _raw data_ menggunakan teknik
_machine learning_, pertama-tama kita harus merapikan data sesuai dengan
format yang kita inginkan ( _dataset_ ). Kemudian, mencari fitur-fitur yang dapat
merepresentasikan data. Kedua kegiatan ini secara umum dikenal dengan
istilah _pre-processing_. Setelah _pre-processing_, kita menggunakan teknik-teknik
yang ada untuk menemukan pola-pola yang ada di data (membangun model).
Pada beberapa bidang, _pre-processing_ adalah tahapan yang memakan waktu
paling banyak pada eksperimen _machine learning_, sedangkan proses melatih
_model_  mungkin memakan waktu jauh lebih singkat.
Dalam komunitas peneliti basis data, dipercaya bahwa data memiliki sangat
banyak relasi yang mungkin tidak bisa dihitung. Teknik _machine learning_
hanya mampu mengeksplorasi sebagian relasi yang banyak itu. Lalu, kita analisis
informasi yang kita dapatkan menjadi pengetahuan yang digunakan untuk
memecahkan permasalahan atau membuat keputusan.
Setelah kita menganalisis data dan mendapatkan pengetahuan baru, pengetahuan
yang kita temukan dari data pada umumnya dipresentasikan (konferensi,
rapat, dsb). Hal umum yang dipaparkan saat presentasi, yaitu:

```
1. _Performance measure_. Seberapa “bagus” model atau metode yang kamu
usulkan, dibandingkan menggunakan model yang sudah ada.Performance
measure biasa disajikan dalam bentuk tabel. Perhatikan, mengatakan
_model_ /metode kamu “lebih bagus” adalah suatu hal subjektif, untuk itu
gunakanlah metode kuantitatif, seperti _p-value_ dalam statistik (hypothesis
_testing_ )^1 untuk mengatakan bahwa memang metode kamu lebih baik
(berbeda) dari _baseline_.
```
2. Tren. Bagaimana pola-pola umum yang ada di data, sesuai dengan tujuan
    analisis (permasalahan). Biasa disajikan dalam bentuk teks, kurva, atau
    grafik.

```
3. _Outlier_. Sajikan data- _data_ yang “jarang” atau tidak sesuai dengan tren
yang ada. Apa beda sifat data _outlier_ ini dibanding data pada tren? Kamu
```
(^1) https://onlinecourses.science.psu.edu/statprogram/ _node_ /138

```
3.2 Nilai Atribut dan Transformasi 41
```
```
harus menganalisis hal ini untuk meningkatkan _performance measure_ pada
penelitian atau analisis men _data_ ng. Apakah _outlier_ ini penting untuk diurus
atau bisa dipandang sebelah mata tanpa membahayakan keputusan/sistem?
Tidak jarang kamu mendapat inspirasi untuk meningkatkan
kinerja sistem setelah menganalisis _outlier_.
```
Langkah kerja yang dijelaskan ini adalah pekerjaan rutin _data scientist_.
Penulis ingin menekankan sekali lagi, bahwa memahami _machine learning_
saja tidak cukup,kamu harus memahami domain permasalahanagar
mampu melakukan analisis dengan tepat. Terdapat banyak hal yang hanya
mampu kamu pahami dari menganalisis data, apabila kamu mengerti domain
aplikasi.


### 3.4 Linear Separability

```
id humidity windy swim ( _class_ )
1 high high yes
2 normal normal no
```
```
Tabel 3.2: Contoh dataset _linearly separable_.
```
Perhatikan Tabel 3.2. Data pada tabel tersebut kita sebut _linearly separable_.
Sederhananya, untuk suatu nilai tertentu, fitur hanya berkorespondensi
dengan kelas tertentu. Ambil contoh pada Tabel 3.2, saat _humidity=high_ maka

44 3 Data Analytics

swim=yes. Secara geometris, bila kita proyeksikan _feature vector_ ke suatu ruang
dimensi, memisahkan kelas satu dan kelas lainnya dapat diperoleh dengan
cara menciptakan garis linier ( _linear line_ )–secara lebih umum, menggunakan _hyperplane_.^3
Ilustrasi dapat dilihat pada Gambar 3.1. Sementara pada
Tabel 3.1, bila kita hanya melihat fitur _humidity_ saja, ketika _humidity=high_
bisa jadi _play=yes_ atau _play=no_. Kasus ini disebut _non-linearly separable_.
Hidup kita tentu akan mudah apabila seluruh data bersifat _linearly separable_,
sayangnya kebanyakan data yang ada bersifat _non-linearly separable_.

```
Gambar 3.1:LinearlyvsNon-Linearly Separable.
```
Untuk memudahkan proses pada data _non-linearly separable_, kita pertamatama
mentransformasikan data menjadi _linearly-separable_. Kita dapat menggunakan
teknik transformasi data menggunakan _kernel function_ sepertiradial
basis function.^4 Pada umumnya, _kernel function_ mentransformasi data menjadi
lebih tinggi (semacam menambah fitur). Misal dari data yang memiliki
dua fitur, ditransformasi menjadi memiliki tiga fitur. Akan tetapi, hal ini
tidak praktikal untuk banyak kasus (dijelaskan pada bab 11). Cara lainnya
adalah memisahkan data menggunakan model non-linear, contoh:artificial
_neural network_. Hal ini penting dipahami karena data yang bersifatlinearly
separablemudah dipisahkan satu sama lain sehingga mudah untuk melakukan
_classification_ atau _clustering_.


### 3.8 Evaluasi Model

Ada beberapa hal yang perlu kamu catat tentang proses evaluasi suatu model
pembelajaran mesin:

```
1. _Data splitting_. Seperti yang sudah dijelaskan pada subbab 1.5, pada
umumnya kita memiliki _training_, _validation/validation_, dan _testing data_.
Mesin dilatih menggunakan _training data_, saat proses _training_,performance
measurediukur berdasarkan kemampuan mengenali/ mengeneralisasi _validation_
_data_. Perlu diketahui, _performance measure_ diukur menggunakan _validation_
_data_ untuk menghindari _overfitting_ dan _underfitting_.
Setelah selesai dilatih, maka model hasil pembelajaran dievaluasi dengan
_testing data_. _Training_, _validation_, dan _testing_ data tersusun oleh data yang
independen satu sama lain (tidak beririsan) untuk memastikan model
yang dihasilkan memiliki generalisasi cukup baik.
2. _Overfitting dan Underfitting_. _Overfitting_ adalah keadaan ketika model
memiliki kinerja baik hanya untuk _training data/seen examples_ tetapi
tidak memiliki kinerja baik untuk _unseen examples_.Underfttingadalah
keadaan ketika model memiliki kinerja buruk baik untuk _training data_
dan _unseen examples_. Hal ini akan dibahas lebih detil pada subbab 5.8.
3. _Cross validation_. _Cross validation_ adalah teknik untuk menganalisis
apakah suatu model memiliki generalisasi yang baik (mampu memiliki
kinerja yang baik pada _unseen examples_ ). Seperti yang kamu ketahui,
kita dapat membagi data menjadi _training_, _validation_, dan _testing data_.
Saat proses _training_, kita latih model dengan _training data_ serta dievaluasi
menggunakan _validation data_. Teknik _cross validation_ bekerja dengan
prinsip yang sama, yaitu membagi sampel asli menjadi beberapa subsampel
dengan partisi sebanyakK(K- _fold_ ). Ilustrasi diberikan oleh Gambar
3.2. Persegi panjang melambangkan suatu sampel. Saat proses _training_,
kita bagi data menjadi _training data_ dan _test data_ (i.e., _validation_
_data_ ). Hal ini diulang sebanyakKkali. Kita evaluasi kemampuan generalisasi
_model_  dengan merata-ratakan kinerja pada tiap iterasi. Setelah itu,
_model_  dengan kinerja terbaik (pada iterasi teretentu) digunakan lebih lanjut
untuk proses _testing_ atau dipakai secara praktis. Perlu diperhatikan,
setiap subsampel sebaiknya memiliki distribusi yang sama dengan sampel
aslinya (keseluruhan sampel); i.e., pada contoh, proporsi warna biru dan
merah adalah sama tiap partisi tiap iterasi. Konsep tersebut lebih dikenal
dengan _stratified sampling_.^7
```
(^7) https://en.wikipedia.org/wiki/Stratified_ _sampling_

48 3 Data Analytics

Gambar 3.2: Ilustrasi 3- _fold_ cross validation. Warna merah dan biru melambangkan
sampel ( _instance_ ) yang tergolong ke dua kelas berbeda.


### 3.10 Tahapan Analisis

Bagian ini adalah ringkasan bab ini. Untuk menganalisis data, terdapat
langkah yang perlu kamu perhatikan

1. Memutuskan tujuan analisis data ( _defining goal_ )
2. Mendapatkan data
3. Merapihkan data
4. Merepresentasikan data sebagai _feature vector_
5. Melakukan transformasi dan/atau _feature selection_ (mengurasi dimensi
    feature vector)
6. Melatih model ( _training_ ) dan menganlisis kinerjanya pada _validation_ (de-
    velopment) _data_.
7. Melakukan _testing_ dan analisis model baik secara kuantitatif dan kuali-
    tatif
8. Menyajikan data (presentasi)
    Saat ini, mungkin kamu merasa bab ini kurang berguna. Hal ini disebabkan
karena konsep yang dipaparkan oleh bab ini bersifat _high-level_. Kamu mungkin
harus membaca bab ini kembali setelah selesai membaca seluruh buku agar
mendapatkan pemahaman lebih mendalam.