Cross Validation dalam Machine Learning

Apa itu Cross Validation?

Cross Validation (CV) adalah teknik statistik yang digunakan dalam machine learning untuk mengevaluasi kinerja model dan mencegah overfitting. Overfitting terjadi ketika model terlalu "terikat" pada data training dan tidak dapat mengeneralisasi dengan baik pada data baru yang tidak pernah dilihatnya sebelumnya.

Bagaimana cara kerjanya?

CV bekerja dengan membagi data training menjadi beberapa subset (fold). Kemudian, model dilatih pada beberapa subset dan diuji pada subset yang lain. Hal ini dilakukan secara berulang sehingga semua subset data training digunakan untuk pelatihan dan pengujian.

Jenis-jenis Cross Validation:

Ada beberapa jenis CV, yang paling umum adalah:

  • k-fold CV: Data training dibagi menjadi k subset. Model dilatih pada k-1 subset dan diuji pada subset yang tersisa. Proses ini diulang k kali sehingga setiap subset digunakan untuk pengujian satu kali.
  • Leave-one-out CV: Model dilatih pada semua data training kecuali satu data. Kemudian, model diuji pada data yang ditinggalkan. Proses ini diulang untuk semua data training.
  • Stratified CV: Data training dibagi menjadi subset berdasarkan kelas target. Kemudian, CV dilakukan pada setiap subset kelas target.

Manfaat Cross Validation:

  • Meningkatkan generalisasi model: CV membantu model untuk belajar dari data training dan tidak hanya dari data yang dilihatnya selama pelatihan.
  • Memilih hyperparameter terbaik: CV dapat digunakan untuk memilih hyperparameter model yang optimal.
  • Membandingkan model: CV dapat digunakan untuk membandingkan kinerja model yang berbeda.

Cross Validation adalah teknik penting dalam machine learning untuk mengevaluasi kinerja model dan mencegah overfitting. Dengan menggunakan CV, kita dapat membangun model yang lebih generalizable dan berkinerja lebih baik pada data baru yang tidak pernah dilihatnya sebelumnya.

Implementasi Cross Validation:

Implementasi CV dapat dilakukan menggunakan pustaka machine learning seperti scikit-learn di Python.

Contoh Implementasi Cross Validation dengan k-fold CV di Python:

Python
from sklearn.model_selection import KFold from sklearn.linear_model import LinearRegression # Memuat data training X = ... # Data fitur y = ... # Target # Melakukan k-fold CV kfold = KFold(n_splits=5, shuffle=True) rmse_scores = [] for train_index, test_index in kfold.split(X): X_train, X_test = X[train_index], X[test_index] y_train, y_test = y[train_index], y[test_index] # Melatih model model = LinearRegression() model.fit(X_train, y_train) # Memprediksi target pada data test y_pred = model.predict(X_test) # Menghitung RMSE from sklearn.metrics import mean_squared_error rmse = mean_squared_error(y_test, y_pred)**0.5 rmse_scores.append(rmse) # Rata-rata skor RMSE print(f"Rata-rata skor RMSE: {sum(rmse_scores) / len(rmse_scores)}")


 

Abdisr 6/08/2024


EmoticonEmoticon