Dataset K-Fold Cross Validation

From OnnoWiki
Jump to navigation Jump to search

Berikut adalah contoh kode Python untuk menerapkan K-Fold Cross-Validation pada dataset yang memiliki 10 fitur dan 1 target menggunakan pustaka `scikit-learn`. Dalam contoh ini, kita akan menggunakan model Regresi Linier sebagai estimator.

import numpy as np
from sklearn.model_selection import KFold, cross_val_score
from sklearn.linear_model import LinearRegression

# Contoh: Membuat dataset dummy dengan 100 sampel, 10 fitur, dan 1 target
np.random.seed(42)
X = np.random.rand(100, 10)  # 100 sampel, 10 fitur
y = np.random.rand(100)      # 100 nilai target

# Inisialisasi model regresi linier
model = LinearRegression()

# Tentukan jumlah fold (misalnya, 5-fold cross-validation)
kf = KFold(n_splits=5, shuffle=True, random_state=42)

# Evaluasi model menggunakan cross-validation
scores = cross_val_score(model, X, y, cv=kf, scoring='r2')

# Menampilkan skor R^2 untuk setiap fold dan rata-ratanya
print("Skor R^2 untuk setiap fold:", scores)
print("Rata-rata skor R^2:", np.mean(scores))

Penjelasan kode:

1. Import Library:

  • `numpy` untuk operasi numerik.
  • `KFold` dan `cross_val_score` dari `sklearn.model_selection` untuk melakukan K-Fold Cross-Validation.
  • `LinearRegression` dari `sklearn.linear_model` sebagai model yang akan dievaluasi.

2. Pembuatan Dataset Dummy:

  • Menggunakan `np.random.rand` untuk membuat dataset dengan 100 sampel dan 10 fitur (`X`), serta 100 nilai target (`y`).

3. Inisialisasi Model:

  • Membuat instance dari `LinearRegression`.

4. Konfigurasi K-Fold Cross-Validation:

  • `KFold` dengan `n_splits=5` membagi data menjadi 5 fold.
  • `shuffle=True` memastikan data diacak sebelum dibagi menjadi fold.
  • `random_state=42` memastikan hasil yang konsisten setiap kali kode dijalankan.

5. Evaluasi Model:

  • `cross_val_score` melatih dan mengevaluasi model pada setiap fold, mengembalikan array skor untuk setiap iterasi.
  • `scoring='r2'` menentukan bahwa metrik evaluasi yang digunakan adalah koefisien determinasi (R²).

6. Menampilkan Hasil:

  • Mencetak skor R² untuk setiap fold.
  • Menghitung dan mencetak rata-rata skor R² dari semua fold.

Kode ini memberikan gambaran bagaimana menerapkan K-Fold Cross-Validation untuk mengevaluasi performa model pada dataset dengan 10 fitur dan 1 target. Anda dapat menyesuaikan parameter seperti jumlah fold (`n_splits`), jenis model, dan metrik evaluasi sesuai kebutuhan.


Pranala Menarik