0% menganggap dokumen ini bermanfaat (0 suara)
133 tayangan7 halaman

Proses Pembagian Data dalam ML

Dokumen ini membahas tentang proses pemecahan data dalam siklus hidup machine learning, termasuk pembagian data menjadi data latih, data uji, dan data validasi. Metode holdout dan cross-validation dijelaskan sebagai cara untuk mengevaluasi model, dengan penekanan pada pentingnya menghindari underfitting dan overfitting. Selain itu, dokumen ini juga menjelaskan proses pelatihan model dan optimasi hyperparameter untuk meningkatkan performa model.

Diunggah oleh

supermanngaceng980
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
133 tayangan7 halaman

Proses Pembagian Data dalam ML

Dokumen ini membahas tentang proses pemecahan data dalam siklus hidup machine learning, termasuk pembagian data menjadi data latih, data uji, dan data validasi. Metode holdout dan cross-validation dijelaskan sebagai cara untuk mengevaluasi model, dengan penekanan pada pentingnya menghindari underfitting dan overfitting. Selain itu, dokumen ini juga menjelaskan proses pelatihan model dan optimasi hyperparameter untuk meningkatkan performa model.

Diunggah oleh

supermanngaceng980
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Machine Learning Life Cyle

3.2.3 Data splitting

Setelah mendapatkan data yang bersih, selanjutnya adalah melakukan


proses data spliting (pemecahan data) dimana kita membagi data tersebut
menjadi beberapa bagian diantaranya data latih (training data), data uji
(testing data), dan data validasi (validation data). Metode ini dikenal dengan
nama holdout dimana kita membagi dataset menjadi 2 bagian yaitu training
set dan holdout set. Training set berisi data latih yang digunakan untuk
membangun model dan biasanya ukurannya lebih besar dibandingkan
dengan holdout set.

Sedangkan holdout set dapat terdiri atas data uji (testing data), dan data
validasi (validation data) atau hanya data uji saja. Dengan kata lain kita dapat
memecah dataset tersebut menjadi 2 atau 3 tergantung kebutuhan. Data
validasi bersifat opsional dan hanya dibutuhkan ketika kita ingin melakukan
optimalisasi hyperparameter model yang telah dilatih atau pemilihan
algoritma terbaik. Sebagai contoh, pada algoritma yang berbasis jaringan
syaraf tiruan, dimana kita perlu menentukan hyperparameter seperti berapa
jumlah hidden unit, jumlah layer dan sebagainya. Untuk menentukan
hyperparameter tersebut maka diperlukan sebuah dataset yang tidak bias
sehingga menghasilkan hyperparameter yang optimal. Namun jika pada
pelatihan anda telah menetapkan hyperparameter model maka data evaluasi
biasanya tidak dibutuhkan. Selanjutnya data uji digunakan untuk mengukur
performa model yang telah dilatih.

Sebagai contoh pada Gambar 3.10, dimana kita memiliki sebuah dataset
mobil yang terdiri atas 1.000 data jenis mobil. Untuk melakukan pelatihan
model maka data tersebut akan dipecah menjadi 3 bagian. Data Latih terdiri
atas 800 data, Data evaluasi 100 data dan Data Uji 100 data.

94
Machine Learning: Teori, Studi Kasus dan Implementasi menggunakan Python

Gambar 3.10. Ilustrasi holdout sets

Tidak ada aturan yang pasti tentang berapa porsi pembagian masing
masing jenis data. Jika kita memiliki dataset yang besar, misalnya 500.000
sample maka kita dapat menggunakan 95% untuk data latih dan 2.5% untuk
validasi, dan 2.5% untuk data uji. Namun jika kita hanya memiliki 100 data
kita dapat memecahnya menjadi 70+15+15.

Kenapa dataset harus dipecah? Bayangkan jika anda melakukan ujian


dengan soal yang pernah anda kerjakan maka anda akan mendapatkan nilai
yang tinggi. Namun ujian tersebut tidak menggambarkan kemampuan anda
yang sebenarnya. Oleh karena itu soal yang digunakan pada saat
pembelajaran dan ujian harus berbeda, namun dari sumber yang sama.

Untuk melakukan split terhadap data di python menggunakan Numpy


maka dapat dilihat pada contoh berikut menggunakan [Link]

Untuk melakukan split terhadap data di python menggunakan Pandas


maka dapat dilihat pada contoh berikut:

95
Machine Learning Life Cyle

Untuk melakukan split terhadap data di python menggunakan Sk-Learn


maka dapat dilihat pada contoh berikut menggunakan fungsi
train_test_split:

Manfaat lainnya yang didapatkan ketika membagi data-data ini adalah


kita dapat melakukan deteksi terhadap dua masalah yang umum terjadi
pada saat pembelajaran yaitu underfitting dan overfitting:

• Underfitting adalah sebuah situasi dimana model yang dihasilkan gagal


untuk melakukan generalisasi relasi pada data. Sebagai contoh misalnya
ketika kita melakukan training pada data yang non-linear menggunakan
metode linear yang mengakibatkan performa dari training dan test
rendah. Umumnya masalah underfitting diidentifikasi dengan rendahnya
performa training dan test sets.

96
Machine Learning: Teori, Studi Kasus dan Implementasi menggunakan Python

• Overfitting adalah sebuah situasi dimana model yang dihasilkan


menghasilkan generalisasi yang kompleks dari data training.
Analoginya, model yang dihasilkan “menghapal” relasi pada data
sehingga ketika dievaluasi menggunakan test data maka performanya
akan turun. Masalah ini diidentifikasi dengan tingginya performa pada
training namun performa yang rendah pada test. Idealnya performa
antara training dan test tidak jauh berbeda.

Metode cross-validation

Cross-validation (CV) adalah metode statistik yang dapat digunakan


untuk mengevaluasi kinerja model atau algoritma dimana data dipisahkan
menjadi dua subset yaitu data latih dan data uji. Model atau algoritma dilatih
oleh subset pembelajaran dan divalidasi oleh subset validasi. Selanjutnya
pemilihan jenis CV dapat didasarkan pada ukuran dataset.

Untuk mengurangi variabilitas, maka dilakukan beberapa putaran


validasi silang dengan subset berbeda dari data yang sama. Lalu hasil
evaluasi tersebut digabungkan (rata-rata). Metode CV akan memberi kami
perkiraan performa model yang lebih akurat dibandingkan Holdout.

Berikut ini beberapa jenis CV diantaranya :

1. LOOCV (Leave one out cross-validation)


Pada LOOCV, data dibagi menjadi dua bagian, yaitu data uji dan data
latih, namun pada data latih hanya menggunakan 1 data. Sehingga jika kita
memiliki n data, maka kita akan memiliki sejumlah n-1 data latih dan 1 data
uji. Proses training dan evaluasi dilakukan sebanyak n kali. Ilustrasi LOCV
dapat dilihat pada Gambar 3.11

97
Machine Learning Life Cyle

Gambar 3.11. Ilustrasi Leave one out cross-validation

2. K-Fold cross-validation

K-fold adalah sebuah metode yang memecah dataset menjadi dua bagian
yaitu data latih dan data uji sebanyak k kelompok dimana jumlah data latih
dan data uji pada tiap-tiap kelompok sama. Sehingga kita akan melakukan
perulangan sebanyak K kali untk melakukan training dan evaluasi. K dapat
berisi sebuah nilai bulat. Jika k bernilai 1 maka metode ini sama dengan
holdout. Biasnya nilai k lebih besar dari 1. Ilustrasi K-Fold ditunjukkan pada
Gambar 3.12 .

Gambar 3.12. Ilustrasi K-Fold cross-validation

98
Machine Learning: Teori, Studi Kasus dan Implementasi menggunakan Python

10 fold CV adalah salah satu K-fold CV yang direkomendasikan untuk


pemilihan model terbaik karena cenderung memberikan estimasi akurasi
yang kurang bias dibandingkan dengan CV biasa dan leave-one-out CV.
Dalam 10 fold CV, data dibagi menjadi 10 fold berukuran kira-kira sama,
sehingga kita memiliki 10 subset data untuk mengevaluasi kinerja model
atau algoritma. Untuk masing-masing dari 10 subset data tersebut, CV akan
menggunakan 9 fold untuk pelatihan dan 1 fold untuk pengujian.

3. Stratified cross-validation

Stratified cross-validation mirip dengan K-Fold, namun perbedaannya


dalam pembagian data tiap iterasinya memperhatikan kondisi data set
seperti distribusi kelas, rata-rata dan varian, sehingga pembagian distribusi
kelas lebih merata. Perhatikan Gambar 3.13 sebagai ilustrasi, dimana pada
gambar tersebut distribusi kelas M dan L hampir sama pada tiap bagian data.

Gambar 3.13. Ilustrasi Stratified cross-validation

Pelatihan dan Uji Coba Model


Proses pelatihan model (model training) adalah sebuah proses
mengekstrak pola atau pengetahuan pada data latih menggunakan
algoritma tertentu. Berbagai jenis algoritma dapat digunakan pada tahap ini
tergantung task atau masalah apa yang ingin dipecahkan. Hasil atau luaran

99
Machine Learning Life Cyle

pelatihan menggunakan algoritma tertentu adalah adalah sebuah model


Machine Learning.

Pada proses fase pelatihan, digunakan dua jenis dataset yaitu training dan
validation dataset. Algoritma ML memanfaatkan training dataset yang telah
disiapkan pada fase sebelumnya untuk mengekstrak pola atau pengetahuan
pada data. Sedangkan Validation dataset, seting digunakan untuk
memvalidasi model dan melakukan hyperparameter optimalization.

Gambar 3.14. Proses Ilustrasi Pelatihan dan Pengujian Model

Pada tahap training juga biasanya dilakukan hyperparameter optimalization


(Tuning) dan evaluation. Hyperparameter adalah parameter yang harus ditetap
sebelum proses pembelajaran berlangsung. Hyperparameter ini berbeda-beda
tiap algoritma dan nilainya mempengaruhi performa dan dipengaruhi oleh
masalah dan data yang ingin dipecahkan. Oleh karena itu, biasanya pada
proses ini dilakukan berulang-ulang sehingga diperoleh beberapa model lalu
dipilih model yang terbaik. Untuk detail proses ini, anda dapat merujuk
pada bab selanjutnya tergantung algoritma apa yang akan digunakan.

100

Anda mungkin juga menyukai