Eğitim ve test
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 4/112
- 5 dk
Eğitim (train) verisiyle model eğitilir, test verisiyle modelin performansı ölçülür.
Neden ayrı test verisi?
Modeli eğittiğin veriyle ölçersen ezberleyip ezberlemediğini anlayamazsın. Bu yüzden veri ikiye bölünür: eğitim kümesiyle model öğrenir, test kümesiyle hiç görmediği örneklerde başarısı ölçülür.
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=42)test_size=0.2 verinin %20'sini teste ayırır; random_state bölmeyi her çalıştırmada aynı yapar.
Dönen dört parça
train_test_split dört dizi döndürür ve sıra önemlidir: önce iki X parçası, sonra iki y parçası.
model.fit(X_train, y_train) # yalnızca eğitim
print(model.score(X_test, y_test)) # yalnızca testTest verisi eğitimde hiç kullanılmamalıdır; aksi halde ölçülen başarı gerçeği yansıtmaz. Buna veri sızıntısı denir.
Uygulama Veriyi böl
20 örnekli veriyi test_size=0.25 ve random_state=0 ile böl. Eğitim ve test kümelerinin uzunluklarını aralarında boşlukla yazdır.
Başlangıç kodu
from sklearn.model_selection import train_test_split
X = [[i] for i in range(20)]
y = [i % 2 for i in range(20)]
# buraya yazÖrnek çözüm
from sklearn.model_selection import train_test_split
X = [[i] for i in range(20)]
y = [i % 2 for i in range(20)]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
print(len(X_train), len(X_test))Beklenen çıktı
15 5
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 100 örnekli veride <code>test_size=0.25</code> ile kaç örnek eğitime kalır?
- 25
- 100
- 50
- 75 Doğru cevap
Açıklama: %25 (25 örnek) teste ayrılır, kalan 75 örnek eğitim içindir.
2 Verinin %30'unu teste ayır.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=____, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
Açıklama: test_size 0 ile 1 arasında bir oran ya da tam sayı adedi alır; 0.3 yüzde 30 demektir.
3 Parçaları anlamlarıyla eşleştir.
| Kavram | Anlamı |
|---|---|
X_train |
Eğitim girdileri |
y_train |
Eğitim etiketleri |
X_test |
Test girdileri |
y_test |
Test etiketleri |