Table of Contents
Avalidasi silang adalah teknik yang digunakan dalam mempelajari pengawasan untuk mengevaluasi kinerja suatu model. Ini membantu dalam menilai seberapa baik model memandikan ke data yang tidak terlihat, mengurangi risiko overfitting. Implementasi praktik cross-validasi efektif sangat penting untuk membangun model pembelajaran mesin yang handal.
Pengertian Ajari-Validasi-Candi
Avalidasi silang melibatkan pemilahan dataset menjadi subset ganda, pelatihan model pada beberapa subset ini, dan pengujiannya pada yang lain. proses ini memberikan perkiraan yang lebih akurat dari kinerja model dibandingkan dengan split uji-kereta tunggal.
Teknik Penyeberangan-Validasi Umum
- [[CANDIANFLT:0]]K-Fold Cross-Validation: Membagi data menjadi 'k' sama bagian, pelatihan pada bagian k-1 dan pengujian pada yang tersisa. Proses ini mengulang k kali.
- [[GANDAFLT:0]]Stratified K-Fold: Mirip dengan K-Fold tetapi mempertahankan distribusi kelas melintasi lipatan, berguna untuk dataset yang tidak seimbang.
- [[ULANGAL:0]]Leave-One-Out (LOO): Menggunakan titik data tunggal sebagai set tes, dengan sisanya sebagai data pelatihan. Boleh dipakai untuk dataset kecil.
Praktek Terbaik untuk Implementasi
Untuk memastikan cross-validasi efektif, pertimbangkan praktik-praktik berikut:
- Gunakanlah contoh yang berprasaran ketika berurusan dengan kelas yang tidak seimbang.
- BAHAYA Pilih jumlah lipatan berdasarkan ukuran dataset; pilihan umum adalah 5 atau 10.
- Kali ini kombinasikan cross-validation dengan tuning hyperparameter untuk hasil yang optimal.
- Pastikan data dicangkul sebelum membelah untuk mengurangi bias.
Contoh Praktis di Python
Implementasi cross-validation dalam Python dengan scikit-learn adalah mudah.
[[NAFAIL:0]]Code snippet:]
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
# Load dataset
data = load_iris()
X = data.data
y = data.target
# Initialize model
model = RandomForestClassifier()
# Perform 5-fold cross-validation
scores = cross_val_score(model, X, y, cv=5)
print("Cross-validation scores:", scores)
print("Average score:", scores.mean())