Training dan test set

Training dan test set

Setelah seorang programmer melakukan tahap preprocessing untuk dataset yang ia miliki, langkah selanjutnya adalah membaginya ke dalam 2 jenis yaitu training dan test set. Apa maksudnya?

Machine learning (ML) sesuai namanya adalah mesin yang dirancang untuk belajar (a machine that is designed to learn). Oleh karena itu agar kita bisa mengetahui apakah ia belajar sesuai keinginan kita, dan apakah performa yang diberikan sudah sesuai dengan tingkat akurasi yang kita inginkan, setelah mesin itu kita ajari (train), maka perlu kita tes (test).

Secara ringkas penjelasan dua bagian ini adalah sebagai berikut:

  • Training set adalah bagian dataset yang kita latih untuk membuat prediksi atau menjalankan fungsi dari sebuah algoritma ML. Kita memberikan petunjuk melalui algoritma agar mesin yang kita latih bisa mencari korelasinya sendiri atau belajar pola dari data yang diberikan.
  • Test set adalah bagian dataset yang kita tes untuk melihat keakuratannya, atau dengan kata lain melihat performanya.

Sekarang kita akan belajar cara membagi dataset menjadi training dan test set dengan bahasa python dan R.


Bahasa Python

# Membagi menjadi training set dan test set 
from sklearn.model_selection import train_test_split 
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0) 

Penjelasan:

  • Line ke 2 adalah proses import train_test_split. Library train_test_split ini adalah sublibrary dari modul model_selection di library sklearn, sehingga penulisan untuk mengimportnya seperti itu (from.. import..)
  • Line ke 3 adalah proses pendefinisian X_train sebagai data X yang ingin kita latih (train), X_test sebagai data X yang ingin kita tes, y_train adalah variabel dependen yang dilatih, dan y_test merupakan variabel dependen yang diuji. Kita mendefinisikan keempat variabel ini secara bersamaan. Pada perintah train_test_split diisi dengan parameter arrays X,y yang menunjukkan arrays yang dipakai adalah X sebagai variabel independen dan y sebagai variabel dependen. Parameter selanjutnya adalah test_size sebesar 20%. Biasanya sebagai rule of thumb (aturan umum) proporsi test set sebesar 20% dan train set 80%. Namun ada juga yang menentukan 25:75, terserah Anda ingin yang mana. Parameter lainnya adalah random_state yang merupakan random number generator (RNG). Bisa diisi apa saja, idenya adalah jika menggunakan angka 7 misalnya, maka bilangan random yang dibangkitkan akan selalu sama jika suatu saat kita menentukan angka 7 lagi. Untuk kali ini kita pilih angka nol.

Jika sudah, coba klik dua kali pada X_train dan X_test di Variable explorer. Tampilannya akan tmpak sebagai berikut:

Jika kita eksekusi lagi line 3 dengan angka random_state 7 misalnya, maka nilai X_test, X_train, y_test dan y_train akan berubah. Namun jika kita eksekusi lagi dengan random_state nol, maka nilainya akan sama lagi. itulah inti dari random_state di mana kita akan mendapatkan bilangan random yang sama untuk angka RNG yang sama.

Perlu diingat bahwa logika yang ingin kita bangun adalah kita membiarkan mesin belajar dari training set untuk kemudian diuji di test set. Jadi pada training set, ia akan mencari korelasi antara X_train dan y_train. Setelah korelasi ini ada dan terbentuk, kita akan mengujinya ke test set. Jika mesin ini belajar terlalu keras ia akan melakukan overfitting yang akan menghasilkan korelasinya terlau sempurna atau bahkan tidak terbentuk sama sekali. Ada banyak teknik untuk menghindari overfitting dan kita akan membahas ini di pembahasan teknik-teknik machine learning.


Bahasa R

# Membagi data menjadi training set dan test set 
# install.packages('caTools') 
library(caTools) 
set.seed(123) 
split = sample.split(dataset$Beli, SplitRatio = 0.8) 

Langkah selanjutnya yang biasa dilakukan adalah melakukan penyamaan skala atau yang disebut dengan feature scaling. Walau demikian, langkah ini tidak selalu pasti dilakukan. Harus dilihat dulu apakah diperlukan atau tidak. Untuk lebih jelasnya silakan klik link ini.

Bagikan artikel ini:
Subscribe
Notify of
guest
25 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
hanru
hanru
4 years ago

done

miya
miya
4 years ago

bagaimana cara training dan testing dengan memanggil data secara terpisah?
misal data training ada di Folder “Train”
dan data testting ada di folder “Test”

miya
miya
Reply to  MB Herlambang
4 years ago

Baik, Terima kasih..

miya
miya
Reply to  MB Herlambang
4 years ago

apakahi ini bisa diimplementkan untuk kasus lebih dari 2 kelas?

miya
miya
Reply to  MB Herlambang
4 years ago

di contoh yg CNN mas kan pake data gambar kucing dan anjing. misalnya lebih dari 2 kelas/jenis, misalkan ada 5 jenis binatang. apakah bisa? Terima kasih

zulius
3 years ago

Untuk random_state pada text classification apakah bisa digunakan pak ? atau harus mengubah text ke angka terlebih dahulu ?

Humairah
Humairah
1 year ago

Mohon maaf kak mau tanya, syntax R untuk data training jika ingin di aplikasikan ke algoritma K-means gimana cara memasukkan datanya?

Humairah
Humairah
Reply to  MB Herlambang
1 year ago

Jadi kalau seumpama kita menggunakan metode penelitian K-means Machine Learning itu gimana kak? Apa perlu di splitting training dan test set atau tidk perlu di splitting?

Maaf kak baru pemula jdi belum faham sama skli

Karlina
Karlina
1 year ago

Asli ini Artikel bagus bangetttt ;.; TERIMA KASIH MIN! TERUS MENYEBARKAN ILMU

Diah
1 year ago

klo kita mengambil data training nya 60 dan testing 40. itu gpp kan? maksdnya apakah menghasilkan akurasi yg baik atau malah sebaliknya?

sheva
sheva
1 year ago

saat kita menngunakan split data untuk klasifikasi menggunakan python, lalu dari dataset yang sudah kita scraping apakah data training dan data testing bisa ditampilkan? terimakasih

gita
gita
1 year ago

mau nanya kak, untuk pembagian X dan Y jika datanya unvariate itu bagaimana? apakah X dan Y disini pengertiannya sama dengan variabel independen dan dependen?
terimakasih

rev
rev
1 year ago

maaf izin bertanya, apakah dalam kasus penggunaan metode naive bayes, dapat menggunakan data training dan data testing berbeda, tetapi pada data training tetap harus di split data. terimakasih

Anggraini
Anggraini
5 months ago

Apakah punya sintaks R untuk metode Eemdnya? dr awal smpai akhir.
Misalkan dalam proses dekomposisi ensemble tersebut apakah perlu dibagi datanya menjadi data training dan testing?
Terimakasih