Makine öğrenmesinin dili
Kısaca
- Denetimli öğrenmenin parçalarını adlandırmak
- Veriyi eğitim, doğrulama ve test olarak ayırmanın nedenini kavramak
- Aşırı öğrenmeyi tanımak; doğruluk, kesinlik ve duyarlılığı yorumlamak
Bu derste bir modelin ne olduğunu, nasıl eğitildiğini ve en önemlisi nasıl dürüstçe ölçüldüğünü göreceksin. Sonunda ilk sınıflandırıcını kendin yazacaksın.
Bir model aslında nedir?
Bir model, girdiyi çıktıya çeviren ve ayarlanabilir sayıları (parametreleri) olan bir fonksiyondur. Önceki dersteki w·x + b en küçük örneği: iki parametreli bir model.
En yaygın yöntem denetimli öğrenme. Burada elimizde doğru cevabı bilinen örnekler vardır:
- Özellikler (x): modele verdiğimiz bilgi. Örneğin bir e-postanın kelimeleri.
- Etiket (y): doğru cevap. Örneğin “spam” ya da “değil”.
- Kayıp: modelin tahmini ile etiket arasındaki fark.
- Eğitim: kaybı küçültecek şekilde parametreleri ayarlamak (gradyan iniş).
En önemli kural: test verisine dokunma
Bir öğrenciyi, çalıştığı soruların aynısıyla sınarsan ezberleyip ezberlemediğini anlayamazsın. Modeller de ezberleyebilir. Bu yüzden veriyi üçe böleriz:
| Parça | Ne için | Ne zaman bakılır |
|---|---|---|
| Eğitim | Parametreleri öğrenmek | Sürekli |
| Doğrulama | Ayar seçmek (öğrenme oranı, model boyutu…) | Deneyler arasında |
| Test | Son, dürüst ölçüm | Bir kez, en sonda |
Aşırı öğrenme (overfitting) ezberlemenin adıdır. Belirtisi şu: Eğitim verisindeki hata azalmaya devam ederken, hiç görülmemiş verideki hata artmaya başlar. Model artık genel kuralı değil, eğitim örneklerinin tesadüflerini öğreniyor demektir.
Kendin gör. Eğrinin esnekliğini artır; turkuaz noktalar eğitim, pembe kareler hiç görülmemiş test verisi:
Çok katı: eğri, verideki dalgayı yakalayamıyor (az öğrenme).
Doğruluk yetmez
1000 e-postanın 10’u spam olsun. Her şeye “spam değil” diyen bir model %99 doğruluk alır ve tamamen işe yaramaz. Bu yüzden şunlara bakarız:
- Kesinlik (precision): “Spam” dediklerinin kaçı gerçekten spam?
- Duyarlılık (recall): Gerçek spamlerin kaçını yakaladık?
Hangisi önemli, ürüne bağlı. Bir hastalık taramasında kaçırmak (düşük duyarlılık) pahalıdır; spam filtresinde önemli bir e-postayı yanlışlıkla atmak (düşük kesinlik) pahalıdır.
Uygulama: ilk sınıflandırıcın
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
X, y = load_breast_cancer(return_X_y=True)
X_egit, X_test, y_egit, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
model = LogisticRegression(max_iter=5000)
model.fit(X_egit, y_egit)
print(classification_report(y_test, model.predict(X_test)))
Çıktıdaki precision, recall ve f1-score sütunlarını oku. Sonra test_size=0.2 yerine eğitim verisini 30 örneğe düşür (train_size=30) ve sonuçların nasıl dalgalandığına bak. Az veri, kararsız model demektir.
Mühendis gözüyle: Bir LLM uygulaması geliştirirken de aynı kural geçerli. Prompt’unu denediğin örneklerle değil, ayrı tuttuğun bir değerlendirme setiyle ölçmezsen, kendini kandırırsın. Sekizinci derste buna döneceğiz.
Kendini dene
1. Eğitim kaybı düşüyor, doğrulama kaybı 10. epoch’tan sonra yükseliyor. Ne oluyor?
2. Bir dolandırıcılık tespit sisteminde gerçek dolandırıcılıkların çoğunu kaçırıyorsun. Hangi metrik düşük?
3. Test setine kaç kez bakılmalı?
Daha derine inmek istersen