Bölüm 5: Basic Practice
Kaynak: Andriy Burkov -- "The Hundred-Page Machine Learning Book" (theMLbook.com)
Bölüm 5: Temel Pratik (Basic Practice)
Bu bölüm, bir makine öğrenmesi projesinde karsilasilan temel pratik zorlulari ele alir: özellik mühendisliği, aşırı öğrenme, duzenlilestirme, model değerlendirme ve hiperparametre ayarlama gibi konulari kapsar.
5.1 Özellik Muhendisligi (Feature Engineering)
Özellik mühendisliği, ham veriyi bir öğrenme algoritmasinin kullanabilecegi bir veri setine donusturme süreçi olarak tanimlanir. Bu işlem, veri analistinden yaraticilik ve tercihen alan bilgisi gerektirir.
Veri seti, etiketli örneklerin bir koleksiyonudur: {(x_i, y_i)} (i=1,...,N). Her x_i bir özellik vektoru olup, her boyutu j=1,...,D bir özellik (feature) içerir.
Örneğin, kullanıcı etkileşim kayitlarindan özellik oluşturmak için su bilgiler kullanilabilir: - Abonelik fiyati - Gunluk/haftalik/yillik bağlantı sikligi - Ortalama oturum suresi - Ortalama yanit suresi
Yüksek tahmin gucune (high predictive power) sahip özellikler, modelin başarıli olmasi için kritik oneme sahiptir.
Bir modelin eğitim verisini iyi tahmin etmesine düşük yanlilik (low bias) denir.
5.1.1 One-Hot Kodlama (One-Hot Encoding)
Bazi öğrenme algoritmalari yalnizca sayisal özellik vektorleriyle çalışır. Kategorik özellikler (örneğin "renkler" veya "haftanin gunleri") birden fazla ikili ozellige donusturulur:
- kirmizi = [1, 0, 0]
- sari = [0, 1, 0]
- yesil = [0, 0, 1]
Bu dönüşüm, özellik vektorlerinin boyutunu arttirir. Kategorileri doğrudan 1, 2, 3 gibi sayilarla temsil etmek, değerler arasında var olmayan bir siralama ima edeceginden, algoritmayai yaniltabilir ve aşırı öğrenmeye yol acabilir.
Önemli: Eger kategorik değişkende değerler arasında anlamli bir siralama varsa (örneğin: kotu, orta, iyi, mukemmel), o zaman tek bir değişken olarak sayisal kodlama uygulanabilir (1, 2, 3, 4 gibi).
5.1.2 Gruplama (Binning / Bucketing)
Gruplama, surekli bir ozelligi birden fazla ikili ozellige (bin/bucket) donusturme işlemidir. Örneğin yas ozelligi su şekilde gruplanabilir: - 0-5 yas: Grup 1 - 6-10 yas: Grup 2 - 11-15 yas: Grup 3
Bu teknik, öğrenme algoritmasina bir "ipucu" vererek daha az örnekle öğrenmeyi kolaylastirabilir. Algoritma, değerin belirli bir aralikta olmasi durumunda kesin değerin önemli olmadigini anlayabilir.
5.1.3 Normalizasyon
Normalizasyon, sayisal bir ozelligi standart bir araliga (genellikle [0,1] veya [-1,1]) donusturme işlemidir.
Normalizasyon formulu:
x_norm = (x - min) / (max - min)
Normalizasyonun gerekliligi: - Gradyan inis sirasinda büyük degerli özellikler guncellemeye hakim olabilir - Bilgisayarlarin cok küçük veya cok büyük sayilarla çalışmasi sirasinda olusan sayisal tasma (numerical overflow) sorunlarini onler - Öğrenme hizini arttirir
5.1.4 Standardizasyon (Z-Skoru Normalizasyonu)
Standardizasyon, özellik değerlerini ortalamasi 0, standart sapmasi 1 olan standart normal dagilim özelliklerine sahip olacak şekilde yeniden ölçeklendirir:
x_std = (x - mu) / sigma
Normalizasyon mu, standardizasyon mu? - Denetimsiz öğrenme algoritmalari genellikle standardizasyondan daha fazla fayda gorur - Normal dagilima yakin özellikler için standardizasyon tercih edilir - Aşırı değerler (outlier) içeren özellikler için standardizasyon tercih edilir (normalizasyon normal değerleri cok küçük bir araliga sikstirir) - Diger tum durumlarda normalizasyon tercih edilir
5.1.5 Eksik Özelliklerle Basa Cikma
Eksik değer içeren veri setleriyle basa cikmak için tipik yaklasimlar: 1. Eksik özelliklere sahip örnekleri veri setinden cikarmak (büyük veri setleri icin) 2. Eksik değer isleyebilen öğrenme algoritmalari kullanmak 3. Veri tamamlama (data imputation) teknikleri kullanmak
5.1.6 Veri Tamamlama Teknikleri
- Ortalama ile degistirme: Eksik özellik değerini, o özellikteki tum örneklerin ortalamasiyla degistirmek
- Normal aralik disinda değer atama: Örneğin aralik [0,1] ise, eksik değer olarak 2 veya -1 kullanmak
- Aralik ortasi değeri: Örneğin aralik [-1,1] ise, eksik değer için 0 kullanmak
- Regresyon ile tahmin: Eksik değeri, diger özellikler kullanilarak bir regresyon modeli ile tahmin etmek
- Ikili gösterge ozelligi ekleme: Eksik degere sahip her özellik icin, değerin mevcut olup olmadigini gosteren yeni bir ikili özellik eklemek
Önemli: Tahmin asamasinda, eğitim verisi için kullanilan ayni tamamlama teknigi uygulanmalidir.
5.2 Öğrenme Algoritmasi Secimi
Bir makine öğrenmesi algoritmasi secerken dikkate alinmasi gereken faktorler:
| Kriter | Aciklama |
|---|---|
| Açıklanabilirlik | Teknik olmayan kitleye açıklanabilir mi? kNN, lineer regresyon, karar ağaçlari açıklanabilir; sinir aglari ve topluluk modelleri "kara kutu"dur |
| Bellek icinde/disinda | Veri seti tamamen RAM'e sigar mi? Sigmazsa artimli öğrenme algoritmalari tercih edilir |
| Özellik/örnek sayisi | Sinir aglari ve Gradient Boosting milyonlarca özellik ve örnekle calisabilir; SVM daha sinirlidir |
| Kategorik/sayisal | Bazi algoritmalar doğrudan kategorik veri isleyemez, one-hot encoding gerektirir |
| Doğrusal olmayis | Veri doğrusal olarak ayrilabilir mi? Evet ise SVM (doğrusal cekirdek), lojistik/doğrusal regresyon; hayir ise derin sinir aglari veya topluluk algoritmalari |
| Eğitim hizi | Sinir aglari yavas, lojistik/doğrusal regresyon ve karar ağaçlari hizlidir; Random Forest coklu CPU cekirdeklerinden faydalanir |
| Tahmin hizi | SVM, lineer/lojistik regresyon ve bazi sinir aglari cok hizlidir; kNN ve topluluk algoritmalari daha yavas olabilir |
5.3 Uc Veri Seti: Eğitim, Dogrulama ve Test
Etiketli veri seti uc alt kumeye ayrilir:
- Eğitim seti (Training set): Modeli oluşturmak için kullanılır (en büyük kume)
- Dogrulama seti (Validation set): Algoritma secimi ve hiperparametre ayari için kullanılır
- Test seti (Test set): Modelin son değerlendirmesi için kullanılır
Geleneksel oran: %70 eğitim, %15 doğrulama, %15 test. Büyük veri cagiida: %95 eğitim, %2.5 doğrulama, %2.5 test gibi oranlar da kullanilabilir.
Neden uc set gereklidir? - Modelin daha once gormedigi örnekleri iyi tahmin etmesini (genelleme) saglamamiz gerekir - Dogrulama seti: Algoritma secimi ve hiperparametre ayarlama - Test seti: Son model değerlendirmesi (musteriye teslim veya üretime alma oncesi)
5.4 Yetersiz Öğrenme ve Aşırı Öğrenme
Yetersiz Öğrenme (Underfitting)
Modelin eğitim verisini bile iyi tahmin edememesi durumudur (yüksek yanlilik / high bias). Nedenleri: - Model, veri için fazla basittir (örneğin egri bir veri için doğrusal model) - Olusturulan özellikler yeterince bilgilendirici degildir
Cozum: Daha karmaşık model denemek veya daha yüksek tahmin gucune sahip özellikler oluşturmak.
Aşırı Öğrenme (Overfitting)
Model, eğitim verisini cok iyi tahmin eder ancak doğrulama/test verilerinde kotu performans gösterir (yüksek varyans / high variance). Nedenleri: - Model, veri için fazla karmaşıktir (cok derin karar ağaçi, cok genis sinir agi) - Cok fazla özellik ancak az sayida eğitim örneği
Cozumler: 1. Daha basit model denemek 2. Boyut azaltma teknikleri uygulamak 3. Daha fazla eğitim verisi eklemek 4. Duzenlilestirme (Regularization) uygulamak
5.5 Duzenlilestirme (Regularization)
Duzenlilestirme, öğrenme algoritmasini daha basit bir model oluşturmaya zorlayan yöntemlerin genel adidir. Pratikte, bu genellikle yanliligi biraz artirirken varyans önemli ölçüde azalir. Bu dengeye yanlilik-varyans odunlesimi (bias-variance tradeoff) denir.
L1 Duzenlilestirme (Lasso)
L1 duzenlilestirmeli amac fonksiyonu:
min C * |w| + (1/N) * toplam(f(x_i) - y_i)^2
Burada |w| = toplam(|w_j|) ve C, duzenlilestirmenin önemini kontrol eden bir hiperparametredir.
Özellikleri: - Seyrek model (sparse model) üretir: cogu parametreyi sifira esitler - Otomatik özellik secimi yapar: hangi özelliklerin tahmin için gerekli, hangilerinin gereksiz olduguna karar verir - Model açıklanabilirligi artırmak istendiginde tercih edilir
L2 Duzenlilestirme (Ridge)
L2 duzenlilestirmeli amac fonksiyonu:
min C * ||w||^2 + (1/N) * toplam(f(x_i) - y_i)^2
Özellikleri: - Genellikle L1'den daha iyi sonuçlar verir (performans acisindan) - Turevlenebilir oldugu için gradyan inisi ile optimize edilebilir - Parametreleri sifira esitlemez, ancak küçük tutar
Elastik Ag (Elastic Net)
L1 ve L2 duzenlilestirmeyi birlestiren bir yaklasimdir; L1 ve L2 ozel durumlardir.
Diger Duzenlilestirme Teknikleri
- Dropout: Sinir aglarinda rastgele birimleri devre disi birakma
- Batch normalizasyon: Katman çıktılari arasında normalizasyon
- Veri buyutme (Data Augmentation): Eğitim verisini yapay olarak cogaltma
- Erken durdurma (Early stopping): Dogrulama hatasinin artmaya basladigi noktada eğitimi durdurma
5.6 Model Performans Değerlendirmesi
Regresyon Icin
- Ortalama kare hata (MSE) hesaplanir
- Eğitim MSE'si ile test MSE'si karsilastirilir
- Test MSE'si belirgin şekilde yüksekse: aşırı öğrenme belirtisi
Sınıflandırma Icin
5.6.1 Karisiklik Matrisi (Confusion Matrix)
Model tahminlerini ozetleyen tablo:
| Spam (tahmin) | Spam Degil (tahmin) | |
|---|---|---|
| Spam (gerçek) | Dogru Pozitif (TP) | Yanlis Negatif (FN) |
| Spam Degil (gerçek) | Yanlis Pozitif (FP) | Dogru Negatif (TN) |
Cok sinifli sınıflandırmada, karisiklik matrisi hata oruntularini belirlemede yardimci olur (örneğin "kedi" yerine "panter" tahmini).
5.6.2 Kesinlik ve Duyarlilik (Precision / Recall)
Kesinlik (Precision): Dogru pozitif tahminlerin toplam pozitif tahminlere orani:
Precision = TP / (TP + FP)
Duyarlilik (Recall): Dogru pozitif tahminlerin toplandaki gerçek pozitif sayisina orani:
Recall = TP / (TP + FN)
Pratikte yüksek kesinlik ve yüksek duyarlilik arasında bir secim yapmak gerekir. Ikisini ayni anda en ust düzeyde tutmak genellikle mumkun degildir.
Kesinligi veya duyarliligi artırma yollari: - Sinif ağırlıklarini ayarlamak - Hiperparametreleri doğrulama setinde optimize etmek - Karar esik değerini degistirmek (örneğin olasıilik > 0.9 ise pozitif tahmin)
F1 Skoru: Kesinlik ve duyarliligin harmonik ortalamasidir:
F1 = 2 * (Precision * Recall) / (Precision + Recall)
5.6.3 Dogruluk (Accuracy)
Accuracy = (TP + TN) / (TP + TN + FP + FN)
Tum sınıfların hata önemi esit oldugunda yararli bir metriktir.
5.6.4 Maliyet Duyarli Dogruluk (Cost-Sensitive Accuracy)
Farkli sınıf hatalarinin farkli maliyet değerlerine sahip oldugu durumlarda kullanılır. FP ve FN sayilari ilgili maliyetlerle carpilarak doğruluk hesaplanir.
5.6.5 ROC Egrisi Altindaki Alan (AUC-ROC)
ROC egrisi (Receiver Operating Characteristic), sınıflandırma modellerinin performansini değerlendirmek için yaygin kullanilan bir yöntemdir.
- Dogru Pozitif Orani (TPR) = TP / (TP + FN) (Recall ile ayni)
- Yanlis Pozitif Orani (FPR) = FP / (FP + TN)
ROC egrisi oluşturma süreçi: 1. Guven skorunun araligini ayriklass(örneğin [0, 0.1, 0.2, ..., 1.0]) 2. Her esik değeri için TPR ve FPR hesapla 3. TPR-FPR grafiigini ciz
Yorumlama: - AUC > 0.5: Rastgele siniflandiriciidan iyi - AUC < 0.5: Modelde bir sorun var - AUC = 1.0: Mukemmel siniflandirici - Iyi bir model: TPR yaklasik 1, FPR yaklasik 0 olan esik değeri secilir
5.7 Hiperparametre Ayarlama
Hiperparametreler, öğrenme algoritmasi tarafından degil, veri analisti tarafından ayarlanan parametrelerdir (örneğin: ID3 için epsilon ve d, SVM için C, gradyan inisi için alfa).
Izgara Aramasi (Grid Search)
En basit hiperparametre ayarlama stratejisidir: 1. Her hiperparametre için denenecek değerler belirlenir (genellikle logaritmik ölçek: [0.001, 0.01, 0.1, 1, 10, 100, 1000]) 2. Tum kombinasyonlar için model egitilir 3. Dogrulama setinde en iyi performansi gosteren model secilir 4. En iyi değerler cevresinde daha ince arama yapilabilir 5. Secilen model test seti ile degerlendirilir
Rastgele Arama (Random Search)
Ayriklas değer kümeleri yerine, her hiperparametre için bir istatistiksel dagilim tanimlanir ve bu dagindan rastgele örnekler alinir. Denenecek toplam kombinasyon sayisi belirlenir.
Bayes Hiperparametre Optimizasyonu
Gecmis değerlendirme sonuçlarini kullanarak bir sonraki denenecek değerleri secen yaklasimdir. Daha once iyi performans gosterenlere dayalisiyla yeni değerleri secme fikri üzerine kuruludur.
Ayrica gradyan tabanli teknikler ve evrimsel optimizasyon teknikleri de mevcuttur.
5.7.1 Çapraz Dogrulama (Cross-Validation)
Yeterli büyüklukte ayri bir doğrulama seti olusturulamadiginda kullanılır.
K-katli çapraz doğrulama süreçi (örnek: 5-katli):
- Eğitim setini 5 esit parcaya (fold) bol: {F1, F2, F3, F4, F5}
- Model f1: F2-F5 ile egit, F1 ile dogrula
- Model f2: F1, F3-F5 ile egit, F2 ile dogrula
- Bu işlemi tum katlar için tekrarla
- 5 metrik değerinin ortalamasini al
Çapraz doğrulama, izgara aramasi ile birlikte kullanilabilir. En iyi hiperparametreler bulunduktan sonra, tum eğitim seti ile model yeniden egitilir ve test seti ile degerlendirilir.
Ozet
| Konu | Aciklama |
|---|---|
| Özellik Muhendisligi | Ham veriyi bilgilendirici özelliklere donusturme |
| One-Hot Encoding | Kategorik değişkenleri ikili vektorlere cevirme |
| Normalizasyon/Standardizasyon | Özellikleri ortak olcege getirme |
| Eksik Veri | Ortalama, aralik disi deger, regresyon ile tamamlama |
| Uc Set | Eğitim, doğrulama, test ayirimi |
| Aşırı Öğrenme | Eğitim verisine fazla uyum, genelleme kaybi |
| L1/L2 Duzenlilestirme | Model karmaşıkligini sinirlandirma |
| Değerlendirme | Confusion matrix, precision, recall, F1, AUC-ROC |
| Hiperparametre Ayarlama | Grid search, random search, Bayesian, çapraz doğrulama |
Ilgili bölümler: bölüm-06-sinir-aglari | bölüm-07-problemler-çözümler
Lisans ve Atıf
Bu sayfa, Andriy Burkov tarafından yazılan "The Hundred-Page Machine Learning Book" kitabına dayalı notlar içermektedir.
- Kitap: theMLbook.com
- GitHub: github.com/aburkov/theMLbook
- Lisans: MIT License — Copyright (c) 2019 Andriy Burkov
- İlke: "Read first, buy later" — Kitabı önce okuyun, beğenirseniz satın alın.
MIT Lisansı gereği bu copyright bildirimi ve izin bildirimi, Yazılımın tüm kopyalarına veya önemli bölümlerine dahil edilmelidir.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. Bu içerik eğitim amaçlıdır ve orijinal eserin yerine geçmez. Tam kitap için themlbook.com adresini ziyaret edin.