Çizgi grafiği
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 106/112
- 5 dk
Çizgi grafiği, zaman içindeki değişimi gösterir.
Çizgi grafiği
Çizgi grafiği sıralı bir değişkene (zaman, epoch, hiperparametre) göre değişimi gösterir. ML'deki en önemli kullanımı öğrenme ve doğrulama eğrileridir:
derinlik = [1, 2, 3, 5, 8]
ax.plot(derinlik, egitim, marker="o", label="eğitim")
ax.plot(derinlik, dogrulama, marker="o", label="doğrulama")
ax.legend()İki eğrinin ayrıldığı nokta aşırı öğrenmenin başladığı yerdir; grafik bunu tablodan çok daha hızlı gösterir.
Öğrenme eğrisi
learning_curve, eğitim kümesi büyüdükçe skorların nasıl değiştiğini verir. Doğrulama skoru hâlâ artıyorsa daha fazla veri yarar; eğriler birleşmiş ve düşükse daha karmaşık model gerekir:
from sklearn.model_selection import learning_curve
n, tr, va = learning_curve(model, X, y, cv=5, train_sizes=[0.2, 0.5, 1.0])
ax.plot(n, tr.mean(axis=1), label="eğitim")
ax.plot(n, va.mean(axis=1), label="doğrulama")"Daha çok veri mi, daha iyi model mi?" sorusunun cevabı bu grafiktedir.
Uygulama Öğrenme eğrisi
Iris'te KNeighborsClassifier() için learning_curve çalıştır (cv=5, train_sizes=[0.3, 0.6, 1.0], shuffle=True, random_state=0). Doğrulama ortalamalarını çizgi grafiğine çizip kaydet; eğitim boyutlarını ve doğrulama ortalamalarını (round(3)) alt alta yazdır.
Başlangıç kodu
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import learning_curve
from sklearn.neighbors import KNeighborsClassifier
X, y = load_iris(return_X_y=True)
# buraya yazÖrnek çözüm
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import learning_curve
from sklearn.neighbors import KNeighborsClassifier
X, y = load_iris(return_X_y=True)
n, tr, va = learning_curve(KNeighborsClassifier(), X, y, cv=5, train_sizes=[0.3, 0.6, 1.0], shuffle=True, random_state=0)
fig, ax = plt.subplots()
ax.plot(n, va.mean(axis=1), marker="o")
fig.savefig("ogrenme.png")
print(n)
print(va.mean(axis=1).round(3))Beklenen çıktı
[ 36 72 120] [0.947 0.953 0.973]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Eğitim eğrisi yükselirken doğrulama eğrisi düşmeye başlıyorsa ne olmaktadır?
- Veri azaldı
- Aşırı öğrenme başlıyor Doğru cevap
- Eksik öğrenme
- Model yakınsadı
Açıklama: Model eğitim verisine özgü ayrıntıları öğrenmeye başlamıştır.
2 Noktaları daire işaretiyle göster.
ax.plot(x, y, ____="o")
ax.plot(x, y, marker="o")
Açıklama: marker her veri noktasına bir işaret koyar.
3 Eğri durumlarını eşleştir.
| Kavram | Anlamı |
|---|---|
Ayrılan eğriler |
Aşırı öğrenme |
Birleşik ve düşük |
Eksik öğrenme |
Doğrulama hâlâ artıyor |
Daha çok veri yarar |
learning_curve |
Veri boyutuna göre skor |