Dataset K-Fold Cross Validation
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.