### 9.4 Evaluasi Kinerja Model

Buku ini telah menjelaskan bahwa model pembelajaran mesin mengoptimisasi
_utility function_ pada saat proses latihan ( _training_ ). Pada umumnya,utility
_function_ berbentuk _cross entropy_ atau _error function_ untuk arsitekturlinear
_model_ dan _neural network_. Untuk arsitektur lain, seperti _support vector_
machine, kita mencari _support vectors_ yang memberikan _margin_ (decision
boundary) terbaik untuk memisahkan dua kelas. Model _decision tree_ dibangun
berdasarkan _information gain_ tiap atribut data. Sementara, modelHidden
Markov Modelmengoptimalkan _forward_ dan _backward probability_. Kegiatan
evaluasi model tidak berhenti saat _training_ telah mencapai nilai _utility function_ yang
optimal, tetapi kita juga mengevaluasi kinerja model pada _validation_
_data_ (baik mengukur _utility function_ dan _performance measure_ ). Terakhir,
kita juga mengevaluasi prediksi model dengan mengukurperformance
measurepada _test data_. Subbab ini akan menjabarkan beberapa contohperformance
measureuntuk mengevaluasi hasil prediksi model pada kasus _supervised_
_learning_.

```
Kelas A Kelas B Kelas C Kelas D
0.2 0.6 0.1 0.1
```
Tabel 9.1: Contoh _class-assignment probability_ pada _multi-class classification_.

Ingat kembali persoalan _multi-class classification_. Tujuan suatu model
pembelajaran mesin adalah mengoptimalkan class- _assignment_ probability,
yaitu probabilitas masing-masing kelas untuk suatu ( _given_ ) _input_ (Tabel 9.1).
Dengan meminimalkan _cross-entropy_ saat proses latihan, kita harap model
bisa memberikan nilai probabilitas yang tinggi untuk kelas yang tepat, dan
nilai yang rendah untuk kelas lainnya ( _high confidence_ ). Namun, urusan evaluasi
_model_  tidak hanya sampai di titik ini saja. _Class-assignment probability_ berikutnya
dikonversi menjadi keputusan final, yaitu memilihsatukelas
mana yang tepat untuk _input_ yang diberikan. Dengan kata lain, kita harus
mengevaluasi penerjemahan “raw” _class-assignment probability_ menjadi sebuah
prediksi final. Pada kasus Tabel 9.1, _output_ atau prediksi final dari
_model_  bersangkutan adalah “Kelas B”.


```
9.4 Evaluasi Kinerja Model 123
```
Sebagai contoh lain, _support vector classifier_ memberikan skor +1 atau
−1 untuk _input_. Skor tersebut berkorespondensi dengan kelas A atau kelas B.
_Output_ final model pun adalah kelas yang tepat untuk _input_ yang diberikan.
Hal yang serupa terjadi pada _Naive Bayes_, _Linear Model_, _Decision Tree_ dan
_supervised learning model_ lain yang dijelaskan pada buku ini ( _term_ asuk _neural_
_network_ ). Walaupun model- _model_ tersebut mengoptimasi _utility function_
atau dikonstruksi dengan cara yang berbeda, prediksi final _multi-class_ _classification_
adalah kelas yang sesuai untuk _input_. Subbab ini membahas cara
mengevaluasi keputusan prediksi final model.

9.4.1 Akurasi

Akurasi adalah _performance measure_ paling sederhana dan sering digunakan
saat mengevaluasi kinerja model. Akurasi didefinisikan sebagai proporsi prediksi
yang benar dibagi dengan banyaknya sampel. Diberikan _desired output_ (juga
dikenal dengan “ _gold standard_ ”)ydan hasil prediksiˆy, kita menghitung proporsi
banyaknya elemen yang sama antaraydanˆy. Secara matematis, akurasi
diformulasikan pada persamaan 9.4, dimanaNmerepresentasikan banyaknya
sampel.

```
Akurasi =
```
#### 1

#### N

#### ∑N

```
i=1
```
```
verdicti
```
```
verdicti=
```
#### {

```
1 , yi= ˆyi
0 , yi 6 = ˆyi
```
#### (9.4)

Sebagai contoh, suatu model pembelajaran mesin mengklasifikan gambar
buah menjadi “ _apel_ ” dan “jeruk” ( _binary classification_ ). _Desired output_ dan
prediksi model diberikan pada Tabel 9.2. Pada tabel ini, ada lima prediksi
yang sama dengan _desired output_, yaitu pada sampel dengan ID=[1, 2 , 4 , 8 ,9].
Dengan demikian, akurasi model adalah 105 = 0.5.
Perhitungan akurasi sama halnya untuk _multi-class classification_, tetapi
menjadi semakin rumit untuk _multi-label classification_. Ingat, padamultilabel
_classification_, suatu _input_ dapat diklasifikasikan menjadi beberapa kelas.
_Multi-label classification_  dapat dievaluasi dengan dua cara. Pertama,
mengevaluasi kinerja pada masing-masing kelas (seolah-olah kita memiliki
beberapa _binary classifier_ ). Cara kedua adalah mengevaluasi prediksimultilabel
secara sekaligus. Perbedaan kedua metode diilustrasikan pada Gambar
9.3. Saat mengevaluasi secara sekaligus, akurasi dapat dihitung sebagai
proporsi banyaknya _exact-match_ dibagi banyaknya sampel.

9.4.2 F1 Score

Metrik yang tidak kalah pentingnya adalah F1 score. F1 score untuk suatu
kelas F1kdidefinisikan sebagai _harmonic mean_ (persamaan 9.5) antara pre-


124 9 Seleksi Fitur dan Metode Evaluasi

```
InstanceDesired Output Hasil Prediksi
1 Jeruk Jeruk
2 Jeruk Jeruk
3 Jeruk Apel
4 Apel Apel
5 Jeruk Apel
6 Apel Jeruk
7 Jeruk Apel
8 Apel Apel
9 Apel Apel
10 Jeruk Apel
```
```
Tabel 9.2: Contoh hasil prediksi model.
```
```
Instance Agama Politik Hiburan
Berita- 1 1 1 0
Berita- 2 0 1 1
Berita- 3 1 0 1
...
```
```
Instance Agama Politik Hiburan
Berita- 1 1 1 0
Berita- 2 0 1 1
Berita- 3 1 0 1
...
```
```
Original
```
```
Instance Agama Politik Hiburan
Berita- 1 1 1 1
Berita- 2 0 1 1
Berita- 3 0 0 1
...
```
```
Prediction
```
```
Instance Agama Politik Hiburan
1 1 0
0 0 1
0 1 0
...
```
```
Exact match
Partially correct
Complete incorrect
```
```
Evaluate binary
_classification_  sepa _rate_ ly
```
```
Evaluate multi-label
_classification_  at once
Original Prediction
```
```
Gambar 9.3: Cara mengevaluasi _multi-label classifier_ (Gambar 5.8).
```
sisi (persamaan 9.6) dan recall (persamaan 9.7) kelas tersebut. Perhatikan,
yk (persamaan 9.7) melambangkan desired output untuk kelask dan ˆyk
(persamaan 9.6) adalah prediksi untuk kelask. Perhatikan, presisi dan recall
berbeda dari sisi variabel pembagi. Presisi dibagi oleh banyaknya (‖...‖)
prediksi pada kelask, sementara recall dibagi oleh banyaknya prediksiseharusnya(desired
_output_ ) pada kelask.

```
F1k= 2
```
```
Presisik×Recallk
Presisik+ Recallk
```
#### (9.5)


```
9.4 Evaluasi Kinerja Model 125
```
```
Presisik=
```
```
Jumlah prediksi benar pada kelask
‖ˆyk‖
```
#### (9.6)

```
Recallk=
```
```
Jumlah prediksi benar pada kelask
‖yk‖
```
#### (9.7)

Penjelasan sebelumnya cukup _high-level_, sekarang mari kita masuk ke ilustrasi
nyata pada Tabel 9.2. Untuk memudahkan perhitungan, kita susunconfusion
matrixprediksi terlebih dahulu, seperti diilustrasikan pada Tabel 9.3.
_Confusion matrix_  amatlah berguna untuk analisis data, khususnya saat
menghitung F1 score.

```
Prediksi
_apel_  jeruk ‖yk‖
```
```
Gold _apel_ ^314
jeruk 4 2 6
‖ˆyk‖ 7 3
```
```
Tabel 9.3: _Confusion matrix_ prediksi apel dan jeruk berdasarkan Tabel 9.2.
```
```
Berikut adalah cara membaca _confusion matrix_ pada Tabel 9.3:
```
- Ada 3 sampel yang diprediksi sebagai “ _apel_ ” dengan benar.
- Ada 1 sampel yang seharusnya diprediksi sebagai “ _apel_ ”, tetapi diprediksi
    sebagai “jeruk”.
- Ada 4 sampel yang seharusnya diprediksi sebagai “jeruk”, tetapi diprediksi
    sebagai “ _apel_ ”.
- Ada 2 sampel yang diprediksi sebagai “jeruk” dengan benar.
    Nilai‖ˆyk‖untukk=“ _apel_ ” adalah 7, sementara 3 untukk=“jeruk” (jumlah
nilai pada tiap kolom). Nilai‖yk‖adalah 4 dan 6 untukk=“ _apel_ ” dan
k=“jeruk” (jumlah nilai pada tiap baris). Nilai presisi, recall, dan F1 score
untuk masing-masing kelas diberikan pada Tabel 9.4.

```
Kategori Presisi Recall F1 score
Apel^37 =0. 43 34 =0. 75 200 ..^43 43+0×^0 ..^7575 =0. 55
Jeruk^23 =0. 67 26 =0. 33 200 ..^67 67+0×^0 ..^3333 =0.^44
```
Tabel 9.4: Perhitungan nilai presisi, recall dan F1 score untuk masing-masing
kelas untuk contoh Tabel 9.2.

Untuk mendapatkan nilai F1 secara “umum”, kita merata-ratakan F1 _apel_
dan F1jeruk. Prosedur ini disebut _macro-averaging_, yaitu merata-ratakan


126 9 Seleksi Fitur dan Metode Evaluasi

nilai F1 pada masing-masing kelas. Hasilnya disebut sebagai “macro- _average_ d
F1” atau disingkat “F1-macro”. F1-macro untuk contoh pada Tabel 9.3 adalah
0.49.
Terdapat dua variasi lain, yaitu _weighted-average_ (F1- _weight_ ed) dan
_micro-average_ (F1-micro). Pada F1- _weight_ ed, kita memberikan bobot untuk
masing-masing kelas, berdasarkan banyaknya instance yang seharusnya
diklasifikasikan ke kelas tersebut, i.e., banyaknya _desired output_ untuk
masing-masing kelas. F1- _weight_ ed untuk contoh Tabel 9.4 diberikan pada persamaan
9.8. Variasi ini berbeda dengan F1-macro yang menganggap bobot
masing-masing kelas adalah sama.

```
F1- _weight_ ed =
```
#### 4 × 0 .55 + 6× 0. 44

#### 10

#### = 0. 48 (9.8)

F1-macro dan F1- _weight_ ed memisahkan kinerja untuk masing-masing kelas.
Variasi terakhir, F1-micro, melihat hasil prediksi secara keseluruhan tanpa
pemisahan kinerja untuk masing-masing kelas. Sebagai contoh, nilai presisi
dan recall secara keseluruhan diberikan pada persamaan 9.9 dan 9.10. Pada
kasus ini, banyaknya prediksi sama dengan banyaknya prediksi seharusnya.
Dengan demikian, nilai presisi = recall. F1-micro adalah nilai rata-rata presisi
dan recall secara keseluruhan. Karenanya F1-micro = presisi = recall.
Pada kasus _multi-class classification_, nilai F1-micro sama dengan akurasi.

```
Precision =
```
```
Jumlah prediksi benar
Banyaknya prediksi
```
#### =

#### 5

#### 10

#### (9.9)

```
Recall =
```
```
Jumlah prediksi benar
Banyaknya prediksi seharusnya
```
#### =

#### 5

#### 10

#### (9.10)

Ringkasan variasi F1 score diberikan pada Tabel 9.5. F1-macro memiliki
keunggulan dibanding akurasi (F1-micro) dan F1- _weight_ ed pada kasusim _balanced_
_dataset_. Sebagai contoh, kita memiliki sebuah dataset untuk permasalahan _binary_
_classification_ dimana 90% _input_ ditetapkan sebagai kelas A dan
10% sebagai kelas B. Apabila suatu model pembelajaran mesin memprediksi
seluruh data ke kelas A, maka ia akan mendapatkan akurasi 90%. Pada kasus
ini, sesungguhnya model pembelajaran mesin tidak mempelajari distribusi
_data_  dengan benar. Dalam artian, kamu dapat “tertipu” karena nilai akurasi
yang besar, padahal model tersebut sebenarnya tidak memiliki performa yang
baik. F1- _weight_ ed juga akan memberikan nilai yang cukup baik pada kasus ini.
Apabila kita mengukur kinerja menggunakan F1-macro, maka kinerja model
akan terlihat jauh lebih kecil. Cerita ini juga berkaitan dengan _overclaiming_
(subbab 9.6). Akibat penggunaan atau interpretasi metrik yang kurang tepat,
kita mengasumsikan model yang kita buat sudah memiliki kinerja yang cukup
bagus.


```
9.4 Evaluasi Kinerja Model 127
```
```
Metrik Deskripsi
F1-macro Memisahkan kinerja untuk masing-masing kelas, kemudian merataratakan
nilai kinerja.
F1- _weight_ ed Memisahkan kinerja untuk masing-masing kelas, kemudian merataratakan
nilai kinerja dimana setiap kelas memiliki bobot
berdasarkan banyaknya _desired output_ untuk tiap kelas.
F1-micro Melihat hasil prediksi secara keseluruhan tanpa pemisahan kinerja
untuk masing-masing kelas. Nilai F1-micro sama dengan akurasi
pada _multi-class classification_.
```
```
Tabel 9.5: Penjelasan variasi F1 score.
```
9.4.3 Evaluasi Output Berstruktur

Kasus-kasus yang sudah diceritakan pada subbab ini adalah contoh kasus
sederhana baik pada _binary_, _multi-class_ dan _multi-label classification_.
Diberikan sebuah _input_ (e.g., teks, gambar, vektor, suara), kita ingin memprediksi
satu atau beberapa kelas (dari beberapa opsi) yang sesuai untuk
merepresentasikan _input_. Pada kasus yang disebutkan, hasil prediksi suatu
_instance_ adalah independen dari hasil prediksi untuk _instance_ lainnya.
Sekarang, mari kita melanjutkan cerita ke kasus yang lebih kompleks,
yaitu _output_ berstuktur. Pada kasus ini, diberikan sebuah _input_, _output_ model
adalah sebuah data terstruktur, e.g., sekuens kategori, graf, teks.

Sekuens Kategori

Pada _output_ dengan struktur berupa sekuens kategoriy, suatu elemenyi
pada sekuens bisa saja bergantung pada elemen lainnya, misal pada elemen
sebelumnya. Sebagai contoh, pada persoalan Part-of-Speech (POS) _tagging_
(yang sudah dijelaskan pada buku ini), diberikan _inputs_ ekuens katax, kita
ingin memprediksi kelas katayyang bersesuaian (Gambar 9.4). Pada setiap
iterasii, model memprediksi kelas katayiyang cocok bagi _input_ xi. Tujuan
_model_  adalah memprediksi sekuensypaling optimal. Perhatikan, kelas kata
pada posisii(yi) bisa jadi bergantung pada kelas kata di posisii−1 (yi− 1 ),
seperti yang sudah diceritakan pada buku ini. Artinya, suatu elemen _output_ bergantung
pada elemen _output_ lainnya. Walaupun demikian, kita dapat
mengevaluasi tiap elemen _output_ secara independen. Misal, dengan menghitung
akurasi apakah tiap kelas kata pada prediksi ˆyimemang sesuai dengan
_desired output_ yi.

Graf

Evaluasi menjadi cukup kompleks apabila kita memprediksi _output_ dengan
struktur lebih rumit, misalnya sebuah grafG∈(E,V); dimanaE adalah
kumpulan _edge_ danV adalah kumpulan _vertex_. Hal ini cukup lumrah pada


128 9 Seleksi Fitur dan Metode Evaluasi

```
POS tag Noun Verb Noun
Kata Budi Menendang Bola
```
```
Gambar 9.4: Contoh POS _tagging_ (Gambar 8.4).
```
bidang pemrosesan bahasa alami, sebagai contoh pada permasalahanconstituent
parsing, _dependency parsing_, dan _discourse parsing_ (silakan di eksplorasi
lebih lanjut). Gambar 9.5 memberikan contoh _dependency parsing_.

```
Saya suka apel manis
```
```
subjek objek pengubah
```
Gambar 9.5: Ilustrasi _dependency parsing_, dimana kita mencari hubungan
antar-kata (direpresentasikan oleh _edge_ pada graf). Sebagai contoh, “saya”
adalah subjek dari “suka”; “ _apel_ ” adalah objek dari “suka”; “manis” adalah
kata pengubah “ _apel_ ”.

Kita dapat mengevaluasi suatu prediksi struktur dengan cara memfaktorkan
struktur tersebut menjadi unit lebih kecil, kemudian mengevaluasi performa
_model_  pada satuan unit yang lebih kecil. Kinerja model pada satuan
unit diagregat atau digabungkan menjadi satu skor untuk merepresentasikan
keseluruhan performa dalam memprediksi suatu struktur [39]. Pemilihan unit
atau teknik faktorisasi struktur bergantung pada domain permasalahan. Sebagai
contoh, suatu model X yang mampu memprediksi _edges_ pada graph
dengan cukup akurat ternyata tidak dapat memprediksi suatu jalan ( _path_ )
dari _node_ A ke B yang seharusnya ada pada _desired output_. Dengan demikian,
kamu mungkin ingin memfaktorkan graf tersebut menjadi sekumpulan _paths_.
Hal terpenting saat mengevaluasi structured output prediction adalah
mengevaluasi berbagai aspek dan mempertimbangkan berbagai perspektif.
Artinya, memfaktorkan struktur menjadi beberapa (≥1) macam unit, dari
unit yang “kecil” (e.g., _edge_ ) sampai unit yang “besar” (e.g., _subtree_ pada
struktur pohon; _path_ atau subgraph pada graf). Pemilihan unit pada proses
faktorisasi bergantung pada domain permasalahan.

Teks

Evaluasi menjadi semakin kompleks apabila kita tidak dapat mendefinisikan
metrik secara matematis. Misal pada _image captioning task_ : diberikan sebuah
gambar dan suatu model harus menjelaskan apa isi gambar tersebut (ilustrasi
pada Gambar 9.6). Dari sisi “bentuk” _output_, teks adalah sebuah sekuens
kata. Akan tetapi, setiap kata memiliki maknanya tersendiri. Makna kata


```
9.5 Cross Validation 129
```
dapat berubah pada konteksnya, i.e., ketika beberapa kata membentuk sebuah
klausa atau kalimat. Selain itu, teks memiliki struktur “implisit”. Sebagai
contoh, kata-kata pada teks harus membentuk suatu kesatuan makna sebagai
kalimat. Tiap kalimat juga harus sesuai dengan aturan tata bahasa. Hal ini
membuat teks menjadi lebih rumit (dan unik) dibanding sekuens kategori.

```
Image
```
```
Model
"Seseorangsedangbermain
tenis”
```
```
Caption
```
```
Gambar 9.6: Ilustrasi _image captioning task_.
```
Pada kasus _image captioning task_ seperti diatas, bagaimana cara kamu
mengevaluasi apakah model mampu memberikan penjelasan yang merefleksikan
situasi pada gambar? Sebagai contoh, apabila diberikan gambar “seseorang
sedang bermain tenis”, dan model memprediksi “seseorang sedang
bermain basket,” maka model memberikan penjelasan yang salah. Tetapi
apabila kamu melihat dari sisi proporsi banyaknya kata yang sama, terdapat
banyak kata pada _desired output_ yang beririsan dengan prediksi, yaitu
“seseorang sedang bermain.”
Hal serupa juga harus diperhatikan pada persoalan mesin translasi bahasa.
Apakah konten translasi memang benar sama dengan konten aslinya?
Bagaimana dengan gaya penulisan? Pada sistem peringkasan teks, apakah
hasil ringkasan memang benar sesuai dengan teks aslinya, bukan menambah
informasi atau mengada-ada?
Cerita pada subbab 9.4 mengilustrasikan bahwa evaluasi model adalah
perkara yang kompleks. Pemilihan metrik yang salah dapat mengakibatkan
kamu menganggap bahwa model sudah “cukup” baik, padahal model tersebut
memberikan banyak prediksi yang salah. Subbab ini juga sekilas menjelaskan
bahwa bentuk _output_ pada _supervised learning_ bisa saja memiliki struktur
yang rumit.

