Kitaplar / Yöntem ile Makine Öğrenmesi / Ek A — Hangi algoritma ne zaman?
Ek A — Hangi algoritma ne zaman?
Karşılaştırma tablosu
| # | Algoritma | Tür | En iyi olduğu durum | Dikkat edilecek nokta |
|---|---|---|---|---|
| 1 | Doğrusal regresyon | Denetimli, sayı tahmini | İlişki kabaca düz bir çizgiyse; ilk deneme modeli | Aykırı değerlere duyarlı |
| 2 | Lojistik regresyon | Denetimli, sınıflandırma | İki sınıf, olasılık gerekli, yorumlanabilirlik önemli | Yalnızca düz sınır çizer |
| 3 | K-en yakın komşu | Denetimli | Küçük veri, karmaşık sınırlar | Ölçeklendirme şart; büyük veride yavaş |
| 4 | Naif Bayes | Denetimli, sınıflandırma | Metin, spam, çok hızlı bir temel model | Öznitelikleri bağımsız varsayar |
| 5 | Karar ağacı | Denetimli | Kuralların okunabilir olması gerektiğinde | Derin ağaç ezberler |
| 6 | Rastgele orman | Denetimli | Tablo verisinde güvenli varsayılan | Tek ağaçtan daha zor yorumlanır |
| 7 | Gradyan artırma | Denetimli | Tablo verisinde en yüksek doğruluk | Öğrenme oranı ve tur sayısı ayar ister |
| 8 | Destek vektör makinesi | Denetimli | Orta boy veri, net bir sınır payı | Ölçeklendirme şart; büyük veride yavaş |
| 9 | K-ortalamalar | Denetimsiz, kümeleme | Yuvarlak, benzer boyutlu gruplar | k’yi siz seçersiniz; başlangıca duyarlı |
| 10 | Hiyerarşik kümeleme | Denetimsiz | Küme sayısı belirsiz, ilişki ağacı isteniyor | Binlerce noktada yavaş |
| 11 | DBSCAN | Denetimsiz | Tuhaf biçimli kümeler, aykırı bulma | ε seçimi kritik |
| 12 | PCA | Denetimsiz, boyut azaltma | Görselleştirme, öznitelik sıkıştırma | Yalnızca doğrusal yapıyı yakalar |
| 13 | Gauss karışımı | Denetimsiz | Yumuşak (olasılıklı) küme üyeliği | Yerel en iyiye takılabilir |
| 14 | AdaBoost | Denetimli | Zayıf kurallardan güçlü sınıflandırıcı | Gürültülü etiketlere duyarlı |
| 15 | XGBoost | Denetimli | Yarışmalar, büyük tablo verisi | Birçok ayar parametresi |
| 16 | Sinir ağı (MLP) | Denetimli | Çok veri, karmaşık ilişkiler | Veri aç, aşırı uyuma yatkın |
| 17 | CNN | Derin | Resim, ses, sinyal | Bol veri ve hesap gücü |
| 18 | RNN | Derin | Kısa diziler, zaman serileri | Uzun dizilerde unutur |
| 19 | Otokodlayıcı | Derin, denetimsiz | Sıkıştırma, anomali tespiti, gürültü temizleme | Boğaz boyutu ayar ister |
| 20 | Transformer / dikkat | Derin | Dil, uzun diziler, çok modlu veri | Çok veri ve hesap gücü |
Kabaca bir yol haritası da şöyledir:
- Etiketiniz var ve sayı tahmin ediyorsanız: doğrusal regresyonla başlayabilir, yetmezse gradyan artırmaya geçebilirsiniz.
- Etiketiniz var ve sınıf tahmin ediyorsanız: lojistik regresyon veya naif Bayes ile bir temel çizgi kurabilir, sonra rastgele orman veya gradyan artırmayı deneyebilirsiniz.
- Etiketiniz yoksa: veriyi PCA ile iki boyuta indirip inceleyebilir, ardından k-ortalamalar veya DBSCAN deneyebilirsiniz.
- Veri resim, ses veya metinse: derin öğrenme (CNN, RNN, Transformer) uygun olacaktır.
Sık yapılan hatalar
- Modeli eğittiği veride değerlendirmek. Eğitim doğruluğu iyimserdir (bkz. 16. bölümdeki
[0.9, 0]noktası). Veriyi en başta eğitim ve test diye ayırmanız, test kümesine de yalnızca en sonda bakmanız gerekir. - Ölçeklendirmeyi unutmak. KNN, SVM, k-ortalamalar ve PCA mesafeyle çalışır. Biri santimetre, öteki lira cinsinden iki öznitelikte büyük sayılı olan her şeye hükmeder. Ağaç tabanlı yöntemler ölçekten etkilenmez.
- Temel çizgi kurmamak. “%90 doğruluk” kulağa iyi gelir. Ama örneklerin %90’ı tek bir sınıftansa her şeye o sınıf diyen bir model de %90 alır. Bu yüzden önce en basit modeli çalıştırmak gerekir.
- Rastgeleliği sabitlememek. Programlardaki
Tohum(…)satırları her çalıştırmada aynı sonucu verir. Tohum olmadan iki deneyi karşılaştırdığınızda farkın değişiklikten mi yoksa şanstan mı geldiğini bilemezsiniz. - Tek bir sonuca güvenmek. Rastgele orman, k-ortalamalar ve sinir ağları başlangıca göre farklı sonuç verebilir. Birkaç farklı tohumla denemeniz iyi olur.
- Gelecekten bilgi sızdırmak. Tahmin anında elinizde olmayacak bir sütunu (örneğin “kredi geri ödendi mi” tahmininde “son ödeme tarihi”) girdi yapmak, gerçekte çalışmayan harika bir model üretir.
- Kaybı izlememek. Eğitim kaybı düşmüyorsa öğrenme oranı çok küçük veya çok büyüktür. Eğitim kaybı düşerken test kaybı artıyorsa model ezberliyordur.
- Yanlış kayıp ve aktivasyon eşleşmesi.
ÇaprazEntropisoftmaksı kendisi uygular, bu yüzden ona ham çıktılar (logit) verilmelidir. Araya birSoftmaksdaha koymak eğitimi sessizce bozar: program çalışır ama kayıp yüksek kalır.İkiliÇaprazEntropiise sigmoid sonrası olasılık bekler. - Yöntem’e özgü: harf büyüklüğü çakışması. Yöntem
xileX’i vesileş’yi ayırt etmez. Matematikteki gibi veri matrisineX, tek noktayaxderseniz “zaten tanımlı” hatası alırsınız. Bu kitaptaki programlarpx,nokta,vgibi adlar kullanır.
Sonraki adımlar
- Alıştırmaları yapabilirsiniz. Her bölümün sonundaki alıştırma, o algoritmanın en önemli ayarını elle değiştirmenizi ister. Bir algoritmayı anlamanın en hızlı yolu onu bozmaktır.
- Kendi verinizle çalışabilirsiniz.
okuile bir CSV dosyasını okuyup 1–8 arasındaki algoritmalardan birini kendi probleminize uygulayabilirsiniz: harcamalarınız, spor kayıtlarınız, bir sensörün ölçümleri. - Hazır fonksiyonları deneyebilirsiniz.
MakineOgrenmesibirimi, burada elle yazdığımız algoritmaların bir kısmının hazır sürümlerini sunar. Kendi yazdığınızla aynı sonucu verip vermediklerini karşılaştırabilirsiniz. - Modelinizi bir cihaza taşıyabilirsiniz.
YZile eğittiğinizYoğunkatmanlı bir ağıModeliDışaAktarile bir Yöntem birimine çevirip ESP32 üzerinde çalıştırabilirsiniz (Yöntem kitabı, gömülü sistemler bölümü). - Büyük kütüphanelere geçebilirsiniz. Gerçek projelerde scikit-learn (1–15) ve PyTorch (16–20) kullanılır. Bu kitaptaki kavramlar oraya birebir taşınır.
Yoğunkatmanın PyTorch’taki karşılığınn.Linear,Ardışıkmodelinkinn.Sequential,kayıp.GeriYayçağrısınınkiloss.backward()olur. - Okuma önerileri. Matematik tarafı için Gareth James ve arkadaşlarının An Introduction to Statistical Learning kitabı ücretsiz ve yeni başlayanlara uygundur. Derin öğrenme için Michael Nielsen’in çevrim içi kitabı Neural Networks and Deep Learning, sinir ağlarını bu kitaptaki gibi sıfırdan kurar.