### 9.5 Cross Validation

Ingat kembali materi bab-bab sebelumnya bahwa pada umumnya kita membagi
_dataset_  menjadi tiga kelompok: _training_, _validation/development_ dan


130 9 Seleksi Fitur dan Metode Evaluasi

_testing_. Melatih dan mengukur kinerja model menggunakan training data
adalah hal yang tidak bijaksana karena kita tidak dapat mengetahui kemampuan
generalisasi model. Kita melatih model pembelajaran mesin menggunakan _training_
_data_ yang dievaluasi kinerjanya (saattraning) menggunakan
_validation data_. Setelah itu, kita uji model kembali menggunakan _testing data_.
Pada umumnya, ketiga kelompok tersebut memiliki data dengan karakteristik
yang sama. Artinya, dataset disampel dari distribusi yang sama. Misal pada
_training data_, ada pembagian 30:30:40 untuk data kelas pertama, kedua dan
ketiga. Distribusi persebaran tersebut juga harus sama pada _validation_ dan
_testing data_. Hal penting yang harus diperhatikan adalah tidak boleh ada data
yang sama ( _overlap_ ) pada ketiga kelompok tersebut.

Gambar 9.7: Model yang stabil (a) memberikan _decision boundary_ (garis hitam)
yang serupa walaupun _inputs_ edikit diubah-ubah (variasi kinerja yang
kecil, untuk set _input_ yang berbeda). Model yang kurang stabil (b) memberikandecision
boundary yang berbeda untuk _input_ yang sedikit diubahubah
(variasi kinerja yang besar, untuk set _input_ yang berbeda).

Pada dunia nyata, kita belum tentu memiliki ketiga kelompok tersebut.
Penyebabnya ada banyak, misal dataset yang kecil (hanya memiliki sedikit
_records_ ) atau pengadaan _testing data_ mahal. Apabila kita tidak memiliki _testing_
_data_, _validation data_ dapat menjadi pengganti ( _proxy_ ).
Akan tetapi, permasalahan _statistical bias_ dapat terjadi apabila kita hanya
menguji model pada satu set data karena kita tidak mengetahui variasi kinerja
_model_  [20]. Sebisanya, kita ingin mengevaluasi kinerja model pada beberapa
_dataset_, dan mengevaluasi variasi kinerja model. Kegiatan semacam
ini membuat kita mengetahui apakah suatu model cukup stabil^3 dan fleksi-

(^3) https://en.wikipedia.org/wiki/Stability_( _learning_ _theory)


```
9.5 Cross Validation 131
```
bel. Stabil berarti kinerja model tidak begitu berubah, diberikan _input_ yang
sedikit berubah (ilustrasi diberikan pada Gambar 9.7). Fleksibel berarti model
yang mampu menangkap karakteristik data dengan baik. Misal kita menggunakan
_model linear_  dengan persamaan polinomial orde-1, orde-2 dan orde-3.
Saat kita menaikkan orde persamaan sampai dengan orde-3, kinerja model
terus meningkat pada _validation_ data, walaupun kurang lebih sama pada
_training data_. Lalu, kita mencoba menggunakan persamaan polinomial orde-4,
dan kinerja model menurun pada _validation_ data. Artinya, persamaan polinomial
orde-3 adalah yang paling optimal untuk me _model_ kan permasalahan
yang kita miliki. Apabila kita tidak memiliki _validation_ data, kita tidak akan
mengetahui hal ini. Stabil berkaitan dengan nilai varians, sedangkan fleksibel
berkaitan dengan perubahan terhadap ukuran kinerja. Fleksibilitas dapat
dianalisis dengan mem- _plot_ grafik kinerja model pada _training data_ dan _validation_ / _testing_
_data_  untuk mengetahui _underfitting_ dan _overfitting_ seperti
yang sudah dijelaskan pada bab 5.

```
1 2 3 ... N
```
```
Fold 1
```
```
Fold 2
```
```
Fold 3
Fold 4
```
```
Fold 5
```
```
_Training_  data Validation data
```
Gambar 9.8: Ilustrasi 5- _fold-cross-validation_. Kotak berwarna merah melambangkan
subset yang dipilih sebagai _validation data_.

Kita dapat menganalisis stabilitas dengan menggunakan teknik cross
_validation_ seperti yang sudah dijelaskan pada bab 3. Intinya adalah, kita
membagi-bagi _dataset_ yang kita miliki menjadiKbagian. Kita latih model
menggunakanK−1 bagian, kemudian menguji prediksi model pada satu
bagian lainnya (sebagai _validation data_ ) yang mengaproksimasi kinerja pada
_testing data_ (Ilustrasi pada Gambar 9.8). Perhatikan, walau disebut _validation_
_data_, group ini digunakan sebagai _testing data_ pada saat proses latihan.
Perlu diperhatikan, distribusi tiap-tiap kelas pada subset data haruslah sama
( _stratified sampling_ ).
Prosedur ini disebut sebagaiK- _fold-cross-validation_. Untuk K=N;
N=jumlah data, disebut sebagai leave-one-out-cross- _validation_. Den-


132 9 Seleksi Fitur dan Metode Evaluasi

gan teknik _cross validation_, kita memiliki sejumlahK model pembelajaran
mesin danKbuah nilai kinerja. Kita dapat mengukur stabilitas model dengan
menghitung varians kinerja dariK model. Nilai rata-rata kinerja yang
diberikan adalah sebuah estimasi terhadap kinerja model pada _testing data_
(yang sesungguhnya tidak ada), diberikan pada persamaan 9.11. Kita ingin
_model_  yang stabil, karena nilai varians yang kecil berarti eksperimen dapat
diulangi, dan kita mendapatkan kinerja yang sama saat eksperimen diulang.
Varians yang terlalu besar dapat berarti kita mendapatkan suatu nilai kinerja
secara _random chance_ (untung-untungan belaka).

```
Performa =
```
#### 1

#### K

#### ∑K

```
i=1
```
```
KinerjaModeli (9.11)
```
